diff options
author | Bram Moolenaar <Bram@vim.org> | 2015-04-13 12:43:06 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2015-04-13 12:43:06 +0200 |
commit | 5a5f45917dbf542cb00617fa5ef70a14898495dd (patch) | |
tree | a3230510c832eba7fa7eb8f4994783b56f842a51 | |
parent | 695baeefe17adcd95f91d089efee87bd96fc98db (diff) |
Updated runtime files.
-rw-r--r-- | README.txt | 3 | ||||
-rw-r--r-- | runtime/doc/autocmd.txt | 9 | ||||
-rw-r--r-- | runtime/doc/eval.txt | 4 | ||||
-rw-r--r-- | runtime/doc/help.txt | 13 | ||||
-rw-r--r-- | runtime/doc/syntax.txt | 28 | ||||
-rw-r--r-- | runtime/doc/tags | 2 | ||||
-rw-r--r-- | runtime/doc/todo.txt | 70 | ||||
-rw-r--r-- | runtime/doc/usr_02.txt | 6 | ||||
-rw-r--r-- | runtime/filetype.vim | 4 | ||||
-rw-r--r-- | runtime/ftplugin/j.vim | 7 | ||||
-rw-r--r-- | runtime/syntax/vim.vim | 2 | ||||
-rw-r--r-- | runtime/syntax/yaml.vim | 104 | ||||
-rw-r--r-- | runtime/tutor/tutor.de | 1962 | ||||
-rw-r--r-- | runtime/tutor/tutor.de.utf-8 | 1962 | ||||
-rw-r--r-- | runtime/vimrc_example.vim | 6 | ||||
-rw-r--r-- | src/po/ga.po | 1211 |
16 files changed, 3070 insertions, 2323 deletions
diff --git a/README.txt b/README.txt index c2fc2a955a..647e7c672a 100644 --- a/README.txt +++ b/README.txt @@ -110,6 +110,3 @@ MAIN AUTHOR Send any other comments, patches, flowers and suggestions to: Bram Moolenaar E-mail: Bram@vim.org - Finsterruetihof 1 - 8134 Adliswil - Switzerland diff --git a/runtime/doc/autocmd.txt b/runtime/doc/autocmd.txt index fed1a48148..ff05fe5e68 100644 --- a/runtime/doc/autocmd.txt +++ b/runtime/doc/autocmd.txt @@ -1,4 +1,4 @@ -*autocmd.txt* For Vim version 7.4. Last change: 2014 Sep 23 +*autocmd.txt* For Vim version 7.4. Last change: 2015 Mar 21 VIM REFERENCE MANUAL by Bram Moolenaar @@ -933,6 +933,13 @@ WinLeave Before leaving a window. If the window to be ============================================================================== 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 diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index b75d6a84d6..9015c8c843 100644 --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -1,4 +1,4 @@ -*eval.txt* For Vim version 7.4. Last change: 2015 Mar 21 +*eval.txt* For Vim version 7.4. Last change: 2015 Apr 11 VIM REFERENCE MANUAL by Bram Moolenaar @@ -525,7 +525,7 @@ Funcref to a Dictionary, but the "self" variable is not available then. 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() dict + :function mydict.len() : return len(self.data) :endfunction :echo mydict.len() diff --git a/runtime/doc/help.txt b/runtime/doc/help.txt index f13a5294ec..b963c6bfca 100644 --- a/runtime/doc/help.txt +++ b/runtime/doc/help.txt @@ -1,4 +1,4 @@ -*help.txt* For Vim version 7.4. Last change: 2012 Dec 06 +*help.txt* For Vim version 7.4. Last change: 2015 Apr 11 VIM - main help file k @@ -24,6 +24,7 @@ Get specific help: It is possible to go directly to whatever you want help Command-line editing c_ :help c_<Del> Vim command argument - :help -r Option ' :help 'textwidth' + Regular expression / :help /[ Search for help: Type ":help word", then hit CTRL-D to see matching help entries for "word". Or use ":helpgrep word". |:helpgrep| @@ -203,6 +204,16 @@ Standard plugins ~ |pi_zip.txt| Zip archive explorer LOCAL ADDITIONS: *local-additions* +|Mines.txt| The Mines Game Jul 30, 2009 +|Tabular.txt| Configurable, flexible, intuitive text aligning +|cecutil.txt| DrChip's Utilities Jun 11, 2004 +|example.txt| Example for a locally added help file +|matchit.txt| Extended "%" matching +|pi_netrw.txt| For Vim version 7.4. Last change: 2014 Jul 09 +|synchk.txt| Syntax Checker May 15, 2013 +|test.txt| Testing the hélp cömmÃ¥nd nôw +|typecorr.txt| Plugin for correcting typing mistakes +|helpp.txt| Dummy line to avoid an error message ------------------------------------------------------------------------------ *bars* Bars example diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt index b97eb1606e..e145194b70 100644 --- a/runtime/doc/syntax.txt +++ b/runtime/doc/syntax.txt @@ -1,4 +1,4 @@ -*syntax.txt* For Vim version 7.4. Last change: 2015 Mar 20 +*syntax.txt* For Vim version 7.4. Last change: 2015 Mar 29 VIM REFERENCE MANUAL by Bram Moolenaar @@ -3322,6 +3322,32 @@ 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. + ============================================================================== 5. Defining a syntax *:syn-define* *E410* diff --git a/runtime/doc/tags b/runtime/doc/tags index 2ac190058a..4b51507bf1 100644 --- a/runtime/doc/tags +++ b/runtime/doc/tags @@ -932,6 +932,7 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME* 't_RI' term.txt /*'t_RI'* 't_RV' term.txt /*'t_RV'* '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_WP' term.txt /*'t_WP'* @@ -8103,6 +8104,7 @@ t_KL term.txt /*t_KL* t_RI term.txt /*t_RI* t_RV term.txt /*t_RV* 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_WP term.txt /*t_WP* diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt index cbc0e8d7fa..a0957572cd 100644 --- a/runtime/doc/todo.txt +++ b/runtime/doc/todo.txt @@ -1,4 +1,4 @@ -*todo.txt* For Vim version 7.4. Last change: 2015 Mar 20 +*todo.txt* For Vim version 7.4. Last change: 2015 Apr 12 VIM REFERENCE MANUAL by Bram Moolenaar @@ -68,19 +68,28 @@ Regexp problems: - this doesn't work: "syntax match ErrorMsg /.\%9l\%>20c\&\%<28c/". Leaving out the \& works. Seems any column check after \& fails. +PHP complete update, (complex, 2015 Apr 2) + +PHP syntax file update. (Jason Woofenden, 2015 Mar 24) + +Updated syntax files. (Charles Campbell, Apr 2) +Two messages. + Check out neovim bug reports that apply to Vim: https://github.com/neovim/neovim/issues?q=label%3Abug-vim Specifically: https://github.com/neovim/neovim/commit/cf8e175cf54281bcad5e704308e92ebb3e6381d3 https://github.com/neovim/neovim/commit/d7038127ca6b356ad33fdec08aa3b23ac6a817af https://github.com/neovim/neovim/commit/77ace65bdce379f2d9b13ee81ab3fc01951f92dc +https://patch-diff.githubusercontent.com/raw/neovim/neovim/pull/2390.patch And also: https://github.com/neovim/neovim/pull/2157/commits Still using freed memory after using setloclist(). (lcd, 2014 Jul 23) More info Jul 24. Not clear why. -Updated Irish translation. (Kevin Scannell, 2015 Mar 13) +Patch to fix issues with locked and fixed variables. +(Ola Dabrunz, 2015 Apr 11, update Apr 12) Better .ico file for Windows. (Pat Suwalski, 2015 Feb 13) Waiting for response on remark from Edward Fox. @@ -89,20 +98,36 @@ 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? +Show Vim icon in Windows context menu. Issue 249. (Mario Weber, 2015 Apr 11) + Problem that a previous silent ":throw" causes a following try/catch not to work. (ZyX, 2013 Sep 28) Problem using ":try" inside ":execute". (ZyX, 2013 Sep 15) +R indent files update. (Jakson Alves de Aquino, Mar 31) + +Updated Python syntax file. (Dmitry Vasiliev, Mar 30) + ":cd C:\Windows\System32\drivers\etc*" does not work, even though the directory exists. (Sergio Gallelli, 2013 Dec 29) +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 ":silent window"? + +Patch to make Ruby 2.2 work. (Andrei Olsen) + +Window drawn wrong with 'laststatus' zero and a command-line window. +(Yclept Nemo, 2015 Apr 7) +Patch by Christian, Apr 8. + +Patch to make undo files not executable. (Mikael Berthe, 2015 Apr 5) + C indent: should recognize C11 raw strings. (Mark Lodato, 2015 Mar 1) Need to recognize R"string". -Suggested patch to MingW makefiles. (Michael Soyka, 2015 Mar 11) -Feedback from others? - Patch for :tabmove not working as documented. (Hirohito Higashi, 2015 Mar 10) https://gist.github.com/h-east/ffabb0cdd589a5f9acd2 Updated patch emailed. (Mar 17) Awaiting comments. @@ -131,32 +156,20 @@ is Vi compatible, the completion fails. (Hirohito Higashi, 2015 Feb 19) Weird encryption problems on Windows. (Ben Fritz, 2015 Feb 13) Goes away when disabling the swap file. (might1, Feb 16) -Problem caused by patch 7.3.638: window->open does not update window -correctly. Issue 91. With patch. - MS-Windows: Crash opening very long file name starting with "\\". (Christian Brock, 2012 Jun 29) -Patch to handle directories better for --remote. (xaizek, 2015 Mar 1) - -Cursorline background color not mixed with character highlight. -Patch by Yasuhiro Matsumoto, 2014 Dec 3. - The argument for "-S" is not taken literally, the ":so" command expands wildcards. Add a ":nowild" command modifier? (ZyX, 2015 March 4) -Problem using diff syntax with cp932 encoding. Idea from Yasuhiro Matsumoto, -patch from Ken Takata (2014 Nov 6) +Build with Python on Mac does not always use the right library. +(Kazunobu Kuriyama, 2015 Mar 28) ml_updatechunk() is slow when retrying for another encoding. (John Little, 2014 Sep 11) -Patch to add counts to zr and zm. (Marcin Szamotulski, 2015 Jan 28) - -Patch to add a different escape sequence for replace mode. -(Omar Sandoval, 2014 Nov 30) - -Patch on Issue 166, popup drawing with '$' in 'cpo'. +Patch to add 'space' argument to 'listchars'. (Issue 350) +Author: David Bürgin When a session file is created and there are "nofile" buffers, these are not filled. Need to trigger BufReadCmd autocommands. Also handle deleting the @@ -174,15 +187,6 @@ Crash when using R syntax. (Jakson Alves de Aquino, 2015 Jan 30) Memory freed by ":syn clear" but still referenced, syntax items referenced from two windows? Stopped happening (Feb 5). -Window height computed incorrectly when Vim is minimized. -Patch to fix this. (Ingo Karkat, 2014 Dec 19) - -Patch to fix CTRL-W handling in Insert mode for multi-byte characters. -(Yasuhiro Matsumoto, 2015 Jan 29, update with test) - -Patch to allow values greater than 255 for ctermfg/ctermbg on Windows. -(Yasuhiro Matsumoto, 2014 Dec 5) - Patch for an extra argument to matchadd() for conceal. (Christian Brabandt, 2015 Feb 17, update Feb 19) @@ -409,6 +413,9 @@ highlight group. Add a "\zs" after it? Go through more coverity reports. +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) @@ -625,7 +632,7 @@ line are opened again, but from the wrong directory. Apply 'autochdir' only after starting up? Patch to add ":ldo" and ":cdo", execute commands over quickfix list and -location list. (Yegappan Lakshmanan, 2013 Jun 2) +location list. (Yegappan Lakshmanan, 2013 Jun 2, update 2015 Mar 21) 8 "stl" and "stlnc" in 'fillchars' don't work for multi-byte characters. Patch by Christian Wellenbrock, 2013 Jul 5. @@ -1429,6 +1436,7 @@ Kondakoff, 2009 May 13) 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". diff --git a/runtime/doc/usr_02.txt b/runtime/doc/usr_02.txt index 8bfa9ba05d..da63640456 100644 --- a/runtime/doc/usr_02.txt +++ b/runtime/doc/usr_02.txt @@ -1,4 +1,4 @@ -*usr_02.txt* For Vim version 7.4. Last change: 2010 Jul 20 +*usr_02.txt* For Vim version 7.4. Last change: 2015 Apr 12 VIM USER MANUAL - by Bram Moolenaar @@ -527,9 +527,11 @@ Summary: *help-summary* > :help subject() < Function "subject". > :help -subject -< Command-line option "-subject". > +< Command-line argument "-subject". > :help +subject < Compile-time feature "+subject". > + :help /* +< Regular expression item "*" > :help EventName < Autocommand event "EventName". > :help digraphs.txt diff --git a/runtime/filetype.vim b/runtime/filetype.vim index 5155488f91..745503618c 100644 --- a/runtime/filetype.vim +++ b/runtime/filetype.vim @@ -1,7 +1,7 @@ " Vim support file to detect file types " " Maintainer: Bram Moolenaar <Bram@vim.org> -" Last Change: 2015 Mar 13 +" Last Change: 2015 Apr 06 " Listen very carefully, I will say this only once if exists("did_load_filetypes") @@ -1295,7 +1295,7 @@ au BufNewFile,BufRead *.mush setf mush au BufNewFile,BufRead Mutt{ng,}rc setf muttrc " Nano -au BufNewFile,BufRead */etc/nanorc,.nanorc setf nanorc +au BufNewFile,BufRead */etc/nanorc,*.nanorc setf nanorc " Nastran input/DMAP "au BufNewFile,BufRead *.dat setf nastran diff --git a/runtime/ftplugin/j.vim b/runtime/ftplugin/j.vim index 71ac4c5418..774696836f 100644 --- a/runtime/ftplugin/j.vim +++ b/runtime/ftplugin/j.vim @@ -2,7 +2,7 @@ " Language: J " Maintainer: David Bürgin <676c7473@gmail.com> " URL: https://github.com/glts/vim-j -" Last Change: 2015-01-11 +" Last Change: 2015-03-27 if exists('b:did_ftplugin') finish @@ -16,12 +16,9 @@ setlocal iskeyword=48-57,A-Z,_,a-z setlocal comments=:NB. setlocal commentstring=NB.\ %s setlocal formatoptions-=t -setlocal shiftwidth=2 -setlocal softtabstop=2 -setlocal expandtab setlocal matchpairs=(:) -let b:undo_ftplugin = 'setlocal matchpairs< expandtab< softtabstop< shiftwidth< formatoptions< commentstring< comments< iskeyword<' +let b:undo_ftplugin = 'setlocal matchpairs< formatoptions< commentstring< comments< iskeyword<' " Section movement with ]] ][ [[ []. The start/end patterns below are amended " inside the function in order to avoid matching on the current cursor line. diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim index 358237d46d..71a555e1fc 100644 --- a/runtime/syntax/vim.vim +++ b/runtime/syntax/vim.vim @@ -47,7 +47,7 @@ syn keyword vimOption contained invai invaltkeymap invar invarabicshape invautoc syn keyword vimOption contained invakm invanti invarab invari invautoindent invautowriteall invbackup invbin invbioskey invbomb invci invcompatible invconskey invcrb invcscopeverbose invcsverb invcursorbind invdeco invdiff inveb invek invequalalways invet invexrc invfileignorecase invfoldenable invguipty invhk " termcap codes (which can also be set) {{{2 -syn keyword vimOption contained t_AB t_al t_bc t_ce t_cl t_Co t_Cs t_CS t_CV t_da t_db t_dl t_DL t_EI t_F1 t_F2 t_F3 t_F4 t_F5 t_F6 t_F7 t_F8 t_F9 t_fs t_IE t_IS t_k1 t_K1 t_k2 t_k3 t_K3 t_k4 t_K4 t_k5 t_K5 t_k6 t_K6 t_k7 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_RI t_RV t_Sb t_se t_Sf t_SI t_so t_sr t_te t_ti t_ts t_u7 t_ue t_us t_ut t_vb t_ve t_vi t_vs t_WP t_WS t_xs t_ZH t_ZR +syn keyword vimOption contained t_AB t_al t_bc t_ce t_cl t_Co t_Cs t_CS t_CV t_da t_db t_dl t_DL t_EI t_F1 t_F2 t_F3 t_F4 t_F5 t_F6 t_F7 t_F8 t_F9 t_fs t_IE t_IS t_k1 t_K1 t_k2 t_k3 t_K3 t_k4 t_K4 t_k5 t_K5 t_k6 t_K6 t_k7 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_RI t_RV t_Sb t_se t_Sf t_SI t_SR t_so t_sr t_te t_ti t_ts t_u7 t_ue t_us t_ut t_vb t_ve t_vi t_vs t_WP t_WS t_xs t_ZH t_ZR syn keyword vimOption contained t_AF t_AL t_cd t_Ce t_cm t_cs syn match vimOption contained "t_%1" syn match vimOption contained "t_#2" diff --git a/runtime/syntax/yaml.vim b/runtime/syntax/yaml.vim index 073dbf7418..626dc8a77f 100644 --- a/runtime/syntax/yaml.vim +++ b/runtime/syntax/yaml.vim @@ -2,7 +2,7 @@ " 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: 2010-10-08 +" Latest Revision: 2015-03-28 if exists('b:current_syntax') finish @@ -11,13 +11,40 @@ endif let s:cpo_save = &cpo set cpo&vim -let s:ns_char = '\%(\%([\n\r\uFEFF \t]\)\@!\p\)' -let s:ns_word_char = '\%(\w\|-\)' -let s:ns_uri_char = '\%(%\x\x\|'.s:ns_word_char.'\|[#/;?:@&=+$,.!~*''()\[\]]\)' +" 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: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.'\+!' @@ -46,11 +73,15 @@ let s:ns_tag_prefix = s:ns_local_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_first_in = '\%('.s:c_indicator.'\@!'.s:ns_char.'\|[?:\-]\%('.s:ns_plain_safe_in.'\)\@=\)' -let s:ns_plain_first_out = '\%('.s:c_indicator.'\@!'.s:ns_char.'\|[?:\-]\%('.s:ns_plain_safe_out.'\)\@=\)' +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_char_in = '\%('.s:ns_char.'#\|:'.s:ns_plain_safe_in.'\|[:#]\@!'.s:ns_plain_safe_in.'\)' -let s:ns_plain_char_out = '\%('.s:ns_char.'#\|:'.s:ns_plain_safe_out.'\|[:#]\@!'.s:ns_plain_safe_out.'\)' +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.'*' @@ -89,9 +120,11 @@ 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=@yamlConstant,yamlPlainScalar,yamlFloat syn cluster yamlFlow add=yamlTimestamp,yamlInteger,yamlMappingKeyStart syn cluster yamlFlow add=yamlComment syn region yamlFlowMapping matchgroup=yamlFlowIndicator start='{' end='}' contains=@yamlFlow @@ -103,15 +136,15 @@ execute 'syn match yamlPlainScalar contained /'.s:ns_plain_in.'/' syn match yamlMappingKeyStart '?\ze\s' syn match yamlMappingKeyStart '?' contained -execute 'syn match yamlFlowMappingKey /'.s:ns_plain_in.'\ze\s*:/ 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.'\ze\s*:\%(\s\|$\)/ '. +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.'\ze\s*:\%(\s\|$\)/ contained '. +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 @@ -119,14 +152,32 @@ syn match yamlBlockMappingMerge /<<\ze\s*:\%(\s\|$\)/ nextgroup=yamlKeyValueDeli syn match yamlKeyValueDelimiter /\s*:/ contained syn match yamlKeyValueDelimiter /\s*:/ contained -syn keyword yamlConstant true True TRUE false False FALSE -syn keyword yamlConstant null Null NULL -syn match yamlConstant '\<\~\>' - -syn match yamlTimestamp /\%([\[\]{}, \t]\@!\p\)\@<!\%(\d\{4}-\d\d\=-\d\d\=\%(\%([Tt]\|\s\+\)\%(\d\d\=\):\%(\d\d\):\%(\d\d\)\%(\.\%(\d*\)\)\=\%(\s*\%(Z\|[+-]\d\d\=\%(:\d\d\)\=\)\)\=\)\=\)\%([\[\]{}, \t]\@!\p\)\@!/ +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 -syn match yamlInteger /\%([\[\]{}, \t]\@!\p\)\@<!\%([+-]\=\%(0\%(b[0-1_]\+\|[0-7_]\+\|x[0-9a-fA-F_]\+\)\=\|\%([1-9][0-9_]*\%(:[0-5]\=\d\)\+\)\)\|[1-9][0-9_]*\)\%([\[\]{}, \t]\@!\p\)\@!/ -syn match yamlFloat /\%([\[\]{}, \t]\@!\p\)\@<!\%([+-]\=\%(\%(\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\)\)\)\%([\[\]{}, \t]\@!\p\)\@!/ execute 'syn match yamlNodeTag '.string(s:c_ns_tag_property) execute 'syn match yamlAnchor '.string(s:c_ns_anchor_property) @@ -170,6 +221,9 @@ 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 @@ -180,8 +234,10 @@ 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 +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 - diff --git a/runtime/tutor/tutor.de b/runtime/tutor/tutor.de index a78335a87a..2b9c0294b2 100644 --- a/runtime/tutor/tutor.de +++ b/runtime/tutor/tutor.de @@ -1,980 +1,982 @@ -=============================================================================== -= W i l l k o m m e n im V I M T u t o r - Version 1.7D = -=============================================================================== - - 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 benutzen. - 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 ausführen 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 Male, 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. - -Bemerkung: 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. - -Bemerkung: 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 - - - !! ACHTUNG: 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. - -Bemerkung: :q! <ENTER> verwirft alle Änderungen, die Du gemacht hast. In - einigen Lektionen 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 auf dem Zeichen steht, - das gelöscht werden soll. - - 3. Drücke die x Taste, um das überflüssige Zeichen zu löschen. - - 4. Wiederhole die Schritte 2 bis 4, bis der Satz korrekt ist. - ----> Die Kkuh sprangg übber deen Moond. - - 5. Wenn nun 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, wo der Text eingefügt werden soll. - - 3. Drücke i und gib die notwendigen Ergänzungen ein. - - 4. Wenn jeweils ein Fehler beseitigt ist, drücke <ESC> , um zum Normalmodus - zurückzukehren. - Wiederhole die 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. - Es ist gleichgültig, auf welchem Zeichen der Zeile der Cursor steht. - - 2. Drücke A und gib die nötigen 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 korrigieren. - ----> 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. ** - - !! ACHTUNG: 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! - - 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 kann. - - 3. Füge Text ein oder lösche ihn, wie Du in den vor |