Compare commits

...

122 Commits

Author SHA1 Message Date
Bram Moolenaar
b70a473e24 updated for version 7.3.905
Problem:    Crash when writing viminfo. (Ron Aaron)
Solution:   Prevent freed history info to be used.
2013-04-15 22:22:57 +02:00
Bram Moolenaar
3bb28557e1 updated for version 7.3.904
Problem:    Using memory freed by the garbage collector.
Solution:   Mark items in aucmd_win as used.
2013-04-15 18:25:59 +02:00
Bram Moolenaar
a8565fecc6 updated for version 7.3.903
Problem:    Crash on exit writing viminfo. (Ron Aaron)
Solution:   Check for the history to be empty.
2013-04-15 16:14:22 +02:00
Bram Moolenaar
4c7e9db0d6 updated for version 7.3.902
Problem:    When deleting last buffer in other tab the tabline is not updated.
Solution:   Set the redraw_tabline flag. (Yukihiro Nakadaira)
2013-04-15 15:55:19 +02:00
Bram Moolenaar
687a29c5e2 updated for version 7.3.901
Problem:    Outdated comment, ugly condition.
Solution:   Update a few comments, break line.
2013-04-15 15:47:12 +02:00
Bram Moolenaar
f6dcbb245b updated for version 7.3.900
Problem:    Not obvious that some mouse features are mutual-exclusive.
Solution:   Add a comment.
2013-04-15 15:40:33 +02:00
Bram Moolenaar
f8de161090 updated for version 7.3.899
Problem:    #if indents are off.
Solution:   Fix the indents.
2013-04-15 15:32:25 +02:00
Bram Moolenaar
54c34fa6f5 updated for version 7.3.898
Problem:    Memory leak reported by valgrind in test 91.
Solution:   Only use default argument when needed.
2013-04-15 15:15:35 +02:00
Bram Moolenaar
768baacdc8 updated for version 7.3.897
Problem:    Configure doesn't always find the shared library.
Solution:   Change the configure script. (Ken Takata)
2013-04-15 14:44:57 +02:00
Bram Moolenaar
b376647bb1 updated for version 7.3.896
Problem:    Memory leaks in Lua interface.
Solution:   Fix the leaks, add tests. (Yukihiro Nakadaira)
2013-04-15 13:49:21 +02:00
Bram Moolenaar
332ac0621c updated for version 7.3.895
Problem:    Valgrind error in test 91. (Issue 128)
Solution:   Pass scope name to find_var_in_ht().
2013-04-15 13:06:21 +02:00
Bram Moolenaar
84b0493c34 updated for version 7.3.894
Problem:    Using wrong RUBY_VER causing Ruby build to break.
Solution:   Correct the RUBY_VER value. (Yongwei Wu)
2013-04-15 12:36:18 +02:00
Bram Moolenaar
429fa85392 updated for version 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)
2013-04-15 12:27:36 +02:00
Bram Moolenaar
07219f911c updated for version 7.3.892
Problem:    Still mering problems for viminfo history.
Solution:   Do not merge lines when writing, don't write old viminfo lines.
2013-04-14 23:19:36 +02:00
Bram Moolenaar
6f852a557d updated for version 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.
2013-04-14 16:26:15 +02:00
Bram Moolenaar
7311c6932c updated for version 7.3.890
Problem:    Test 79 fails on Windows. (Michael Soyka)
Solution:   Add comment below line causing an error.
2013-04-14 16:21:41 +02:00
Bram Moolenaar
0bcdd6e709 updated for version 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)
2013-04-14 16:19:03 +02:00
Bram Moolenaar
0187ca0bdf Updated runtime files. 2013-04-12 15:09:51 +02:00
Bram Moolenaar
38ec50bea8 updated for version 7.3.888
Problem:    Filename completion with 'fileignorecase' does not work for
            multi-byte characters.
Solution:   Make 'fileignorecase' work properly. (Hirohito Higashi)
2013-04-12 14:42:39 +02:00
Bram Moolenaar
e3e6e573d1 updated for version 7.3.887
Problem:    No tests for Visual mode operators, what 7.3.879 fixes.
Solution:   Add a new test file. (David Bürgin)
2013-04-12 13:45:02 +02:00
Bram Moolenaar
8185111125 updated for version 7.3.886
Problem:    Can't build with multi-byte on Solaris 10.
Solution:   Add #ifdef X_HAVE_UTF8_STRING. (Laurent Blume)
2013-04-12 12:27:30 +02:00
Bram Moolenaar
644cf03b7e updated for version 7.3.885
Problem:    Double free for list and dict in Lua. (Shougo Matsu)
Solution:   Do not unref list and dict. (Yasuhiro Matsumoto)
2013-04-12 12:18:49 +02:00
Bram Moolenaar
126bdeeabe Move redif syntax file to the right directory.
Disable recognizing .rdf as a redif file.
2013-04-06 17:26:26 +02:00
Bram Moolenaar
2a66a07b29 updated for version 7.3.884
Problem:    Compiler warning for variable shadowing another. (John Little)
Solution:   Rename the variable. (Christian Brabandt)
2013-04-06 14:30:40 +02:00
Bram Moolenaar
25a6df90df updated for version 7.3.883
Problem:    Can't build with some combination of features.
Solution:   Adjust #ifdefs.
2013-04-06 14:29:00 +02:00
Bram Moolenaar
bf88493c09 Updated runtime files. 2013-04-05 22:26:15 +02:00
Bram Moolenaar
68879258d9 updated for version 7.3.882
Problem:    CursorHold may trigger after receiving the termresponse.
Solution:   Set the did_cursorhold flag. (Hayaki Saito)
2013-04-05 19:50:17 +02:00
Bram Moolenaar
24b11fb173 updated for version 7.3.881
Problem:    Python list does not work correctly.
Solution:   Fix it and add a test. (Yukihiro Nakadaira)
2013-04-05 19:32:36 +02:00
Bram Moolenaar
b3049f4a34 updated for version 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.
2013-04-05 18:58:47 +02:00
Bram Moolenaar
d7fbfe107d updated for version 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)
2013-04-05 17:43:14 +02:00
Bram Moolenaar
91fc43d3f9 updated for version 7.3.878
Problem:    'fileignorecase' is missing in options window and quickref.
Solution:   Add the option.
2013-04-05 15:41:05 +02:00
Bram Moolenaar
7bcb30e913 updated for version 7.3.877
Problem:    Forward searching with search() is broken.
Solution:   Fix it and add tests. (Sung Pae)
2013-04-03 21:14:29 +02:00
Bram Moolenaar
cdffbeae2b updated for version 7.3.876
Problem:    #if indents are off.
Solution:   Insert a space where appropriate. (Taro Muraoka)
2013-04-03 21:11:39 +02:00
Bram Moolenaar
95a5135118 updated for version 7.3.875
Problem:    Build problem with some combination of features.
Solution:   Use FEAT_XCLIPBOARD instead of FEAT_CLIPBOARD.
2013-03-21 22:53:50 +01:00
Bram Moolenaar
d0e2d94589 updated for version 7.3.874
Problem:    Comparing file names does not handle multi-byte characters
            properly.
Solution:   Implement multi-byte handling.
2013-03-19 18:31:49 +01:00
Bram Moolenaar
c2c355df6f updated for version 7.3.873
Problem:    Cannot easily use :s to make title case.
Solution:   Have "\L\u" result in title case. (James McCoy)
2013-03-19 17:42:15 +01:00
Bram Moolenaar
71afbfe6cd updated for version 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'.
2013-03-19 16:49:16 +01:00
Bram Moolenaar
db333a5b8d updated for version 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.
2013-03-19 15:27:48 +01:00
Bram Moolenaar
af62ff3696 updated for version 7.3.870
Problem:    Compiler warnings when using MingW 4.5.3.
Solution:   Do not use MAKEINTRESOURCE. Adjust #if. (Ken Takata)
2013-03-19 14:48:29 +01:00
Bram Moolenaar
0c279bbb9c updated for version 7.3.869
Problem:    bufwinnr() matches buffers in other tabs.
Solution:   For bufwinnr() and ? only match buffers in the current tab.
            (Alexey Radkov)
2013-03-19 14:25:54 +01:00
Bram Moolenaar
b59494cab1 updated for version 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)
2013-03-19 13:56:08 +01:00
Bram Moolenaar
186628f671 updated for version 7.3.867
Problem:    Matchparen does not update match when using auto-indenting.
            (Marc Aldorasi)
Solution:   Add the TextChanged and TextChangedI autocommand events.
2013-03-19 13:33:23 +01:00
Bram Moolenaar
090cfc1b02 updated for version 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)
2013-03-19 12:35:42 +01:00
Bram Moolenaar
ac7bd63844 Update runtime files. 2013-03-19 11:35:58 +01:00
Bram Moolenaar
b897871ce9 updated for version 7.3.865
Problem:    Mouse position may be wrong.
Solution:   Let vungetc() restore the mouse position.
2013-03-16 21:42:16 +01:00
Bram Moolenaar
a5be25e1db updated for version 7.3.864
Problem:    Can't build without the mouse feature.
Solution:   Add an #ifdef. (Ike Devolder)
2013-03-16 21:35:33 +01:00
Bram Moolenaar
e533bbe094 updated for version 7.3.863
Problem:    Problem with 'ambiwidth' detection for ANSI terminal.
Solution:   Work around not recognizing a term response. (Hayaki Saito)
2013-03-16 14:33:36 +01:00
Bram Moolenaar
2526ef276b updated for version 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.
2013-03-16 14:20:51 +01:00
Bram Moolenaar
20754027b3 updated for version 7.3.861
Problem:    ":setlocal number" clears global value of 'relativenumber'.
Solution:   Do it properly. (Markus Heidelberg)
2013-03-13 20:42:32 +01:00
Bram Moolenaar
1e284f5155 updated for version 7.3.860
Problem:    When using --remote-expr try/catch does not work. (Andrey Radev)
Solution:   Set emsg_silent instead of emsg_off.
2013-03-13 20:23:22 +01:00
Bram Moolenaar
9584b31aae updated for version 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)
2013-03-13 19:29:28 +01:00
Bram Moolenaar
a390bb6ad3 updated for version 7.3.858
Problem:    "gv" selects the wrong area after some operators.
Solution:   Save and restore the type of selection. (Christian Brabandt)
2013-03-13 19:02:41 +01:00
Bram Moolenaar
4f8301f641 updated for version 7.3.857
Problem:    The QuitPre autocommand event does not trigger for :qa and :wq.
Solution:   Trigger the event. (Tatsuro Fujii)
2013-03-13 18:30:43 +01:00
Bram Moolenaar
1a0316ca2a updated for version 7.3.856
Problem:    When calling system() multi-byte clipboard contents is garbled.
Solution:   Save and restore the clipboard contents.  (Yukihiro Nakadaira)
2013-03-13 17:50:25 +01:00
Bram Moolenaar
b3cb982162 updated for version 7.3.855
Problem:    Compiler warnings.
Solution:   Add type casts. (Mike Williams)
2013-03-13 17:01:52 +01:00
Bram Moolenaar
3978e08fbe updated for version 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.
2013-03-07 19:38:54 +01:00
Bram Moolenaar
db813951c4 updated for version 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)
2013-03-07 18:50:57 +01:00
Bram Moolenaar
e2e663f67d updated for version 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.
2013-03-07 18:02:30 +01:00
Bram Moolenaar
210f3704f7 updated for version 7.3.851
Problem:    Using an empty pattern with :sort silently continues when there is
            no previous search pattern.
Solution:   Give an error message.
2013-03-07 16:41:30 +01:00
Bram Moolenaar
60abe75379 updated for version 7.3.850
Problem:    ":vimgrep //" matches everywhere.
Solution:   Make it use the previous search pattern. (David Bürgin)
2013-03-07 16:32:54 +01:00
Bram Moolenaar
c389fd3a49 updated for version 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)
2013-03-07 16:08:35 +01:00
Bram Moolenaar
db3fbe5228 updated for version 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)
2013-03-07 15:16:21 +01:00
Bram Moolenaar
4e3c70d241 updated for version 7.3.847
Problem:    Test 55 fails when messages are translated.
Solution:   Set language to C. (Ken Takata)
2013-03-07 14:50:34 +01:00
Bram Moolenaar
84e80b51d1 updated for version 7.3.846
Problem:    Missing proto files.
Solution:   Add the files.
2013-03-07 13:32:36 +01:00
Bram Moolenaar
d999db2f1e updated for version 7.3.845
Problem:    Enum indenting is not tested.
Solution:   Add tests. (Hong Xu)
2013-03-07 13:21:32 +01:00
Bram Moolenaar
34700a6a15 Updated runtime files. 2013-03-07 13:20:54 +01:00
Bram Moolenaar
7534221eba updated for version 7.3.844
Problem:    Enum is not indented correctly with "public" etc.
Solution:   Skip "public", "private" and "protected". (Hong Xu)
2013-03-07 13:13:52 +01:00
Bram Moolenaar
b8f8461d94 updated for version 7.3.843
Problem:    Missing test file changes.
Solution:   Change the tests.
2013-02-26 22:54:11 +01:00
Bram Moolenaar
988232fabb updated for version 7.3.842
Problem:    Compiler warning for signed/unsigned pointer.
Solution:   Add type cast. (Christian Brabandt)
2013-02-26 21:43:32 +01:00
Bram Moolenaar
e17c260335 updated for version 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)
2013-02-26 19:36:15 +01:00
Bram Moolenaar
f5e44a7e90 updated for version 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)
2013-02-26 18:46:01 +01:00
Bram Moolenaar
e468e266c4 updated for version 7.3.839
Problem:    Some files missing in the list of distributed files.
Solution:   Add lines for new files.
2013-02-26 17:59:43 +01:00
Bram Moolenaar
fdf447b286 updated for version 7.3.838
Problem:    Insufficient testing for mksession.
Solution:   Add tests. (mostly by Roland Eggner)
2013-02-26 17:21:29 +01:00
Bram Moolenaar
f13f45d59b updated for version 7.3.837
Problem:    Empty lines in :version output when 'columns' is 320.
Solution:   Simplify the logic of making columns. (Nazri Ramliy, Roland
            Eggner)
2013-02-26 15:27:23 +01:00
Bram Moolenaar
693e40c2cd updated for version 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)
2013-02-26 14:56:42 +01:00
Bram Moolenaar
53eb37e9f9 updated for version 7.3.835
Problem:    "xxd -i" fails on an empty file.
Solution:   Do output the closing } for an empty file. (partly by Lawrence
            Woodman)
2013-02-26 14:14:07 +01:00
Bram Moolenaar
886ed691d2 updated for version 7.3.834
Problem:    Ruby 2.0 has a few API changes.
Solution:   Add handling of Ruby 2.0. (Yasuhiro Matsumoto)
2013-02-26 13:41:35 +01:00
Bram Moolenaar
40cf4b44ed updated for version 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)
2013-02-26 13:30:32 +01:00
Bram Moolenaar
5c9626301b updated for version 7.3.832
Problem:    Compiler warning.
Solution:   Add type cast. (Mike Williams)
2013-02-26 11:25:33 +01:00
Bram Moolenaar
26402cb2de Update runtime files. 2013-02-20 21:26:00 +01:00
Bram Moolenaar
63dbda1caa updated for version 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)
2013-02-20 21:12:10 +01:00
Bram Moolenaar
558ddad8e8 updated for version 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".
2013-02-20 19:26:29 +01:00
Bram Moolenaar
187d3acb7f updated for version 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)
2013-02-20 18:39:13 +01:00
Bram Moolenaar
8738fc1be8 updated for version 7.3.828
Problem:    Mappings are not aware of wildmenu mode.
Solution:   Add wildmenumode(). (Christian Brabandt)
2013-02-20 17:59:11 +01:00
Bram Moolenaar
995a8cd181 updated for version 7.3.827
Problem:    Python tests fail.
Solution:   Adjust the output for the stack trace.
2013-02-20 16:54:27 +01:00
Bram Moolenaar
445f3037ea updated for version 7.3.826
Problem:    List of features in :version output is hard to read.
Solution:   Make columns. (Nazri Ramliy)
2013-02-20 16:47:36 +01:00
Bram Moolenaar
4d36987c25 updated for version 7.3.825
Problem:    With Python errors are not always clear.
Solution:   Print the stack trace, unless :silent is used. (ZyX)
2013-02-20 16:09:43 +01:00
Bram Moolenaar
2142e5d851 updated for version 7.3.824
Problem:    Can redefine builtin functions.  (ZyX)
Solution:   Disallow adding a function to g:.
2013-02-20 15:19:43 +01:00
Bram Moolenaar
452ff5bdc7 updated for version 7.3.823
Problem:    Building with Cygwin: '-lsupc++' is not needed.
Solution:   Remove it. (Ken Takata)
2013-02-20 13:34:19 +01:00
Bram Moolenaar
6d47df7ca0 updated for version 7.3.822
Problem:    Crash when accessing freed buffer.
Solution:   Get 'textwidth' in caller of enter_buffer(). (Christian Brabandt)
2013-02-17 15:45:37 +01:00
Bram Moolenaar
5004e8846e updated for version 7.3.821
Problem:    Build with OLE and Cygwin is broken. (Steve Hall)
Solution:   Select static or shared stdc library. (Ken Takta)
2013-02-16 18:16:15 +01:00
Bram Moolenaar
feeaa688eb updated for version 7.3.820
Problem:    Build errors and warnings when building with small features and
            Lua, Perl or Ruby.
Solution:   Add #ifdefs and UNUSED.
2013-02-14 22:19:51 +01:00
Bram Moolenaar
b2c5a5ac79 updated for version 7.3.819
Problem:    Compiling without +eval and with Python isn't working.
Solution:   Add the eval feature when building with Python.
2013-02-14 22:11:39 +01:00
Bram Moolenaar
707060e2ee updated for version 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".
2013-02-14 20:58:35 +01:00
Bram Moolenaar
caca92be8a updated for version 7.3.817
Problem:    Test 89 fails with tiny and small features.
Solution:   Add sourcing small.vim.
2013-02-14 20:10:33 +01:00
Bram Moolenaar
f6ecd99cec Add test files. 2013-02-13 17:35:34 +01:00
Bram Moolenaar
af9aeb9250 updated for version 7.3.816
Problem:    Can't compute a hash.
Solution:   Add the sha256() function. (Tyru, Hirohito Higashi)
2013-02-13 17:35:04 +01:00
Bram Moolenaar
c2149ea7cd updated for version 7.3.815
Problem:    Building with Cygwin and Ruby doesn't work.
Solution:   Copy some things from the MingW build file. (Ken Takata)
2013-02-13 17:06:11 +01:00
Bram Moolenaar
ffeedec023 updated for version 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)
2013-02-13 16:49:58 +01:00
Bram Moolenaar
a3914327f7 updated for version 7.3.813
Problem:    The CompleteDone event is not triggered when there are no pattern
            matches. (Jianjun Mao)
Solution:   Trigger the event. (Christian Brabandt)
2013-02-13 16:30:21 +01:00
Bram Moolenaar
00154508de Update runtime files.
Add missing test files.
2013-02-13 16:15:55 +01:00
Bram Moolenaar
8fe8d9ed06 updated for version 7.3.812
Problem:    When 'indentexpr' moves the cursor "curswant" not restored.
Solution:   Restore "curswant". (Sung Pae)
2013-02-13 16:10:17 +01:00
Bram Moolenaar
be9c627666 updated for version 7.3.811
Problem:    Useless termresponse parsing for SGR mouse.
Solution:   Skip the parsing. (Hayaki Saito)
2013-02-13 15:53:19 +01:00
Bram Moolenaar
f4e5e86627 updated for version 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)
2013-02-13 15:44:26 +01:00
Bram Moolenaar
181ace28ed updated for version 7.3.809
Problem:    The dosinst.c program has a buffer overflow. (Thomas Gwae)
Solution:   Ignore $VIMRUNTIME if it is too long.
2013-02-13 14:36:44 +01:00
Bram Moolenaar
76d711c3b5 updated for version 7.3.808
Problem:    Python threads still do not work properly.
Solution:   Fix both Python 2 and 3.  Add tests. (Ken Takata)
2013-02-13 14:17:08 +01:00
Bram Moolenaar
51971b3398 updated for version 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)
2013-02-13 12:16:05 +01:00
Bram Moolenaar
e9d47cd08b updated for version 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)
2013-02-06 19:58:43 +01:00
Bram Moolenaar
07e1da6bbd updated for version 7.3.805
Problem:    Lua version 5.2 is not detected properly on Arch Linux.
Solution:   Adjust autoconf. (lilydjwg)
2013-02-06 19:49:43 +01:00
Bram Moolenaar
fffcfea984 updated for version 7.3.804
Problem:    Compiler warning for tiny build. (Tony Mechelynck)
Solution:   Add #ifdefs around variable.
2013-02-06 18:45:01 +01:00
Bram Moolenaar
11cb6e6e13 updated for version 7.3.803
Problem:    Substitute with confirmation and then "q" does not replace
            anything.  (John McGowan)
Solution:   Do not break the loop, skip to the end.
2013-02-06 18:24:02 +01:00
Bram Moolenaar
fa13eef3c9 Updated runtime files. 2013-02-06 17:34:04 +01:00
Bram Moolenaar
309379fc98 updated for version 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.
2013-02-06 16:26:26 +01:00
Bram Moolenaar
530e7dfafd updated for version 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)
2013-02-06 13:38:02 +01:00
Bram Moolenaar
b6a76ffc4c updated for version 7.3.800
Problem:    The " mark is not adjusted when inserting lines. (Roland Eggner)
Solution:   Adjust the line number. (Christian Brabandt)
2013-02-06 12:33:21 +01:00
Bram Moolenaar
9c2e6cc6ed updated for version 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)
2013-02-06 12:14:48 +01:00
Bram Moolenaar
39d7d51bcd updated for version 7.3.798
Problem:    MzScheme: circular list does not work correctly.
Solution:   Separate Mac-specific code from generic code. (Sergey Khorev)
2013-01-31 21:09:15 +01:00
Bram Moolenaar
04e5b5a228 updated for version 7.3.797
Problem:    Compiler warning for size_t to int conversion. (Skeept)
Solution:   Add type casts.
2013-01-30 21:56:21 +01:00
Bram Moolenaar
e337e5f634 updated for version 7.3.796
Problem:    "/[^\n]" does match at a line break.
Solution:   Make it do the same as "/.". (Christian Brabandt)
2013-01-30 18:21:51 +01:00
Bram Moolenaar
d214221375 updated for version 7.3.795
Problem:    MzScheme does not build with tiny features.
Solution:   Add #ifdefs.  Also add UNUSED to avoid warnings.  And change
            library ordering.
2013-01-30 17:41:50 +01:00
Bram Moolenaar
a50e5866b0 updated for version 7.3.794
Problem:    Tiny build fails. (Tony Mechelynck)
Solution:   Adjust #ifdefs.
2013-01-30 17:30:17 +01:00
Bram Moolenaar
8ceb1735a2 updated for version 7.3.793
Problem:    New interactive :substutite behavior is not tested.
Solution:   Add tests. (Christian Brabandt)
2013-01-30 17:03:30 +01:00
203 changed files with 8545 additions and 3082 deletions

View File

@@ -73,6 +73,7 @@ SRC_ALL = \
src/version.c \
src/version.h \
src/vim.h \
src/winclip.c \
src/window.c \
src/xxd/xxd.c \
src/main.aap \
@@ -130,6 +131,7 @@ SRC_ALL = \
src/proto/ui.pro \
src/proto/undo.pro \
src/proto/version.pro \
src/proto/winclip.pro \
src/proto/window.pro \
@@ -444,6 +446,7 @@ SRC_EXTRA = \
src/os_beos.c \
src/os_beos.h \
src/os_beos.rsrc \
src/proto/os_beos.pro \
src/os_mint.h \
src/os_vms_fix.com \
src/toolbar.phi \

File diff suppressed because one or more lines are too long

View File

@@ -1,4 +1,4 @@
*autocmd.txt* For Vim version 7.3. Last change: 2012 Sep 05
*autocmd.txt* For Vim version 7.3. Last change: 2013 Mar 19
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -266,7 +266,7 @@ Name triggered by ~
|GUIFailed| after starting the GUI failed
|TermResponse| after the terminal response to |t_RV| is received
|QuitPre| when using `:quit`, before deciding whether to quit
|QuitPre| when using `:quit`, before deciding whether to quit
|VimLeavePre| before exiting Vim, before writing the viminfo file
|VimLeave| before exiting Vim, after writing the viminfo file
@@ -519,8 +519,9 @@ CursorMoved After the cursor was moved in Normal mode.
Not triggered when there is typeahead or when
an operator is pending.
For an example see |match-parens|.
Careful: Don't do anything that the user does
not expect or that is slow.
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.
@@ -730,11 +731,11 @@ QuickFixCmdPost Like QuickFixCmdPre, but after a quickfix
moving to the first error.
See |QuickFixCmdPost-example|.
*QuitPre*
QuitPre When using `:quit`, 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.
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.
*RemoteReply*
RemoteReply When a reply from a Vim that functions as
server was received |server2client()|. The
@@ -831,12 +832,27 @@ TermResponse After the response to |t_RV| is received from
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.
*User*
User Never executed automatically. To be used for
autocommands that are only executed with
":doautocmd".
*UserGettingBored*
UserGettingBored When the user hits CTRL-C. Just kidding! :-)
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"

View File

@@ -1,4 +1,4 @@
*change.txt* For Vim version 7.3. Last change: 2012 Nov 02
*change.txt* For Vim version 7.3. Last change: 2013 Mar 19
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -600,7 +600,7 @@ For other systems the tmpnam() library function is used.
*g&*
g& Synonym for `:%s//~/&` (repeat last substitute with
last search pattern on all lines with the same flags).
For exaple, when you first do a substitution with
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}
@@ -784,6 +784,11 @@ Examples: >
: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/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.

View File

@@ -1,4 +1,4 @@
*cmdline.txt* For Vim version 7.3. Last change: 2013 Jan 17
*cmdline.txt* For Vim version 7.3. Last change: 2013 Mar 16
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -964,7 +964,7 @@ for the file "$home" in the root directory. A few examples:
\\$home file "\\", followed by expanded $home
==============================================================================
6. Command-line window *cmdline-window* *cmdwin*
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

View File

@@ -220,7 +220,7 @@ The diffs are highlighted with these groups:
that parts in the middle that are still the
same are highlighted anyway. Only "iwhite" of
'diffopt' is used here.
|hl-DiffDelete| DiffDelete Deleted lines. Also called filler lines,
|hl-DiffDelete| DiffDelete Deleted lines. Also called filler lines,
because they don't really exist in this
buffer.

View File

@@ -1,4 +1,4 @@
*editing.txt* For Vim version 7.3. Last change: 2012 Aug 08
*editing.txt* For Vim version 7.3. Last change: 2013 Feb 07
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -424,7 +424,7 @@ external command, by using the syntax `={expr}` 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 wildcars.
does apply like to other wildcards.
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.

View File

@@ -1,4 +1,4 @@
*eval.txt* For Vim version 7.3. Last change: 2013 Jan 23
*eval.txt* For Vim version 7.3. Last change: 2013 Mar 19
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -503,7 +503,7 @@ This removes all entries from "dict" with a value not matching 'x'.
Dictionary function ~
*Dictionary-function* *self* *E725*
*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
@@ -1157,7 +1157,7 @@ This kind of variable is deleted when the buffer is wiped out or deleted with
|:bdelete|.
One local buffer variable is predefined:
*b:changedtick-variable* *changetick*
*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
@@ -1777,7 +1777,8 @@ get( {list}, {idx} [, {def}]) any get item {idx} from {list} or {def}
get( {dict}, {key} [, {def}]) any get item {key} from {dict} or {def}
getbufline( {expr}, {lnum} [, {end}])
List lines {lnum} to {end} of buffer {expr}
getbufvar( {expr}, {varname}) any variable {varname} in buffer {expr}
getbufvar( {expr}, {varname} [, {def}])
any variable {varname} in buffer {expr}
getchar( [expr]) Number get one character from the user
getcharmod( ) Number modifiers for the last typed character
getcmdline() String return the current command-line
@@ -1798,12 +1799,14 @@ getpos( {expr}) List position of cursor, mark, etc.
getqflist() List list of quickfix items
getreg( [{regname} [, 1]]) String contents of register
getregtype( [{regname}]) String type of register
gettabvar( {nr}, {varname}) any variable {varname} in tab {nr}
gettabwinvar( {tabnr}, {winnr}, {name})
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}
getwinposx() Number X coord in pixels of GUI Vim window
getwinposy() Number Y coord in pixels of GUI Vim window
getwinvar( {nr}, {varname}) any variable {varname} in window {nr}
getwinvar( {nr}, {varname} [, {def}])
any variable {varname} in window {nr}
glob( {expr} [, {nosuf} [, {list}]])
any expand file wildcards in {expr}
globpath( {path}, {expr} [, {flag}])
@@ -1931,6 +1934,7 @@ settabvar( {nr}, {varname}, {val}) set {varname} in tab page {nr} to {val}
settabwinvar( {tabnr}, {winnr}, {varname}, {val}) set {varname} in window
{winnr} in tab page {tabnr} to {val}
setwinvar( {nr}, {varname}, {val}) 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
@@ -1992,6 +1996,7 @@ undotree() List undo file tree
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
winbufnr( {nr}) Number buffer number of window {nr}
wincol() Number window column of the cursor
winheight( {nr}) Number height of window {nr}
@@ -2578,6 +2583,8 @@ delete({fname}) *delete()*
which is 0 if the file was deleted successfully, and non-zero
when the deletion 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 non-zero when autocommands are being executed and the
@@ -3141,7 +3148,7 @@ getbufline({expr}, {lnum} [, {end}])
Example: >
:let lines = getbufline(bufnr("myfile"), 1, "$")
getbufvar({expr}, {varname}) *getbufvar()*
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.
@@ -3151,8 +3158,8 @@ getbufvar({expr}, {varname}) *getbufvar()*
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 an empty string is
returned, there is no error message.
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")
@@ -3429,26 +3436,30 @@ getregtype([{regname}]) *getregtype()*
<CTRL-V> is one character with value 0x16.
If {regname} is not specified, |v:register| is used.
gettabvar({tabnr}, {varname}) *gettabvar()*
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.
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}) *gettabwinvar()*
gettabwinvar({tabnr}, {winnr}, {varname} [, {def}]) *gettabwinvar()*
Get the value of window-local variable {varname} in window
{winnr} in tab page {tabnr}.
When {varname} starts with "&" get the value of a window-local
option.
When {varname} is empty a dictionary with all window-local
variables is returned.
Note that {varname} must be the name without "w:".
Tabs are numbered starting with one. For the current tabpage
use |getwinvar()|.
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 {varname} is empty a dictionary with all window-local
variables is returned.
Note that {varname} must be the name without "w:".
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')
@@ -3463,7 +3474,7 @@ getwinposy() The result is a Number, which is the Y coordinate in pixels of
the top of the GUI Vim window. The result will be -1 if the
information is not available.
getwinvar({winnr}, {varname}) *getwinvar()*
getwinvar({winnr}, {varname} [, {def}]) *getwinvar()*
Like |gettabwinvar()| for the current tabpage.
Examples: >
:let list_is_on = getwinvar(2, '&list')
@@ -5336,6 +5347,11 @@ setwinvar({nr}, {varname}, {val}) *setwinvar()*
:call setwinvar(1, "&list", 0)
:call setwinvar(2, "myvar", "foobar")
sha256({string}) *sha256()*
Returns a String with 64 hex charactes, 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
@@ -6156,6 +6172,18 @@ visualmode([expr]) *visualmode()*
Dictionary or Float is not a Number or String, thus does not
cause the mode to be cleared.
wildmenumode() *wildmenumode()*
Returns non-zero when the wildmenu is active and zero
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).
*winbufnr()*
winbufnr({nr}) The result is a Number, which is the number of the buffer
associated with window {nr}. When {nr} is zero, the number of

View File

@@ -1,4 +1,4 @@
*ft_sql.txt* For Vim version 7.3. Last change: 2010 Jul 20
*ft_sql.txt* For Vim version 7.3. Last change: 2013 Apr 05
by David Fishburn
@@ -435,7 +435,7 @@ the space bar):
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 it's columns and back again.
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>'
@@ -645,7 +645,7 @@ your |vimrc|: >
- 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 be replaced. >
the owner name will be replaced. >
omni_sql_precache_syntax_groups
< - Default:

View File

@@ -16,7 +16,7 @@ Vim's Graphical User Interface *gui-w16* *win16-gui*
Other relevant documentation:
|gui.txt| For generic items of the GUI.
|os_msdos.txt| For items common to DOS and Windows.
|os_msdos.txt| For items common to DOS and Windows.
|gui_w32.txt| Some items here are also applicable to the Win16 version.
{Vi does not have a Windows GUI}

View File

@@ -17,7 +17,7 @@ Vim's Win32 Graphical User Interface *gui-w32* *win32-gui*
Other relevant documentation:
|gui.txt| For generic items of the GUI.
|os_win32.txt| For Win32 specific items.
|os_win32.txt| For Win32 specific items.
{Vi does not have a Windows GUI}

View File

@@ -1,4 +1,4 @@
*if_mzsch.txt* For Vim version 7.3. Last change: 2010 Feb 11
*if_mzsch.txt* For Vim version 7.3. Last change: 2012 Dec 17
VIM REFERENCE MANUAL by Sergey Khorev

View File

@@ -1,4 +1,4 @@
*if_pyth.txt* For Vim version 7.3. Last change: 2013 Jan 30
*if_pyth.txt* For Vim version 7.3. Last change: 2013 Feb 03
VIM REFERENCE MANUAL by Paul Moore
@@ -385,7 +385,7 @@ sure edit "gvim.exe" and search for "python\d*.dll\c".
*:py3* *:python3*
The |:py3| and |:python3| commands work similar to |:python|. A simple check
if the `:py3` command is wrong: >
if the `:py3` command is working: >
:py3 print("Hello")
< *:py3file*
The |:py3file| command works similar to |:pyfile|.

View File

@@ -577,6 +577,106 @@ $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 always 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
<
FORTRAN *ft-fortran-indent*
Block if, select case, where, and forall constructs are indented. So are

View File

@@ -1,4 +1,4 @@
*index.txt* For Vim version 7.3. Last change: 2012 Jul 25
*index.txt* For Vim version 7.3. Last change: 2013 Feb 28
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -94,8 +94,8 @@ tag char action in Insert mode ~
|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'
|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
@@ -141,7 +141,7 @@ tag char action in Insert mode ~
|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_<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
@@ -212,8 +212,8 @@ tag char note action in Normal mode ~
|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-\_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
@@ -431,7 +431,7 @@ tag char note action in Normal mode ~
|<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
|<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"
@@ -640,7 +640,7 @@ tag char note action in Normal mode ~
|[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"
|[<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
@@ -680,7 +680,7 @@ tag char note action in Normal mode ~
|]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"
|]<MiddleMouse>| ]<MiddleMouse> 2 same as "]p"
==============================================================================
2.4 Commands starting with 'g' *g*
@@ -1011,8 +1011,8 @@ tag command action in Command-line editing mode ~
CTRL-Z not used (reserved for suspend)
|c_<Esc>| <Esc> abandon command-line without executing it
|c_<Esc>| 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',
|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
@@ -1134,7 +1134,7 @@ tag command action ~
|:cgetbuffer| :cgetb[uffer] get errors from buffer
|:cgetexpr| :cgete[xpr] get errors from expr
|:cgetfile| :cg[etfile] read file with error messages
|:changes| :cha[nges] print the change list
|: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
@@ -1383,7 +1383,7 @@ tag command action ~
|: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| :pop[up] popup a menu by name
|: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
@@ -1469,7 +1469,7 @@ tag command action ~
|:slast| :sla[st] split window and go to last file in the
argument list
|:smagic| :sm[agic] :substitute with 'magic'
|:smap| :sma[p] like ":map" but for Select mode
|: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
|:snext| :sn[ext] split window and go to next file in the

View File

@@ -1,4 +1,4 @@
*insert.txt* For Vim version 7.3. Last change: 2013 Jan 09
*insert.txt* For Vim version 7.3. Last change: 2013 Apr 12
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1869,13 +1869,15 @@ NOTE: These commands cannot be used with |:global| or |:vglobal|.
See |++opt| for the possible values of [++opt].
*:r!* *:read!*
:[range]r[ead] !{cmd} Execute {cmd} and insert its standard output below
:[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 "."

View File

@@ -394,8 +394,8 @@ CTRL-{char} {char} typed as a control character; that is, typing {char}
*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.
`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

View File

@@ -1067,7 +1067,7 @@ 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..
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

View File

@@ -1,4 +1,4 @@
*message.txt* For Vim version 7.3. Last change: 2011 May 10
*message.txt* For Vim version 7.3. Last change: 2013 Feb 23
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -730,7 +730,11 @@ Vim cannot create a temporary file.
Can't open file {filename}
Can't read file {filename}
Vim cannot read a temporary file.
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

View File

@@ -1,4 +1,4 @@
*motion.txt* For Vim version 7.3. Last change: 2012 Aug 04
*motion.txt* For Vim version 7.3. Last change: 2013 Mar 07
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -104,13 +104,14 @@ 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 redone with "." if the command is more than one line.
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

View File

@@ -1,4 +1,4 @@
*options.txt* For Vim version 7.3. Last change: 2013 Jan 30
*options.txt* For Vim version 7.3. Last change: 2013 Apr 05
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -699,6 +699,10 @@ A jump table for the options with a short description can be found at |Q_op|.
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.
*'antialias'* *'anti'* *'noantialias'* *'noanti'*
'antialias' 'anti' boolean (default: off)
global
@@ -986,7 +990,7 @@ A jump table for the options with a short description can be found at |Q_op|.
- 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
- 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.
@@ -1463,11 +1467,14 @@ A jump table for the options with a short description can be found at |Q_op|.
|gui-clipboard|.
*clipboard-unnamedplus*
unnamedplus A variant of "unnamed" flag which uses the clipboard
register '+' (|quoteplus|) instead of register '*' for
all operations except yank. Yank shall copy the text
into register '+' and also into '*' when "unnamed" is
included.
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')
@@ -1700,7 +1707,7 @@ A jump table for the options with a short description can be found at |Q_op|.
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)
. 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
@@ -2865,7 +2872,7 @@ A jump table for the options with a short description can be found at |Q_op|.
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'.
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'
@@ -2934,6 +2941,14 @@ A jump table for the options with a short description can be found at |Q_op|.
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
@@ -7082,7 +7097,7 @@ A jump table for the options with a short description can be found at |Q_op|.
{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
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".
In the Win32 console version the default value is the console codepage
@@ -7896,7 +7911,7 @@ A jump table for the options with a short description can be found at |Q_op|.
global
{not in Vi}
When set case is ignored when completing file names and directories.
Has no effect on systems where file name case is generally ignored.
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.
@@ -7915,6 +7930,7 @@ A jump table for the options with a short description can be found at |Q_op|.
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.

View File

@@ -504,7 +504,7 @@ Character classes {not in Vi}: */character-classes*
x x a character with no special meaning matches itself
|/[]| [] \[] any character specified inside the []
|/\%[]| \%[] \%[] a sequence of optionally matched atoms
|/\%[]| \%[] \%[] 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

View File

@@ -1,4 +1,4 @@
*quickfix.txt* For Vim version 7.3. Last change: 2011 May 10
*quickfix.txt* For Vim version 7.3. Last change: 2013 Mar 07
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -574,6 +574,8 @@ commands can be combined to create a NewGrep command: >
'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

View File

@@ -1,4 +1,4 @@
*quickref.txt* For Vim version 7.3. Last change: 2012 Feb 22
*quickref.txt* For Vim version 7.3. Last change: 2013 Apr 05
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -7,7 +7,7 @@
*quickref* *Contents*
tag subject tag subject ~
|Q_ct| list of help files |Q_re| Repeating commands
|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
@@ -27,7 +27,7 @@
|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
|Q_fo| Folding
------------------------------------------------------------------------------
N is used to indicate an optional count that can be given before the command.
@@ -186,7 +186,7 @@ N is used to indicate an optional count that can be given before the command.
|: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
|:ju| :ju[mps] print the jump list
------------------------------------------------------------------------------
*Q_vm* Various motions
@@ -204,30 +204,30 @@ N is used to indicate an optional count that can be given before the command.
------------------------------------------------------------------------------
*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
|: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
|: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
|:ltag| :lt[ag][!] [tag] jump to tag [tag] and add matching tags to the
location list
|:tags| :tags print tag 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
|: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
|: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
|: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
|CTRL-W_z| CTRL-W z close tag preview window
------------------------------------------------------------------------------
*Q_sc* Scrolling
@@ -260,7 +260,7 @@ These only work when 'wrap' is off:
|: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_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
@@ -334,16 +334,16 @@ In Insert or Command-line mode:
*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
|<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
|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
|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
|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
@@ -369,7 +369,7 @@ In Insert or Command-line mode:
|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}
|v_b_r| {visual}r{char}
in Visual block mode: Replace each char of the
selected text with {char}
@@ -447,13 +447,13 @@ In Insert or Command-line 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
|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_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)
@@ -509,8 +509,8 @@ In Insert or Command-line mode:
------------------------------------------------------------------------------
*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
|: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}
@@ -522,19 +522,19 @@ In Insert or Command-line mode:
Normal and Visual mode
|:map_l!| :ma[p]! [lhs] list mappings (starting with [lhs]) for
Insert and Command-line mode
|:cmap| :cmap/:cunmap/:cnoremap
|:cmap| :cmap/:cunmap/:cnoremap
like ":map!"/":unmap!"/":noremap!" but for
Command-line mode only
|:imap| :imap/:iunmap/:inoremap
|:imap| :imap/:iunmap/:inoremap
like ":map!"/":unmap!"/":noremap!" but for
Insert mode only
|:nmap| :nmap/:nunmap/:nnoremap
|:nmap| :nmap/:nunmap/:nnoremap
like ":map"/":unmap"/":noremap" but for
Normal mode only
|:vmap| :vmap/:vunmap/:vnoremap
|:vmap| :vmap/:vunmap/:vnoremap
like ":map"/":unmap"/":noremap" but for
Visual mode only
|:omap| :omap/:ounmap/:onoremap
|: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
@@ -691,6 +691,7 @@ Short explanation of each option: *option-list*
'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
'fkmap' 'fk' Farsi keyboard mapping
@@ -958,9 +959,9 @@ Short explanation of each option: *option-list*
------------------------------------------------------------------------------
*Q_ur* Undo/Redo commands
|u| N u undo last N changes
|u| N u undo last N changes
|CTRL-R| N CTRL-R redo last N undone changes
|U| U restore last changed line
|U| U restore last changed line
------------------------------------------------------------------------------
*Q_et* External commands
@@ -1011,7 +1012,7 @@ Short explanation of each option: *option-list*
C4350, etc.)
|:normal| :norm[al][!] {commands}
execute Normal mode commands
|Q| Q switch to "Ex" mode
|Q| Q switch to "Ex" mode
|:redir| :redir >{file} redirect messages to {file}
|:silent| :silent[!] {command} execute {command} silently
@@ -1087,11 +1088,11 @@ Context-sensitive completion on the command-line:
------------------------------------------------------------------------------
*Q_ex* Special Ex characters
|:bar| | separates two commands (not for ":global" and ":!")
|: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
|:_%| % 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
@@ -1171,18 +1172,18 @@ Context-sensitive completion on the command-line:
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
|: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
|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}
|: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|
@@ -1198,12 +1199,12 @@ Context-sensitive completion on the command-line:
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| :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
|:Next| :N[ext] :sN[ext] edit previous file
|:first| :fir[st] :sfir[st] edit first file
|:last| :la[st] :sla[st] edit last file
|:last| :la[st] :sla[st] edit last file
------------------------------------------------------------------------------
*Q_wq* Writing and quitting

View File

@@ -1,4 +1,4 @@
*syntax.txt* For Vim version 7.3. Last change: 2013 Jan 30
*syntax.txt* For Vim version 7.3. Last change: 2013 Apr 05
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -999,6 +999,14 @@ comment highlighting, add the following line to your startup file: >
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_c11 don't highlight C++11 standard items
CSH *csh.vim* *ft-csh-syntax*
This covers the shell named "csh". Note that on some systems tcsh is actually
@@ -2061,7 +2069,7 @@ 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 maintaining regular spacing in the input text. To mark both trailing
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
@@ -2440,24 +2448,33 @@ Pascal. Use this if you don't use assembly and Pascal: >
PYTHON *python.vim* *ft-python-syntax*
There are four options to control Python syntax highlighting.
There are six options to control Python syntax highlighting.
For highlighted numbers: >
:let python_highlight_numbers = 1
:let python_no_number_highlight = 1
For highlighted builtin functions: >
:let python_highlight_builtins = 1
:let python_no_builtin_highlight = 1
For highlighted standard exceptions: >
:let python_highlight_exceptions = 1
: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_highlight_space_errors = 1
:let python_space_error_highlight = 1
If you want all possible Python highlighting (the same as setting the
preceding three options): >
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*
@@ -2911,6 +2928,35 @@ 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.
*tex-morecommands* *tex-package*
Tex: Want To Highlight More Commands? ~
@@ -3805,7 +3851,7 @@ 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 to the left
{nr} (for "lc" only): start matching {nr} chars right of the start
Examples: "ms=s+1", "hs=e-2", "lc=3".
@@ -4882,7 +4928,7 @@ restoring "b:current_syntax", since the syntax files do set
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 effect other windows on the
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

View File

@@ -233,10 +233,12 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
'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'*
'fk' options.txt /*'fk'*
@@ -523,6 +525,8 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
'noexpandtab' options.txt /*'noexpandtab'*
'noexrc' options.txt /*'noexrc'*
'nofen' options.txt /*'nofen'*
'nofic' options.txt /*'nofic'*
'nofileignorecase' options.txt /*'nofileignorecase'*
'nofk' options.txt /*'nofk'*
'nofkmap' options.txt /*'nofkmap'*
'nofoldenable' options.txt /*'nofoldenable'*
@@ -964,6 +968,7 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
'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'*
@@ -4251,6 +4256,7 @@ E859 eval.txt /*E859*
E86 windows.txt /*E86*
E860 eval.txt /*E860*
E861 eval.txt /*E861*
E862 eval.txt /*E862*
E87 windows.txt /*E87*
E88 windows.txt /*E88*
E89 message.txt /*E89*
@@ -4478,6 +4484,8 @@ TabLeave autocmd.txt /*TabLeave*
Tcl if_tcl.txt /*Tcl*
TermChanged autocmd.txt /*TermChanged*
TermResponse autocmd.txt /*TermResponse*
TextChanged autocmd.txt /*TextChanged*
TextChangedI autocmd.txt /*TextChangedI*
Transact-SQL ft_sql.txt /*Transact-SQL*
U undo.txt /*U*
UTF-8 mbyte.txt /*UTF-8*
@@ -4768,7 +4776,7 @@ aw motion.txt /*aw*
a{ motion.txt /*a{*
a} motion.txt /*a}*
b motion.txt /*b*
b:changedtick-variable eval.txt /*b:changedtick-variable*
b:changedtick eval.txt /*b:changedtick*
b:changelog_name filetype.txt /*b:changelog_name*
b:current_syntax-variable syntax.txt /*b:current_syntax-variable*
b:netrw_lastfile pi_netrw.txt /*b:netrw_lastfile*
@@ -5032,6 +5040,7 @@ 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*
cmdarg-variable eval.txt /*cmdarg-variable*
cmdbang-variable eval.txt /*cmdbang-variable*
cmdline-arguments vi_diff.txt /*cmdline-arguments*
@@ -5180,6 +5189,7 @@ 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*
@@ -5653,8 +5663,10 @@ 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-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*
@@ -5817,6 +5829,12 @@ 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_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: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*
@@ -5949,6 +5967,7 @@ 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:tex_conceal syntax.txt /*g:tex_conceal*
g:tex_fast syntax.txt /*g:tex_fast*
g:tex_isk syntax.txt /*g:tex_isk*
g:var eval.txt /*g:var*
g:vimball_home pi_vimball.txt /*g:vimball_home*
@@ -6150,6 +6169,7 @@ gui_w16.txt gui_w16.txt /*gui_w16.txt*
gui_w32.txt gui_w32.txt /*gui_w32.txt*
gui_x11.txt gui_x11.txt /*gui_x11.txt*
guifontwide_gtk2 options.txt /*guifontwide_gtk2*
guifontwide_win_mbyte options.txt /*guifontwide_win_mbyte*
guioptions_a options.txt /*guioptions_a*
guu change.txt /*guu*
gv visual.txt /*gv*
@@ -6685,6 +6705,7 @@ mapmode-s map.txt /*mapmode-s*
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*
@@ -6796,6 +6817,7 @@ 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-threads if_mzsch.txt /*mzscheme-threads*
@@ -7551,6 +7573,7 @@ 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()*
@@ -7962,6 +7985,7 @@ 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*
@@ -8513,6 +8537,7 @@ white-space pattern.txt /*white-space*
whitespace pattern.txt /*whitespace*
wildcard editing.txt /*wildcard*
wildcards editing.txt /*wildcards*
wildmenumode() eval.txt /*wildmenumode()*
win16-!start gui_w16.txt /*win16-!start*
win16-clipboard gui_w16.txt /*win16-clipboard*
win16-colors gui_w16.txt /*win16-colors*

View File

@@ -1,4 +1,4 @@
*term.txt* For Vim version 7.3. Last change: 2011 Feb 16
*term.txt* For Vim version 7.3. Last change: 2013 Mar 13
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -294,6 +294,8 @@ Added by Vim (there are no standard codes for these):
|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'|
KEY CODES
Note: Use the <> form if possible

View File

@@ -1,4 +1,4 @@
*todo.txt* For Vim version 7.3. Last change: 2013 Jan 30
*todo.txt* For Vim version 7.3. Last change: 2013 Apr 12
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -39,6 +39,8 @@ highlight group. Add a "\zs" after it?
Go through more coverity reports.
Valgrind errors in test 16.
Discussion about canonicalization of Hebrew. (Ron Aaron, 2011 April 10)
Checking runtime scripts: Thilo Six, 2012 Jun 6.
@@ -52,50 +54,31 @@ 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 for mzscheme. (Sergey Khorev, 2012 Nov 19)
Updated patch 2013 Jan 28.
Using ":call foo#d.f()" doesn't autoload the "foo.vim" file.
That is, calling a dictionary function on an autoloaded dict.
Works OK for echo, just not for ":call" and ":call call()". (Ted, 2011 Mar
17)
Patch by Christian Brabandt, 2013 Mar 23.
Patch to fix :s command with confirm and typing "a". (Christian Brabandt, 2012
Oct 28)
/[^\n] does match at a line break. Expected to do the same as /.
Patch by Christian Brabandt, 2012 Dec 1.
Test files in archive in another message.
Patch to make multibyte input work on Win32 console when codepage differs from
'encoding'. (Ken Takata, 2012 Sep 29)
Patch for building with Ruby and Cygwin. (Ken Takata, 2013 Jan 9)
Patch to make 'relativenumber' show the current lnum instead of zero.
(Nazri Ramliy, 2013 Jan 29)
It's possible to define an input() function that overrides the built-in one.
(ZyX, 2012 Sep 28)
Patch to add sha256() function. (Tyru, 2013 Jan 8)
Patch to make pyeval() print error messages. (ZyX, 2013 Jan 12)
Patch to make building with Ruby 2.0 on 64 bit system work. (eagletmt (Kohei
Suzuki), 2013 Mar 25)
Win32: When a directory name contains an exclamation mark, completion doesn't
complete the contents of the directory. No escaping for the "!"? (Jan
Stocker, 2012 Jan 5)
Patch for Win32 clipboard under Cygwin. (Frodak Baksik, Feb 15)
Sutcliffe says it works well.
Update 2007 May 22 for Vim 7.1
Update 2008 Dec 2008 for Vim 7.2.xx (Sharonov)
Update by Ken Takata (2012 Dec 31, 2013 Jan 4, 2013 Jan 26)
Problem parsing expression with function(). (Andy Wokula, 2012 Nov 22)
Patch by Christian Brabandt, Nov 22. Tests in another patch, Nov 23.
Patch to add default value to getbufvar() et al. (Hirohito Higashi, 2013 Jan 1)
Patch to avoid that visul motion breaks repeat with ".". (Sung Pae, 2013 Mar
25)
Problem caused by patch 7.3.638: window->open does not update window
correctly. Issue 91.
Patch to fix compiler warnings for MingW 4.5.3. (Ken Takata, 2013 Jan 26)
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 make vim.bindeval() in Python work. (Yukihiro Nakadaira, 2013 Mar 25)
Do allow real tags above the !_TAG entries. Undo older patch. Issue 90.
@@ -104,19 +87,37 @@ Patch to support 'u' in interactive substitute. (Christian Brabandt, 2012 Sep
Patch to make fold updates much faster. (Christian Brabandt, 2012 Dec)
Patch to add more testing for Visual operators. (glts, 2013 Mar 28)
Patch for IME handling, adds 'imactivatefunc' and 'imstatusfunc' option.
(Yukihiro Nakadaira, 2012 Aug 16)
Patch to improve IME handling. (Yasuhiro Matsumoto, 2012 Jul 18)
Issue 54: document behavior of -complete, also expands arg.
Matches might be highlighted correctly. Inefficient patch by Christian
Brabandt, 2013 Feb 26.
New syntax files for apt. (quidame, 2012 Sep 21)
Patch to use bold/italic fonts when 'guifontewide' is set. (Ken Takata, 2013
Mar 31)
v:register is not directly reset to " after a delete command that specifies a
register. It is reset after the next command. (Steve Vermeulen, 2013 Mar 16)
'ff' is wrong for one-line file without EOL. (Issue 77)
Patch for if_lua. (Luis Carvalho, 2012 Aug 26, update Aug 29, another Aug 30,
then Sep 1, reminder Oct 14)
Patch to check if 'foldexpr' sets did_emsg. (Christian Brabandt, 2013 Mar 20)
Patch to set antialiasing style on Windows. (Ondrej Balaz, 2013 Mar 14)
Needs a different check for CLEARTYPE_QUALITY.
Patch for repeating change that uses ":normal". (glts, 2013 March 23)
Issue 72: 'autochdir' causes problems for :vimgrep.
Undo problem: line not removed as expected when using setline() from Insert
@@ -134,8 +135,18 @@ MS-Windows: Crash opening very long file name starting with "\\".
It's probably a good idea to make a negative value for 'sts' use the value of
'sw'. Patch by So8res, Oct 3 2012
Test 79 fails on Windows only. (Michael Soyka, 2013 Apr 11).
What makes the test script mapping continue after an error?
patch to add "combine" flag to syntax commands. (so8res, 2012 Dec 6)
Combining characters are not used when executing a register with :@w.
(William Fugh, 2013 Apr 5, more info from Ben Fritz)
Patch by Christian Brabandt, 2013 Apr 6. Second one.
Bug in completion menu. (Olivier Teuliere, 2013 Feb 15)
Patch by Christian Brabandt, Feb 16.
Syntax update problem in one buffer opened in two windows, bottom window is
not correctly updated. (Paul Harris, 2012 Feb 27)
@@ -147,10 +158,12 @@ 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 add functions for signs. (Christian Brabandt, 2013 Jan 27)
Patch to use directX to draw text on Windows. Adds the 'directx' option.
(Taro Muraoka, 2013 Jan 25)
Patch to use directX to draw text on Windows. Adds the 'renderoptions'
option. (Taro Muraoka, 2013 Jan 25, update 2013 Apr 3)
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)
@@ -184,7 +197,10 @@ MS-Windows resizing problems:
'iminsert' global value set when using ":setlocal iminsert"? (Wu, 2012 Jun 23)
Help for b:undo_indent'. (Thilo Six, 2012 May 28)
Patch to append regesp to tag commands to make it possible to select one out
of many matches. (Cody Cutler, 2013 Mar 28)
Help for 'b:undo_indent'. (Thilo Six, 2012 May 28)
Also question if examples are correct.
It should be possible to make globpath() return a list instead of a string,
@@ -245,9 +261,6 @@ And one for gui_x11.txt.
More recent version: https://retracile.net/wiki/VimBreakIndent
Posted to vim-dev by Taylor Hedberg, 2011 Nov 25
Problem with starting Visual block mode with :norm when 'virtualedit' is set.
(David glts, 2012 Jun 5)
":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.
@@ -256,10 +269,9 @@ Problem with l: dictionary being locked in a function. (ZyX, 2011 Jul 21)
Should use has("browsefilter") in ftplugins. Requires patch 7.3.593.
Issue 48: foldopen error can't be caught by try/catch
Update for vim2html.pl. (Tyru, 2013 Feb 22)
"dg_" deletes including the last character, "d:normal! g_" doesn't.
(Nomen Nescio, 2012 Jun 27)
Issue 48: foldopen error can't be caught by try/catch
Patch to sort functions starting with '<' after others. Omit dict functions,
they can't be called. (Yasuhiro Matsumoto, 2011 Oct 11)
@@ -360,9 +372,6 @@ The error was 'RenderBadPicture (invalid Picture parameter)'.
backtrace from your debugger if you break on the gdk_x_error() function.)
Check that number of pixels doesn't go above 65535?
popup completion menu closes quickly when there is a fold in the buffer. (Jan
Christoph Ebersbach, 2011 Jul 3)
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.
@@ -406,6 +415,7 @@ When a buffer-local mapping is used, but a global mapping starts with the same
characters, Vim currently waits for the next typed character to find out if
the global mapping matches. It is probably better to let the local mapping
win and not wait. (discussion with Andy Wokula, 2013 Jan 30)
Patch by Michael Henry, 2013 Jan 30, update Feb 15.
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.
@@ -506,6 +516,9 @@ New esperanto spell file can't be processed. (Dominique Pelle, 2011 Jan 30)
"L'Italie" noted as a spell error at start of the sentence. (Dominique Pelle,
2011 Feb 27)
Functions to read the actual contents of the screen, so that things like
conceal can be tested. (Nazri Ramliy, 2013 Feb 18)
Copy/paste between Vim and Google chrome doesn't work well for multi-byte
characters. (Ben Haskell, 2010 Sep 17)
When putting text in the cut buffer (when exiting) and conversion doesn't work
@@ -517,6 +530,9 @@ Experimental patch by Christian Brabandt, 2012 Apr 19.
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?
'colorcolumn' has higher priority than hlsearch. Should probably be the other
way around. (Nazri Ramliy, 2013 Feb 19)
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.
@@ -705,9 +721,6 @@ 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)
Using ":call foo#d.f()" doesn't autoload the "foo.vim" file. Works OK for
echo, just not for ":call" and ":call call()". (Ted, 2011 Mar 17)
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.
@@ -1573,9 +1586,6 @@ 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?
Completion menu disappears when using 'cursorcolumn'. (Sven-Hendrik Haase,
2011 May 23)
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.
@@ -2278,8 +2288,6 @@ Macintosh:
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.
8 ":g//" gives "Pattern not found error" with E486. Should not use the
error number, it's not a regular error message.
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
@@ -3968,9 +3976,6 @@ Command line completion:
Command line history:
9 Remember which command lines were actually typed and were not loaded from
viminfo. When writing viminfo append only these lines, so that lines from
other Vim's are not overwritten.
- 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

View File

@@ -17,7 +17,7 @@ side by side. All this is possible with split windows.
|08.6| Commands for all windows
|08.7| Viewing differences with vimdiff
|08.8| Various
|08.9| Tab pages
|08.9| Tab pages
Next chapter: |usr_09.txt| Using the GUI
Previous chapter: |usr_07.txt| Editing more than one file

View File

@@ -18,7 +18,7 @@ This chapter explains the different ways this can be done.
|28.7| Folding by syntax
|28.8| Folding by expression
|28.9| Folding unchanged lines
|28.10| Which fold method to use?
|28.10| Which fold method to use?
Next chapter: |usr_29.txt| Moving through programs
Previous chapter: |usr_27.txt| Search commands and patterns

View File

@@ -1,4 +1,4 @@
*usr_41.txt* For Vim version 7.3. Last change: 2012 Oct 13
*usr_41.txt* For Vim version 7.3. Last change: 2013 Feb 20
VIM USER MANUAL - by Bram Moolenaar
@@ -863,12 +863,15 @@ Window size and position: *window-size-functions*
winsaveview() get view of current window
winrestview() restore saved view of current window
Various: *various-functions*
mode() get current editing mode
visualmode() last visual mode used
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
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

View File

@@ -248,7 +248,7 @@ Subjects that can be read independently.
|28.7| Folding by syntax
|28.8| Folding by expression
|28.9| Folding unchanged lines
|28.10| Which fold method to use?
|28.10| Which fold method to use?
|usr_29.txt| Moving through programs
|29.1| Using tags

View File

@@ -1,7 +1,7 @@
" Vim support file to detect file types
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2012 Nov 28
" Last Change: 2013 Apr 08
" Listen very carefully, I will say this only once
if exists("did_load_filetypes")
@@ -139,6 +139,9 @@ 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 setf asciidoc
" ASN.1
au BufNewFile,BufRead *.asn,*.asn1 setf asn
@@ -325,6 +328,9 @@ 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
@@ -489,6 +495,9 @@ au BufNewFile,BufRead *.prg
\ setf clipper |
\ endif
" Clojure
au BufNewFile,BufRead *.clj,*.cljs setf clojure
" Cmake
au BufNewFile,BufRead CMakeLists.txt,*.cmake,*.cmake.in setf cmake
@@ -743,11 +752,12 @@ au BufNewFile,BufRead *.mo,*.gdmo setf gdmo
au BufNewFile,BufRead *.ged,lltxxxxx.txt setf gedcom
" Git
au BufNewFile,BufRead *.git/COMMIT_EDITMSG setf gitcommit
au BufNewFile,BufRead *.git/COMMIT_EDITMSG setf gitcommit
au BufNewFile,BufRead *.git/MERGE_MSG setf gitcommit
au BufNewFile,BufRead *.git/config,.gitconfig,.gitmodules setf gitconfig
au BufNewFile,BufRead *.git/modules/**/COMMIT_EDITMSG setf gitcommit
au BufNewFile,BufRead *.git/modules/**/config setf gitconfig
au BufNewFile,BufRead git-rebase-todo setf gitrebase
au BufNewFile,BufRead *.git/modules/**/config setf gitconfig
au BufNewFile,BufRead git-rebase-todo setf gitrebase
au BufNewFile,BufRead .msg.[0-9]*
\ if getline(1) =~ '^From.*# This line is ignored.$' |
\ setf gitsendemail |
@@ -774,7 +784,7 @@ 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
au BufNewFile,BufRead {,.}gitolite.rc,example.gitolite.rc setf perl
" Gnuplot scripts
au BufNewFile,BufRead *.gpi setf gnuplot
@@ -1075,6 +1085,9 @@ 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
@@ -1634,6 +1647,9 @@ 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
@@ -2184,8 +2200,12 @@ au BufNewFile,BufRead *.uc setf uc
au BufNewFile,BufRead */etc/updatedb.conf setf updatedb
" Upstart (init(8)) config files
au BufNewFile,BufRead */etc/init/*.conf,*/.init/*.conf setf upstart
au BufNewFile,BufRead */etc/init/*.override,*/.init/*.override setf upstart
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
@@ -2395,10 +2415,10 @@ endfunc
au BufNewFile,BufRead *.yaml,*.yml setf yaml
" yum conf (close enough to dosini)
au BufNewFile,BufRead */etc/yum.conf setf dosini
au BufNewFile,BufRead */etc/yum.conf setf dosini
" Zimbu
au BufNewFile,BufRead *.zu setf zimbu
au BufNewFile,BufRead *.zu setf zimbu
" Zope
" dtml (zope dynamic template markup language), pt (zope page template),
@@ -2543,6 +2563,20 @@ au BufNewFile,BufRead *termcap*
\| 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 s:Redif()
func! s:Redif()
let lnum = 1
while lnum <= 5 && lnum < line('$')
if getline(lnum) =~ "^\ctemplate-type:"
setf redif
return
endif
let lnum = lnum + 1
endwhile
endfunc
" Remind
au BufNewFile,BufRead .reminders* call s:StarSetf('remind')
@@ -2571,7 +2605,7 @@ au BufNewFile,BufRead *xmodmap* call s:StarSetf('xmodmap')
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')
au BufNewFile,BufRead */etc/yum.repos.d/* call s:StarSetf('dosini')
" Z-Shell script
au BufNewFile,BufRead zsh*,zlog* call s:StarSetf('zsh')

View File

@@ -1,7 +1,7 @@
" Vim filetype plugin file
" Language: Aap recipe
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2003 Nov 04
" Last Change: 2013 Apr 05
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
@@ -19,7 +19,7 @@ let b:undo_ftplugin = "setl fo< com< et<"
setlocal fo-=t fo+=croql
" Set 'comments' to format dashed lists in comments.
setlocal comments=s:#\ -,m:#\ \,e:#,n:#,fb:-
setlocal comments=s:#\ -,m:#\ \ ,e:#,n:#,fb:-
" Expand tabs to spaces to avoid trouble.
setlocal expandtab

29
runtime/ftplugin/abap.vim Normal file
View File

@@ -0,0 +1,29 @@
" 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 :

View File

@@ -7,7 +7,7 @@
" Neil Bird <neil@fnxweb.com>
" $Author: krischik $
" $Date: 2008-07-08 16:29:01 +0200 (Di, 08 Jul 2008) $
" Version: 4.6
" 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
@@ -42,7 +42,7 @@ set cpoptions-=C
" Section: Comments {{{1
"
setlocal comments=O:--,:--\ \
setlocal comments=O:--,:--\ \
setlocal commentstring=--\ \ %s
setlocal complete=.,w,b,u,t,i

View File

@@ -0,0 +1,79 @@
" 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: 30 January 2013
" 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
let b:undo_ftplugin = 'setlocal define< formatoptions< comments< commentstring<'
" 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. The '+=croql'
" is standard ftplugin boilerplate, although it is arguably intrusive.
setlocal formatoptions-=t formatoptions+=croql
" Lisp comments are routinely nested (e.g. ;;; SECTION HEADING)
setlocal comments=n:;
setlocal commentstring=;\ %s
" 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=4 sw=4 et:

View File

@@ -4,7 +4,7 @@
" 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: Mar 5, 2012
" Last Change: Feb 12, 2013
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
@@ -19,10 +19,11 @@ setl define=^\\s*(def\\k*
setl formatoptions-=t
setl iskeyword+=+,-,*,/,%,<,=,>,:,$,?,!,@-@,94
setl lisp
setl commentstring=;%s
" make comments behaviour like in c.vim
" e.g. insertion of ;;; and ;; on normal "O" or "o" when staying in comment
setl comments^=:;;;,:;;,sr:#\|,mb:\|,ex:\|#
setl formatoptions+=croql
let b:undo_ftplugin = "setlocal comments< define< formatoptions< iskeyword< lisp<"
let b:undo_ftplugin = "setlocal comments< define< formatoptions< iskeyword< lisp< commentstring<"

View File

@@ -4,7 +4,7 @@
" 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: Mar 5, 2012
" Last Change: Feb 12, 2013
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
@@ -20,6 +20,7 @@ setl define=^\\s*(def\\k*
setl formatoptions-=t
setl iskeyword+=+,-,*,/,%,<,=,>,:,$,?,!,@-@,94
setl lisp
setl commentstring=;%s
" make comments behaviour like in c.vim
" e.g. insertion of ;;; and ;; on normal "O" or "o" when staying in comment
@@ -44,4 +45,4 @@ if exists("b:is_chicken") || exists("is_chicken")
setl lispwords+=cond-expand,and-let*,foreign-lambda,foreign-lambda*
endif
let b:undo_ftplugin = "setlocal comments< define< formatoptions< iskeyword< lispwords< lisp<"
let b:undo_ftplugin = "setlocal comments< define< formatoptions< iskeyword< lispwords< lisp< commentstring<"

398
runtime/indent/clojure.vim Normal file
View File

@@ -0,0 +1,398 @@
" 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: 30 January 2013
" Only load this indent file when no other was loaded.
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< lispwords< 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
function! s:SynIdName()
return synIDattr(synID(line("."), col("."), 0), "name")
endfunction
function! s:CurrentChar()
return getline('.')[col('.')-1]
endfunction
function! s:CurrentWord()
return getline('.')[col('.')-1 : searchpos('\v>', 'n', line('.'))[1]-2]
endfunction
function! s:IsParen()
return s:CurrentChar() =~ '\v[\(\)\[\]\{\}]' &&
\ s:SynIdName() !~? '\vstring|comment'
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:MatchesOne(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:SavePosition()
let [ _b, l, c, _o ] = getpos(".")
let b = bufnr("%")
return [b, l, c]
endfunction
function! s:RestorePosition(value)
let [b, l, c] = a:value
if bufnr("%") != b
execute b "buffer!"
endif
call setpos(".", [0, l, c, 0])
endfunction
function! s:MatchPairs(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:IsParen()", stopat)
return [pos[0], virtcol(pos)]
endfunction
function! s:ClojureCheckForStringWorker()
" 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:SynIdName() !~? "string"
return -1
endif
" This will not work for a " in the first column...
if s:CurrentChar() == '"'
call cursor(0, col("$") - 2)
if s:SynIdName() !~? "string"
return -1
endif
if s:CurrentChar() != '\\'
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:CheckForString()
let pos = s:SavePosition()
try
let val = s:ClojureCheckForStringWorker()
finally
call s:RestorePosition(pos)
endtry
return val
endfunction
function! s:ClojureIsMethodSpecialCaseWorker(position)
" Find the next enclosing form.
call search('\S', 'Wb')
" Special case: we are at a '(('.
if s:CurrentChar() == '('
return 0
endif
call cursor(a:position)
let nextParen = s:MatchPairs('(', ')', 0)
" Special case: we are now at toplevel.
if nextParen == [0, 0]
return 0
endif
call cursor(nextParen)
call search('\S', 'W')
if g:clojure_special_indent_words =~ '\<' . s:CurrentWord() . '\>'
return 1
endif
return 0
endfunction
function! s:IsMethodSpecialCase(position)
let pos = s:SavePosition()
try
let val = s:ClojureIsMethodSpecialCaseWorker(a:position)
finally
call s:RestorePosition(pos)
endtry
return val
endfunction
function! GetClojureIndent()
" Get rid of special case.
if line(".") == 1
return 0
endif
" We have to apply some heuristics here to figure out, whether to use
" normal lisp indenting or not.
let i = s:CheckForString()
if i > -1
return 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:MatchPairs('(', ')', 0)
let bracket = s:MatchPairs('\[', '\]', paren[0])
let curly = s:MatchPairs('{', '}', 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[1]
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[1]
endif
" There are neither { nor [ nor (, ie. we are at the toplevel.
if paren == [0, 0]
return 0
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:IsMethodSpecialCase(paren)
return paren[1] + &shiftwidth - 1
endif
" In case we are at the last character, we use the paren position.
if col("$") - 1 == paren[1]
return paren[1]
endif
" In case after the paren is a whitespace, we search for the next word.
normal! l
if s:CurrentChar() == ' '
normal! 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[1]
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:CurrentWord()
if stridx('([{', w[0]) > -1
return paren[1]
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 = substitute(w, "\\v%(.*/|[#'`~@^,]*)(.*)", '\1', '')
if &lispwords =~ '\V\<' . ww . '\>'
return paren[1] + &shiftwidth - 1
endif
if g:clojure_fuzzy_indent
\ && !s:MatchesOne(g:clojure_fuzzy_indent_blacklist, ww)
\ && s:MatchesOne(g:clojure_fuzzy_indent_patterns, ww)
return paren[1] + &shiftwidth - 1
endif
normal! W
if paren[0] < line(".")
return paren[1] + &shiftwidth - 1
endif
normal! ge
return virtcol(".") + 1
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
" 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.
" Definitions
setlocal lispwords=
setlocal lispwords+=bound-fn
setlocal lispwords+=def
setlocal lispwords+=definline
setlocal lispwords+=definterface
setlocal lispwords+=defmacro
setlocal lispwords+=defmethod
setlocal lispwords+=defmulti
setlocal lispwords+=defn
setlocal lispwords+=defn-
setlocal lispwords+=defonce
setlocal lispwords+=defprotocol
setlocal lispwords+=defrecord
setlocal lispwords+=defstruct
setlocal lispwords+=deftest " clojure.test
setlocal lispwords+=deftest- " clojure.test
setlocal lispwords+=deftype
setlocal lispwords+=extend
setlocal lispwords+=extend-protocol
setlocal lispwords+=extend-type
setlocal lispwords+=fn
setlocal lispwords+=ns
setlocal lispwords+=proxy
setlocal lispwords+=reify
setlocal lispwords+=set-test " clojure.test
" Binding forms
setlocal lispwords+=as->
setlocal lispwords+=binding
setlocal lispwords+=doall
setlocal lispwords+=dorun
setlocal lispwords+=doseq
setlocal lispwords+=dotimes
setlocal lispwords+=doto
setlocal lispwords+=for
setlocal lispwords+=if-let
setlocal lispwords+=let
setlocal lispwords+=letfn
setlocal lispwords+=locking
setlocal lispwords+=loop
setlocal lispwords+=testing " clojure.test
setlocal lispwords+=when-first
setlocal lispwords+=when-let
setlocal lispwords+=with-bindings
setlocal lispwords+=with-in-str
setlocal lispwords+=with-local-vars
setlocal lispwords+=with-open
setlocal lispwords+=with-precision
setlocal lispwords+=with-redefs
setlocal lispwords+=with-redefs-fn
setlocal lispwords+=with-test " clojure.test
" Conditional branching
setlocal lispwords+=case
setlocal lispwords+=cond->
setlocal lispwords+=cond->>
setlocal lispwords+=condp
setlocal lispwords+=if
setlocal lispwords+=if-not
setlocal lispwords+=when
setlocal lispwords+=when-not
setlocal lispwords+=while
" Exception handling
setlocal lispwords+=catch
setlocal lispwords+=try " For aesthetics when enclosing single line
let &cpo = s:save_cpo
unlet! s:save_cpo
" vim:sts=4 sw=4 et:

View File

@@ -5,7 +5,6 @@
" Credits: Thanks to the ruby.vim authors, I borrow a lot!
" Previous Maintainer: Brent A. Fulgham <bfulgham@debian.org>
" -----------------------------------------------------------
" GetLatestVimScripts: 2752 1 :AutoInstall: falcon.vim
"======================================
" SETUP
@@ -132,7 +131,7 @@ function FalconGetIndent()
" If previous line ends in a semi-colon reset indent to previous
" lines setting
if prevline =~? ';\s*$' && prevnonblank(prevline) =~? ',\s*$'
return chg = chg - (2 * &sw)
let chg = chg - (2 * &sw)
endif
" If previous line ended in a comma, indent again

View File

@@ -1,14 +1,14 @@
" Vim indent file
" Language: R
" Author: Jakson Alves de Aquino <jalvesaq@gmail.com>
" Last Change: Fri Oct 14, 2011 09:50PM
" Last Change: Fri Feb 15, 2013 08:11PM
" Only load this indent file when no other was loaded.
if exists("b:did_r_indent")
if exists("b:did_indent")
finish
endif
let b:did_r_indent = 1
let b:did_indent = 1
setlocal indentkeys=0{,0},:,!^F,o,O,e
setlocal indentexpr=GetRIndent()

View File

@@ -73,7 +73,7 @@ function! GetSDLIndent()
" Systems and packages are always in column 0
if getline(v:lnum) =~? '^\s*\(\(end\)\=system\|\(end\)\=package\)'
return 0;
return 0
endif
" Put each end* where the corresponding begin was

View File

@@ -2,7 +2,7 @@
"
" Menu Translations: Japanese (EUC-JP)
" Translated By: MURAOKA Taro <koron.kaoriya@gmail.com>
" Last Change: 15-Jun-2012.
" Last Change: 24-Feb-2013.
"
" Copyright (C) 2001-12 MURAOKA Taro <koron.kaoriya@gmail.com>
" THIS FILE IS DISTRIBUTED UNDER THE VIM LICENSE.
@@ -241,6 +241,8 @@ menutrans &Paste Ž
menutrans &Delete <09><><EFBFBD><EFBFBD>(&D)
menutrans Select\ Blockwise <09><><EFBFBD><EFBFBD><EFBFBD>֥<EFBFBD><EFBFBD>å<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans Select\ &Word ñ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(&W)
menutrans Select\ &Sentence ʸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>(&S)
menutrans Select\ Pa&ragraph <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(&R)
menutrans Select\ &Line <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(&L)
menutrans Select\ &Block <09>֥<EFBFBD><EFBFBD>å<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(&B)
menutrans Select\ &All <09><><EFBFBD>٤<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(&A)
@@ -301,12 +303,12 @@ menutrans &Convert\ to\ HTML HTML
" <20><><EFBFBD>ݤ<EFBFBD>iconv<6E><76><EFBFBD>衢ɬ<E8A1A2><C9AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EAA4B7><EFBFBD><EFBFBD><EFBFBD>󥳡<EFBFBD><F3A5B3A1>ɤˤʤ<CBA4><CAA4><EFBFBD>ǤϤʤ<CFA4><CAA4><EFBFBD><EFBFBD>Ȥ<EFBFBD><C8A4><EFBFBD><EFBFBD><EFBFBD>
if has('iconv')
" iconv<6E>ΥС<CEA5><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƚ<EFBFBD><C8BD>
let support_jisx0213 = (iconv("\x87\x64\x87\x6a", 'cp932', 'euc-jisx0213') ==# "\xad\xc5\xad\xcb") ? 1 : 0
"
let s:support_jisx0213 = (iconv("\x87\x64\x87\x6a", 'cp932', 'euc-jisx0213') ==# "\xad\xc5\xad\xcb") ? 1 : 0
" <20>ɤ߹<C9A4><DFB9><EFBFBD>
an 10.395 &File.-SEPICONV- <Nop>
an 10.396.100.100 &File.<2E><><EFBFBD>󥳡<EFBFBD><F3A5B3A1>ɻ<EFBFBD><EFBFBD><EFBFBD>(&E)\.\.\..<2E><><EFBFBD><EFBFBD>(&O)\.\.\..SJIS(&S)<Tab>fenc=cp932 :browse confirm e ++enc=cp932<CR>
if !support_jisx0213
if !s:support_jisx0213
an 10.396.100.110 &File.<2E><><EFBFBD>󥳡<EFBFBD><F3A5B3A1>ɻ<EFBFBD><EFBFBD><EFBFBD>(&E)\.\.\..<2E><><EFBFBD><EFBFBD>(&O)\.\.\..EUC(&E)<Tab>fenc=euc-jp :browse confirm e ++enc=euc-jp<CR>
an 10.396.100.120 &File.<2E><><EFBFBD>󥳡<EFBFBD><F3A5B3A1>ɻ<EFBFBD><EFBFBD><EFBFBD>(&E)\.\.\..<2E><><EFBFBD><EFBFBD>(&O)\.\.\..JIS(&J)<Tab>fenc=iso-2022-jp :browse confirm e ++enc=iso-2022-jp<CR>
else
@@ -317,7 +319,7 @@ if has('iconv')
" <20><><EFBFBD>ɹ<EFBFBD>
an 10.396.110.100 &File.<2E><><EFBFBD>󥳡<EFBFBD><F3A5B3A1>ɻ<EFBFBD><EFBFBD><EFBFBD>(&E)\.\.\..<2E><><EFBFBD>ɹ<EFBFBD>(&R)\.\.\..SJIS(&S)<Tab>fenc=cp932 :e ++enc=cp932<CR>
if !support_jisx0213
if !s:support_jisx0213
an 10.396.110.110 &File.<2E><><EFBFBD>󥳡<EFBFBD><F3A5B3A1>ɻ<EFBFBD><EFBFBD><EFBFBD>(&E)\.\.\..<2E><><EFBFBD>ɹ<EFBFBD>(&R)\.\.\..EUC(&E)<Tab>fenc=euc-jp :e ++enc=euc-jp<CR>
an 10.396.110.120 &File.<2E><><EFBFBD>󥳡<EFBFBD><F3A5B3A1>ɻ<EFBFBD><EFBFBD><EFBFBD>(&E)\.\.\..<2E><><EFBFBD>ɹ<EFBFBD>(&R)\.\.\..JIS(&J)<Tab>fenc=iso-2022-jp :e ++enc=iso-2022-jp<CR>
else
@@ -329,7 +331,7 @@ if has('iconv')
" <20><>¸
an 10.396.115 &File.<2E><><EFBFBD>󥳡<EFBFBD><F3A5B3A1>ɻ<EFBFBD><EFBFBD><EFBFBD>(&E)\.\.\..-SEP1- <Nop>
an 10.396.120.100 &File.<2E><><EFBFBD>󥳡<EFBFBD><F3A5B3A1>ɻ<EFBFBD><EFBFBD><EFBFBD>(&E)\.\.\..<2E><>¸(&S)\.\.\..SJIS(&S)<Tab>fenc=cp932 :set fenc=cp932 \| w<CR>
if !support_jisx0213
if !s:support_jisx0213
an 10.396.120.110 &File.<2E><><EFBFBD>󥳡<EFBFBD><F3A5B3A1>ɻ<EFBFBD><EFBFBD><EFBFBD>(&E)\.\.\..<2E><>¸(&S)\.\.\..EUC(&E)<Tab>fenc=euc-jp :set fenc=euc-jp \| w<CR>
an 10.396.120.120 &File.<2E><><EFBFBD>󥳡<EFBFBD><F3A5B3A1>ɻ<EFBFBD><EFBFBD><EFBFBD>(&E)\.\.\..<2E><>¸(&S)\.\.\..JIS(&J)<Tab>fenc=iso-2022-jp :set fenc=iso-2022-jp \| w<CR>
else
@@ -337,6 +339,8 @@ if has('iconv')
an 10.396.120.120 &File.<2E><><EFBFBD>󥳡<EFBFBD><F3A5B3A1>ɻ<EFBFBD><EFBFBD><EFBFBD>(&E)\.\.\..<2E><>¸(&S)\.\.\..JIS(&J)<Tab>fenc=iso-2022-jp-3 :set fenc=iso-2022-jp-3 \| w<CR>
endif
an 10.396.120.130 &File.<2E><><EFBFBD>󥳡<EFBFBD><F3A5B3A1>ɻ<EFBFBD><EFBFBD><EFBFBD>(&E)\.\.\..<2E><>¸(&S)\.\.\..UTF-8(&8)<Tab>fenc=utf-8 :set fenc=utf-8 \| w<CR>
unlet s:support_jisx0213
endif
let &cpo = s:keepcpo

View File

@@ -2,7 +2,7 @@
"
" Menu Translations: Japanese (UTF-8)
" Translated By: MURAOKA Taro <koron.kaoriya@gmail.com>
" Last Change: 15-Jun-2012.
" Last Change: 24-Feb-2013.
"
" Copyright (C) 2001-12 MURAOKA Taro <koron.kaoriya@gmail.com>
" THIS FILE IS DISTRIBUTED UNDER THE VIM LICENSE.
@@ -241,6 +241,8 @@ 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)
@@ -301,12 +303,12 @@ menutrans &Convert\ to\ HTML HTMLへコンバート(&C)
" 成否はiconv次第、必ずしも指定したエンコードになるわけではないことに注意
if has('iconv')
" iconvのバージョン判定
let support_jisx0213 = (iconv("\x87\x64\x87\x6a", 'cp932', 'euc-jisx0213') ==# "\xad\xc5\xad\xcb") ? 1 : 0
"
let s:support_jisx0213 = (iconv("\x87\x64\x87\x6a", 'cp932', 'euc-jisx0213') ==# "\xad\xc5\xad\xcb") ? 1 : 0
" 読み込み
an 10.395 &File.-SEPICONV- <Nop>
an 10.396.100.100 &File.エンコード指定(&E)\.\.\..開く(&O)\.\.\..SJIS(&S)<Tab>fenc=cp932 :browse confirm e ++enc=cp932<CR>
if !support_jisx0213
if !s:support_jisx0213
an 10.396.100.110 &File.エンコード指定(&E)\.\.\..開く(&O)\.\.\..EUC(&E)<Tab>fenc=euc-jp :browse confirm e ++enc=euc-jp<CR>
an 10.396.100.120 &File.エンコード指定(&E)\.\.\..開く(&O)\.\.\..JIS(&J)<Tab>fenc=iso-2022-jp :browse confirm e ++enc=iso-2022-jp<CR>
else
@@ -317,7 +319,7 @@ if has('iconv')
" 再読込
an 10.396.110.100 &File.エンコード指定(&E)\.\.\..再読込(&R)\.\.\..SJIS(&S)<Tab>fenc=cp932 :e ++enc=cp932<CR>
if !support_jisx0213
if !s:support_jisx0213
an 10.396.110.110 &File.エンコード指定(&E)\.\.\..再読込(&R)\.\.\..EUC(&E)<Tab>fenc=euc-jp :e ++enc=euc-jp<CR>
an 10.396.110.120 &File.エンコード指定(&E)\.\.\..再読込(&R)\.\.\..JIS(&J)<Tab>fenc=iso-2022-jp :e ++enc=iso-2022-jp<CR>
else
@@ -329,7 +331,7 @@ if has('iconv')
" 保存
an 10.396.115 &File.エンコード指定(&E)\.\.\..-SEP1- <Nop>
an 10.396.120.100 &File.エンコード指定(&E)\.\.\..保存(&S)\.\.\..SJIS(&S)<Tab>fenc=cp932 :set fenc=cp932 \| w<CR>
if !support_jisx0213
if !s:support_jisx0213
an 10.396.120.110 &File.エンコード指定(&E)\.\.\..保存(&S)\.\.\..EUC(&E)<Tab>fenc=euc-jp :set fenc=euc-jp \| w<CR>
an 10.396.120.120 &File.エンコード指定(&E)\.\.\..保存(&S)\.\.\..JIS(&J)<Tab>fenc=iso-2022-jp :set fenc=iso-2022-jp \| w<CR>
else
@@ -337,6 +339,8 @@ if has('iconv')
an 10.396.120.120 &File.エンコード指定(&E)\.\.\..保存(&S)\.\.\..JIS(&J)<Tab>fenc=iso-2022-jp-3 :set fenc=iso-2022-jp-3 \| w<CR>
endif
an 10.396.120.130 &File.エンコード指定(&E)\.\.\..保存(&S)\.\.\..UTF-8(&8)<Tab>fenc=utf-8 :set fenc=utf-8 \| w<CR>
unlet s:support_jisx0213
endif
let &cpo = s:keepcpo

View File

@@ -2,7 +2,7 @@
"
" Menu Translations: Japanese (CP932)
" Translated By: MURAOKA Taro <koron.kaoriya@gmail.com>
" Last Change: 15-Jun-2012.
" Last Change: 24-Feb-2013.
"
" Copyright (C) 2001-12 MURAOKA Taro <koron.kaoriya@gmail.com>
" THIS FILE IS DISTRIBUTED UNDER THE VIM LICENSE.
@@ -241,6 +241,8 @@ menutrans &Paste
menutrans &Delete <09>(&D)
menutrans Select\ Blockwise <09><><EFBFBD>`<60>u<EFBFBD><EFBFBD><EFBFBD>b<EFBFBD>N<EFBFBD>I<EFBFBD><EFBFBD>
menutrans Select\ &Word <09>P<EFBFBD><EFBFBD><EFBFBD>I<EFBFBD><EFBFBD>(&W)
menutrans Select\ &Sentence <09><><EFBFBD>I<EFBFBD><EFBFBD>(&S)
menutrans Select\ Pa&ragraph <09>i<EFBFBD><EFBFBD><EFBFBD>I<EFBFBD><EFBFBD>(&R)
menutrans Select\ &Line <09>s<EFBFBD>I<EFBFBD><EFBFBD>(&L)
menutrans Select\ &Block <09>u<EFBFBD><EFBFBD><EFBFBD>b<EFBFBD>N<EFBFBD>I<EFBFBD><EFBFBD>(&B)
menutrans Select\ &All <09><><EFBFBD>ׂđI<EFBFBD><EFBFBD>(&A)
@@ -301,12 +303,12 @@ menutrans &Convert\ to\ HTML HTML
" <20><><EFBFBD>ۂ<EFBFBD>iconv<6E><76><EFBFBD><EFBFBD><EFBFBD>A<EFBFBD>K<EFBFBD><4B><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>w<EFBFBD><EFBFBD><E882B5><EFBFBD>G<EFBFBD><47><EFBFBD>R<EFBFBD>[<5B>h<EFBFBD>ɂȂ<C982><C882><EFBFBD>ł͂Ȃ<CD82><C882><EFBFBD><EFBFBD>Ƃɒ<C682><C992><EFBFBD>
if has('iconv')
" iconv<6E>̃o<CC83>[<5B>W<EFBFBD><57><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
let support_jisx0213 = (iconv("\x87\x64\x87\x6a", 'cp932', 'euc-jisx0213') ==# "\xad\xc5\xad\xcb") ? 1 : 0
"
let s:support_jisx0213 = (iconv("\x87\x64\x87\x6a", 'cp932', 'euc-jisx0213') ==# "\xad\xc5\xad\xcb") ? 1 : 0
" <20>ǂݍ<C782><DD8D><EFBFBD>
an 10.395 &File.-SEPICONV- <Nop>
an 10.396.100.100 &File.<2E>G<EFBFBD><EFBFBD><EFBFBD>R<EFBFBD>[<5B>h<EFBFBD>w<EFBFBD><EFBFBD>(&E)\.\.\..<2E>J<EFBFBD><EFBFBD>(&O)\.\.\..SJIS(&S)<Tab>fenc=cp932 :browse confirm e ++enc=cp932<CR>
if !support_jisx0213
if !s:support_jisx0213
an 10.396.100.110 &File.<2E>G<EFBFBD><EFBFBD><EFBFBD>R<EFBFBD>[<5B>h<EFBFBD>w<EFBFBD><EFBFBD>(&E)\.\.\..<2E>J<EFBFBD><EFBFBD>(&O)\.\.\..EUC(&E)<Tab>fenc=euc-jp :browse confirm e ++enc=euc-jp<CR>
an 10.396.100.120 &File.<2E>G<EFBFBD><EFBFBD><EFBFBD>R<EFBFBD>[<5B>h<EFBFBD>w<EFBFBD><EFBFBD>(&E)\.\.\..<2E>J<EFBFBD><EFBFBD>(&O)\.\.\..JIS(&J)<Tab>fenc=iso-2022-jp :browse confirm e ++enc=iso-2022-jp<CR>
else
@@ -317,7 +319,7 @@ if has('iconv')
" <20>ēǍ<C493>
an 10.396.110.100 &File.<2E>G<EFBFBD><EFBFBD><EFBFBD>R<EFBFBD>[<5B>h<EFBFBD>w<EFBFBD><EFBFBD>(&E)\.\.\..<2E>ēǍ<EFBFBD>(&R)\.\.\..SJIS(&S)<Tab>fenc=cp932 :e ++enc=cp932<CR>
if !support_jisx0213
if !s:support_jisx0213
an 10.396.110.110 &File.<2E>G<EFBFBD><EFBFBD><EFBFBD>R<EFBFBD>[<5B>h<EFBFBD>w<EFBFBD><EFBFBD>(&E)\.\.\..<2E>ēǍ<EFBFBD>(&R)\.\.\..EUC(&E)<Tab>fenc=euc-jp :e ++enc=euc-jp<CR>
an 10.396.110.120 &File.<2E>G<EFBFBD><EFBFBD><EFBFBD>R<EFBFBD>[<5B>h<EFBFBD>w<EFBFBD><EFBFBD>(&E)\.\.\..<2E>ēǍ<EFBFBD>(&R)\.\.\..JIS(&J)<Tab>fenc=iso-2022-jp :e ++enc=iso-2022-jp<CR>
else
@@ -329,7 +331,7 @@ if has('iconv')
" <20>ۑ<EFBFBD>
an 10.396.115 &File.<2E>G<EFBFBD><EFBFBD><EFBFBD>R<EFBFBD>[<5B>h<EFBFBD>w<EFBFBD><EFBFBD>(&E)\.\.\..-SEP1- <Nop>
an 10.396.120.100 &File.<2E>G<EFBFBD><EFBFBD><EFBFBD>R<EFBFBD>[<5B>h<EFBFBD>w<EFBFBD><EFBFBD>(&E)\.\.\..<2E>ۑ<EFBFBD>(&S)\.\.\..SJIS(&S)<Tab>fenc=cp932 :set fenc=cp932 \| w<CR>
if !support_jisx0213
if !s:support_jisx0213
an 10.396.120.110 &File.<2E>G<EFBFBD><EFBFBD><EFBFBD>R<EFBFBD>[<5B>h<EFBFBD>w<EFBFBD><EFBFBD>(&E)\.\.\..<2E>ۑ<EFBFBD>(&S)\.\.\..EUC(&E)<Tab>fenc=euc-jp :set fenc=euc-jp \| w<CR>
an 10.396.120.120 &File.<2E>G<EFBFBD><EFBFBD><EFBFBD>R<EFBFBD>[<5B>h<EFBFBD>w<EFBFBD><EFBFBD>(&E)\.\.\..<2E>ۑ<EFBFBD>(&S)\.\.\..JIS(&J)<Tab>fenc=iso-2022-jp :set fenc=iso-2022-jp \| w<CR>
else
@@ -337,6 +339,8 @@ if has('iconv')
an 10.396.120.120 &File.<2E>G<EFBFBD><EFBFBD><EFBFBD>R<EFBFBD>[<5B>h<EFBFBD>w<EFBFBD><EFBFBD>(&E)\.\.\..<2E>ۑ<EFBFBD>(&S)\.\.\..JIS(&J)<Tab>fenc=iso-2022-jp-3 :set fenc=iso-2022-jp-3 \| w<CR>
endif
an 10.396.120.130 &File.<2E>G<EFBFBD><EFBFBD><EFBFBD>R<EFBFBD>[<5B>h<EFBFBD>w<EFBFBD><EFBFBD>(&E)\.\.\..<2E>ۑ<EFBFBD>(&S)\.\.\..UTF-8(&8)<Tab>fenc=utf-8 :set fenc=utf-8 \| w<CR>
unlet s:support_jisx0213
endif
let &cpo = s:keepcpo

View File

@@ -1,6 +1,6 @@
" Vim Plugin: Edit the file with an existing Vim if possible
" Maintainer: Bram Moolenaar
" Last Change: 2008 May 29
" Last Change: 2013 Feb 24
" This is a plugin, drop it in your (Unix) ~/.vim/plugin or (Win32)
" $VIM/vimfiles/plugin directory. Or make a symbolic link, so that you
@@ -98,7 +98,7 @@ func! EditExisting(fname, command)
" Make this tab page the current one and find the window number.
exe 'tabnext ' . (i + 1)
let winnr = bufwinnr(a:fname)
break;
break
endif
endfor
endif

View File

@@ -1,7 +1,7 @@
" These commands create the option window.
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2012 Feb 22
" Last Change: 2013 Apr 05
" If there already is an option window, jump to that one.
if bufwinnr("option-window") > 0
@@ -1035,6 +1035,8 @@ 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")

View File

@@ -1,6 +1,6 @@
" Vim plugin for showing matching parens
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2011 Aug 27
" Last Change: 2013 Mar 19
" Exit quickly when:
" - this plugin was already loaded (or disabled)
@@ -14,6 +14,9 @@ let g:loaded_matchparen = 1
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.

View File

@@ -1,23 +0,0 @@
*** br_FR.aff.orig 2012-08-01 22:40:24.000000000 +0200
--- br_FR.aff 2012-08-01 22:46:03.028851510 +0200
***************
*** 13,20 ****
SET UTF-8
TRY esiaùnñrtolcdugmphbyfvkwzESIAÙNÑRTOLCDUGMPHBYFVKWZ'
# Permet à l'utilitaire en ligne de commande hunspell de fonctionner avec les mots contenant des quotes (lec'hienn, ...)
! WORDCHARS '
FLAG long
--- 13,22 ----
SET UTF-8
TRY esiaùnñrtolcdugmphbyfvkwzESIAÙNÑRTOLCDUGMPHBYFVKWZ'
+ MIDWORD '
+
# Permet à l'utilitaire en ligne de commande hunspell de fonctionner avec les mots contenant des quotes (lec'hienn, ...)
! WORDCHARS '-
FLAG long

View File

@@ -25,16 +25,16 @@ $SPELLDIR/br.utf-8.spl : $FILES
#
# Fetching the files from OpenOffice.org.
#
OODIR = http://extensions.services.openoffice.org/e-files/2207/6
:attr {fetch = $OODIR/%file%} dict-br_0.8.oxt
OODIR = http://extensions.libreoffice.org/extension-center/an-drouizig-breton-spellchecker/releases/0.11/
:attr {fetch = $OODIR/%file%} dict-br-0.11.oxt
# The files don't depend on the .zip file so that we can delete it.
# Only download the zip file if the targets don't exist.
br_FR.aff br_FR.dic: {buildcheck=}
:assertpkg unzip patch
:fetch dict-br_0.8.oxt
:sys $UNZIP dict-br_0.8.oxt
:delete dict-br_0.8.oxt
:fetch dict-br-0.11.oxt
:sys $UNZIP dict-br-0.11.oxt
:delete dict-br-0.11.oxt
:copy dictionaries/br_FR.aff br_FR.aff
:copy dictionaries/br_FR.dic br_FR.dic
# The br_FR.aff file contains a BOM, remove it.
@@ -65,12 +65,12 @@ diff:
check:
:assertpkg unzip diff
:fetch dict-br_0.8.oxt
:fetch dict-br-0.11.oxt
:mkdir tmp
:cd tmp
@try:
@import stat
:sys $UNZIP ../dict-br_0.8.oxt
:sys $UNZIP ../dict-br-0.11.oxt
:sys {force} diff ../dictionaries/br_FR.aff br_FR.aff >d
@if os.stat('d')[stat.ST_SIZE] > 0:
:copy br_FR.aff ../br_FR.new.aff
@@ -80,7 +80,7 @@ check:
@finally:
:cd ..
:delete {r}{f}{q} tmp
:delete dict-br_0.8.oxt
:delete dict-br-0.11.oxt
# vim: set sts=4 sw=4 :

View File

@@ -124,16 +124,17 @@ an 50.20.360 &Syntax.C.Config.Configure\.in :cal SetSyn("config")<CR>
an 50.20.370 &Syntax.C.Config.Generic\ Config\ file :cal SetSyn("conf")<CR>
an 50.20.380 &Syntax.C.CRM114 :cal SetSyn("crm")<CR>
an 50.20.390 &Syntax.C.Crontab :cal SetSyn("crontab")<CR>
an 50.20.400 &Syntax.C.CSP :cal SetSyn("csp")<CR>
an 50.20.410 &Syntax.C.Ctrl-H :cal SetSyn("ctrlh")<CR>
an 50.20.420 &Syntax.C.Cucumber :cal SetSyn("cucumber")<CR>
an 50.20.430 &Syntax.C.CUDA :cal SetSyn("cuda")<CR>
an 50.20.440 &Syntax.C.CUPL.CUPL :cal SetSyn("cupl")<CR>
an 50.20.450 &Syntax.C.CUPL.Simulation :cal SetSyn("cuplsim")<CR>
an 50.20.460 &Syntax.C.CVS.commit\ file :cal SetSyn("cvs")<CR>
an 50.20.470 &Syntax.C.CVS.cvsrc :cal SetSyn("cvsrc")<CR>
an 50.20.480 &Syntax.C.Cyn++ :cal SetSyn("cynpp")<CR>
an 50.20.490 &Syntax.C.Cynlib :cal SetSyn("cynlib")<CR>
an 50.20.400 &Syntax.C.CSDL :cal SetSyn("csdl")<CR>
an 50.20.410 &Syntax.C.CSP :cal SetSyn("csp")<CR>
an 50.20.420 &Syntax.C.Ctrl-H :cal SetSyn("ctrlh")<CR>
an 50.20.430 &Syntax.C.Cucumber :cal SetSyn("cucumber")<CR>
an 50.20.440 &Syntax.C.CUDA :cal SetSyn("cuda")<CR>
an 50.20.450 &Syntax.C.CUPL.CUPL :cal SetSyn("cupl")<CR>
an 50.20.460 &Syntax.C.CUPL.Simulation :cal SetSyn("cuplsim")<CR>
an 50.20.470 &Syntax.C.CVS.commit\ file :cal SetSyn("cvs")<CR>
an 50.20.480 &Syntax.C.CVS.cvsrc :cal SetSyn("cvsrc")<CR>
an 50.20.490 &Syntax.C.Cyn++ :cal SetSyn("cynpp")<CR>
an 50.20.500 &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>

183
runtime/syntax/asciidoc.vim Normal file
View File

@@ -0,0 +1,183 @@
" 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
" 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 def link asciidocQuotedEmphasized Type
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:

View File

@@ -1,7 +1,7 @@
" Vim syntax file
" Language: C
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2012 Dec 14
" Last Change: 2013 Mar 13
" Quit when a (custom) syntax file was already loaded
if exists("b:current_syntax")
@@ -36,7 +36,13 @@ endif
if exists("c_no_cformat")
syn region cString start=+L\="+ skip=+\\\\\|\\"+ end=+"+ contains=cSpecial,@Spell extend
" cCppString: same as cString, but ends at end of line
syn region cCppString start=+L\="+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=cSpecial,@Spell
if !exists("cpp_no_cpp11") " ISO C++11
syn region cCppString start=+\(L\|u\|u8\|U\|R\|LR\|u8R\|uR\|UR\)\="+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=cSpecial,cFormat,@Spell
else
syn region cCppString start=+L\="+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=cSpecial,cFormat,@Spell
endif
syn region cCppOut2 contained start="0" end="^\s*\(%:\|#\)\s*\(endif\>\|else\>\|elif\>\)" contains=cSpaceError,cCppSkip
syn region cCppSkip contained start="^\s*\(%:\|#\)\s*\(if\>\|ifdef\>\|ifndef\>\)" skip="\\$" end="^\s*\(%:\|#\)\s*endif\>" contains=cSpaceError,cCppSkip
else
if !exists("c_no_c99") " ISO C99
syn match cFormat display "%\(\d\+\$\)\=[-+' #0*]*\(\d*\|\*\|\*\d\+\$\)\(\.\(\d*\|\*\|\*\d\+\$\)\)\=\([hlLjzt]\|ll\|hh\)\=\([aAbdiuoxXDOUfFeEgGcCsSpn]\|\[\^\=.[^]]*\]\)" contained
@@ -104,30 +110,57 @@ endif
" 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")
syn region cParen transparent start='(' end=')' end='}'me=s-1 contains=ALLBUT,cBlock,@cParenGroup,cCppParen,cCppString,@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 "^[{}]\|^<%\|^%>"
if &filetype ==# 'cpp' && !exists("cpp_no_cpp11")
syn region cParen transparent start='(' end=')' contains=ALLBUT,@cParenGroup,cCppParen,cCppString,@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,cCppString,@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")
syn region cParen transparent start='(' end=')' end='}'me=s-1 contains=ALLBUT,cBlock,@cParenGroup,cCppParen,cCppString,@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 "[{}]\|<%\|%>"
if &filetype ==# 'cpp' && !exists("cpp_no_cpp11")
syn region cParen transparent start='(' end=')' contains=ALLBUT,@cParenGroup,cCppParen,cCppString,@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,cCppString,@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
syn region cParen transparent start='(' end=')' end='}'me=s-1 contains=ALLBUT,cBlock,@cParenGroup,cCppParen,cErrInBracket,cCppBracket,cCppString,@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,cCppString,@Spell
if &filetype ==# 'cpp' && !exists("cpp_no_cpp11")
syn region cParen transparent start='(' end=')' contains=ALLBUT,@cParenGroup,cCppParen,cErrInBracket,cCppBracket,cCppString,@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,cCppString,@Spell
else
syn region cParen transparent start='(' end=')' end='}'me=s-1 contains=ALLBUT,cBlock,@cParenGroup,cCppParen,cErrInBracket,cCppBracket,cCppString,@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,cCppString,@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
syntax region cBadBlock keepend start="{" end="}" contained containedin=cParen,cBracket,cBadBlock transparent fold
if &filetype ==# '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
@@ -164,16 +197,16 @@ if exists("c_comment_strings")
" 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 :-(
syntax match cCommentSkip contained "^\s*\*\($\|\s\+\)"
syntax region cCommentString contained start=+L\=\\\@<!"+ skip=+\\\\\|\\"+ end=+"+ end=+\*/+me=s-1 contains=cSpecial,cCommentSkip
syntax region cComment2String contained start=+L\=\\\@<!"+ skip=+\\\\\|\\"+ end=+"+ end="$" contains=cSpecial
syntax region cCommentL start="//" skip="\\$" end="$" keepend contains=@cCommentGroup,cComment2String,cCharacter,cNumbersCom,cSpaceError,@Spell
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.
syntax region cComment matchgroup=cCommentStart start="/\*" end="\*/" contains=@cCommentGroup,cCommentStartError,cCommentString,cCharacter,cNumbersCom,cSpaceError,@Spell extend
syn region cComment matchgroup=cCommentStart start="/\*" end="\*/" contains=@cCommentGroup,cCommentStartError,cCommentString,cCharacter,cNumbersCom,cSpaceError,@Spell extend
else
syntax region cComment matchgroup=cCommentStart start="/\*" end="\*/" contains=@cCommentGroup,cCommentStartError,cCommentString,cCharacter,cNumbersCom,cSpaceError,@Spell fold extend
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
@@ -184,8 +217,8 @@ else
endif
endif
" keep a // comment separately, it terminates a preproc. conditional
syntax match cCommentError display "\*/"
syntax match cCommentStartError display "/\*"me=e-1 contained
syn match cCommentError display "\*/"
syn match cCommentStartError display "/\*"me=e-1 contained
syn keyword cOperator sizeof
if exists("c_gnu")
@@ -337,7 +370,9 @@ syn region cPreProc start="^\s*\(%:\|#\)\s*\(pragma\>\|line\>\|warning\>\|warn\>
" 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
syn region cMulti transparent start='?' skip='::' end=':' contains=ALLBUT,@cMultiGroup,@Spell
if &filetype ==# 'c' || exists("cpp_no_cpp11")
syn region cMulti transparent start='?' skip='::' end=':' contains=ALLBUT,@cMultiGroup,@Spell
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*\I\i*\s*:$" contains=@cLabelGroup

View File

@@ -1,12 +1,14 @@
" Vim syntax file
" Language: CL
" (pronounced alphabetically, and NOT known as Clever)
" (CL was created by Multibase, http://www.mbase.com.au)
" 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
" *.eni
" Maintainer: Philip Uren <philuSPAX@ieee.org> Remove SPAX spam block
" Version: 5
" Last Change: Aug 16 2012
" Version: 6
" Last Change: Mar 06 2013
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
@@ -17,9 +19,9 @@ elseif exists("b:current_syntax")
endif
if version >= 600
setlocal iskeyword=@,48-57,_,-,
setlocal iskeyword=@,48-57,_,-
else
set iskeyword=@,48-57,_,-,
set iskeyword=@,48-57,_,-
endif
syn case ignore

134
runtime/syntax/clojure.vim Normal file

File diff suppressed because one or more lines are too long

View File

@@ -1,7 +1,8 @@
" Vim syntax file
" Language: C++
" Maintainer: Ken Shan <ccshan@post.harvard.edu>
" Last Change: 2002 Jul 15
" Current Maintainer: vim-jp (https://github.com/vim-jp/cpp-vim)
" Previous Maintainer: Ken Shan <ccshan@post.harvard.edu>
" Last Change: 2012 Jun 14
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
@@ -19,7 +20,7 @@ else
unlet b:current_syntax
endif
" C++ extentions
" C++ extensions
syn keyword cppStatement new delete this friend using
syn keyword cppAccess public protected private
syn keyword cppType inline virtual explicit export bool wchar_t
@@ -30,9 +31,16 @@ 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 cppNumber NPOS
syn keyword cppBoolean true false
" C++ 11 extensions
if !exists("cpp_no_cpp11")
syn keyword cppType override final
syn keyword cppExceptions noexcept
syn keyword cppStorageClass constexpr decltype
syn keyword cppConstant nullptr
endif
" The minimum and maximum operators in GNU C++
syn match cppMinMax "[<>]?"
@@ -52,8 +60,8 @@ if version >= 508 || !exists("did_cpp_syntax_inits")
HiLink cppType Type
HiLink cppStorageClass StorageClass
HiLink cppStructure Structure
HiLink cppNumber Number
HiLink cppBoolean Boolean
HiLink cppConstant Constant
delcommand HiLink
endif

536
runtime/syntax/csdl.vim Normal file
View File

@@ -0,0 +1,536 @@
" 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"

View File

@@ -3,7 +3,7 @@
" Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
" Former Maintainers: Gerfried Fuchs <alfie@ist.org>
" Wichert Akkerman <wakkerma@debian.org>
" Last Change: 2012 April 29
" Last Change: 2013 Jan 03
" URL: http://anonscm.debian.org/hg/pkg-vim/vim/raw-file/unstable/runtime/syntax/debchangelog.vim
" Standard syntax initialization
@@ -19,7 +19,7 @@ syn case ignore
" Define some common expressions we can use later on
syn match debchangelogName contained "^[[:alnum:]][[:alnum:].+-]\+ "
syn match debchangelogUrgency contained "; urgency=\(low\|medium\|high\|critical\|emergency\)\( \S.*\)\="
syn match debchangelogTarget contained "\v %(frozen|unstable|%(testing|%(old)=stable)%(-proposed-updates|-security)=|experimental|%(squeeze)-%(backports%(-sloppy)=|volatile)|%(hardy|lucid|natty|oneiric|precise|quantal)%(-%(security|proposed|updates|backports|commercial|partner))=)+"
syn match debchangelogTarget contained "\v %(frozen|unstable|%(testing|%(old)=stable)%(-proposed-updates|-security)=|experimental|%(squeeze)-%(backports%(-sloppy)=|volatile)|%(hardy|lucid|oneiric|precise|quantal|raring)%(-%(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\+\)*"

View File

@@ -3,7 +3,7 @@
" Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
" Former Maintainers: Gerfried Fuchs <alfie@ist.org>
" Wichert Akkerman <wakkerma@debian.org>
" Last Change: 2012 Jun 06
" Last Change: 2012 Dec 31
" URL: http://anonscm.debian.org/hg/pkg-vim/vim/raw-file/unstable/runtime/syntax/debcontrol.vim
" Standard syntax initialization
@@ -50,7 +50,9 @@ syn match debcontrolComment "^#.*$" contains=@Spell
syn case ignore
" List of all legal keys
syn match debcontrolKey contained "^\%(Source\|Package\|Section\|Priority\|\%(XSBC-Original-\)\=Maintainer\|Uploaders\|Build-\%(Conflicts\|Depends\)\%(-Indep\)\=\|Standards-Version\|\%(Pre-\)\=Depends\|Recommends\|Suggests\|Provides\|Replaces\|Conflicts\|Enhances\|Breaks\|Essential\|Architecture\|Multi-Arch\|Description\|Bugs\|Origin\|X[SB]-Python-Version\|Homepage\|\(XS-\)\=Vcs-\(Browser\|Arch\|Bzr\|Cvs\|Darcs\|Git\|Hg\|Mtn\|Svn\)\|\%(XC-\)\=Package-Type\|\%(XS-\)\=DM-Upload-Allowed\): *"
syn match debcontrolKey contained "^\%(Source\|Package\|Section\|Priority\|\%(XSBC-Original-\)\=Maintainer\|Uploaders\|Build-\%(Conflicts\|Depends\)\%(-Indep\)\=\|Standards-Version\|\%(Pre-\)\=Depends\|Recommends\|Suggests\|Provides\|Replaces\|Conflicts\|Enhances\|Breaks\|Essential\|Architecture\|Multi-Arch\|Description\|Bugs\|Origin\|X[SB]-Python-Version\|Homepage\|\(XS-\)\=Vcs-\(Browser\|Arch\|Bzr\|Cvs\|Darcs\|Git\|Hg\|Mtn\|Svn\)\|\%(XC-\)\=Package-Type\): *"
syn match debcontrolDeprecatedKey contained "^\%(\%(XS-\)\=DM-Upload-Allowed\): *"
" Fields for which we do strict syntax checking
syn region debcontrolStrictField start="^Architecture" end="$" contains=debcontrolKey,debcontrolArchitecture,debcontrolSpace oneline
@@ -64,7 +66,7 @@ syn region debcontrolStrictField start="^\%(XS-\)\=Vcs-\%(Browser\|Arch\|Bzr\|Da
syn region debcontrolStrictField start="^\%(XS-\)\=Vcs-Svn" end="$" contains=debcontrolKey,debcontrolVcsSvn,debcontrolHTTPUrl oneline keepend
syn region debcontrolStrictField start="^\%(XS-\)\=Vcs-Cvs" end="$" contains=debcontrolKey,debcontrolVcsCvs oneline keepend
syn region debcontrolStrictField start="^\%(XS-\)\=Vcs-Git" end="$" contains=debcontrolKey,debcontrolVcsGit oneline keepend
syn region debcontrolStrictField start="^\%(XS-\)\=DM-Upload-Allowed" end="$" contains=debcontrolKey,debcontrolDmUpload oneline
syn region debcontrolStrictField start="^\%(XS-\)\=DM-Upload-Allowed" end="$" contains=debcontrolDeprecatedKey,debcontrolDmUpload oneline
" Catch-all for the other legal fields
syn region debcontrolField start="^\%(\%(XSBC-Original-\)\=Maintainer\|Standards-Version\|Essential\|Bugs\|Origin\|X[SB]-Python-Version\|\%(XS-\)\=Vcs-Mtn\):" end="$" contains=debcontrolKey,debcontrolVariable,debcontrolEmail oneline
@@ -83,6 +85,7 @@ if version >= 508 || !exists("did_debcontrol_syn_inits")
HiLink debcontrolKey Keyword
HiLink debcontrolField Normal
HiLink debcontrolStrictField Error
HiLink debcontrolDeprecatedKey Error
HiLink debcontrolMultiField Normal
HiLink debcontrolArchitecture Normal
HiLink debcontrolMultiArch Normal

View File

@@ -2,7 +2,7 @@
" Language: Debian sources.list
" Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
" Former Maintainer: Matthijs Mohlmann <matthijs@cacholong.nl>
" Last Change: 2012 April 29
" Last Change: 2013 Jan 03
" URL: http://anonscm.debian.org/hg/pkg-vim/vim/raw-file/unstable/runtime/syntax/debsources.vim
" Standard syntax initialization
@@ -23,7 +23,7 @@ syn match debsourcesComment /#.*/ contains=@Spell
" Match uri's
syn match debsourcesUri +\(http://\|ftp://\|[rs]sh://\|debtorrent://\|\(cdrom\|copy\|file\):\)[^' <>"]\++
syn match debsourcesDistrKeyword +\([[:alnum:]_./]*\)\(squeeze\|wheezy\|\(old\)\=stable\|testing\|unstable\|sid\|rc-buggy\|experimental\|hardy\|lucid\|natty\|oneiric\|precise\|quantal\)\([-[:alnum:]_./]*\)+
syn match debsourcesDistrKeyword +\([[:alnum:]_./]*\)\(squeeze\|wheezy\|\(old\)\=stable\|testing\|unstable\|sid\|rc-buggy\|experimental\|hardy\|lucid\|oneiric\|precise\|quantal\|raring\)\([-[:alnum:]_./]*\)+
" Associate our matches and regions with pretty colours
hi def link debsourcesLine Error

View File

@@ -1,7 +1,7 @@
" Vim syntax file
" Language: dts/dtsi (device tree files)
" Maintainer: Daniel Mack <vim@zonque.org>
" Last Change: 2012 Oct 04
" Last Change: 2013 Apr 05
if exists("b:current_syntax")
finish
@@ -13,6 +13,7 @@ syntax region dtsBinaryProperty start="\[" end="\]"
syntax match dtsStringProperty "\".*\""
syntax match dtsKeyword "/.*/"
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="\*/"
@@ -21,6 +22,7 @@ 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

View File

@@ -2,9 +2,9 @@
" Language: Groovy
" Original Author: Alessio Pace <billy.corgan@tiscali.it>
" Maintainer: Tobias Rapp <yahuxo@gmx.de>
" Version: 0.1.11
" Version: 0.1.12
" URL: http://www.vim.org/scripts/script.php?script_id=945
" Last Change: 2012 Jan 08
" Last Change: 2013 Mar 14
" THE ORIGINAL AUTHOR'S NOTES:
"
@@ -250,13 +250,17 @@ 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 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
" regex string
syn region groovyString start='/[^/]' end='/' contains=groovySpecialChar,groovyRegexChar,groovyELExpr
" syn region groovyELExpr start=+${+ end=+}+ keepend contained
syn match groovyELExpr /\${.\{-}}/ contained
syn match groovyELExpr /\${.\{-}}/ contained
syn match groovyELExpr /\$[a-zA-Z_][a-zA-Z0-9_.]*/ contained
GroovyHiLink groovyELExpr Identifier
" TODO: better matching. I am waiting to understand how it really works in groovy
@@ -415,6 +419,7 @@ if version >= 508 || !exists("did_groovy_syn_inits")
GroovyHiLink groovySpecialError Error
GroovyHiLink groovySpecialCharError Error
GroovyHiLink groovyString String
GroovyHiLink groovyRegexChar String
GroovyHiLink groovyCharacter Character
GroovyHiLink groovySpecialChar SpecialChar
GroovyHiLink groovyNumber Number

View File

@@ -1,7 +1,7 @@
" Vim syntax file
" Language: Vim help file
" Maintainer: Bram Moolenaar (Bram@vim.org)
" Last Change: 2012 Jul 16
" Last Change: 2013 Apr 07
" Quit when a (custom) syntax file was already loaded
if exists("b:current_syntax")
@@ -25,10 +25,12 @@ else
syn match helpHyperTextEntry "\*[#-)!+-~]\+\*$" contains=helpStar
endif
if has("conceal")
syn match helpBar contained "[|`]" conceal
syn match helpBar contained "|" conceal
syn match helpBacktick contained "`" conceal
syn match helpStar contained "\*" conceal
else
syn match helpBar contained "[|`]"
syn match helpBar contained "|"
syn match helpBacktick contained "`"
syn match helpStar contained "\*"
endif
syn match helpNormal "|.*====*|"
@@ -38,7 +40,7 @@ syn match helpVim "Vim version [0-9.a-z]\+"
syn match helpVim "VIM REFERENCE.*"
syn match helpOption "'[a-z]\{2,\}'"
syn match helpOption "'t_..'"
syn match helpCommand "`[^` ]*`"hs=s+1,he=e-1 contains=helpBar
syn match helpCommand "`[^` ]\+`"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")
@@ -150,6 +152,7 @@ syn sync minlines=40
hi def link helpIgnore Ignore
hi def link helpHyperTextJump Subtitle
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

View File

@@ -0,0 +1,37 @@
" 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"

View File

@@ -1,13 +1,13 @@
" ninja build file syntax.
" Language: ninja build file as described at
" http://martine.github.com/ninja/manual.html
" Version: 1.2
" Last Change: 2012/06/01
" Version: 1.3
" Last Change: 2013 Apr 12
" Maintainer: Nicolas Weber <nicolasweber@gmx.de>
" ninja lexer and parser are at
" https://github.com/martine/ninja/blob/master/src/lexer.in.cc
" https://github.com/martine/ninja/blob/master/src/parsers.cc
" https://github.com/martine/ninja/blob/master/src/manifest_parser.cc
if exists("b:current_syntax")
finish
@@ -19,9 +19,10 @@ syn match ninjaComment /#.*/ contains=@Spell
" Toplevel statements are the ones listed here and
" toplevel variable assignments (ident '=' value).
" lexer.in.cc, ReadToken() and parsers.cc, Parse()
" 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\>"
@@ -30,9 +31,12 @@ syn match ninjaKeyword "^subninja\>"
" on the first line without indent. 'rule' allows only a
" limited set of magic variables, 'build' allows general
" let assignments.
" parsers.cc, ParseRule()
" manifest_parser.cc, ParseRule()
syn region ninjaRule start="^rule" end="^\ze\S" contains=ALL transparent
syn keyword ninjaRuleCommand contained command depfile description generator restat
syn keyword ninjaRuleCommand contained command deps depfile description generator pool restat rspfile rspfile_content
syn region ninjaPool start="^pool" end="^\ze\S" contains=ALL transparent
syn keyword ninjaPoolCommand contained depth
" Strings are parsed as follows:
" lexer.in.cc, ReadEvalString()
@@ -58,6 +62,7 @@ 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 ninjaWrapLineOperator ninjaOperator
hi def link ninjaOperator Operator
hi def link ninjaSimpleVar ninjaVar

View File

@@ -3,7 +3,10 @@
" Maintainer: Kazunobu Kuriyama <kazunobu.kuriyama@nifty.com>
" Ex-maintainer: Anthony Hodsdon <ahodsdon@fastmail.fm>
" First Author: Valentino Kyriakides <1kyriaki@informatik.uni-hamburg.de>
" Last Change: 2012 Apr 30
" Last Change: 2013 Feb 20
"
" 2013 Feb 19 Revised based on a patch sent to the maintainer by
" Christos Kontas <xakon@yahoo.com> on 2012 Dec 12.
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
@@ -48,6 +51,11 @@ syn match objcDirective "@class\|@end\|@defs"
syn match objcDirective "@encode\|@protocol\|@selector"
syn match objcDirective "@try\|@catch\|@finally\|@throw\|@synchronized"
" New directives introduced with Objc-2.0
syn match objcDirective "@property\|@synthesize\|@dynamic"
syn match objcDirective "@optional\|@required"
syn match objcDirective "@autoreleasepool"
" Match the ObjC method types
"
" NOTE: here I match only the indicators, this looks

View File

@@ -1,7 +1,8 @@
" pf syntax file
" Language: OpenBSD packet filter configuration (pf.conf)
" Maintainer: Camiel Dobbelaar <cd@sentia.nl>
" Last Change: 2003 May 27
" Language: OpenBSD packet filter configuration (pf.conf)
" Original Author: Camiel Dobbelaar <cd@sentia.nl>
" Maintainer: Lauri Tirkkonen <lotheac@iki.fi>
" Last Change: 2013 Apr 02
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
@@ -14,7 +15,7 @@ endif
setlocal foldmethod=syntax
syn sync fromstart
syn cluster pfNotLS contains=pfComment,pfTodo,pfVarAssign
syn cluster pfNotLS contains=pfTodo,pfVarAssign
syn keyword pfCmd altq anchor antispoof binat nat pass
syn keyword pfCmd queue rdr scrub table set
syn keyword pfService auth bgp domain finger ftp http https ident

View File

@@ -12,9 +12,9 @@ elseif exists("b:current_syntax")
endif
if version >= 600
setlocal iskeyword=@,48-57,_,128-167,224-235,-,
setlocal iskeyword=@,48-57,_,128-167,224-235,-
else
set iskeyword=@,48-57,_,128-167,224-235,-,
set iskeyword=@,48-57,_,128-167,224-235,-
endif
syn keyword pineConfig addrbook-sort-rule

View File

@@ -1,7 +1,7 @@
" Vim syntax file
" Language: Python
" Maintainer: Neil Schemenauer <nas@python.ca>
" Last Change: 2010 Sep 21
" Last Change: 2013 Feb 26
" Credits: Zvezdan Petkovic <zpetkovic@acm.org>
" Neil Schemenauer <nas@python.ca>
" Dmitry Vasiliev
@@ -236,7 +236,7 @@ endif
" 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_higlight")
if !exists("python_no_doctest_code_highlight")
syn region pythonDoctest
\ start="^\s*>>>\s" end="^\s*$"
\ contained contains=ALLBUT,pythonDoctest,@Spell

972
runtime/syntax/redif.vim Normal file
View File

@@ -0,0 +1,972 @@
" Vim syntax file
" Language: ReDIF
" Maintainer: Axel Castellane <axel.castellane@polytechnique.edu>
" Last Change: 2013 April 08
" 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.
" To be compatible with Vim 5.8 use:
if version < 600
syntax clear
elseif 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 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\)\=\)\>/ nextgroup=redifWrongLineEnding contained display
highlight def link redifGoodMonth redifSpecial
" Integers: Number, Volume, Chapter
syntax match redifArgumentNumber /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectInteger contained display
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*/ nextgroup=redifWrongLineEnding 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/ nextgroup=redifWrongLineEnding 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]/ nextgroup=redifWrongLineEnding 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*\)\=/ 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"

25
runtime/syntax/rng.vim Normal file
View File

@@ -0,0 +1,25 @@
" 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'

View File

@@ -2,8 +2,8 @@
" Language: shell (sh) Korn shell (ksh) bash (sh)
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
" Previous Maintainer: Lennart Schultz <Lennart.Schultz@ecmwf.int>
" Last Change: Nov 14, 2012
" Version: 128
" Last Change: Mar 04, 2013
" Version: 129
" URL: http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax
" For options and settings, please use: :help ft-sh-syntax
" This file includes many ideas from ?ric Brunet (eric.brunet@ens.fr)
@@ -108,7 +108,7 @@ 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,shRedir,shSetList,shSource,shStatement,shVariable,shCtrlSeq
"syn cluster shColonList contains=@shCaseList
syn cluster shCommandSubList contains=shArithmetic,shDeref,shDerefSimple,shEscape,shNumber,shOperator,shPosnParm,shExSingleQuote,shSingleQuote,shExDoubleQuote,shDoubleQuote,shStatement,shVariable,shSubSh,shAlias,shTest,shCtrlSeq,shSpecial,shCmdParenRegion
syn cluster shCommandSubList contains=shArithmetic,shDeref,shDerefSimple,shEcho,shEscape,shNumber,shOption,shPosnParm,shExSingleQuote,shSingleQuote,shExDoubleQuote,shDoubleQuote,shStatement,shVariable,shSubSh,shAlias,shTest,shCtrlSeq,shSpecial,shCmdParenRegion
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,shDerefPPS

View File

@@ -20,6 +20,7 @@ syn keyword sliceQualifier const extends idempotent implements local nonmutatin
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

View File

@@ -1,9 +1,9 @@
" Vim syntax file
" Language: TeX
" Maintainer: Charles E. Campbell <NdrchipO@ScampbellPfamily.AbizM>
" Last Change: Nov 14, 2012
" Version: 75
" URL: http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax
" Last Change: Mar 11, 2013
" Version: 77
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_TEX
"
" Notes: {{{1
"
@@ -52,8 +52,14 @@ if version >= 508 || !exists("did_tex_syntax_inits")
command -nargs=+ HiLink hi def link <args>
endif
endif
if exists("g:tex_no_error") && g:tex_no_error
let s:tex_no_error= 1
endif
if exists("g:tex_fast") && g:tex_fast
let s:tex_no_error= 1
endif
if exists("g:tex_tex") && !exists("g:tex_no_error")
let g:tex_no_error= 1
let s:tex_no_error= 1
endif
" let user determine which classes of concealment will be supported
@@ -110,7 +116,7 @@ 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
if !exists("g:tex_no_error")
if !exists("s:tex_no_error")
syn cluster texCmdGroup add=texMathError
endif
syn cluster texEnvGroup contains=texMatcher,texMathDelim,texSpecialChar,texStatement
@@ -132,7 +138,7 @@ if !exists("tex_no_math")
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 !exists("g:tex_no_error")
if !exists("s:tex_no_error")
syn cluster texMathMatchGroup add=texMathError
syn cluster texMathZoneGroup add=texMathError
endif
@@ -153,26 +159,30 @@ if !exists("tex_no_math")
endif
" Try to flag {} and () mismatches: {{{1
if !exists("g:tex_no_error")
syn region texMatcher matchgroup=Delimiter start="{" skip="\\\\\|\\[{}]" end="}" contains=@texMatchGroup,texError
syn region texMatcher matchgroup=Delimiter start="\[" end="]" contains=@texMatchGroup,texError,@NoSpell
else
syn region texMatcher matchgroup=Delimiter start="{" skip="\\\\\|\\[{}]" end="}" contains=@texMatchGroup
syn region texMatcher matchgroup=Delimiter start="\[" end="]" contains=@texMatchGroup
if !exists("g:tex_fast") || g:tex_fast =~ 'm'
if !exists("s:tex_no_error")
syn region texMatcher matchgroup=Delimiter start="{" skip="\\\\\|\\[{}]" end="}" contains=@texMatchGroup,texError
syn region texMatcher matchgroup=Delimiter start="\[" end="]" contains=@texMatchGroup,texError,@NoSpell
else
syn region texMatcher matchgroup=Delimiter start="{" skip="\\\\\|\\[{}]" end="}" contains=@texMatchGroup
syn region texMatcher matchgroup=Delimiter start="\[" end="]" contains=@texMatchGroup
endif
if !exists("g:tex_nospell") || !g:tex_nospell
syn region texParen start="(" end=")" contains=@texMatchGroup,@Spell
else
syn region texParen start="(" end=")" contains=@texMatchGroup
endif
endif
if !exists("g:tex_nospell") || !g:tex_nospell
syn region texParen start="(" end=")" contains=@texMatchGroup,@Spell
else
syn region texParen start="(" end=")" contains=@texMatchGroup
endif
if !exists("g:tex_no_error")
if !exists("s:tex_no_error")
syn match texError "[}\])]"
endif
if !exists("tex_no_math")
if !exists("g:tex_no_error")
syn match texMathError "}" contained
endif
syn region texMathMatcher matchgroup=Delimiter start="{" skip="\\\\\|\\}" end="}" end="%stopzone\>" contained contains=@texMathMatchGroup
if !exists("g:tex_fast") || g:tex_fast =~ 'M'
if !exists("tex_no_math")
if !exists("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
@@ -182,7 +192,7 @@ if exists("g:tex_tex") || b:tex_stylish
syn match texStatement "\\[a-zA-Z@]\+"
else
syn match texStatement "\\\a\+"
if !exists("g:tex_no_error")
if !exists("s:tex_no_error")
syn match texError "\\\a*@[a-zA-Z@]*"
endif
endif
@@ -210,12 +220,16 @@ syn match texLigature "\\\([ijolL]\|ae\|oe\|ss\|AA\|AE\|OE\)$"
" \begin{}/\end{} section markers: {{{1
syn match texBeginEnd "\\begin\>\|\\end\>" nextgroup=texBeginEndName
syn region texBeginEndName matchgroup=Delimiter start="{" end="}" contained nextgroup=texBeginEndModifier contains=texComment
syn region texBeginEndModifier matchgroup=Delimiter start="\[" end="]" contained contains=texComment,@NoSpell
if !exists("g:tex_fast") || g: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,@NoSpell
endif
" \documentclass, \documentstyle, \usepackage: {{{1
syn match texDocType "\\documentclass\>\|\\documentstyle\>\|\\usepackage\>" nextgroup=texBeginEndName,texDocTypeArgs
syn region texDocTypeArgs matchgroup=Delimiter start="\[" end="]" contained nextgroup=texBeginEndName contains=texComment,@NoSpell
if !exists("g:tex_fast") || g:tex_fast =~ 'm'
syn region texDocTypeArgs matchgroup=Delimiter start="\[" end="]" contained nextgroup=texBeginEndName contains=texComment,@NoSpell
endif
" Preamble syntax-based folding support: {{{1
if g:tex_fold_enabled && has("folding")
@@ -227,7 +241,9 @@ syn match texInput "\\input\s\+[a-zA-Z/.0-9_^]\+"hs=s+7 contains=texStatemen
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
syn region texInputFileOpt matchgroup=Delimiter start="\[" end="\]" contained contains=texComment
if !exists("g:tex_fast") || g:tex_fast =~ 'm'
syn region texInputFileOpt matchgroup=Delimiter start="\[" end="\]" contained contains=texComment
endif
" Type Styles (LaTeX 2.09): {{{1
syn match texTypeStyle "\\rm\>"
@@ -293,62 +309,66 @@ syn match texSpaceCode "\\\(math\|cat\|del\|lc\|sf\|uc\)code`"me=e-1 nextgroup=
syn match texSpaceCodeChar "`\\\=.\(\^.\)\==\(\d\|\"\x\{1,6}\|`.\)" contained
" Sections, subsections, etc: {{{1
if !exists("g:tex_nospell") || !g:tex_nospell
if g:tex_fold_enabled && has("folding")
syn region texDocZone matchgroup=texSection start='\\begin\s*{\s*document\s*}' end='\\end\s*{\s*document\s*}' fold contains=@texFoldGroup,@texDocGroup,@Spell
syn region texPartZone matchgroup=texSection start='\\part\>' end='\ze\s*\\\%(part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@texPartGroup,@Spell
syn region texChapterZone matchgroup=texSection start='\\chapter\>' end='\ze\s*\\\%(chapter\>\|part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@texChapterGroup,@Spell
syn region texSectionZone matchgroup=texSection start='\\section\>' end='\ze\s*\\\%(section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@texSectionGroup,@Spell
syn region texSubSectionZone matchgroup=texSection start='\\subsection\>' end='\ze\s*\\\%(\%(sub\)\=section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@texSubSectionGroup,@Spell
syn region texSubSubSectionZone matchgroup=texSection start='\\subsubsection\>' end='\ze\s*\\\%(\%(sub\)\{,2}section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@texSubSubSectionGroup,@Spell
syn region texParaZone matchgroup=texSection start='\\paragraph\>' end='\ze\s*\\\%(paragraph\>\|\%(sub\)*section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@texParaGroup,@Spell
syn region texSubParaZone matchgroup=texSection start='\\subparagraph\>' end='\ze\s*\\\%(\%(sub\)\=paragraph\>\|\%(sub\)*section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@Spell
syn region texTitle matchgroup=texSection start='\\\%(author\|title\)\>\s*{' end='}' fold contains=@texFoldGroup,@Spell
syn region texAbstract matchgroup=texSection start='\\begin\s*{\s*abstract\s*}' end='\\end\s*{\s*abstract\s*}' fold contains=@texFoldGroup,@Spell
else
syn region texDocZone matchgroup=texSection start='\\begin\s*{\s*document\s*}' end='\\end\s*{\s*document\s*}' contains=@texFoldGroup,@texDocGroup,@Spell
syn region texPartZone matchgroup=texSection start='\\part\>' end='\ze\s*\\\%(part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texPartGroup,@Spell
syn region texChapterZone matchgroup=texSection start='\\chapter\>' end='\ze\s*\\\%(chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texChapterGroup,@Spell
syn region texSectionZone matchgroup=texSection start='\\section\>' end='\ze\s*\\\%(section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texSectionGroup,@Spell
syn region texSubSectionZone matchgroup=texSection start='\\subsection\>' end='\ze\s*\\\%(\%(sub\)\=section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texSubSectionGroup,@Spell
syn region texSubSubSectionZone matchgroup=texSection start='\\subsubsection\>' end='\ze\s*\\\%(\%(sub\)\{,2}section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texSubSubSectionGroup,@Spell
syn region texParaZone matchgroup=texSection start='\\paragraph\>' end='\ze\s*\\\%(paragraph\>\|\%(sub\)*section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texParaGroup,@Spell
syn region texSubParaZone matchgroup=texSection start='\\subparagraph\>' end='\ze\s*\\\%(\%(sub\)\=paragraph\>\|\%(sub\)*section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@Spell
syn region texTitle matchgroup=texSection start='\\\%(author\|title\)\>\s*{' end='}' contains=@texFoldGroup,@Spell
syn region texAbstract matchgroup=texSection start='\\begin\s*{\s*abstract\s*}' end='\\end\s*{\s*abstract\s*}' contains=@texFoldGroup,@Spell
endif
else
if g:tex_fold_enabled && has("folding")
syn region texDocZone matchgroup=texSection start='\\begin\s*{\s*document\s*}' end='\\end\s*{\s*document\s*}' fold contains=@texFoldGroup,@texDocGroup
syn region texPartZone matchgroup=texSection start='\\part\>' end='\ze\s*\\\%(part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@texPartGroup
syn region texChapterZone matchgroup=texSection start='\\chapter\>' end='\ze\s*\\\%(chapter\>\|part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@texChapterGroup
syn region texSectionZone matchgroup=texSection start='\\section\>' end='\ze\s*\\\%(section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@texSectionGroup
syn region texSubSectionZone matchgroup=texSection start='\\subsection\>' end='\ze\s*\\\%(\%(sub\)\=section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@texSubSectionGroup
syn region texSubSubSectionZone matchgroup=texSection start='\\subsubsection\>' end='\ze\s*\\\%(\%(sub\)\{,2}section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@texSubSubSectionGroup
syn region texParaZone matchgroup=texSection start='\\paragraph\>' end='\ze\s*\\\%(paragraph\>\|\%(sub\)*section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@texParaGroup
syn region texSubParaZone matchgroup=texSection start='\\subparagraph\>' end='\ze\s*\\\%(\%(sub\)\=paragraph\>\|\%(sub\)*section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup
syn region texTitle matchgroup=texSection start='\\\%(author\|title\)\>\s*{' end='}' fold contains=@texFoldGroup
syn region texAbstract matchgroup=texSection start='\\begin\s*{\s*abstract\s*}' end='\\end\s*{\s*abstract\s*}' fold contains=@texFoldGroup
else
syn region texDocZone matchgroup=texSection start='\\begin\s*{\s*document\s*}' end='\\end\s*{\s*document\s*}' contains=@texFoldGroup,@texDocGroup
syn region texPartZone matchgroup=texSection start='\\part\>' end='\ze\s*\\\%(part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texPartGroup
syn region texChapterZone matchgroup=texSection start='\\chapter\>' end='\ze\s*\\\%(chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texChapterGroup
syn region texSectionZone matchgroup=texSection start='\\section\>' end='\ze\s*\\\%(section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texSectionGroup
syn region texSubSectionZone matchgroup=texSection start='\\subsection\>' end='\ze\s*\\\%(\%(sub\)\=section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texSubSectionGroup
syn region texSubSubSectionZone matchgroup=texSection start='\\subsubsection\>' end='\ze\s*\\\%(\%(sub\)\{,2}section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texSubSubSectionGroup
syn region texParaZone matchgroup=texSection start='\\paragraph\>' end='\ze\s*\\\%(paragraph\>\|\%(sub\)*section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texParaGroup
syn region texSubParaZone matchgroup=texSection start='\\subparagraph\>' end='\ze\s*\\\%(\%(sub\)\=paragraph\>\|\%(sub\)*section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup
syn region texTitle matchgroup=texSection start='\\\%(author\|title\)\>\s*{' end='}' contains=@texFoldGroup
syn region texAbstract matchgroup=texSection start='\\begin\s*{\s*abstract\s*}' end='\\end\s*{\s*abstract\s*}' contains=@texFoldGroup
endif
if !exists("g:tex_fast") || g:tex_fast =~ 'p'
if !exists("g:tex_nospell") || !g:tex_nospell
if g:tex_fold_enabled && has("folding")
syn region texDocZone matchgroup=texSection start='\\begin\s*{\s*document\s*}' end='\\end\s*{\s*document\s*}' fold contains=@texFoldGroup,@texDocGroup,@Spell
syn region texPartZone matchgroup=texSection start='\\part\>' end='\ze\s*\\\%(part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@texPartGroup,@Spell
syn region texChapterZone matchgroup=texSection start='\\chapter\>' end='\ze\s*\\\%(chapter\>\|part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@texChapterGroup,@Spell
syn region texSectionZone matchgroup=texSection start='\\section\>' end='\ze\s*\\\%(section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@texSectionGroup,@Spell
syn region texSubSectionZone matchgroup=texSection start='\\subsection\>' end='\ze\s*\\\%(\%(sub\)\=section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@texSubSectionGroup,@Spell
syn region texSubSubSectionZone matchgroup=texSection start='\\subsubsection\>' end='\ze\s*\\\%(\%(sub\)\{,2}section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@texSubSubSectionGroup,@Spell
syn region texParaZone matchgroup=texSection start='\\paragraph\>' end='\ze\s*\\\%(paragraph\>\|\%(sub\)*section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@texParaGroup,@Spell
syn region texSubParaZone matchgroup=texSection start='\\subparagraph\>' end='\ze\s*\\\%(\%(sub\)\=paragraph\>\|\%(sub\)*section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@Spell
syn region texTitle matchgroup=texSection start='\\\%(author\|title\)\>\s*{' end='}' fold contains=@texFoldGroup,@Spell
syn region texAbstract matchgroup=texSection start='\\begin\s*{\s*abstract\s*}' end='\\end\s*{\s*abstract\s*}' fold contains=@texFoldGroup,@Spell
else
syn region texDocZone matchgroup=texSection start='\\begin\s*{\s*document\s*}' end='\\end\s*{\s*document\s*}' contains=@texFoldGroup,@texDocGroup,@Spell
syn region texPartZone matchgroup=texSection start='\\part\>' end='\ze\s*\\\%(part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texPartGroup,@Spell
syn region texChapterZone matchgroup=texSection start='\\chapter\>' end='\ze\s*\\\%(chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texChapterGroup,@Spell
syn region texSectionZone matchgroup=texSection start='\\section\>' end='\ze\s*\\\%(section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texSectionGroup,@Spell
syn region texSubSectionZone matchgroup=texSection start='\\subsection\>' end='\ze\s*\\\%(\%(sub\)\=section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texSubSectionGroup,@Spell
syn region texSubSubSectionZone matchgroup=texSection start='\\subsubsection\>' end='\ze\s*\\\%(\%(sub\)\{,2}section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texSubSubSectionGroup,@Spell
syn region texParaZone matchgroup=texSection start='\\paragraph\>' end='\ze\s*\\\%(paragraph\>\|\%(sub\)*section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texParaGroup,@Spell
syn region texSubParaZone matchgroup=texSection start='\\subparagraph\>' end='\ze\s*\\\%(\%(sub\)\=paragraph\>\|\%(sub\)*section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@Spell
syn region texTitle matchgroup=texSection start='\\\%(author\|title\)\>\s*{' end='}' contains=@texFoldGroup,@Spell
syn region texAbstract matchgroup=texSection start='\\begin\s*{\s*abstract\s*}' end='\\end\s*{\s*abstract\s*}' contains=@texFoldGroup,@Spell
endif
else
if g:tex_fold_enabled && has("folding")
syn region texDocZone matchgroup=texSection start='\\begin\s*{\s*document\s*}' end='\\end\s*{\s*document\s*}' fold contains=@texFoldGroup,@texDocGroup
syn region texPartZone matchgroup=texSection start='\\part\>' end='\ze\s*\\\%(part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@texPartGroup
syn region texChapterZone matchgroup=texSection start='\\chapter\>' end='\ze\s*\\\%(chapter\>\|part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@texChapterGroup
syn region texSectionZone matchgroup=texSection start='\\section\>' end='\ze\s*\\\%(section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@texSectionGroup
syn region texSubSectionZone matchgroup=texSection start='\\subsection\>' end='\ze\s*\\\%(\%(sub\)\=section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@texSubSectionGroup
syn region texSubSubSectionZone matchgroup=texSection start='\\subsubsection\>' end='\ze\s*\\\%(\%(sub\)\{,2}section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@texSubSubSectionGroup
syn region texParaZone matchgroup=texSection start='\\paragraph\>' end='\ze\s*\\\%(paragraph\>\|\%(sub\)*section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup,@texParaGroup
syn region texSubParaZone matchgroup=texSection start='\\subparagraph\>' end='\ze\s*\\\%(\%(sub\)\=paragraph\>\|\%(sub\)*section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' fold contains=@texFoldGroup
syn region texTitle matchgroup=texSection start='\\\%(author\|title\)\>\s*{' end='}' fold contains=@texFoldGroup
syn region texAbstract matchgroup=texSection start='\\begin\s*{\s*abstract\s*}' end='\\end\s*{\s*abstract\s*}' fold contains=@texFoldGroup
else
syn region texDocZone matchgroup=texSection start='\\begin\s*{\s*document\s*}' end='\\end\s*{\s*document\s*}' contains=@texFoldGroup,@texDocGroup
syn region texPartZone matchgroup=texSection start='\\part\>' end='\ze\s*\\\%(part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texPartGroup
syn region texChapterZone matchgroup=texSection start='\\chapter\>' end='\ze\s*\\\%(chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texChapterGroup
syn region texSectionZone matchgroup=texSection start='\\section\>' end='\ze\s*\\\%(section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texSectionGroup
syn region texSubSectionZone matchgroup=texSection start='\\subsection\>' end='\ze\s*\\\%(\%(sub\)\=section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texSubSectionGroup
syn region texSubSubSectionZone matchgroup=texSection start='\\subsubsection\>' end='\ze\s*\\\%(\%(sub\)\{,2}section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texSubSubSectionGroup
syn region texParaZone matchgroup=texSection start='\\paragraph\>' end='\ze\s*\\\%(paragraph\>\|\%(sub\)*section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup,@texParaGroup
syn region texSubParaZone matchgroup=texSection start='\\subparagraph\>' end='\ze\s*\\\%(\%(sub\)\=paragraph\>\|\%(sub\)*section\>\|chapter\>\|part\>\|end\s*{\s*document\s*}\)' contains=@texFoldGroup
syn region texTitle matchgroup=texSection start='\\\%(author\|title\)\>\s*{' end='}' contains=@texFoldGroup
syn region texAbstract matchgroup=texSection start='\\begin\s*{\s*abstract\s*}' end='\\end\s*{\s*abstract\s*}' contains=@texFoldGroup
endif
endif
endif
" particular support for bold and italic {{{1
if s:tex_conceal =~ 'b'
syn region texBoldStyle matchgroup=texTypeStyle start="\\textbf\s*{" end="}" concealends contains=@texBoldGroup
syn region texBoldItalStyle matchgroup=texTypeStyle start="\\textit\s*{" end="}" concealends contains=@texItalGroup
syn region texItalStyle matchgroup=texTypeStyle start="\\textit\s*{" end="}" concealends contains=@texItalGroup
syn region texItalBoldStyle matchgroup=texTypeStyle start="\\textbf\s*{" end="}" concealends contains=@texBoldGroup
if !exists("g:tex_fast") || g:tex_fast =~ 'b'
if s:tex_conceal =~ 'b'
syn region texBoldStyle matchgroup=texTypeStyle start="\\textbf\s*{" end="}" concealends contains=@texBoldGroup
syn region texBoldItalStyle matchgroup=texTypeStyle start="\\textit\s*{" end="}" concealends contains=@texItalGroup
syn region texItalStyle matchgroup=texTypeStyle start="\\textit\s*{" end="}" concealends contains=@texItalGroup
syn region texItalBoldStyle matchgroup=texTypeStyle start="\\textbf\s*{" end="}" concealends contains=@texBoldGroup
endif
endif
" Bad Math (mismatched): {{{1
@@ -373,17 +393,21 @@ if !exists("tex_no_math")
let foldcmd= ""
endif
exe "syn cluster texMathZones add=".grpname
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*}"'
if !exists("g:tex_fast") || g: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
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*}"'
if !exists("g:tex_fast") || g: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
@@ -403,26 +427,30 @@ if !exists("tex_no_math")
call TexNewMathZone("L","xxalignat",0)
" Inline Math Zones: {{{2
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\>" concealends keepend 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
if !exists("g:tex_fast") || g: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\>" concealends keepend 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 region texMathZoneZ matchgroup=texStatement start="\\ensuremath\s*{" matchgroup=texStatement end="}" end="%stopzone\>" contains=@texMathZoneGroup
syn match texMathOper "[_^=]" contained
" Text Inside Math Zones: {{{2
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
if !exists("g:tex_fast") || g: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
@@ -512,65 +540,77 @@ else
" allows syntax-folding of 2 or more contiguous comment lines
" single-line comments are not folded
syn match texComment "%.*$" contains=@texCommentGroup
syn region texComment start="^\zs\s*%.*\_s*%" skip="^\s*%" end='^\ze\s*[^%]' fold
syn region texNoSpell contained fold matchgroup=texComment start="%\s*nospell\s*{" end="%\s*nospell\s*}" contains=@texFoldGroup,@NoSpell
if !exists("g:tex_fast") || g:tex_fast =~ 'c'
syn region texComment start="^\zs\s*%.*\_s*%" skip="^\s*%" end='^\ze\s*[^%]' fold
syn region texNoSpell contained fold matchgroup=texComment start="%\s*nospell\s*{" end="%\s*nospell\s*}" contains=@texFoldGroup,@NoSpell
endif
else
syn match texComment "%.*$" contains=@texCommentGroup
syn region texNoSpell contained matchgroup=texComment start="%\s*nospell\s*{" end="%\s*nospell\s*}" contains=@texFoldGroup,@NoSpell
if !exists("g:tex_fast") || g:tex_fast =~ 'c'
syn region texNoSpell contained matchgroup=texComment start="%\s*nospell\s*{" end="%\s*nospell\s*}" contains=@texFoldGroup,@NoSpell
endif
endif
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 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 version < 600
syn region texZone start="\\verb\*\=`" end="`\|%stopzone\>" contains=@Spell
syn region texZone start="\\verb\*\=#" end="#\|%stopzone\>" contains=@Spell
else
if b:tex_stylish
syn region texZone start="\\verb\*\=\z([^\ta-zA-Z@]\)" end="\z1\|%stopzone\>" contains=@Spell
if !exists("g:tex_fast") || g: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 version < 600
syn region texZone start="\\verb\*\=`" end="`\|%stopzone\>" contains=@Spell
syn region texZone start="\\verb\*\=#" end="#\|%stopzone\>" contains=@Spell
else
syn region texZone start="\\verb\*\=\z([^\ta-zA-Z]\)" end="\z1\|%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
endif
endif
else
syn region texZone start="\\begin{[vV]erbatim}" end="\\end{[vV]erbatim}\|%stopzone\>"
if version < 600
syn region texZone start="\\verb\*\=`" end="`\|%stopzone\>"
syn region texZone start="\\verb\*\=#" end="#\|%stopzone\>"
else
if b:tex_stylish
syn region texZone start="\\verb\*\=\z([^\ta-zA-Z@]\)" end="\z1\|%stopzone\>"
else
syn region texZone start="\\begin{[vV]erbatim}" end="\\end{[vV]erbatim}\|%stopzone\>"
if version < 600
syn region texZone start="\\verb\*\=`" end="`\|%stopzone\>"
syn region texZone start="\\verb\*\=#" end="#\|%stopzone\>"
else
syn region texZone start="\\verb\*\=\z([^\ta-zA-Z]\)" end="\z1\|%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
endif
endif
" Tex Reference Zones: {{{1
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
if !exists("g:tex_fast") || g: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
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
" Handle newcommand, newenvironment : {{{1
syn match texNewCmd "\\newcommand\>" nextgroup=texCmdName skipwhite skipnl
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
if !exists("g:tex_fast") || g: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
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
if !exists("g:tex_fast") || g: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
@@ -591,11 +631,15 @@ syn match texLength "\<\d\+\([.,]\d\+\)\=\s*\(true\)\=\s*\(bp\|cc\|cm\|dd\|em\
syn match texString "\(``\|''\|,,\)"
" makeatletter -- makeatother sections
if !exists("g:tex_no_error")
syn region texStyle matchgroup=texStatement start='\\makeatletter' end='\\makeatother' contains=@texStyleGroup contained
if !exists("s:tex_no_error")
if !exists("g:tex_fast") || g:tex_fast =~ 'S'
syn region texStyle matchgroup=texStatement start='\\makeatletter' end='\\makeatother' contains=@texStyleGroup contained
endif
syn match texStyleStatement "\\[a-zA-Z@]\+" contained
syn region texStyleMatcher matchgroup=Delimiter start="{" skip="\\\\\|\\[{}]" end="}" contains=@texStyleGroup,texError contained
syn region texStyleMatcher matchgroup=Delimiter start="\[" end="]" contains=@texStyleGroup,texError contained
if !exists("g:tex_fast") || g: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
@@ -970,8 +1014,10 @@ if has("conceal") && &enc == 'utf-8'
" Superscripts/Subscripts {{{2
if s:tex_conceal =~ '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
if !exists("g:tex_fast") || g: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
fun! s:SuperSub(group,leader,pat,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'
@@ -1180,7 +1226,7 @@ endif
if did_tex_syntax_inits == 1
let did_tex_syntax_inits= 2
" TeX highlighting groups which should share similar highlighting
if !exists("g:tex_no_error")
if !exists("s:tex_no_error")
if !exists("tex_no_math")
HiLink texBadMath texError
HiLink texMathDelimBad texError

View File

@@ -1,8 +1,8 @@
" Vim syntax file
" Language: Vim 7.3 script
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
" Last Change: Nov 14, 2012
" Version: 7.3-20
" Maintainer: Dr. Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz>
" Last Change: February 15, 2013
" Version: 7.3-24
" Automatically generated keyword lists: {{{1
" Quit when a syntax file was already loaded {{{2
@@ -18,37 +18,36 @@ 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] bd[elete] bN[ext] breakd[el] buf c cal[l] ce[nter] cg[etfile] cl cn cNf comc[lear] cope[n] cr[ewind] d d[elete] diffo diffsplit di[splay] ds[earch] ec e:e:e en endt[ry] exu[sage] filetype fix[del] for go[to] h hi if intro k la lan[guage] lch[dir] let@ lg[etfile] lla[st] lnew[er] lNf[ile] loc[kmarks] lr[ewind] lv[imgrep] ma[rk] messages mkv mv n new noautocmd on[ly] p:~ perld[o] popu[p] p[rint] promptr[epl] ptl[ast] ptr[ewind] py3file q[uit] r[ead] redraws[tatus] ret[ab] r:r:r ru[ntime] sba[ll] sbp[revious] scs sf[ind] sil[ent] sm[ap] sno[magic] so[urce] spellr[epall] st startr[eplace] sunme sw[apname] t tabf[ind] tabn[ext] ta[g] tf[irst] tn tp[revious] tu undoj[oin] up[date] vi vmapc[lear] win wN[ext] wundo xmapc[lear] xnoremenu
syn keyword vimCommand contained ab argd[elete] as[cii] bel[owright] bo[tright] breakl[ist] bufdo cabc[lear] cat[ch] cex[pr] c[hange] cla[st] cN cnf[ile] comment co[py] cs de delf diffoff difft dj[ump] dsp[lit] echoe[rr] e:e:r endf endw[hile] f fin fo[ld] fu gr[ep] ha[rdcopy] hid[e] ij[ump] is[earch] keepa lad la[st] lcl[ose] lex[pr] lgr[ep] lli[st] lne[xt] lo lockv[ar] ls lvimgrepa[dd] marks mk mkvie[w] Mycmd N n[ext] noh[lsearch] o[pen] P p:gs? pp[op] P[rint] ps[earch] ptn pts[elect] pyf[ile] quita[ll] rec[over] reg[isters] retu[rn] ru rv[iminfo] sbf[irst] sbr[ewind] scscope sfir[st] sim[alt] sme snoreme s?pat?sub? spellu[ndo] sta[g] stj[ump] sunmenu sy ta tabfir[st] tabN[ext] tags th[row] tN tr tu[nmenu] undol[ist] v vie[w] vne[w] winc[md] wp[revious] wv[iminfo] xme xterm
syn keyword vimCommand contained abc[lear] argdo au bf[irst] bp[revious] br[ewind] b[uffer] cad cb[uffer] cf[ile] changes cl[ist] cnew[er] cNf[ile] comp[iler] count cscope debug delf[unction] DiffOrig diffthis dl[ist] dwim echom[sg] el[se] endfo[r] ene[w] f[ile] fina[lly] foldc[lose] fun grepa[dd] h[elp] his[tory] il[ist] isp[lit] keepalt laddb[uffer] lat lcs lf[ile] lgrepa[dd] lmak[e] lN[ext] loadk lol[der] lt[ag] lw[indow] mat[ch] mkdir mkv[imrc] MyCommand nbc[lose] N[ext] nu[mber] opt[ions] pc[lose] p:h pr pro p:t ptN pu[t] py[thon] quote red Ren rew[ind] rub[y] sal[l] sbl[ast] sb[uffer] se[t] sh[ell] sl smenu snoremenu spe spellw[rong] star st[op] sus[pend] syn tab tabl[ast] tabo[nly] tc[l] tj[ump] tn[ext] t:r u unh[ide] ve vim[grep] vs[plit] windo wq x xmenu xunme
syn keyword vimCommand contained abo[veleft] arge[dit] bad[d] bl[ast] br bro[wse] buffers caddb[uffer] cc cfir[st] chd[ir] clo[se] cn[ext] col[der] con cpf[ile] cstag debugg[reedy] delm[arks] diffp diffu[pdate] do e echon elsei[f] endfun Error filename fin[d] folddoc[losed] fu[nction] gs?pat?sub? helpf[ind] i imapc[lear] iuna[bbrev] keepj[umps] lad[dexpr] later lcscope lfir[st] lh[elpgrep] lmapc[lear] lnf loadkeymap lop[en] lua ma menut mk[exrc] mo mz nb[key] nkf o ownsyntax pe p:h:h p:r profd[el] pta[g] ptn[ext] pw[d] python3 r redi[r] Rena ri[ght] rubyd[o] san[dbox] sbm[odified] scrip setf[iletype] si sla[st] sn[ext] s@\n@\=\r" spelld[ump] sp[lit] start stopi[nsert] s?version?main? sync tabc[lose] tabm[ove] tabp[revious] tcld[o] tl[ast] tN[ext] tr[ewind] un unl verb[ose] vimgrepa[dd] w winp[os] wqa[ll] X XMLent xunmenu
syn keyword vimCommand contained al[l] argg[lobal] ba[ll] bm[odified] brea[k] browseset bun[load] cad[dexpr] ccl[ose] cgetb[uffer] che[ckpath] cmapc[lear] cN[ext] colo[rscheme] conf[irm] cp[revious] cuna[bbrev] del di diffpatch dig doau ea e[dit] em[enu] endf[unction] ex files fini[sh] foldd[oopen] g gui helpg[rep] ia in j[oin] kee[pmarks] laddf[ile] lb[uffer] le[ft] lgetb[uffer] l[ist] lN lNf lo[adview] lpf[ile] luado mak[e] menut[ranslate] mks[ession] mod[e] mzf[ile] nbs[tart] nmapc[lear] ol[dfiles] p ped[it] po[p] pre[serve] prof[ile] ptf[irst] ptN[ext] py q re red[o] Renu rightb[elow] rubyf[ile] sa[rgument] sbn[ext] scripte[ncoding] setg[lobal] sig sl[eep] sN[ext] so spe[llgood] spr[evious] startg[replace] sts[elect] s?version?main?:p syncbind tabd[o] tabN tabr[ewind] tclf[ile] tm TOhtml try una[bbreviate] unlo[ckvar] ve[rsion] vi[sual] wa[ll] win[size] w[rite] xa[ll] XMLns xwininfo
syn keyword vimCommand contained Allargs argl[ocal] bar bn[ext] breaka[dd] bu bw[ipeout] caddf[ile] cd cgete[xpr] checkt[ime] cmdname cnf com con[tinue] cq[uit] cw[indow] delc[ommand] diffg[et] diffpu[t] dig[raphs] dr[op] earlier e:e emenu* en[dif] exi[t] filet fir[st] foldo[pen] get gvim helpt[ags] iabc[lear] index ju[mps] l lan lc[d] lefta[bove] lgete[xpr] ll lne lnf[ile] locale lp[revious] luafile Man mes mksp[ell] m[ove] mz[scheme] ne noa omapc[lear] p: pe[rl] popu prev[ious] promptf[ind] ptj[ump] ptp[revious] py3 qa[ll] r:e redr[aw] res[ize] r:r rundo sav[eas] sbN[ext] scrip[tnames] setl[ocal] sign sm[agic] sni[ff] sor[t] spelli[nfo] sre[wind] star[tinsert] sun[hide] sv[iew] synlist tabe[dit] tabnew tabs te[aroff] tm[enu] to[pleft] ts[elect] u[ndo] uns[ilent] vert[ical] viu[sage] wh[ile] wn[ext] ws[verb] x[it] xnoreme y[ank]
syn keyword vimCommand contained ar ar[gs]
syn keyword vimCommand contained a arga[dd] ar[gs] bar bn[ext] breaka[dd] bu bw[ipeout] caddf[ile] cd cgete[xpr] checkt[ime] cmdname cnf com con[tinue] cq[uit] cw[indow] delc[ommand] diffg[et] diffpu[t] dig[raphs] dr[op] earlier el[se] endfo[r] ene[w] filename fin[d] folddoc[losed] fu[nction] gui helpg[rep] ia in j[oin] kee[pmarks] laddf[ile] lb[uffer] le[ft] lgetb[uffer] l[ist] lN lNf lo[adview] lpf[ile] luado mak[e] menut[ranslate] mks[ession] mod[e] n new noautocmd on[ly] pc[lose] popu p[rint] promptr[epl] ptn pts[elect] py[thon] quote redi[r] res[ize] ru rv[iminfo] sbf[irst] sbr[ewind] scscope sfir[st] sim[alt] sme snoreme spe spellw[rong] star stj[ump] sunme sy t tabe[dit] tabN tabp[revious] tc[l] th[row] tn to[pleft] ts[elect] una[bbreviate] unl ve vie[w] vmapc[lear] wh[ile] win[size] wqa[ll] x xmenu xterm
syn keyword vimCommand contained ab argd[elete] argu[ment] bd[elete] bN[ext] breakd[el] buf c cal[l] ce[nter] cg[etfile] cl cn cNf comc[lear] cope[n] cr[ewind] d d[elete] diffo diffsplit di[splay] ds[earch] ec elsei[f] endfun ex files fini[sh] foldd[oopen] g gvim helpt[ags] iabc[lear] index ju[mps] l lan lc[d] lefta[bove] lgete[xpr] ll lne lnf[ile] locale lp[revious] luafile Man mes mksp[ell] m[ove] N n[ext] noh[lsearch] o[pen] pe popu[p] P[rint] ps[earch] ptN pu[t] python3 r red[o] ret[ab] rub[y] sal[l] sbl[ast] sb[uffer] se[t] sh[ell] sl smenu snoremenu spelld[ump] sp[lit] start st[op] sunmenu syn ta tabf[ind] tabnew tabr[ewind] tcld[o] tj[ump] tN tp[revious] tu u[ndo] unlo[ckvar] verb[ose] vim[grep] vne[w] win wn[ext] w[rite] xa[ll] XMLent xunme
syn keyword vimCommand contained abc[lear] argdo as[cii] bel[owright] bo[tright] breakl[ist] bufdo cabc[lear] cat[ch] cex[pr] c[hange] cla[st] cN cnf[ile] comment co[py] cs de delf diffoff difft dj[ump] dsp[lit] echoe[rr] em[enu] endf[unction] exi[t] filet fir[st] foldo[pen] get h hi if intro k la lan[guage] lch[dir] let@ lg[etfile] lla[st] lnew[er] lNf[ile] loc[kmarks] lr[ewind] lv[imgrep] ma[rk] messages mkv mv nbc[lose] N[ext] nu[mber] opt[ions] ped[it] pp[op] pro pta[g] ptn[ext] pw[d] q re redr[aw] retu[rn] rubyd[o] san[dbox] sbm[odified] scrip setf[iletype] si sla[st] sn[ext] s@\n@\=\r" spe[llgood] spr[evious] startg[replace] stopi[nsert] sus[pend] sync tab tabfir[st] tabn[ext] tabs tclf[ile] tl[ast] tn[ext] tr tu[nmenu] undoj[oin] uns[ilent] ve[rsion] vimgrepa[dd] vs[plit] winc[md] wN[ext] ws[verb] x[it] XMLns xunmenu
syn keyword vimCommand contained abo[veleft] arge[dit] au bf[irst] bp[revious] br[ewind] b[uffer] cad cb[uffer] cf[ile] changes cl[ist] cnew[er] cNf[ile] comp[iler] count cscope debug delf[unction] DiffOrig diffthis dl[ist] dwim echom[sg] emenu* en[dif] exu[sage] filetype fix[del] for go[to] ha[rdcopy] hid[e] ij[ump] is[earch] keepa lad la[st] lcl[ose] lex[pr] lgr[ep] lli[st] lne[xt] lo lockv[ar] ls lvimgrepa[dd] marks mk mkvie[w] mz nb[key] nkf o ownsyntax pe[rl] pr profd[el] ptf[irst] ptN[ext] py qa[ll] r[ead] redraws[tatus] rew[ind] rubyf[ile] sa[rgument] sbn[ext] scripte[ncoding] setg[lobal] sig sl[eep] sN[ext] so spelli[nfo] sre[wind] star[tinsert] sts[elect] sv[iew] syncbind tabc[lose] tabl[ast] tabN[ext] ta[g] te[aroff] tm tN[ext] tr[ewind] u undol[ist] up[date] vert[ical] vi[sual] w windo wp[revious] wundo xmapc[lear] xnoreme xwininfo
syn keyword vimCommand contained al[l] argg[lobal] bad[d] bl[ast] br bro[wse] buffers caddb[uffer] cc cfir[st] chd[ir] clo[se] cn[ext] col[der] con cpf[ile] cstag debugg[reedy] delm[arks] diffp diffu[pdate] do e echon en endt[ry] f fin fo[ld] fu gr[ep] h[elp] his[tory] il[ist] isp[lit] keepalt laddb[uffer] lat lcs lf[ile] lgrepa[dd] lmak[e] lN[ext] loadk lol[der] lt[ag] lw[indow] mat[ch] mkdir mkv[imrc] mzf[ile] nbs[tart] nmapc[lear] ol[dfiles] p perld[o] pre[serve] prof[ile] ptj[ump] ptp[revious] py3 q[uit] rec[over] reg[isters] ri[ght] rundo sav[eas] sbN[ext] scrip[tnames] setl[ocal] sign sm[agic] sni[ff] sor[t] spellr[epall] st startr[eplace] sun[hide] sw[apname] synlist tabd[o] tabm[ove] tabo[nly] tags tf[irst] tm[enu] TOhtml try un unh[ide] v vi viu[sage] wa[ll] winp[os] wq wv[iminfo] xme xnoremenu y[ank]
syn keyword vimCommand contained ar argl[ocal] ba[ll] bm[odified] brea[k] browseset bun[load] cad[dexpr] ccl[ose] cgetb[uffer] che[ckpath] cmapc[lear] cN[ext] colo[rscheme] conf[irm] cp[revious] cuna[bbrev] del di diffpatch dig doau ea e[dit] endf endw[hile] f[ile] fina[lly] foldc[lose] fun grepa[dd] helpf[ind] i imapc[lear] iuna[bbrev] keepj[umps] lad[dexpr] later lcscope lfir[st] lh[elpgrep] lmapc[lear] lnf loadkeymap lop[en] lua ma menut mk[exrc] mo mz[scheme] ne noa omapc[lear] P po[p] prev[ious] promptf[ind] ptl[ast] ptr[ewind] pyf[ile] quita[ll] red Ren rightb[elow] ru[ntime] sba[ll] sbp[revious] scs sf[ind] sil[ent] sm[ap] sno[magic] so[urce] spellu[ndo] sta[g]
syn match vimCommand contained "\<z[-+^.=]\="
" vimOptions are caught only when contained in a vimSet {{{2
syn keyword vimOption contained acd ambiwidth arabicshape autowriteall backupdir bdlay binary breakat bufhidden cd ci cinw co commentstring confirm cpoptions cscoperelative csre cursorcolumn delcombine diffopt ea efm ep et fdc fdo ffs fk foldcolumn foldmethod formatoptions gd go guifont guitabtooltip hid hkp iconstring imd include inex isi js kp linebreak lm lz matchpairs maxmemtot mkspellmem mod mousef mouset nf oft pa path pheader previewheight printmbcharset pvw remap rl ruf sc scrollopt selectmode shellpipe shiftround showfulltag sidescrolloff smarttab sp spf srr startofline suffixes switchbuf tabline tags tbs textmode timeout tl tpm ttimeoutlen ttymouse udf undoreload vbs vi vop wcm whichwrap wildignore winaltkeys winminwidth wmnu write
syn keyword vimOption contained ai ambw ari aw backupext beval biosk brk buflisted cdpath cin cinwords cocu compatible consk cpt cscopetag cst cursorline dex digraph ead ei equalalways eventignore fde fdt fileencoding fkmap foldenable foldminlines formatprg gdefault gp guifontset helpfile hidden hl ignorecase imdisable includeexpr inf isident key langmap lines lmap ma matchtime mco ml modeline mousefocus mousetime nrformats ofu para pdev pi previewwindow printmbfont qe report rlc ruler scb scs sessionoptions shellquote shiftwidth showmatch siso smc spc spl ss statusline suffixesadd sws tabpagemax tagstack tenc textwidth timeoutlen tm tr ttm ttyscroll udir updatecount vdir viewdir wa wd wi wildignorecase window winwidth wmw writeany
syn keyword vimOption contained akm anti arshape awa backupskip bex bioskey browsedir buftype cedit cindent clipboard cole complete conskey crb cscopetagorder csto cwh dg dip eadirection ek equalprg ex fdi fen fileencodings flp foldexpr foldnestmax fp gfm grepformat guifontwide helpheight highlight hlg im imi incsearch infercase isk keymap langmenu linespace loadplugins macatsui maxcombine mef mls modelines mousehide mp nu omnifunc paragraphs penc pm printdevice printoptions quoteescape restorescreen rnu rulerformat scr sect sft shellredir shm showmode sj smd spell splitbelow ssl stl sw sxq tabstop tal term tf title to ts tty ttytype ul updatetime ve viewoptions wak weirdinvert wic wildmenu winfixheight wiv wop writebackup
syn keyword vimOption contained al antialias autochdir background balloondelay bexpr bk bs casemap cf cink cmdheight colorcolumn completefunc copyindent cryptmethod cscopeverbose csverb debug dict dir eb enc errorbells expandtab fdl fenc fileformat fml foldignore foldopen fs gfn grepprg guiheadroom helplang history hls imactivatekey iminsert inde insertmode iskeyword keymodel laststatus lisp lpl magic maxfuncdepth menuitems mm modifiable mousem mps number opendevice paste pex pmbcs printencoding prompt rdt revins ro runtimepath scroll sections sh shellslash shortmess showtabline slm sn spellcapcheck splitright ssop stmp swapfile syn tag tb termbidi tgst titlelen toolbar tsl ttybuiltin tw undodir ur verbose viminfo warn wfh wig wildmode winfixwidth wiw wrap writedelay
syn keyword vimOption contained aleph ar autoindent backspace ballooneval bg bkc bsdir cb cfu cinkeys cmdwinheight columns completeopt cot cscopepathcomp cspc cuc deco dictionary directory ed encoding errorfile exrc fdls fencs fileformats fmr foldlevel foldtext fsync gfs gtl guioptions hf hk hlsearch imak ims indentexpr is isp keywordprg lazyredraw lispwords ls makeef maxmapdepth mfd mmd modified mousemodel msm numberwidth operatorfunc pastetoggle pexpr pmbfn printexpr pt readonly ri rs sb scrollbind secure shcf shelltemp shortname shq sm so spellfile spr st sts swapsync synmaxcol tagbsearch tbi termencoding thesaurus titleold toolbariconsize tsr ttyfast tx undofile ut verbosefile virtualedit wb wfw wildchar wildoptions winheight wm wrapmargin ws
syn keyword vimOption contained allowrevins arab autoread backup balloonexpr bh bl bsk cc ch cino cmp com concealcursor cp cscopeprg csprg cul def diff display edcompatible endofline errorformat fcl fdm fex filetype fo foldlevelstart formatexpr ft gfw gtt guipty hh hkmap ic imc imsearch indentkeys isf isprint km lbr list lsp makeprg maxmem mh mmp more mouses mzq nuw opfunc patchexpr pfn popt printfont pumheight redrawtime rightleft rtp sbo scrolljump sel shell shelltype showbreak si smartcase softtabstop spelllang sps sta su swb syntax taglength tbidi terse tildeop titlestring top ttimeout ttym uc undolevels vb vfile visualbell wc wh wildcharm wim winminheight wmh wrapscan ww
syn keyword vimOption contained altkeymap arabic autowrite backupcopy bdir bin bomb bt ccv charconvert cinoptions cms comments conceallevel cpo cscopequickfix csqf cursorbind define diffexpr dy ef eol esckeys fcs fdn ff fillchars foldclose foldmarker formatlistpat gcr ghr guicursor guitablabel hi hkmapp icon imcmdline inc indk isfname joinspaces kmp lcs listchars lw mat maxmempattern mis mmt mouse mouseshape mzquantum odev osfiletype patchmode ph preserveindent printheader pvh relativenumber rightleftcmd ru sbr scrolloff selection shellcmdflag shellxquote showcmd sidescroll smartindent sol spellsuggest sr stal sua swf ta tagrelative tbis textauto
syn keyword vimOption contained acd ambiwidth arabicshape autowriteall backupdir bdlay binary breakat bufhidden cd ci cinw co commentstring confirm cpoptions cscoperelative csre cursorcolumn delcombine diffopt ea efm ep et fdc fdo ffs fk foldcolumn foldmethod formatoptions gd go guifont guitabtooltip hid hkp iconstring imd include inex isi js kp linebreak lm lz matchpairs maxmemtot mkspellmem mod mousef mouset nf oft pa path pheader previewheight printmbcharset pvw remap rl ruf sc scrollopt selectmode shellpipe shellxquote showcmd sidescroll smartindent sol spellsuggest sr stal sua swf syntax taglength tbidi terse tildeop tl tpm ttimeoutlen ttymouse udf undoreload vbs vi vop wcm whichwrap wildignore winaltkeys winminwidth wmnu write
syn keyword vimOption contained ai ambw ari aw backupext beval biosk brk buflisted cdpath cin cinwords cocu compatible consk cpt cscopetag cst cursorline dex digraph ead ei equalalways eventignore fde fdt fileencoding fkmap foldenable foldminlines formatprg gdefault gp guifontset helpfile hidden hl ignorecase imdisable includeexpr inf isident key langmap lines lmap ma matchtime mco ml modeline mousefocus mousetime nrformats ofu para pdev pi previewwindow printmbfont qe report rlc ruler scb scs sessionoptions shellquote shiftround showfulltag sidescrolloff smarttab sp spf srr startofline suffixes switchbuf ta tagrelative tbis textauto timeout tm tr ttm ttyscroll udir updatecount vdir viewdir wa wd wi wildignorecase window winwidth wmw writeany
syn keyword vimOption contained akm anti arshape awa backupskip bex bioskey browsedir buftype cedit cindent clipboard cole complete conskey crb cscopetagorder csto cwh dg dip eadirection ek equalprg ex fdi fen fileencodings flp foldexpr foldnestmax fp gfm grepformat guifontwide helpheight highlight hlg im imi incsearch infercase isk keymap langmenu linespace loadplugins macatsui maxcombine mef mls modelines mousehide mp nu omnifunc paragraphs penc pm printdevice printoptions quoteescape restorescreen rnu rulerformat scr sect sft shellredir shiftwidth showmatch siso smc spc spl ss statusline suffixesadd sws tabline tags tbs textmode timeoutlen to ts tty ttytype ul updatetime ve viewoptions wak weirdinvert wic wildmenu winfixheight wiv wop writebackup
syn keyword vimOption contained al antialias autochdir background balloondelay bexpr bk bs casemap cf cink cmdheight colorcolumn completefunc copyindent cryptmethod cscopeverbose csverb debug dict dir eb enc errorbells expandtab fdl fenc fileformat fml foldignore foldopen fs gfn grepprg guiheadroom helplang history hls imactivatekey iminsert inde insertmode iskeyword keymodel laststatus lisp lpl magic maxfuncdepth menuitems mm modifiable mousem mps number opendevice paste pex pmbcs printencoding prompt rdt revins ro runtimepath scroll sections sh shellslash shm showmode sj smd spell splitbelow ssl stl sw sxe tabpagemax tagstack tenc textwidth title toolbar tsl ttybuiltin tw undodir ur verbose viminfo warn wfh wig wildmode winfixwidth wiw wrap writedelay
syn keyword vimOption contained aleph ar autoindent backspace ballooneval bg bkc bsdir cb cfu cinkeys cmdwinheight columns completeopt cot cscopepathcomp cspc cuc deco dictionary directory ed encoding errorfile exrc fdls fencs fileformats fmr foldlevel foldtext fsync gfs gtl guioptions hf hk hlsearch imak ims indentexpr is isp keywordprg lazyredraw lispwords ls makeef maxmapdepth mfd mmd modified mousemodel msm numberwidth operatorfunc pastetoggle pexpr pmbfn printexpr pt readonly ri rs sb scrollbind secure shcf shelltemp shortmess showtabline slm sn spellcapcheck splitright ssop stmp swapfile sxq tabstop tal term tf titlelen toolbariconsize tsr ttyfast tx undofile ut verbosefile virtualedit wb wfw wildchar wildoptions winheight wm wrapmargin ws
syn keyword vimOption contained allowrevins arab autoread backup balloonexpr bh bl bsk cc ch cino cmp com concealcursor cp cscopeprg csprg cul def diff display edcompatible endofline errorformat fcl fdm fex filetype fo foldlevelstart formatexpr ft gfw gtt guipty hh hkmap ic imc imsearch indentkeys isf isprint km lbr list lsp makeprg maxmem mh mmp more mouses mzq nuw opfunc patchexpr pfn popt printfont pumheight redrawtime rightleft rtp sbo scrolljump sel shell shelltype shortname shq sm so spellfile spr st sts swapsync syn tag tb termbidi tgst titleold top ttimeout ttym uc undolevels vb vfile visualbell wc wh wildcharm wim winminheight wmh wrapscan ww
syn keyword vimOption contained altkeymap arabic autowrite backupcopy bdir bin bomb bt ccv charconvert cinoptions cms comments conceallevel cpo cscopequickfix csqf cursorbind define diffexpr dy ef eol esckeys fcs fdn ff fillchars foldclose foldmarker formatlistpat gcr ghr guicursor guitablabel hi hkmapp icon imcmdline inc indk isfname joinspaces kmp lcs listchars lw mat maxmempattern mis mmt mouse mouseshape mzquantum odev osfiletype patchmode ph preserveindent printheader pvh relativenumber rightleftcmd ru sbr scrolloff selection shellcmdflag shellxescape showbreak si smartcase softtabstop spelllang sps sta su swb synmaxcol tagbsearch tbi termencoding thesaurus titlestring
" vimOptions: These are the turn-off setting variants {{{2
syn keyword vimOption contained noacd noallowrevins noantialias noarabic noarshape noautoread noaw noballooneval nobinary nobk nobuflisted nocin noconfirm nocopyindent nocscopetag nocsverb nocursorbind nodeco nodiff noeb noek noequalalways noesckeys noex noexrc nofk nofoldenable nogdefault nohid nohk nohkmapp nohls noic noignorecase noimc noimd noincsearch noinfercase nois nojs nolbr nolisp noloadplugins 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 novb nowa nowb nowfh nowildignorecase* * nowinfixheight nowiv nowrap nowrite nowritebackup
syn keyword vimOption contained noai noaltkeymap noar noarabicshape noautochdir noautowrite noawa nobeval nobiosk nobl nocf nocindent noconsk nocp nocscopeverbose nocuc nocursorcolumn nodelcombine nodigraph noed noendofline noerrorbells noet noexpandtab nofen nofkmap nogd noguipty nohidden nohkmap nohkp nohlsearch noicon noim noimcmdline noimdisable noinf noinsertmode nojoinspaces nolazyredraw nolinebreak nolist nolpl 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 novisualbell nowarn noweirdinvert nowfw nowildmenu nowinfixwidth nowmnu nowrapscan nowriteany nows
syn keyword vimOption contained noakm noanti noarab noari noautoindent noautowriteall nobackup nobin nobioskey nobomb noci nocompatible noconskey nocrb nocst nocul nocursorline nodg noea noedcompatible noeol
syn keyword vimOption contained noakm noanti noarab noari noautoindent noautowriteall nobackup nobin nobioskey nobomb noci nocompatible noconskey nocrb nocst nocul nocursorline nodg noea noedcompatible noeol
" vimOptions: These are the invertible variants {{{2
syn keyword vimOption contained invacd invallowrevins invantialias invarabic invarshape invautoread invaw invballooneval invbinary invbk invbuflisted invcin invconfirm invcopyindent invcscopetag invcsverb invcursorbind invdeco invdiff inveb invek invequalalways invesckeys invex invexrc invfk invfoldenable invgdefault invhid invhk invhkmapp invhls invic invignorecase invimc invimd invincsearch invinfercase invis invjs invlbr invlisp invloadplugins 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 invvb invwa invwb invwfh invwildignorecase* * invwinfixheight invwiv invwrap invwrite invwritebackup
syn keyword vimOption contained invai invaltkeymap invar invarabicshape invautochdir invautowrite invawa invbeval invbiosk invbl invcf invcindent invconsk invcp invcscopeverbose invcuc invcursorcolumn invdelcombine invdigraph inved invendofline inverrorbells invet invexpandtab invfen invfkmap invgd invguipty invhidden invhkmap invhkp invhlsearch invicon invim invimcmdline invimdisable invinf invinsertmode invjoinspaces invlazyredraw invlinebreak invlist invlpl 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 invvisualbell invwarn invweirdinvert invwfw invwildmenu invwinfixwidth invwmnu invwrapscan invwriteany invws
syn keyword vimOption contained invakm invanti invarab invari invautoindent invautowriteall invbackup invbin invbioskey invbomb invci invcompatible invconskey invcrb invcst invcul invcursorline invdg invea invedcompatible inveol
syn keyword vimOption contained invakm invanti invarab invari invautoindent invautowriteall invbackup invbin invbioskey invbomb invci invcompatible invconskey invcrb invcst invcul invcursorline invdg invea invedcompatible inveol
" 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_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_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
syn keyword vimOption contained t_AF t_AL t_cd t_Ce t_cm
syn match vimOption contained "t_%1"
syn match vimOption contained "t_#2"
syn match vimOption contained "t_#4"
@@ -59,26 +58,26 @@ syn match vimOption contained "t_%i"
syn match vimOption contained "t_k;"
" unsupported settings: these are supported by vi but don't do anything in vim {{{2
syn keyword vimErrSetting contained hardtabs ht w1200 w300 w9600
syn keyword vimErrSetting contained hardtabs ht 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 Cmd-event CmdwinEnter CmdwinLeave ColorScheme 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 QuickFixCmdPost QuickFixCmdPre RemoteReply SessionLoadPost ShellCmdPost ShellFilterPost SourceCmd SourcePre SpellFileMissing StdinReadPost StdinReadPre SwapExists Syntax TabEnter TabLeave TermChanged TermResponse User UserGettingBored VimEnter VimLeave VimLeavePre VimResized WinEnter WinLeave
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 Cmd-event CmdwinEnter CmdwinLeave ColorScheme 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 QuickFixCmdPost QuickFixCmdPre RemoteReply SessionLoadPost ShellCmdPost ShellFilterPost SourceCmd SourcePre SpellFileMissing StdinReadPost StdinReadPre SwapExists Syntax TabEnter TabLeave TermChanged TermResponse User UserGettingBored VimEnter VimLeave VimLeavePre VimResized WinEnter WinLeave
" 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
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 DiffAdd DiffChange DiffDelete DiffText Directory ErrorMsg FoldColumn Folded IncSearch LineNr MatchParen Menu ModeMsg MoreMsg NonText Normal Pmenu PmenuSbar PmenuSel PmenuThumb Question Scrollbar Search SignColumn SpecialKey SpellBad SpellCap SpellLocal SpellRare StatusLine StatusLineNC TabLine TabLineFill TabLineSel Title Tooltip VertSplit Visual VisualNOS WarningMsg WildMenu
syn keyword vimHLGroup contained ColorColumn Cursor CursorColumn CursorIM CursorLine DiffAdd DiffChange DiffDelete DiffText Directory ErrorMsg FoldColumn Folded IncSearch LineNr MatchParen Menu ModeMsg MoreMsg NonText Normal Pmenu PmenuSbar PmenuSel PmenuThumb Question 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 atan2 bufexists bufname byte2line ceil cindent complete confirm cosh cursor did_filetype empty eventhandler exp extend filewritable findfile fmod foldclosed foldtext function getbufline getcharmod getcmdtype getfperm getftype getmatches getqflist gettabvar getwinposy globpath haslocaldir histdel hlexists iconv input inputrestore insert items len line localtime map match matchdelete matchstr min mode nextnonblank pathshorten prevnonblank pumvisible readfile reltimestr remote_foreground remote_read remove repeat reverse search searchpair searchpos serverlist setcmdpos setloclist setpos setreg settabwinvar shellescape sin sort spellbadword split str2float strchars strftime string strpart strtrans submatch synconcealed synIDattr synstack tabpagebuflist tabpagewinnr taglist tanh tolower tr type undotree virtcol winbufnr winheight winnr winrestview winwidth
syn keyword vimFuncName contained acos argc asin browse buflisted bufnr byteidx changenr clearmatches complete_add copy count deepcopy diff_filler escape executable expand feedkeys filter float2nr fnameescape foldclosedend foldtextresult garbagecollect getbufvar getcmdline getcwd getfsize getline getpid getreg gettabwinvar getwinvar has hasmapto histget hlID indent inputdialog inputsave isdirectory join libcall line2byte log maparg matchadd matchend max mkdir mzeval nr2char pow printf range reltime remote_expr remote_peek remote_send rename resolve round searchdecl searchpairpos server2client setbufvar setline setmatches setqflist settabvar setwinvar simplify sinh soundfold spellsuggest sqrt str2nr strdisplaywidth stridx strlen strridx strwidth substitute synID synIDtrans system tabpagenr tagfiles tan tempname toupper trunc undofile values visualmode wincol winline winrestcmd winsaveview writefile
syn keyword vimFuncName contained add argidx atan browsedir bufloaded bufwinnr call char2nr col complete_check cos cscope_connection delete diff_hlID eval exists expr8 filereadable finddir floor fnamemodify foldlevel foreground get getchar getcmdpos getfontname getftime getloclist getpos getregtype getwinposx glob has_key histadd histnr hostname index inputlist inputsecret islocked keys libcallnr lispindent log10 mapcheck matcharg matchlist
syn keyword vimFuncName contained abs and argidx atan browsedir bufloaded bufwinnr call char2nr col complete_check cos cscope_connection delete diff_hlID eval exists expr8 filereadable finddir floor fnamemodify foldlevel foreground get getchar getcmdpos getfontname getftime getloclist getpos getregtype getwinposx glob has_key histadd histnr hostname index inputlist inputsecret isdirectory join libcall line2byte log map match matchdelete matchstr mkdir nextnonblank pathshorten printf pyeval reltime remote_foreground remote_read remove repeat reverse search searchpair searchpos serverlist setcmdpos setloclist setpos setreg settabwinvar shellescape simplify sinh soundfold spellsuggest sqrt str2nr strdisplaywidth stridx strlen strridx strwidth substitute synID synIDtrans system tabpagenr tagfiles tan tempname toupper trunc undofile values visualmode wincol winline winrestcmd winsaveview writefile
syn keyword vimFuncName contained acos append argv atan2 bufexists bufname byte2line ceil cindent complete confirm cosh cursor did_filetype empty eventhandler exp extend filewritable findfile fmod foldclosed foldtext function getbufline getcharmod getcmdtype getfperm getftype getmatches getqflist gettabvar getwinposy globpath haslocaldir histdel hlexists iconv input inputrestore insert islocked keys libcallnr lispindent log10 maparg matchadd matchend max mode nr2char pow pumvisible range reltimestr remote_peek remote_send rename resolve round searchdecl searchpairpos server2client setbufvar setline setmatches setqflist settabvar setwinvar shiftwidth sin sort spellbadword split str2float strchars strftime string strpart strtrans submatch synconcealed synIDattr synstack tabpagebuflist tabpagewinnr taglist tanh tolower tr type undotree virtcol winbufnr winheight winnr winrestview winwidth xor
syn keyword vimFuncName contained add argc asin browse buflisted bufnr byteidx changenr clearmatches complete_add copy count deepcopy diff_filler escape executable expand feedkeys filter float2nr fnameescape foldclosedend foldtextresult garbagecollect getbufvar getcmdline getcwd getfsize getline getpid getreg gettabwinvar getwinvar has hasmapto histget hlID indent inputdialog inputsave invert items len line localtime luaeval mapcheck matcharg matchlist min mzeval or prevnonblank py3eval readfile remote_expr
"--- syntax above generated by mkvimvim ---
"--- syntax here and above generated by mkvimvim ---
" Special Vim Highlighting (not automatic) {{{1
" commands not picked up by the generator (due to non-standard format)
@@ -97,17 +96,17 @@ endif
" Numbers {{{2
" =======
syn match vimNumber "\<\d\+\([lL]\|\.\d\+\)\="
syn match vimNumber "-\d\+\([lL]\|\.\d\+\)\="
syn match vimNumber "\<\d\+\([lL]\|\.\d\+\)\=" skipwhite nextgroup=vimGlobal,vimSubst,vimCommand
syn match vimNumber "-\d\+\([lL]\|\.\d\+\)\=" skipwhite nextgroup=vimGlobal,vimSubst,vimCommand
syn match vimNumber "\<0[xX]\x\+"
syn match vimNumber "#\x\{6}"
" All vimCommands are contained by vimIsCommands. {{{2
syn match vimCmdSep "[:|]\+" skipwhite nextgroup=vimAddress,vimAutoCmd,vimCommand,vimExtCmd,vimFilter,vimLet,vimMap,vimMark,vimSet,vimSyntax,vimUserCmd
syn match vimIsCommand "\<\h\w*\>" contains=vimCommand
syn match vimVar "\<[bwglsav]:\K\k*\>"
syn match vimVar contained "\<\K\k*\>"
syn match vimFBVar contained "\<[bwglsav]:\K\k*\>"
syn match vimVar contained "\<\h\w*\>"
syn match vimVar "\<[bwglsav]:\h\w*\>"
syn match vimFBVar contained "\<[bwglsav]:\h\w*\>"
syn keyword vimCommand contained in
" Insertions And Appends: insert append {{{2
@@ -137,9 +136,9 @@ syn keyword vimFTOption contained detect indent off on plugin
" ======= : Trade-off: Increasing synclines with slower editing vs augroup END error checking.
syn cluster vimAugroupList contains=vimIsCommand,vimCommand,vimUserCmd,vimExecute,vimNotFunc,vimFuncName,vimFunction,vimFunctionError,vimLineComment,vimSpecFile,vimOper,vimNumber,vimOperParen,vimComment,vimString,vimSubst,vimMark,vimRegister,vimAddress,vimFilter,vimCmplxRepeat,vimComment,vimLet,vimSet,vimAutoCmd,vimRegion,vimSynLine,vimNotation,vimCtrlChar,vimFuncVar,vimContinue
if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'a'
syn region vimAugroup fold start="\<aug\%[roup]\>\s\+\K\k*" end="\<aug\%[roup]\>\s\+[eE][nN][dD]\>" contains=vimAugroupKey,vimAutoCmd,@vimAugroupList keepend
syn region vimAugroup fold start="\<aug\%[roup]\>\s\+\h\w*" end="\<aug\%[roup]\>\s\+[eE][nN][dD]\>" contains=vimAugroupKey,vimAutoCmd,@vimAugroupList keepend
else
syn region vimAugroup start="\<aug\%[roup]\>\s\+\K\k*" end="\<aug\%[roup]\>\s\+[eE][nN][dD]\>" contains=vimAugroupKey,vimAutoCmd,@vimAugroupList keepend
syn region vimAugroup start="\<aug\%[roup]\>\s\+\h\w*" end="\<aug\%[roup]\>\s\+[eE][nN][dD]\>" contains=vimAugroupKey,vimAutoCmd,@vimAugroupList keepend
endif
syn match vimAugroup "aug\%[roup]!" contains=vimAugroupKey
if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_noaugrouperror")
@@ -150,7 +149,7 @@ syn keyword vimAugroupKey contained aug[roup]
" Operators: {{{2
" =========
" COMBAK: vimOperParen used to have "oneline"
syn cluster vimOperGroup contains=vimFunc,vimFuncVar,vimOper,vimOperParen,vimNumber,vimString,vimRegister,vimContinue
syn cluster vimOperGroup contains=vimEnvvar,vimFunc,vimFuncVar,vimOper,vimOperParen,vimNumber,vimString,vimRegister,vimContinue
syn match vimOper "\(==\|!=\|>=\|<=\|=\~\|!\~\|>\|<\|=\)[?#]\{0,2}" skipwhite nextgroup=vimString,vimSpecFile
syn match vimOper "||\|&&\|[-+.]" skipwhite nextgroup=vimString,vimSpecFile
syn region vimOperParen matchgroup=vimParenSep start="(" end=")" contains=@vimOperGroup
@@ -162,7 +161,7 @@ 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,vimComment,vimContinue,vimCtrlChar,vimEcho,vimEchoHL,vimExecute,vimIf,vimIsCommand,vimFBVar,vimFunc,vimFunction,vimFuncVar,vimHighlight,vimIsCommand,vimLet,vimLineComment,vimMap,vimMark,vimNorm,vimNotation,vimNotFunc,vimNumber,vimOper,vimOperParen,vimRegion,vimRegister,vimSet,vimSpecFile,vimString,vimSubst,vimSynLine,vimUserCommand
syn cluster vimFuncBodyList contains=vimAbb,vimAddress,vimAugroupKey,vimAutoCmd,vimCmplxRepeat,vimComment,vimComment,vimContinue,vimCtrlChar,vimEcho,vimEchoHL,vimExecute,vimIf,vimIsCommand,vimFBVar,vimFunc,vimFunction,vimFuncVar,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'
@@ -170,7 +169,7 @@ if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'f'
else
syn region vimFuncBody contained start="\ze(" matchgroup=vimCommand end="\<\(endf\>\|endfu\%[nction]\>\)" contains=@vimFuncBodyList
endif
syn match vimFuncVar contained "a:\(\K\k*\|\d\+\)"
syn match vimFuncVar contained "a:\(\h\w*\|\d\+\)"
syn match vimFuncSID contained "\c<sid>\|\<s:"
syn keyword vimFuncKey contained fu[nction]
syn match vimFuncBlank contained "\s\+"
@@ -246,7 +245,7 @@ syn match vimStringCont contained +\(\\\\\|.\)\{-}[^\\]"+
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][:[:alpha:]]\@!" nextgroup=vimSubstPat
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 "/\zss\%[ubstitute]\ze/" nextgroup=vimSubstPat
syn match vimSubst1 contained "s\%[ubstitute]\>" nextgroup=vimSubstPat
@@ -290,7 +289,7 @@ 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 oneline
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 "[,:]"
syn match vimSetMod contained "&vim\=\|[!&?<]\|all&"
@@ -349,7 +348,7 @@ syn match vimMenuBang "!" contained skipwhite nextgroup=@vimMenuList
" Angle-Bracket Notation (tnx to Michael Geddes) {{{2
" ======================
syn case ignore
syn match vimNotation "\(\\\|<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\|space\|k\=\(page\)\=\(\|down\|up\)\)>" contains=vimBracket
syn match vimNotation "\(\\\|<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 "\(\\\|<lt>\)\=<\([scam2-4]-\)\{0,4}\(right\|left\|middle\)\(mouse\)\=\(drag\|release\)\=>" contains=vimBracket
syn match vimNotation "\(\\\|<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
@@ -408,7 +407,7 @@ 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="\k\+" skip="\\\\\|\\|" matchgroup=vimSep end="$\||" contains=vimGroupAdd,vimGroupRem,vimSynContains,vimSynError
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
@@ -420,14 +419,14 @@ 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="\k\+" skip="\\\\\|\\|" matchgroup=vimSep end="|\|$" contains=@vimSynKeyGroup
syn region vimSynKeyRegion contained oneline keepend matchgroup=vimGroupName start="\h\w*" skip="\\\\\|\\|" matchgroup=vimSep end="|\|$" contains=@vimSynKeyGroup
syn match vimSynKeyOpt contained "\<\(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="\k\+" matchgroup=vimSep end="|\|$" contains=@vimSynMtchGroup
syn region vimSynMatchRegion contained keepend matchgroup=vimGroupName start="\h\w*" matchgroup=vimSep end="|\|$" contains=@vimSynMtchGroup
syn match vimSynMtchOpt contained "\<\(conceal\|transparent\|contained\|excludenl\|skipempty\|skipwhite\|display\|extend\|skipnl\|fold\)\>"
if has("conceal")
syn match vimSynMtchOpt contained "\<cchar=" nextgroup=vimSynMtchCchar
@@ -442,7 +441,7 @@ syn keyword vimSynType contained enable list manual off on reset
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="\k\+" skip="\\\\\|\\|" end="|\|$" contains=@vimSynRegGroup
syn region vimSynRegion contained keepend matchgroup=vimGroupName start="\h\w*" skip="\\\\\|\\|" end="|\|$" contains=@vimSynRegGroup
syn match vimSynRegOpt contained "\<\(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
@@ -468,9 +467,9 @@ 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 "\k\+" skipwhite nextgroup=vimSyncKey
syn match vimSyncGroupName contained "\h\w*" skipwhite nextgroup=vimSyncKey
syn match vimSyncKey contained "\<groupthere\|grouphere\>" skipwhite nextgroup=vimSyncGroup
syn match vimSyncGroup contained "\k\+" skipwhite nextgroup=vimSynRegPat,vimSyncNone
syn match vimSyncGroup contained "\h\w*" skipwhite nextgroup=vimSynRegPat,vimSyncNone
syn keyword vimSyncNone contained NONE
" Additional IsCommand, here by reasons of precedence {{{2
@@ -541,8 +540,8 @@ syn match vimCommentTitleLeader '"\s\+'ms=s+1 contained
" ====================
syn match vimSearch '^\s*[/?].*' contains=vimSearchDelim
syn match vimSearchDelim '^\s*\zs[/?]\|[/?]$' contained
syn region vimGlobal matchgroup=Statement start='\<g\%[lobal]!\=/' skip='\\.' end='/'
syn region vimGlobal matchgroup=Statement start='\<v\%[global]!\=/' skip='\\.' end='/'
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
@@ -753,9 +752,6 @@ syn sync match vimAugroupSyncA groupthere NONE "\<aug\%[roup]\>\s\+[eE][nN][dD]"
" Highlighting Settings {{{2
" ====================
hi def link vimAuHighlight vimHighlight
hi def link vimSubst1 vimSubst
hi def link vimBehaveModel vimBehave
if !exists("g:vimsyn_noerror")
hi def link vimBehaveError vimError
@@ -778,22 +774,43 @@ endif
hi def link vimAbb vimCommand
hi def link vimAddress vimMark
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
@@ -803,115 +820,97 @@ 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 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 vimUserCommand vimCommand
hi def link vimAutoEvent Type
hi def link vimBracket Delimiter
hi def link vimCmplxRepeat SpecialChar
hi def link vimCommand Statement
hi def link vimComment Comment
hi def link vimCommentTitle PreProc
hi def link vimContinue Special
hi def link vimCtrlChar SpecialChar
hi def link vimElseIfErr Error
hi def link vimEnvvar PreProc
hi def link vimError Error
hi def link vimFold Folded
hi def link vimFuncName Function
hi def link vimFuncSID Special
hi def link vimFuncVar Identifier
hi def link vimGroupSpecial Special
hi def link vimGroup Type
hi def link vimHiAttrib PreProc
hi def link vimHiTerm Type
hi def link vimHLMod PreProc
hi def link vimKeyword Statement
hi def link vimMark Number
hi def link vimMenuName PreProc
hi def link vimNotation Special
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 vimPatSep SpecialChar
hi def link vimPattern Type
hi def link vimRegister SpecialChar
hi def link vimScriptDelim Comment
hi def link vimSearchDelim Statement
hi def link vimSep Delimiter
hi def link vimSetSep Statement
hi def link vimSpecFile Identifier
hi def link vimSpecial Type
hi def link vimStatement Statement
hi def link vimString String
hi def link vimSubstDelim Delimiter
hi def link vimSubstFlags Special
hi def link vimSubstSubstr SpecialChar
hi def link vimSynCaseError Error
hi def link vimSynCase Type
hi def link vimSyncC Type
hi def link vimSyncError Error
hi def link vimSyncKey Type
hi def link vimSyncNone Type
hi def link vimSynError Error
hi def link vimSynOption Special
hi def link vimSynReg Type
hi def link vimTodo Todo
hi def link vimUserAttrbCmpltFunc Special
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
hi def link vimHiNmbr Number
" Current Syntax Variable: {{{2
let b:current_syntax = "vim"

View File

@@ -38,10 +38,10 @@
3. <20><><EFBFBD>ؤΥ<D8A4><CEA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȥäơ<C3A4><C6A1><EFBFBD><EFBFBD>å<EFBFBD><C3A5><EFBFBD>1.2 <20>˰<EFBFBD>ư<EFBFBD><C6B0><EFBFBD>ޤ<EFBFBD><DEA4><EFBFBD><E7A4A6>
Note: <20><><EFBFBD>򥿥<EFBFBD><F2A5BFA5>פ<EFBFBD><D7A4>Ƥ<EFBFBD><C6A4>뤫Ƚ<EBA4AB><C8BD><EFBFBD>ʤ<EFBFBD><CAA4>ʤä<CAA4><C3A4>顢<ESC><3E>򲡤<EFBFBD><F2B2A1A4>ƥΡ<C6A5><CEA1>ޥ<EFBFBD><DEA5><EFBFBD>ɤˤ<C9A4>
NOTE: <20><><EFBFBD>򥿥<EFBFBD><F2A5BFA5>פ<EFBFBD><D7A4>Ƥ<EFBFBD><C6A4>뤫Ƚ<EBA4AB><C8BD><EFBFBD>ʤ<EFBFBD><CAA4>ʤä<CAA4><C3A4>顢<ESC><3E>򲡤<EFBFBD><F2B2A1A4>ƥΡ<C6A5><CEA1>ޥ<EFBFBD><DEA5><EFBFBD>ɤˤ<C9A4>
<20>ޤ<EFBFBD><DEA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><ECA4AB><EFBFBD><EFBFBD><EFBFBD>Ϥ<EFBFBD><CFA4><EFBFBD>Ȥ<EFBFBD><C8A4>Ƥ<EFBFBD><C6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ޥ<EFBFBD><DEA5>ɤ<EFBFBD><C9A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϥ<EFBFBD><CFA4>ޤ<EFBFBD><DEA4><EFBFBD><E7A4A6>
Note: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBA5AD><EFBFBD>Ǥ<EFBFBD><C7A4><EFBFBD>ư<EFBFBD>Ǥ<EFBFBD><C7A4>ޤ<EFBFBD><DEA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> hjkl <20>˰<EFBFBD><CBB0>ٴ<EFBFBD><D9B4><EFBFBD><EFBFBD>Ƥ<EFBFBD><C6A4>ޤ<EFBFBD><DEA4>С<EFBFBD><D0A1>Ϥ뤫
NOTE: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBA5AD><EFBFBD>Ǥ<EFBFBD><C7A4><EFBFBD>ư<EFBFBD>Ǥ<EFBFBD><C7A4>ޤ<EFBFBD><DEA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> hjkl <20>˰<EFBFBD><CBB0>ٴ<EFBFBD><D9B4><EFBFBD><EFBFBD>Ƥ<EFBFBD><C6A4>ޤ<EFBFBD><DEA4>С<EFBFBD><D0A1>Ϥ뤫
<20><>®<EFBFBD><C2AE><EFBFBD><EFBFBD>ư<EFBFBD><C6B0><EFBFBD><EFBFBD>Ȥ<EFBFBD><C8A4>Ǥ<EFBFBD><C7A4><EFBFBD><EFBFBD>Ǥ<EFBFBD><C7A4><EFBFBD><E7A4A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ޥ<EFBFBD><DEA5><EFBFBD>!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -109,7 +109,7 @@ NOTE:
---> <20><><EFBFBD><EFBFBD> <20>ˤ<EFBFBD> ­<><C2AD><EFBFBD>ʤ<EFBFBD> <20>ƥ<EFBFBD><C6A5><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
---> <20><><EFBFBD><EFBFBD> <20><> <20>ˤ<EFBFBD> <20><><EFBFBD>Ĥ<EFBFBD> ­<><C2AD><EFBFBD>ʤ<EFBFBD> <20>ƥ<EFBFBD><C6A5><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>
5. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˡ<EFBFBD><CBA1><EFBFBD><EFBFBD>ä<EFBFBD><C3A4><EFBFBD>Υ<EFBFBD><EFBFBD>å<EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>򸫤ޤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
5. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˡ<EFBFBD><CBA1><EFBFBD><EFBFBD>ä<EFBFBD><C3A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>å<EFBFBD><EFBFBD><EFBFBD> 1.5 <20>ؿʤߤޤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@@ -126,8 +126,8 @@ NOTE:
3. <20>ƥ<EFBFBD><C6A5><EFBFBD><EFBFBD>Ȥ<EFBFBD><C8A4>ɲä<C9B2><C3A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>顢 <ESC> <20>򲡤<EFBFBD><F2B2A1A4>ƥΡ<C6A5><CEA1>ޥ<EFBFBD><DEA5><EFBFBD>ɤ<EFBFBD><C9A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ޤ<EFBFBD><DEA4><EFBFBD><E7A4A6>
4. 2<><32><EFBFBD>ܤ<EFBFBD> ---> <20>ȼ<EFBFBD><C8BC><EFBFBD><EFBFBD>줿<EFBFBD><ECA4BF><EFBFBD><EFBFBD><EFBFBD>ذ<EFBFBD>ư<EFBFBD><C6B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƥå<C6A5> 2 <20><><EFBFBD><EFBFBD> 3 <20><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><EFBFBD><EFBFBD>ʸˡ<EFBFBD><EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ޤ<EFBFBD><DEA4><EFBFBD><E7A4A6>
4. 2<><32><EFBFBD>ܤ<EFBFBD> ---> <20>ȼ<EFBFBD><C8BC><EFBFBD><EFBFBD>줿<EFBFBD><ECA4BF><EFBFBD><EFBFBD><EFBFBD>ذ<EFBFBD>ư<EFBFBD><C6B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƥå<C6A5> 2 <20><><EFBFBD><EFBFBD> 3 <20>򷫤<EFBFBD><EFBFBD>֤<EFBFBD><EFBFBD><EFBFBD>ʸˡ
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ޤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
---> <20><><EFBFBD><EFBFBD><EFBFBD>ˤϴְ<CFB4><D6B0>ä<EFBFBD><C3A4>ƥ<EFBFBD><C6A5><EFBFBD><EFBFBD>Ȥ<EFBFBD><C8A4><EFBFBD><EFBFBD><EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD>ˤϴְ<CFB4><D6B0>ä<EFBFBD><C3A4>ƥ<EFBFBD><C6A5><EFBFBD><EFBFBD>Ȥ<EFBFBD><C8A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ޤ<EFBFBD><DEA4><EFBFBD>
@@ -145,7 +145,8 @@ NOTE:
!! NOTE: <20>ʲ<EFBFBD><CAB2>Υ<EFBFBD><CEA5>ƥåפ<C3A5><D7A4>¹Ԥ<C2B9><D4A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˡ<EFBFBD><CBA1>ޤ<EFBFBD><DEA4><EFBFBD><EFBFBD>Τ<EFBFBD><CEA4>ɤ<EFBFBD><C9A4>Ǥ<EFBFBD><C7A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!!
1. <20><><EFBFBD>å<EFBFBD><C3A5><EFBFBD> 1.2 <20>Ǥ<EFBFBD><C7A4>ä<EFBFBD><C3A4><EFBFBD><E8A4A6> :q! <20>򥿥<EFBFBD><F2A5BFA5>פ<EFBFBD><D7A4>ơ<EFBFBD><C6A1><EFBFBD><EFBFBD>Υ<EFBFBD><CEA5><EFBFBD>ȥꥢ<C8A5><EAA5A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ
<20><><EFBFBD>ޤ<EFBFBD><DEA4><EFBFBD>
<20><><EFBFBD>ޤ<EFBFBD><DEA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϡ<EFBFBD><EFBFBD>̤<EFBFBD>ü<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰʲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƥ<EFBFBD><EFBFBD>ԤäƤ<EFBFBD>ޤ<EFBFBD>
<20>ޤ<EFBFBD><DEA4><EFBFBD><EFBFBD><EFBFBD>
2. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ץ<EFBFBD><D7A5><EFBFBD><EFBFBD>ץȤǤ<C8A4><C7A4>Υ<EFBFBD><CEA5>ޥ<EFBFBD><DEA5>ɤ򥿥<C9A4><F2A5BFA5>פ<EFBFBD><D7A4>ޤ<EFBFBD>: vim tutor <ENTER>
'vim'<27><> Vim <20><><EFBFBD>ǥ<EFBFBD><C7A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ư<EFBFBD><C6B0><EFBFBD><EFBFBD>ޥ<EFBFBD><DEA5>ɡ<EFBFBD>'tutor' <20><><EFBFBD>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ե<EFBFBD><D5A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@@ -155,7 +156,8 @@ NOTE:
4. <20>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD>ե<EFBFBD><D5A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¸<EFBFBD><C2B8><EFBFBD>ޤ<EFBFBD>: :wq <ENTER>
5. vimtutor <20><><EFBFBD><EFBFBD><EFBFBD>ٵ<EFBFBD>ư<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؿʤߤޤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
5. <20><><EFBFBD>ƥå<C6A5> 1 <20><> vimtutuor <20><><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> vimtutor <20><><EFBFBD><EFBFBD><EFBFBD>ٵ<EFBFBD>ư<EFBFBD><C6B0><EFBFBD><EFBFBD><EFBFBD>ʲ<EFBFBD><EFBFBD><EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD>ؿʤߤޤ<DFA4><DEA4><EFBFBD><E7A4A6>
6. <20>ʾ<EFBFBD><CABE>Υ<EFBFBD><CEA5>ƥåפ<C3A5><D7A4>ɤ<EFBFBD><C9A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>򤷤<EFBFBD><F2A4B7A4><EFBFBD><EFBFBD>Ǥ<EFBFBD><C7A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¹Ԥ<C2B9><D4A4>ޤ<EFBFBD><DEA4><EFBFBD><E7A4A6>
@@ -215,7 +217,7 @@ NOTE: <ESC>
2. <20>ʲ<EFBFBD><CAB2><EFBFBD> ---> <20>ȼ<EFBFBD><C8BC><EFBFBD><EFBFBD>줿<EFBFBD>Ԥ˥<D4A4><CBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ư<EFBFBD><C6B0><EFBFBD>ޤ<EFBFBD><DEA4><EFBFBD><E7A4A6>
3. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʸ<EFBFBD><CAB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>إ<EFBFBD><D8A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ư<EFBFBD><C6B0><EFBFBD>ޤ<EFBFBD><DEA4>礦(<28>ǽ<EFBFBD><C7BD><EFBFBD> . <20>θ<EFBFBD><CEB8>Ǥ<EFBFBD>)<29><>
3. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʸ<EFBFBD><CAB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>إ<EFBFBD><D8A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ư<EFBFBD><C6B0><EFBFBD>ޤ<EFBFBD><DEA4>礦(<28>ǽ<EFBFBD><C7BD><EFBFBD> <EFBFBD><EFBFBD> <20>θ<EFBFBD><CEB8>Ǥ<EFBFBD>)<29><>
4. <20><><EFBFBD><EFBFBD><EFBFBD>ޤǺ<DEA4><C7BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Τ<EFBFBD> d$ <20>ȥ<EFBFBD><C8A5><EFBFBD><EFBFBD>פ<EFBFBD><D7A4>ޤ<EFBFBD><DEA4><EFBFBD><E7A4A6>
@@ -259,13 +261,13 @@ NOTE:
1. <20>ʲ<EFBFBD><CAB2><EFBFBD> ---> <20>ȼ<EFBFBD><C8BC><EFBFBD><EFBFBD>줿<EFBFBD>Ԥ<EFBFBD><D4A4><EFBFBD>Ƭ<EFBFBD>˥<EFBFBD><CBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ư<EFBFBD><C6B0><EFBFBD>ޤ<EFBFBD><DEA4><EFBFBD>
2. 2dw <20>򥿥<EFBFBD><F2A5BFA5>פ<EFBFBD><D7A4><EFBFBD>ñ<EFBFBD><C3B1>2<EFBFBD><32>ʬ<EFBFBD><CAAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ޤ<EFBFBD><EFBFBD><EFBFBD>
2. 2w <20>򥿥<EFBFBD><F2A5BFA5>פ<EFBFBD><D7A4><EFBFBD>ñ<EFBFBD><C3B1>2<EFBFBD><32>ʬ<EFBFBD><CAAC><EFBFBD>˰<EFBFBD>ư<EFBFBD><EFBFBD><EFBFBD>ޤ<EFBFBD><EFBFBD><EFBFBD>
3. 3e <20>򥿥<EFBFBD><F2A5BFA5>פ<EFBFBD><D7A4><EFBFBD>3<EFBFBD><33><EFBFBD>ܤ<EFBFBD>ñ<EFBFBD><C3B1><EFBFBD>ν<EFBFBD>ü<EFBFBD>˰<EFBFBD>ư<EFBFBD><C6B0><EFBFBD>ޤ<EFBFBD><DEA4><EFBFBD>
4. 0 (<28><><EFBFBD><EFBFBD>)<29>򥿥<EFBFBD><F2A5BFA5>פ<EFBFBD><D7A4>ƹ<EFBFBD>Ƭ<EFBFBD>˰<EFBFBD>ư<EFBFBD><C6B0><EFBFBD>ޤ<EFBFBD><DEA4><EFBFBD>
5. <20><><EFBFBD>ƥå<C6A5> 2 <20><> 3 <20><><EFBFBD><EFBFBD><E3A4A6><EFBFBD>ͤȻȤäƷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><EFBFBD>ޤ<EFBFBD><EFBFBD><EFBFBD>
5. <20><><EFBFBD>ƥå<C6A5> 2 <20><> 3 <20><><EFBFBD><EFBFBD><E3A4A6><EFBFBD>ͤ<EFBFBD><EFBFBD>ȤäƷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><EFBFBD>ޤ<EFBFBD><EFBFBD><EFBFBD>
---> This is just a line with words you can move around in.
@@ -286,7 +288,7 @@ NOTE:
1. ---> <20>ȼ<EFBFBD><C8BC><EFBFBD><EFBFBD>줿<EFBFBD>Ԥι<D4A4>Ƭ<EFBFBD><C6AC>ʬ<EFBFBD>˥<EFBFBD><CBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ư<EFBFBD><C6B0><EFBFBD>ޤ<EFBFBD><DEA4><EFBFBD><E7A4A6>
2. UPPER CASE <20><>ñ<EFBFBD><C3B1>2<EFBFBD>Ĥ<EFBFBD> 2dw <20>ȥ<EFBFBD><C8A5><EFBFBD><EFBFBD>פ<EFBFBD><D7A4>ƺ<EFBFBD><C6BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ޤ<EFBFBD><DEA4><EFBFBD>
2. UPPER CASE <20><>ñ<EFBFBD><C3B1>2<EFBFBD>Ĥ<EFBFBD> d2w <20>ȥ<EFBFBD><C8A5><EFBFBD><EFBFBD>פ<EFBFBD><D7A4>ƺ<EFBFBD><C6BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ޤ<EFBFBD><DEA4><EFBFBD>
3. UPPER CASE <20>Ȥ<EFBFBD><C8A4><EFBFBD>Ϣ³<CFA2><C2B3><EFBFBD><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD>ĤΥ<C4A4><CEA5>ޥ<EFBFBD><DEA5>ɤȰۤʤ륫<CAA4><EBA5AB><EFBFBD><EFBFBD><EFBFBD>Ȥ<EFBFBD><C8A4><EFBFBD><EFBFBD><EFBFBD><EAA4B7>
<20><><EFBFBD>ƥå<C6A5> 1 <20><> 2 <20>򷫤<EFBFBD><F2B7ABA4>֤<EFBFBD><D6A4>ޤ<EFBFBD><DEA4><EFBFBD>
@@ -406,7 +408,7 @@ NOTE:
---> <20><><EFBFBD>ι<EFBFBD><CEB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϥ<EFBFBD><CFA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͡<EFBFBD><CDA1><EFBFBD><EFBFBD>οͤϴ<CDA4><CFB4>Ĥ<EFBFBD><C4A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ä<EFBFBD><C3A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>򲡤<EFBFBD><F2B2A1A4><EFBFBD><E2A4B7>!
---> <20><><EFBFBD>ιԤ<CEB9><D4A4><EFBFBD><EFBFBD>Ϥ<EFBFBD><CFA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˡ<EFBFBD><CBA1><EFBFBD><EFBFBD>οͤϴ<CDA4><CFB4>Ĥ<EFBFBD><C4A4>ְ<EFBFBD><D6B0>ä<EFBFBD><C3A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>򲡤<EFBFBD><F2B2A1A4>ޤ<EFBFBD><DEA4><EFBFBD>!
5. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>å<EFBFBD><C3A5><EFBFBD> 3.2 <20>ؿʤߤޤ<DFA4><DEA4><EFBFBD><E7A4A6>
5. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>å<EFBFBD><C3A5><EFBFBD> 3.3 <20>ؿʤߤޤ<DFA4><DEA4><EFBFBD><E7A4A6>
NOTE: <20>ºݤ˻<CBBB>ޤ<EFBFBD><DEA4><EFBFBD><E7A4A6><EFBFBD><EFBFBD>ƳФ<C6B3><D0A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˤϤ<CBA4><CFA4>ʤ<EFBFBD><CAA4><EFBFBD><EFBFBD>ȡ<EFBFBD>
@@ -428,8 +430,8 @@ NOTE:
5. <20>ǽ<EFBFBD><C7BD>ιԤ<CEB9><D4A4><EFBFBD><EFBFBD>ιԤ<CEB9><D4A4>ͤˤʤ<CBA4><CAA4>ޤǥ<DEA4><C7A5>ƥå<C6A5> 3 <20><> 4 <20>򷫤<EFBFBD><F2B7ABA4>֤<EFBFBD><D6A4>ޤ<EFBFBD><DEA4><EFBFBD>
---> 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.
---> 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 <20><>ñ<EFBFBD><C3B1><EFBFBD><EFBFBD><EFBFBD>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǥʤ<C7A4><CAA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD><D4A4><EFBFBD>Ȥ<EFBFBD><C8A4><EFBFBD><EFBFBD>դ<EFBFBD><D5A4>ޤ<EFBFBD><DEA4><EFBFBD><E7A4A6>
@@ -494,7 +496,7 @@ NOTE:
<20>˹<EFBFBD><CBB9>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD>Ф<EFBFBD><D0A4>Ƥ<EFBFBD><C6A4><EFBFBD><EFBFBD>ޤ<EFBFBD><DEA4><EFBFBD><E7A4A6>
NOTE: <20><><EFBFBD>̤α<CCA4><CEB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˥<EFBFBD><CBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΰ<EFBFBD><CEB0>֤<EFBFBD>ɽ<EFBFBD><C9BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƥ<EFBFBD><C6A4><EFBFBD><EFBFBD><E2A4B7><EFBFBD>ޤ<EFBFBD><DEA4>󡣤<EFBFBD><F3A1A3A4><EFBFBD><EFBFBD><EFBFBD>
'ruler' <20><><EFBFBD>ץ<EFBFBD><D7A5><EFBFBD><EFBFBD><EFBFBD>(<EFBFBD><EFBFBD><EFBFBD>å<EFBFBD><EFBFBD><EFBFBD>6<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȥ<EFBFBD>ɽ<EFBFBD><C9BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ޤ<EFBFBD><DEA4><EFBFBD>
'ruler' <20><><EFBFBD>ץ<EFBFBD><D7A5><EFBFBD><EFBFBD><EFBFBD>(:help 'ruler' <20>򻲾<EFBFBD>)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȥ<EFBFBD>ɽ<EFBFBD><C9BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ޤ<EFBFBD><DEA4><EFBFBD>
2. <20>Dz<EFBFBD><C7B2>Ԥ˰<D4A4>ư<EFBFBD><C6B0><EFBFBD>뤿<EFBFBD><EBA4BF><EFBFBD><EFBFBD> G <20>򥿥<EFBFBD><F2A5BFA5>פ<EFBFBD><D7A4>ޤ<EFBFBD><DEA4><EFBFBD><E7A4A6>
<20>ե<EFBFBD><D5A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƭ<EFBFBD>˰<EFBFBD>ư<EFBFBD><C6B0><EFBFBD><EFBFBD><EFBFBD>ˤ<EFBFBD> gg <20>ȥ<EFBFBD><C8A5><EFBFBD><EFBFBD>פ<EFBFBD><D7A4>ޤ<EFBFBD><DEA4><EFBFBD><E7A4A6>
@@ -523,8 +525,8 @@ NOTE:
5. <20><><EFBFBD>ξ<EFBFBD><CEBE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˤ<EFBFBD> CTRL-O (Ctrl <20>򲡤<EFBFBD>³<EFBFBD><C2B3><EFBFBD>ʤ<EFBFBD><CAA4><EFBFBD> o ʸ<><CAB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)<29>򥿥<EFBFBD><F2A5BFA5>פ<EFBFBD>
<20>ޤ<EFBFBD><DEA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˤϤ<CBA4><CFA4><EFBFBD><EFBFBD>򷫤<EFBFBD><F2B7ABA4>֤<EFBFBD><D6A4>ޤ<EFBFBD><DEA4><EFBFBD>CTRL-I <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǥ<EFBFBD><C7A4><EFBFBD>
Note: "errroor" <20><> error <20>ȥ<EFBFBD><C8A5>ڥ뤬<DAA5><EFBFBD>ޤ<EFBFBD>; errroor <20>Ϥ<EFBFBD><CFA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> error <20>Ǥ<EFBFBD><C7A4><EFBFBD>
Note: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ե<EFBFBD><D5A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ν<EFBFBD><CEBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ץ<EFBFBD><D7A5><EFBFBD><EFBFBD><EFBFBD> 'wrapscan' <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EAA4B5><EFBFBD>Ƥ<EFBFBD><C6A4><EFBFBD>
---> "errroor" <20><> error <20>ȥ<EFBFBD><C8A5>ڥ뤬<DAA5><EFBFBD>ޤ<EFBFBD>; errroor <20>Ϥ<EFBFBD><CFA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> error <20>Ǥ<EFBFBD><C7A4><EFBFBD>
NOTE: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ե<EFBFBD><D5A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ν<EFBFBD><CEBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ץ<EFBFBD><D7A5><EFBFBD><EFBFBD><EFBFBD> 'wrapscan' <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EAA4B5><EFBFBD>Ƥ<EFBFBD><C6A4><EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD>ϡ<EFBFBD><CFA1>ե<EFBFBD><D5A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD><E9B8A1><EFBFBD><EFBFBD>³<EFBFBD>Ԥ<EFBFBD><D4A4>ޤ<EFBFBD><DEA4><EFBFBD>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -612,10 +614,10 @@ NOTE:
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ץ<EFBFBD><D7A5><EFBFBD><EFBFBD>ץȤΤ<CEA4>˥ǥ<CBA5><C7A5><EFBFBD>ȥ<EFBFBD><C8A5>ΰ<EFBFBD><CEB0><EFBFBD><EFBFBD><EFBFBD>ɽ<EFBFBD><C9BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϥ<EFBFBD><CFA4>Ǥ<EFBFBD><C7A4><EFBFBD>
<20><EFBFBD><E2A4B7><EFBFBD><EFBFBD> ls <20><>ư<EFBFBD><C6B0><EFBFBD>ʤ<EFBFBD><CAA4>ʤ<EFBFBD><CAA4><EFBFBD> :!dir <20><><EFBFBD><EFBFBD><EFBFBD>Ѥ<EFBFBD><D1A4>ޤ<EFBFBD><DEA4><EFBFBD><E7A4A6>
Note: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˡ<EFBFBD>ˤ<EFBFBD><CBA4>äƤ<C3A4><C6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ޥ<EFBFBD><DEA5>ɤ<EFBFBD><C9A4>¹Ԥ<C2B9><D4A4><EFBFBD>Ȥ<EFBFBD><C8A4>Ǥ<EFBFBD><C7A4>ޤ<EFBFBD><DEA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
NOTE: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˡ<EFBFBD>ˤ<EFBFBD><CBA4>äƤ<C3A4><C6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ޥ<EFBFBD><DEA5>ɤ<EFBFBD><C9A4>¹Ԥ<C2B9><D4A4><EFBFBD>Ȥ<EFBFBD><C8A4>Ǥ<EFBFBD><C7A4>ޤ<EFBFBD><DEA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<20><>Ϳ<EFBFBD><CDBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ޤ<EFBFBD><DEA4><EFBFBD>
Note: <20><><EFBFBD>Ƥ<EFBFBD> : <20><><EFBFBD>ޥ<EFBFBD><DEA5>ɤ<EFBFBD> <ENTER> <20>򲡤<EFBFBD><F2B2A1A4>ƽ<EFBFBD>λ<EFBFBD><CEBB><EFBFBD>ʤ<EFBFBD><CAA4><EFBFBD><EFBFBD>Фʤ<D0A4><CAA4>ޤ<EFBFBD><DEA4><EFBFBD><EFBFBD><EFBFBD>
NOTE: <20><><EFBFBD>Ƥ<EFBFBD> : <20><><EFBFBD>ޥ<EFBFBD><DEA5>ɤ<EFBFBD> <ENTER> <20>򲡤<EFBFBD><F2B2A1A4>ƽ<EFBFBD>λ<EFBFBD><CEBB><EFBFBD>ʤ<EFBFBD><CAA4><EFBFBD><EFBFBD>Фʤ<D0A4><CAA4>ޤ<EFBFBD><DEA4><EFBFBD><EFBFBD><EFBFBD>
<20>ʹߤǤϤ<C7A4><CFA4>Τ<EFBFBD><CEA4>Ȥ˸<C8A4><CBB8>ڤ<EFBFBD><DAA4>ޤ<EFBFBD><DEA4><EFBFBD><EFBFBD><EFBFBD>
@@ -635,7 +637,7 @@ Note:
4. <20><><EFBFBD><EFBFBD><EFBFBD>ˤ<EFBFBD><CBA4><EFBFBD><EFBFBD>ե<EFBFBD><D5A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Τ<EFBFBD> TEST <20>Ȥ<EFBFBD><C8A4><EFBFBD>̾<EFBFBD><CCBE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¸<EFBFBD><C2B8><EFBFBD><EFBFBD><EFBFBD>ޤ<EFBFBD><DEA4><EFBFBD>
<20><EFBFBD><E2A4A6><EFBFBD><EFBFBD> :!dir <20><EFBFBD><E2A4B7><EFBFBD><EFBFBD> :!ls <20>ȥ<EFBFBD><C8A5><EFBFBD><EFBFBD>פ<EFBFBD><D7A4>Ƴ<EFBFBD>ǧ<EFBFBD><C7A7><EFBFBD>Ƥߤޤ<DFA4><DEA4><EFBFBD><E7A4A6>
Note: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Vim <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ե<EFBFBD><D5A5><EFBFBD><EFBFBD><EFBFBD>̾ TEST <20>ȶ<EFBFBD><C8B6>˵<EFBFBD>ư<EFBFBD><C6B0><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>¸<EFBFBD><C2B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
NOTE: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Vim <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ե<EFBFBD><D5A5><EFBFBD><EFBFBD><EFBFBD>̾ TEST <20>ȶ<EFBFBD><C8B6>˵<EFBFBD>ư<EFBFBD><C6B0><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>¸<EFBFBD><C2B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<20><><EFBFBD><EFBFBD>ȥꥢ<C8A5><EAA5A2><EFBFBD><EFBFBD>ʣ<EFBFBD><CAA3><EFBFBD><EFBFBD><EFBFBD>Ǥ<EFBFBD><C7A4><EFBFBD><E5A4AC><EFBFBD>Ϥ<EFBFBD><CFA4>Ǥ<EFBFBD><C7A4><EFBFBD>
5. <20><><EFBFBD><EFBFBD><EFBFBD>ˡ<EFBFBD><CBA1><EFBFBD><EFBFBD>Τ<CEA4>˥<EFBFBD><CBA5><EFBFBD><EFBFBD>פ<EFBFBD><D7A4>ƥե<C6A5><D5A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ä<EFBFBD><C3A4>ޤ<EFBFBD><DEA4>礦(MS-DOS): :!del TEST
@@ -656,7 +658,7 @@ Note:
3. ʸ<><CAB8> : <20>򲡤<EFBFBD><F2B2A1A4>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>̤κDz<CEBA><C7B2><EFBFBD><EFBFBD><EFBFBD> :'<,'> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ޤ<EFBFBD><DEA4><EFBFBD>
4. w TEST (TEST <20><>¸<EFBFBD>ߤ<EFBFBD><DFA4>ʤ<EFBFBD><CAA4>ե<EFBFBD><D5A5><EFBFBD><EFBFBD><EFBFBD>̾)<29>򥿥<EFBFBD><F2A5BFA5>פ<EFBFBD><D7A4>ޤ<EFBFBD><DEA4><EFBFBD>
Enter <20>򲡤<EFBFBD><F2B2A1A4><EFBFBD><EFBFBD><EFBFBD> :'<,'>w TEST <20>ȤʤäƤ<C3A4><C6A4><EFBFBD>Ȥ<EFBFBD><C8A4><EFBFBD>ǧ<EFBFBD><C7A7><EFBFBD>Ʋ<EFBFBD><C6B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<ENTER> <20>򲡤<EFBFBD><F2B2A1A4><EFBFBD><EFBFBD><EFBFBD> :'<,'>w TEST <20>ȤʤäƤ<C3A4><C6A4><EFBFBD>Ȥ<EFBFBD><C8A4><EFBFBD>ǧ<EFBFBD><C7A7><EFBFBD>Ʋ<EFBFBD><C6B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
5. Vim <20><> TEST <20>Ȥ<EFBFBD><C8A4><EFBFBD><EFBFBD>ե<EFBFBD><D5A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>򤵤줿<F2A4B5A4>Ԥ<EFBFBD><D4A4>񤭹<EFBFBD><F1A4ADB9><EFBFBD><EFBFBD>Ǥ<EFBFBD><C7A4><EFBFBD><E7A4A6>
!dir <20><EFBFBD><E2A4B7><EFBFBD><EFBFBD> !ls <20>Ǥ<EFBFBD><C7A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǧ<EFBFBD><C7A7><EFBFBD>ޤ<EFBFBD><DEA4><EFBFBD>
@@ -747,7 +749,7 @@ NOTE:
3. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>θ<EFBFBD><CEB8><EFBFBD><EFBFBD>˥ƥ<CBA5><C6A5><EFBFBD><EFBFBD>Ȥ<EFBFBD><C8A4>ɲä<C9B2><C3A4>뤿<EFBFBD><EBA4BF><EFBFBD><EFBFBD> a (<28><>ʸ<EFBFBD><CAB8>) <20>򥿥<EFBFBD><F2A5BFA5>פ<EFBFBD><D7A4>ޤ<EFBFBD><DEA4><EFBFBD>
4. <20><><EFBFBD>β<EFBFBD><CEB2>ιԤΤΤ<EFBFBD><EFBFBD>ñ<EFBFBD><EFBFBD><EFBFBD>˴<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ޤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɤ<EFBFBD>ȴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>٤<EFBFBD> <ESC> <20>˲<EFBFBD>
4. <20><><EFBFBD>β<EFBFBD><CEB2>ιԤΤ<CEA4><E8A4A6>ñ<EFBFBD><C3B1><EFBFBD>˴<EFBFBD><CBB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ޤ<EFBFBD><DEA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɤ<EFBFBD>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD>٤<EFBFBD> <ESC> <20><EFBFBD><EFBFBD><EFBFBD>
<20><><EFBFBD>ޤ<EFBFBD><DEA4><EFBFBD>
5. e <20><><EFBFBD>ȤäƼ<C3A4><C6BC><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD>ذ<EFBFBD>ư<EFBFBD><C6B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƥå<C6A5> 3 <20><> 4 <20>򷫤<EFBFBD><F2B7ABA4>֤<EFBFBD><D6A4>ޤ<EFBFBD><DEA4><EFBFBD>
@@ -755,7 +757,7 @@ NOTE:
---> 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 <20><> A <20><>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɤذܤ<D8B0><DCA4>ޤ<EFBFBD><DEA4><EFBFBD><EFBFBD><EFBFBD>ʸ<EFBFBD><CAB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ۤʤ<DBA4>
NOTE: a, i <20><> A <20><>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɤذܤ<D8B0><DCA4>ޤ<EFBFBD><DEA4><EFBFBD><EFBFBD><EFBFBD>ʸ<EFBFBD><CAB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ۤʤ<DBA4>
<20>ޤ<EFBFBD><DEA4><EFBFBD>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -803,7 +805,7 @@ NOTE:
---> a) this is the first item.
b)
Note: ñ<><C3B1><EFBFBD><EFBFBD>1<EFBFBD><31> yank <20><><EFBFBD><EFBFBD><EFBFBD>Τ<EFBFBD> y <20>򥪥ڥ졼<DAA5><ECA1BC><EFBFBD>Ȥ<EFBFBD><C8A4><EFBFBD> yw <20>Ȥ<EFBFBD><C8A4><EFBFBD>Ȥ<EFBFBD><C8A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ޤ<EFBFBD><DEA4><EFBFBD>
NOTE: ñ<><C3B1><EFBFBD><EFBFBD>1<EFBFBD><31> yank <20><><EFBFBD><EFBFBD><EFBFBD>Τ<EFBFBD> y <20>򥪥ڥ졼<DAA5><ECA1BC><EFBFBD>Ȥ<EFBFBD><C8A4><EFBFBD> yw <20>Ȥ<EFBFBD><C8A4><EFBFBD>Ȥ<EFBFBD><C8A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ޤ<EFBFBD><DEA4><EFBFBD>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<20><><EFBFBD>å<EFBFBD><C3A5><EFBFBD> 6.5: <20><><EFBFBD>ץ<EFBFBD><D7A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@@ -824,8 +826,8 @@ NOTE:
6. <20><>ʸ<EFBFBD><CAB8><EFBFBD><EFBFBD>ʸ<EFBFBD><CAB8><EFBFBD>ζ<EFBFBD><CEB6>̤<EFBFBD>̵<EFBFBD><CCB5><EFBFBD>ˤ<EFBFBD><CBA4><EFBFBD><EFBFBD>ˤϼ<CBA4><CFBC><EFBFBD><EFBFBD>ͤ<EFBFBD><CDA4><EFBFBD><EFBFBD>Ϥ<EFBFBD><CFA4>ޤ<EFBFBD>: :set noic
Note: <20>ޥå<DEA5><C3A5>ζ<EFBFBD>Ĵɽ<C4B4><C9BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˤϼ<CBA4><CFBC><EFBFBD><EFBFBD>ͤ<EFBFBD><CDA4><EFBFBD><EFBFBD>Ϥ<EFBFBD><CFA4>ޤ<EFBFBD>: :nohlsearch
Note: 1<>Ĥθ<C4A4><CEB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ޥ<EFBFBD><DEA5>ɤ<EFBFBD><C9A4><EFBFBD><EFBFBD><EFBFBD>ʸ<EFBFBD><CAB8><EFBFBD><EFBFBD>ʸ<EFBFBD><CAB8><EFBFBD>ζ<EFBFBD><CEB6>̤<EFBFBD><CCA4><EFBFBD><EFBFBD>᤿<EFBFBD><E1A4BF><EFBFBD>ʤ<EFBFBD><CAA4>С<EFBFBD><D0A1>ե졼<D5A5><ECA1BC><EFBFBD><EFBFBD> \c
NOTE: <20>ޥå<DEA5><C3A5>ζ<EFBFBD>Ĵɽ<C4B4><C9BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˤϼ<CBA4><CFBC><EFBFBD><EFBFBD>ͤ<EFBFBD><CDA4><EFBFBD><EFBFBD>Ϥ<EFBFBD><CFA4>ޤ<EFBFBD>: :nohlsearch
NOTE: 1<>Ĥθ<C4A4><CEB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ޥ<EFBFBD><DEA5>ɤ<EFBFBD><C9A4><EFBFBD><EFBFBD><EFBFBD>ʸ<EFBFBD><CAB8><EFBFBD><EFBFBD>ʸ<EFBFBD><CAB8><EFBFBD>ζ<EFBFBD><CEB6>̤<EFBFBD><CCA4><EFBFBD><EFBFBD>᤿<EFBFBD><E1A4BF><EFBFBD>ʤ<EFBFBD><CAA4>С<EFBFBD><D0A1>ե졼<D5A5><ECA1BC><EFBFBD><EFBFBD> \c
<20><><EFBFBD><EFBFBD><EFBFBD>Ѥ<EFBFBD><D1A4>ޤ<EFBFBD>: /ignore\c <ENTER>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<09><><EFBFBD>å<EFBFBD><C3A5><EFBFBD> 6 <20><><EFBFBD><EFBFBD>
@@ -878,7 +880,7 @@ Note: 1
** Vim <20><><EFBFBD><EFBFBD>ħ<EFBFBD><C4A7>ȯ<EFBFBD><C8AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD> **
Vim <20>ˤ<EFBFBD> Vi <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¿<EFBFBD><C2BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ħ<EFBFBD><C4A7>Ƨ<EFBFBD>ޤ<EFBFBD><DEA4>Ƥ<EFBFBD><C6A4>ޤ<EFBFBD><DEA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΤۤȤ<DBA4><C8A4>ɤϽ<C9A4><CFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤ˤ<D6A4>
Vim <20>ˤ<EFBFBD> Vi <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¿<EFBFBD><C2BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ħ<EFBFBD><C4A7>Ƨ<EFBFBD>ޤ<EFBFBD><DEA4>Ƥ<EFBFBD><C6A4>ޤ<EFBFBD><DEA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΤۤȤ<EFBFBD><EFBFBD>ɤϽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤ˤ<EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD>ԲĤȤʤäƤ<C3A4><C6A4>ޤ<EFBFBD><DEA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¿<EFBFBD><C2BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ħ<EFBFBD><C4A7><EFBFBD>Ȥ<EFBFBD><C8A4>Ϥ<EFBFBD><CFA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˤ<EFBFBD> "vimrc" <20>ե<EFBFBD><D5A5><EFBFBD><EFBFBD><EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ޤ<EFBFBD><DEA4><EFBFBD>

View File

@@ -38,10 +38,10 @@
3. <20><><EFBFBD>ւ̃L<CC83>[<5B><><EFBFBD>g<EFBFBD><67><EFBFBD>āA<C481><41><EFBFBD>b<EFBFBD>X<EFBFBD><58>1.2 <20>Ɉړ<C988><DA93><EFBFBD><EFBFBD>܂<EFBFBD><DC82><EFBFBD>B
Note: <20><><EFBFBD><EFBFBD><EFBFBD>^<5E>C<EFBFBD>v<EFBFBD><76><EFBFBD>Ă<EFBFBD><C482><EFBFBD><E982A9><EFBFBD><EFBFBD><EFBFBD>Ȃ<EFBFBD><C882>Ȃ<EFBFBD><C882><EFBFBD><EFBFBD><EFBFBD><EFBFBD>A<ESC><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ăm<C483>[<5B>}<7D><><EFBFBD><EFBFBD><EFBFBD>[<5B>h<EFBFBD>ɂ<EFBFBD>
NOTE: <20><><EFBFBD><EFBFBD><EFBFBD>^<5E>C<EFBFBD>v<EFBFBD><76><EFBFBD>Ă<EFBFBD><C482><EFBFBD><E982A9><EFBFBD><EFBFBD><EFBFBD>Ȃ<EFBFBD><C882>Ȃ<EFBFBD><C882><EFBFBD><EFBFBD><EFBFBD><EFBFBD>A<ESC><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ăm<C483>[<5B>}<7D><><EFBFBD><EFBFBD><EFBFBD>[<5B>h<EFBFBD>ɂ<EFBFBD>
<20>܂<EFBFBD><DC82>B<EFBFBD><42><EFBFBD><EFBFBD><EA82A9><EFBFBD><EFBFBD><EFBFBD>͂<EFBFBD><CD82><EFBFBD>Ƃ<EFBFBD><C682>Ă<EFBFBD><C482><EFBFBD><EFBFBD>R<EFBFBD>}<7D><><EFBFBD>h<EFBFBD><68><EFBFBD>ē<EFBFBD><C493>͂<EFBFBD><CD82>܂<EFBFBD><DC82><EFBFBD>B
Note: <20>J<EFBFBD>[<5B>\<5C><><EFBFBD>L<EFBFBD>[<5B>ł<EFBFBD><C582>ړ<EFBFBD><DA93>ł<EFBFBD><C582>܂<EFBFBD><DC82>B<EFBFBD><42><EFBFBD><EFBFBD><EFBFBD><EFBFBD> hjkl <20>Ɉ<EFBFBD><C988>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD>Ă<EFBFBD><C482>܂<EFBFBD><DC82>΁A<CE81>͂邩
NOTE: <20>J<EFBFBD>[<5B>\<5C><><EFBFBD>L<EFBFBD>[<5B>ł<EFBFBD><C582>ړ<EFBFBD><DA93>ł<EFBFBD><C582>܂<EFBFBD><DC82>B<EFBFBD><42><EFBFBD><EFBFBD><EFBFBD><EFBFBD> hjkl <20>Ɉ<EFBFBD><C988>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD>Ă<EFBFBD><C482>܂<EFBFBD><DC82>΁A<CE81>͂邩
<20>ɑ<EFBFBD><C991><EFBFBD><EFBFBD>ړ<EFBFBD><DA93><EFBFBD><EFBFBD><EFBFBD>Ƃ<EFBFBD><C682>ł<EFBFBD><C582><EFBFBD><EFBFBD>ł<EFBFBD><C582><EFBFBD>B<EFBFBD><42><EFBFBD><EFBFBD><EFBFBD>}<7D>W<EFBFBD><57>!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -109,7 +109,7 @@ NOTE:
---> <20><><EFBFBD><EFBFBD> <20>ɂ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ȃ<EFBFBD> <20>e<EFBFBD>L<EFBFBD>X<EFBFBD>g <20><><EFBFBD><EFBFBD><EFBFBD>B
---> <20><><EFBFBD><EFBFBD> <20>s <20>ɂ<EFBFBD> <20><><EFBFBD>‚<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ȃ<EFBFBD> <20>e<EFBFBD>L<EFBFBD>X<EFBFBD>g <20><> <20><><EFBFBD><EFBFBD><EFBFBD>B
5. <20>}<7D><><EFBFBD>̕<EFBFBD><CC95>@<40><><EFBFBD><EFBFBD><ED82A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̃<EFBFBD><EFBFBD>b<EFBFBD>X<EFBFBD><EFBFBD>1<EFBFBD>̗v<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>܂<EFBFBD><EFBFBD><EFBFBD>B
5. <20>}<7D><><EFBFBD>̕<EFBFBD><CC95>@<40><><EFBFBD><EFBFBD><ED82A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>b<EFBFBD>X<EFBFBD><EFBFBD> 1.5 <20>֐i<D690>݂܂<EFBFBD><EFBFBD><EFBFBD>B
@@ -126,8 +126,8 @@ NOTE:
3. <20>e<EFBFBD>L<EFBFBD>X<EFBFBD>g<EFBFBD><67><EFBFBD>lj<EFBFBD><C789><EFBFBD><EFBFBD>I<EFBFBD><49><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>A <ESC> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ăm<C483>[<5B>}<7D><><EFBFBD><EFBFBD><EFBFBD>[<5B>h<EFBFBD>ɖ߂<C996><DF82>܂<EFBFBD><DC82><EFBFBD>B
4. 2<>s<EFBFBD>ڂ<EFBFBD> ---> <20>Ǝ<EFBFBD><C68E><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֈړ<D688><DA93><EFBFBD><EFBFBD>A<EFBFBD>X<EFBFBD>e<EFBFBD>b<EFBFBD>v 2 <20><><EFBFBD><EFBFBD> 3 <20>J<EFBFBD><4A><EFBFBD>Ԃ<EFBFBD><D482>ĕ<EFBFBD><C495>@<EFBFBD><EFBFBD>
<20>C<EFBFBD><43><EFBFBD><EFBFBD><EFBFBD>܂<EFBFBD><DC82><EFBFBD>B
4. 2<>s<EFBFBD>ڂ<EFBFBD> ---> <20>Ǝ<EFBFBD><C68E><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֈړ<D688><DA93><EFBFBD><EFBFBD>A<EFBFBD>X<EFBFBD>e<EFBFBD>b<EFBFBD>v 2 <20><><EFBFBD><EFBFBD> 3 <20><EFBFBD><EFBFBD>J<EFBFBD><EFBFBD><EFBFBD>Ԃ<EFBFBD><EFBFBD>ĕ<EFBFBD><EFBFBD>@
<20><EFBFBD><EFBFBD>C<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>܂<EFBFBD><EFBFBD><EFBFBD>B
---> <20><><EFBFBD><EFBFBD><EFBFBD>ɂ͊Ԉ<CD8A><D488><EFBFBD><EFBFBD><EFBFBD><EFBFBD>e<EFBFBD>L<EFBFBD>X<EFBFBD>g<EFBFBD><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD>ɂ͊Ԉ<CD8A><D488><EFBFBD><EFBFBD><EFBFBD><EFBFBD>e<EFBFBD>L<EFBFBD>X<EFBFBD>g<EFBFBD><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>܂<EFBFBD><DC82>B
@@ -145,7 +145,8 @@ NOTE:
!! NOTE: <20>ȉ<EFBFBD><C889>̃X<CC83>e<EFBFBD>b<EFBFBD>v<EFBFBD><76><EFBFBD><EFBFBD><EFBFBD>s<EFBFBD><73><EFBFBD><EFBFBD><EFBFBD>O<EFBFBD>ɁA<C981>܂<EFBFBD><DC82>S<EFBFBD>̂<EFBFBD><CC82>ǂ<EFBFBD><C782>ł<EFBFBD><C582><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!!
1. <20><><EFBFBD>b<EFBFBD>X<EFBFBD><58> 1.2 <20>ł<EFBFBD><C582><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E682A4> :q! <20><><EFBFBD>^<5E>C<EFBFBD>v<EFBFBD><76><EFBFBD>āA<C481><41><EFBFBD>̃`<60><><EFBFBD>[<5B>g<EFBFBD><67><EFBFBD>A<EFBFBD><41><EFBFBD><EFBFBD><EFBFBD>I<EFBFBD><49>
<20><><EFBFBD>܂<EFBFBD><DC82>B
<20><><EFBFBD>܂<EFBFBD><DC82>B<EFBFBD><EFBFBD><EFBFBD><EFBFBD>́A<EFBFBD>ʂ̒[<5B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͂<EFBFBD><CD82><EFBFBD><EFBFBD>ňȉ<C588><C889>̓<EFBFBD><CC93>e<EFBFBD><65><EFBFBD>s<EFBFBD><73><EFBFBD>Ă<EFBFBD><C482><EFBFBD><EFBFBD>܂<EFBFBD>
<20>܂<EFBFBD><DC82><EFBFBD><EFBFBD>B
2. <20>V<EFBFBD>F<EFBFBD><46><EFBFBD>v<EFBFBD><76><EFBFBD><EFBFBD><EFBFBD>v<EFBFBD>g<EFBFBD>ł<EFBFBD><C582>̃R<CC83>}<7D><><EFBFBD>h<EFBFBD><68><EFBFBD>^<5E>C<EFBFBD>v<EFBFBD><76><EFBFBD>܂<EFBFBD>: vim tutor <ENTER>
'vim'<27><> Vim <20>G<EFBFBD>f<EFBFBD>B<EFBFBD>^<5E><><EFBFBD>N<EFBFBD><4E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>R<EFBFBD>}<7D><><EFBFBD>h<EFBFBD>A'tutor' <20>͕ҏW<D28F><57><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>t<EFBFBD>@<40>C<EFBFBD><43><EFBFBD><EFBFBD>
@@ -155,7 +156,8 @@ NOTE:
4. <20>ύX<CF8D><58><EFBFBD>t<EFBFBD>@<40>C<EFBFBD><43><EFBFBD>ɕۑ<C995><DB91><EFBFBD><EFBFBD>܂<EFBFBD>: :wq <ENTER>
5. vimtutor <20><><EFBFBD>ēx<EFBFBD>N<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>A<EFBFBD>ȉ<EFBFBD><EFBFBD>̗v<EFBFBD><EFBFBD><EFBFBD>֐i<EFBFBD>݂܂<EFBFBD><EFBFBD><EFBFBD>B
5. <20>X<EFBFBD>e<EFBFBD>b<EFBFBD>v 1 <20><> vimtutuor <20><><EFBFBD>I<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> vimtutor <20><><EFBFBD>ēx<C493>N<EFBFBD><4E><EFBFBD><EFBFBD><EFBFBD>A<EFBFBD>ȉ<EFBFBD><C889><EFBFBD>
<20>v<EFBFBD><76><EFBFBD>֐i<D690>݂܂<DD82><DC82><EFBFBD>B
6. <20>ȏ<EFBFBD><C88F>̃X<CC83>e<EFBFBD>b<EFBFBD>v<EFBFBD><76><EFBFBD>ǂ<EFBFBD><C782>ŗ<EFBFBD><C597><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ł<EFBFBD><C582><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>s<EFBFBD><73><EFBFBD>܂<EFBFBD><DC82><EFBFBD>B
@@ -215,7 +217,7 @@ NOTE: <ESC>
2. <20>ȉ<EFBFBD><C889><EFBFBD> ---> <20>Ǝ<EFBFBD><C68E><EFBFBD><EFBFBD><EFBFBD>s<EFBFBD>ɃJ<C983>[<5B>\<5C><><EFBFBD><EFBFBD><EFBFBD>ړ<EFBFBD><DA93><EFBFBD><EFBFBD>܂<EFBFBD><DC82><EFBFBD>B
3. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̖<EFBFBD><CC96><EFBFBD><EFBFBD>փJ<D683>[<5B>\<5C><><EFBFBD><EFBFBD><EFBFBD>ړ<EFBFBD><DA93><EFBFBD><EFBFBD>܂<EFBFBD><DC82>傤(<28>ŏ<EFBFBD><C58F><EFBFBD> . <20>̌<EFBFBD><CC8C>ł<EFBFBD>)<29>B
3. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̖<EFBFBD><CC96><EFBFBD><EFBFBD>փJ<D683>[<5B>\<5C><><EFBFBD><EFBFBD><EFBFBD>ړ<EFBFBD><DA93><EFBFBD><EFBFBD>܂<EFBFBD><DC82>傤(<28>ŏ<EFBFBD><C58F><EFBFBD> <EFBFBD>B <20>̌<EFBFBD><CC8C>ł<EFBFBD>)<29>B
4. <20>s<EFBFBD><73><EFBFBD>܂ō폜<C58D><ED8F9C><EFBFBD><EFBFBD><EFBFBD>̂<EFBFBD> d$ <20>ƃ^<5E>C<EFBFBD>v<EFBFBD><76><EFBFBD>܂<EFBFBD><DC82><EFBFBD>B
@@ -259,13 +261,13 @@ NOTE:
1. <20>ȉ<EFBFBD><C889><EFBFBD> ---> <20>Ǝ<EFBFBD><C68E><EFBFBD><EFBFBD><EFBFBD>s<EFBFBD>̐擪<CC90>ɃJ<C983>[<5B>\<5C><><EFBFBD><EFBFBD><EFBFBD>ړ<EFBFBD><DA93><EFBFBD><EFBFBD>܂<EFBFBD><DC82>B
2. 2dw <20><><EFBFBD>^<5E>C<EFBFBD>v<EFBFBD><76><EFBFBD>ĒP<C492><50>2<EFBFBD>•<EFBFBD><C295><EFBFBD><EFBFBD><EFBFBD>܂<EFBFBD><EFBFBD>B
2. 2w <20><><EFBFBD>^<5E>C<EFBFBD>v<EFBFBD><76><EFBFBD>ĒP<C492><50>2<EFBFBD>•<EFBFBD><C295>O<EFBFBD>Ɉړ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>܂<EFBFBD><EFBFBD>B
3. 3e <20><><EFBFBD>^<5E>C<EFBFBD>v<EFBFBD><76><EFBFBD><EFBFBD>3<EFBFBD>–ڂ̒P<CC92><50><EFBFBD>̏I<CC8F>[<5B>Ɉړ<C988><DA93><EFBFBD><EFBFBD>܂<EFBFBD><DC82>B
4. 0 (<28>[<5B><>)<29><><EFBFBD>^<5E>C<EFBFBD>v<EFBFBD><76><EFBFBD>čs<C48D><73><EFBFBD>Ɉړ<C988><DA93><EFBFBD><EFBFBD>܂<EFBFBD><DC82>B
5. <20>X<EFBFBD>e<EFBFBD>b<EFBFBD>v 2 <20><> 3 <20><><EFBFBD><EFBFBD><E182A4><EFBFBD>l<EFBFBD>Ǝg<EFBFBD><EFBFBD><EFBFBD>ČJ<EFBFBD><EFBFBD><EFBFBD>Ԃ<EFBFBD><EFBFBD>܂<EFBFBD><EFBFBD>B
5. <20>X<EFBFBD>e<EFBFBD>b<EFBFBD>v 2 <20><> 3 <20><><EFBFBD><EFBFBD><E182A4><EFBFBD>l<EFBFBD><EFBFBD><EFBFBD>g<EFBFBD><EFBFBD><EFBFBD>ČJ<EFBFBD><EFBFBD><EFBFBD>Ԃ<EFBFBD><EFBFBD>܂<EFBFBD><EFBFBD>B
---> This is just a line with words you can move around in.
@@ -286,7 +288,7 @@ NOTE:
1. ---> <20>Ǝ<EFBFBD><C68E><EFBFBD><EFBFBD><EFBFBD>s<EFBFBD>̍s<CC8D><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɃJ<C983>[<5B>\<5C><><EFBFBD><EFBFBD><EFBFBD>ړ<EFBFBD><DA93><EFBFBD><EFBFBD>܂<EFBFBD><DC82><EFBFBD>B
2. UPPER CASE <20>̒P<CC92><50>2<EFBFBD>‚<EFBFBD> 2dw <20>ƃ^<5E>C<EFBFBD>v<EFBFBD><76><EFBFBD>č폜<C48D><ED8F9C><EFBFBD>܂<EFBFBD><DC82>B
2. UPPER CASE <20>̒P<CC92><50>2<EFBFBD>‚<EFBFBD> d2w <20>ƃ^<5E>C<EFBFBD>v<EFBFBD><76><EFBFBD>č폜<C48D><ED8F9C><EFBFBD>܂<EFBFBD><DC82>B
3. UPPER CASE <20>Ƃ<EFBFBD><C682><EFBFBD><EFBFBD>A<EFBFBD><41><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>P<EFBFBD><50><EFBFBD><EFBFBD><EFBFBD>A1<41>‚̃R<CC83>}<7D><><EFBFBD>h<EFBFBD>ƈقȂ<D982><C882>J<EFBFBD>E<EFBFBD><45><EFBFBD>g<EFBFBD><67><EFBFBD>w<EFBFBD><EFBFBD>A
<20>X<EFBFBD>e<EFBFBD>b<EFBFBD>v 1 <20><> 2 <20><><EFBFBD>J<EFBFBD><4A><EFBFBD>Ԃ<EFBFBD><D482>܂<EFBFBD><DC82>B
@@ -406,7 +408,7 @@ NOTE:
---> <20><><EFBFBD>̍<EFBFBD><CC8D><EFBFBD><EFBFBD>l<EFBFBD>͂<EFBFBD><CD82><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˁA<CB81><41><EFBFBD>̐l<CC90>͊<EFBFBD><CD8A>‚<EFBFBD><C282><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>L<EFBFBD>[<5B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!
---> <20><><EFBFBD>̍s<CC8D><73><EFBFBD><EFBFBD><EFBFBD>͂<EFBFBD><CD82><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɁA<C981><41><EFBFBD>̐l<CC90>͊<EFBFBD><CD8A>‚<EFBFBD><C282>Ԉ<EFBFBD><D488><EFBFBD><EFBFBD><EFBFBD><EFBFBD>L<EFBFBD>[<5B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>܂<EFBFBD><DC82><EFBFBD>!
5. <20><><EFBFBD><EFBFBD><EFBFBD>A<EFBFBD><41><EFBFBD>b<EFBFBD>X<EFBFBD><58> 3.2 <20>֐i<D690>݂܂<DD82><DC82><EFBFBD>B
5. <20><><EFBFBD><EFBFBD><EFBFBD>A<EFBFBD><41><EFBFBD>b<EFBFBD>X<EFBFBD><58> 3.3 <20>֐i<D690>݂܂<DD82><DC82><EFBFBD>B
NOTE: <20><><EFBFBD>ۂɎ<DB82><C98E><EFBFBD><EFBFBD>܂<EFBFBD><DC82><EFBFBD>B<EFBFBD><42><EFBFBD><EFBFBD><EFBFBD>Ċo<C48A><6F><EFBFBD><EFBFBD><E982BE><EFBFBD>ɂ͂<C982><CD82>Ȃ<EFBFBD><C882><EFBFBD><EFBFBD>ƁB
@@ -428,8 +430,8 @@ NOTE:
5. <20>ŏ<EFBFBD><C58F>̍s<CC8D><73><EFBFBD><EFBFBD><EFBFBD>̍s<CC8D>̗l<CC97>ɂȂ<C982><C882>܂ŃX<C583>e<EFBFBD>b<EFBFBD>v 3 <20><> 4 <20><><EFBFBD>J<EFBFBD><4A><EFBFBD>Ԃ<EFBFBD><D482>܂<EFBFBD><DC82>B
---> 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.
---> 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 <20>͒P<CD92><50><EFBFBD><EFBFBD><EFBFBD>ύX<CF8D><58><EFBFBD><EFBFBD><E982BE><EFBFBD>łȂ<C582><C882>A<EFBFBD>}<7D><><EFBFBD><EFBFBD><EFBFBD>s<EFBFBD><73><EFBFBD><EFBFBD>Ƃɒ<C682><C992>ӂ<EFBFBD><D382>܂<EFBFBD><DC82><EFBFBD>B
@@ -494,7 +496,7 @@ NOTE:
<20>ɍs<C98D>ԍ<EFBFBD><D48D><EFBFBD><EFBFBD>o<EFBFBD><6F><EFBFBD>Ă<EFBFBD><C482><EFBFBD><EFBFBD>܂<EFBFBD><DC82><EFBFBD>B
NOTE: <20><><EFBFBD>ʂ̉E<CC89><45><EFBFBD><EFBFBD><EFBFBD>ɃJ<C983>[<5B>\<5C><><EFBFBD>̈ʒu<CA92><75><EFBFBD>\<5C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ă<EFBFBD><C482><EFBFBD><E982A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>܂<EFBFBD><DC82><EFBFBD><EFBFBD>B<EFBFBD><42><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
'ruler' <20>I<EFBFBD>v<EFBFBD>V<EFBFBD><56><EFBFBD><EFBFBD>(<EFBFBD><EFBFBD><EFBFBD>b<EFBFBD>X<EFBFBD><EFBFBD>6<EFBFBD>Ő<EFBFBD><EFBFBD><EFBFBD>)<29><><EFBFBD>ݒ肷<DD92><EFBFBD>Ƃŕ\<5C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>܂<EFBFBD><DC82>B
'ruler' <20>I<EFBFBD>v<EFBFBD>V<EFBFBD><56><EFBFBD><EFBFBD>(:help 'ruler' <20><><EFBFBD>Q<EFBFBD><EFBFBD>)<29><><EFBFBD>ݒ肷<DD92><EFBFBD>Ƃŕ\<5C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>܂<EFBFBD><DC82>B
2. <20>ʼn<EFBFBD><C589>s<EFBFBD>Ɉړ<C988><DA93><EFBFBD><EFBFBD><EFBFBD>߂<EFBFBD> G <20><><EFBFBD>^<5E>C<EFBFBD>v<EFBFBD><76><EFBFBD>܂<EFBFBD><DC82><EFBFBD>B
<20>t<EFBFBD>@<40>C<EFBFBD><43><EFBFBD>̐擪<CC90>Ɉړ<C988><DA93><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɂ<EFBFBD> gg <20>ƃ^<5E>C<EFBFBD>v<EFBFBD><76><EFBFBD>܂<EFBFBD><DC82><EFBFBD>B
@@ -523,8 +525,8 @@ NOTE:
5. <20><><EFBFBD>̏ꏊ<CC8F>ɖ߂<C996><DF82>ɂ<EFBFBD> CTRL-O (Ctrl <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȃ<EFBFBD><C882><EFBFBD> o <20><><EFBFBD><EFBFBD><EFBFBD>^<5E>C<EFBFBD>v)<29><><EFBFBD>^<5E>C<EFBFBD>v<EFBFBD><76>
<20>܂<EFBFBD><DC82>B<EFBFBD><42><EFBFBD><EFBFBD><EFBFBD>ɖ߂<C996><DF82>ɂ͂<C982><CD82><EFBFBD><EFBFBD><EFBFBD><EFBFBD>J<EFBFBD><4A><EFBFBD>Ԃ<EFBFBD><D482>܂<EFBFBD><DC82>BCTRL-I <20>͑O<CD91><4F><EFBFBD><EFBFBD><EFBFBD>ł<EFBFBD><C582>B
Note: "errroor" <20><> error <20>ƃX<C683>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD>܂<EFBFBD>; errroor <20>͂<EFBFBD><CD82><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> error <20>ł<EFBFBD><C582>B
Note: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>t<EFBFBD>@<40>C<EFBFBD><43><EFBFBD>̏I<CC8F><49><EFBFBD><EFBFBD><EFBFBD>ɒB<C992><42><EFBFBD><EFBFBD><EFBFBD>ƁA<C681>I<EFBFBD>v<EFBFBD>V<EFBFBD><56><EFBFBD><EFBFBD> 'wrapscan' <20><><EFBFBD>ݒ肳<DD92><E882B3><EFBFBD>Ă<EFBFBD><C482><EFBFBD>
---> "errroor" <20><> error <20>ƃX<C683>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD>܂<EFBFBD>; errroor <20>͂<EFBFBD><CD82><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> error <20>ł<EFBFBD><C582>B
NOTE: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>t<EFBFBD>@<40>C<EFBFBD><43><EFBFBD>̏I<CC8F><49><EFBFBD><EFBFBD><EFBFBD>ɒB<C992><42><EFBFBD><EFBFBD><EFBFBD>ƁA<C681>I<EFBFBD>v<EFBFBD>V<EFBFBD><56><EFBFBD><EFBFBD> 'wrapscan' <20><><EFBFBD>ݒ肳<DD92><E882B3><EFBFBD>Ă<EFBFBD><C482><EFBFBD>
<20><EFBFBD>́A<CD81>t<EFBFBD>@<40>C<EFBFBD><43><EFBFBD>̐擪<CC90><E693AA><EFBFBD><EFBFBD><E78C9F><EFBFBD>𑱍s<F091B18D><73><EFBFBD>܂<EFBFBD><DC82>B
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -612,10 +614,10 @@ NOTE:
<20>V<EFBFBD>F<EFBFBD><46><EFBFBD>v<EFBFBD><76><EFBFBD><EFBFBD><EFBFBD>v<EFBFBD>g<EFBFBD>̂悤<CC82>Ƀf<C983>B<EFBFBD><42><EFBFBD>N<EFBFBD>g<EFBFBD><67><EFBFBD>̈ꗗ<CC88><EA9797><EFBFBD>\<5C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͂<EFBFBD><CD82>ł<EFBFBD><C582>B
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ls <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȃ<EFBFBD><C882>Ȃ<EFBFBD><C882><EFBFBD> :!dir <20><><EFBFBD>g<EFBFBD>p<EFBFBD><70><EFBFBD>܂<EFBFBD><DC82><EFBFBD>B
Note: <20><><EFBFBD>̕<EFBFBD><CC95>@<40>ɂ<EFBFBD><C982><EFBFBD><EFBFBD>Ă<EFBFBD><C482><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>R<EFBFBD>}<7D><><EFBFBD>h<EFBFBD><68><EFBFBD><EFBFBD><EFBFBD>s<EFBFBD><73><EFBFBD><EFBFBD>Ƃ<EFBFBD><C682>ł<EFBFBD><C582>܂<EFBFBD><DC82>B<EFBFBD><42><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
NOTE: <20><><EFBFBD>̕<EFBFBD><CC95>@<40>ɂ<EFBFBD><C982><EFBFBD><EFBFBD>Ă<EFBFBD><C482><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>R<EFBFBD>}<7D><><EFBFBD>h<EFBFBD><68><EFBFBD><EFBFBD><EFBFBD>s<EFBFBD><73><EFBFBD><EFBFBD>Ƃ<EFBFBD><C682>ł<EFBFBD><C582>܂<EFBFBD><DC82>B<EFBFBD><42><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<20><><EFBFBD>^<5E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>܂<EFBFBD><DC82>B
Note: <20>S<EFBFBD>Ă<EFBFBD> : <20>R<EFBFBD>}<7D><><EFBFBD>h<EFBFBD><68> <ENTER> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ďI<C48F><49><EFBFBD><EFBFBD><EFBFBD>Ȃ<EFBFBD><C882><EFBFBD><EFBFBD>΂Ȃ<CE82><C882>܂<EFBFBD><DC82><EFBFBD><EFBFBD>B
NOTE: <20>S<EFBFBD>Ă<EFBFBD> : <20>R<EFBFBD>}<7D><><EFBFBD>h<EFBFBD><68> <ENTER> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ďI<C48F><49><EFBFBD><EFBFBD><EFBFBD>Ȃ<EFBFBD><C882><EFBFBD><EFBFBD>΂Ȃ<CE82><C882>܂<EFBFBD><DC82><EFBFBD><EFBFBD>B
<20>ȍ~<7E>ł͂<C582><CD82>̂<EFBFBD><CC82>ƂɌ<C682><C98C>y<EFBFBD><79><EFBFBD>܂<EFBFBD><DC82><EFBFBD><EFBFBD>B
@@ -635,7 +637,7 @@ Note:
4. <20><><EFBFBD><EFBFBD><EFBFBD>ɂ<EFBFBD><C982><EFBFBD><EFBFBD>t<EFBFBD>@<40>C<EFBFBD><43><EFBFBD>S<EFBFBD>̂<EFBFBD> TEST <20>Ƃ<EFBFBD><C682><EFBFBD><EFBFBD><EFBFBD><EFBFBD>O<EFBFBD>ŕۑ<C595><DB91><EFBFBD><EFBFBD><EFBFBD><EFBFBD>܂<EFBFBD><DC82>B
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>x :!dir <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> :!ls <20>ƃ^<5E>C<EFBFBD>v<EFBFBD><76><EFBFBD>Ċm<C48A>F<EFBFBD><46><EFBFBD>Ă݂܂<DD82><DC82><EFBFBD>B
Note: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Vim <20><><EFBFBD>I<EFBFBD><49><EFBFBD><EFBFBD><EFBFBD>A<EFBFBD>t<EFBFBD>@<40>C<EFBFBD><43><EFBFBD><EFBFBD> TEST <20>Ƌ<EFBFBD><C68B>ɋN<C98B><4E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƁA<C681>ۑ<EFBFBD><DB91><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
NOTE: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Vim <20><><EFBFBD>I<EFBFBD><49><EFBFBD><EFBFBD><EFBFBD>A<EFBFBD>t<EFBFBD>@<40>C<EFBFBD><43><EFBFBD><EFBFBD> TEST <20>Ƌ<EFBFBD><C68B>ɋN<C98B><4E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƁA<C681>ۑ<EFBFBD><DB91><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<20>`<60><><EFBFBD>[<5B>g<EFBFBD><67><EFBFBD>A<EFBFBD><41><EFBFBD>̕<EFBFBD><CC95><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ł<EFBFBD><C582><EFBFBD><E382AA><EFBFBD>͂<EFBFBD><CD82>ł<EFBFBD><C582>B
5. <20><><EFBFBD><EFBFBD><EFBFBD>ɁA<C981><41><EFBFBD>̂悤<CC82>Ƀ^<5E>C<EFBFBD>v<EFBFBD><76><EFBFBD>ăt<C483>@<40>C<EFBFBD><43><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>܂<EFBFBD><DC82>傤(MS-DOS): :!del TEST
@@ -656,7 +658,7 @@ Note:
3. <20><><EFBFBD><EFBFBD> : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƁA<C681><41><EFBFBD>ʂ̍ʼn<CC8D><C589><EFBFBD><EFBFBD><EFBFBD> :'<,'> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>܂<EFBFBD><DC82>B
4. w TEST (TEST <20>͑<EFBFBD><CD91>݂<EFBFBD><DD82>Ȃ<EFBFBD><C882>t<EFBFBD>@<40>C<EFBFBD><43><EFBFBD><EFBFBD>)<29><><EFBFBD>^<5E>C<EFBFBD>v<EFBFBD><76><EFBFBD>܂<EFBFBD><DC82>B
Enter <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>O<EFBFBD><4F> :'<,'>w TEST <20>ƂȂ<C682><C882>Ă<EFBFBD><C482><EFBFBD>Ƃ<EFBFBD><C682>m<EFBFBD>F<EFBFBD><46><EFBFBD>ĉ<EFBFBD><C489><EFBFBD><EFBFBD><EFBFBD><EFBFBD>B
<ENTER> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>O<EFBFBD><4F> :'<,'>w TEST <20>ƂȂ<C682><C882>Ă<EFBFBD><C482><EFBFBD>Ƃ<EFBFBD><C682>m<EFBFBD>F<EFBFBD><46><EFBFBD>ĉ<EFBFBD><C489><EFBFBD><EFBFBD><EFBFBD><EFBFBD>B
5. Vim <20><> TEST <20>Ƃ<EFBFBD><C682><EFBFBD><EFBFBD>t<EFBFBD>@<40>C<EFBFBD><43><EFBFBD>ɑI<C991><49><EFBFBD><EFBFBD><EFBFBD><EFBFBD>s<EFBFBD><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ނł<DE82><C582><EFBFBD>B
!dir <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> !ls <20>ł<EFBFBD><C582><EFBFBD><EFBFBD><EFBFBD><EFBFBD>m<EFBFBD>F<EFBFBD><46><EFBFBD>܂<EFBFBD><DC82>B
@@ -747,7 +749,7 @@ NOTE:
3. <20>J<EFBFBD>[<5B>\<5C><><EFBFBD>̌<EFBFBD><CC8C><EFBFBD><EFBFBD>Ƀe<C983>L<EFBFBD>X<EFBFBD>g<EFBFBD><67><EFBFBD>lj<EFBFBD><C789><EFBFBD><EFBFBD><EFBFBD>߂<EFBFBD> a (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD>^<5E>C<EFBFBD>v<EFBFBD><76><EFBFBD>܂<EFBFBD><DC82>B
4. <20><><EFBFBD>̉<EFBFBD><CC89>̍s<CC8D>̂̂<EFBFBD>ȒP<EFBFBD><EFBFBD><EFBFBD>Ɋ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>܂<EFBFBD><EFBFBD>B<EFBFBD>}<7D><><EFBFBD><EFBFBD><EFBFBD>[<5B>h<EFBFBD>𔲂<EFBFBD><F094B282><EFBFBD><EFBFBD>ׂ<EFBFBD> <ESC> <20>ɉ<EFBFBD>
4. <20><><EFBFBD>̉<EFBFBD><CC89>̍s<CC8D>̂悤<CC82>ȒP<C892><50><EFBFBD>Ɋ<EFBFBD><C98A><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>܂<EFBFBD><DC82>B<EFBFBD>}<7D><><EFBFBD><EFBFBD><EFBFBD>[<5B>h<EFBFBD>𔲂<EFBFBD><F094B282><EFBFBD><EFBFBD>ׂ<EFBFBD> <ESC> <20><EFBFBD><EFBFBD><EFBFBD>
<20><><EFBFBD>܂<EFBFBD><DC82>B
5. e <20><><EFBFBD>g<EFBFBD><67><EFBFBD>Ď<EFBFBD><C48E>̕s<CC95><73><EFBFBD>S<EFBFBD>ȒP<C892><50><EFBFBD>ֈړ<D688><DA93><EFBFBD><EFBFBD>A<EFBFBD>X<EFBFBD>e<EFBFBD>b<EFBFBD>v 3 <20><> 4 <20><><EFBFBD>J<EFBFBD><4A><EFBFBD>Ԃ<EFBFBD><D482>܂<EFBFBD><DC82>B
@@ -755,7 +757,7 @@ NOTE:
---> 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 <20><> A <20>͓<EFBFBD><CD93><EFBFBD><EFBFBD>}<7D><><EFBFBD><EFBFBD><EFBFBD>[<5B>h<EFBFBD>ֈڂ<D688><DA82>܂<EFBFBD><DC82><EFBFBD><EFBFBD>A<EFBFBD><41><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>}<7D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʒu<CA92><75><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>قȂ<D982>
NOTE: a, i <20><> A <20>͓<EFBFBD><CD93><EFBFBD><EFBFBD>}<7D><><EFBFBD><EFBFBD><EFBFBD>[<5B>h<EFBFBD>ֈڂ<D688><DA82>܂<EFBFBD><DC82><EFBFBD><EFBFBD>A<EFBFBD><41><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>}<7D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʒu<CA92><75><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>قȂ<D982>
<20>܂<EFBFBD><DC82>B
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -803,7 +805,7 @@ NOTE:
---> a) this is the first item.
b)
Note: <20>P<EFBFBD><50><EFBFBD><EFBFBD>1<EFBFBD><31> yank <20><><EFBFBD><EFBFBD><EFBFBD>̂<EFBFBD> y <20><><EFBFBD>I<EFBFBD>y<EFBFBD><79><EFBFBD>[<5B>^<5E>Ƃ<EFBFBD><C682><EFBFBD> yw <20>Ƃ<EFBFBD><C682><EFBFBD>Ƃ<EFBFBD><C682>o<EFBFBD><6F><EFBFBD>܂<EFBFBD><DC82>B
NOTE: <20>P<EFBFBD><50><EFBFBD><EFBFBD>1<EFBFBD><31> yank <20><><EFBFBD><EFBFBD><EFBFBD>̂<EFBFBD> y <20><><EFBFBD>I<EFBFBD>y<EFBFBD><79><EFBFBD>[<5B>^<5E>Ƃ<EFBFBD><C682><EFBFBD> yw <20>Ƃ<EFBFBD><C682><EFBFBD>Ƃ<EFBFBD><C682>o<EFBFBD><6F><EFBFBD>܂<EFBFBD><DC82>B
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<20><><EFBFBD>b<EFBFBD>X<EFBFBD><58> 6.5: <20>I<EFBFBD>v<EFBFBD>V<EFBFBD><56><EFBFBD><EFBFBD><EFBFBD>̐ݒ<CC90>
@@ -824,8 +826,8 @@ NOTE:
6. <20><EFBFBD><E595B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̋<EFBFBD><CC8B>ʂ𖳌<CA82><F096B38C>ɂ<EFBFBD><C982><EFBFBD><EFBFBD>ɂ͎<C982><CD8E>̗l<CC97>ɓ<EFBFBD><C993>͂<EFBFBD><CD82>܂<EFBFBD>: :set noic
Note: <20>}<7D>b<EFBFBD>`<60>̋<EFBFBD><CC8B><EFBFBD><EFBFBD>\<5C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߂<EFBFBD><DF82>ɂ͎<C982><CD8E>̗l<CC97>ɓ<EFBFBD><C993>͂<EFBFBD><CD82>܂<EFBFBD>: :nohlsearch
Note: 1<>‚̌<C282><CC8C><EFBFBD><EFBFBD>R<EFBFBD>}<7D><><EFBFBD>h<EFBFBD><68><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E595B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̋<EFBFBD><CC8B>ʂ<EFBFBD><CA82><EFBFBD><EFBFBD>߂<EFBFBD><DF82><EFBFBD><EFBFBD>Ȃ<EFBFBD><C882>΁A<CE81>t<EFBFBD><74><EFBFBD>[<5B>Y<EFBFBD><59> \c
NOTE: <20>}<7D>b<EFBFBD>`<60>̋<EFBFBD><CC8B><EFBFBD><EFBFBD>\<5C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߂<EFBFBD><DF82>ɂ͎<C982><CD8E>̗l<CC97>ɓ<EFBFBD><C993>͂<EFBFBD><CD82>܂<EFBFBD>: :nohlsearch
NOTE: 1<>‚̌<C282><CC8C><EFBFBD><EFBFBD>R<EFBFBD>}<7D><><EFBFBD>h<EFBFBD><68><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E595B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̋<EFBFBD><CC8B>ʂ<EFBFBD><CA82><EFBFBD><EFBFBD>߂<EFBFBD><DF82><EFBFBD><EFBFBD>Ȃ<EFBFBD><C882>΁A<CE81>t<EFBFBD><74><EFBFBD>[<5B>Y<EFBFBD><59> \c
<20><><EFBFBD>g<EFBFBD>p<EFBFBD><70><EFBFBD>܂<EFBFBD>: /ignore\c <ENTER>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<09><><EFBFBD>b<EFBFBD>X<EFBFBD><58> 6 <20>v<EFBFBD><76>
@@ -878,7 +880,7 @@ Note: 1
** Vim <20>̓<EFBFBD><CC93><EFBFBD><EFBFBD>𔭊<EFBFBD><F094AD8A><EFBFBD><EFBFBD><EFBFBD> **
Vim <20>ɂ<EFBFBD> Vi <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̓<EFBFBD><CC93><EFBFBD><EFBFBD>𓥂܂<F093A582><DC82>Ă<EFBFBD><C482>܂<EFBFBD><DC82>A<EFBFBD><41><EFBFBD>̂قƂ<D982><C682>ǂ͏<C782><CD8F><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԃɂ<D482>
Vim <20>ɂ<EFBFBD> Vi <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̓<EFBFBD><CC93><EFBFBD><EFBFBD>𓥂܂<F093A582><DC82>Ă<EFBFBD><C482>܂<EFBFBD><DC82><EFBFBD><EFBFBD>A<EFBFBD><EFBFBD><EFBFBD>̂قƂ<EFBFBD><EFBFBD>ǂ͏<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԃɂ<EFBFBD>
<20>g<EFBFBD>p<EFBFBD>s<EFBFBD>‚ƂȂ<C682><C882>Ă<EFBFBD><C482>܂<EFBFBD><DC82>B<EFBFBD><42><EFBFBD><EFBFBD><E891BD><EFBFBD>̓<EFBFBD><CC93><EFBFBD><EFBFBD><EFBFBD><EFBFBD>g<EFBFBD><67><EFBFBD>͂<EFBFBD><CD82>߂<EFBFBD><DF82>ɂ<EFBFBD> "vimrc" <20>t<EFBFBD>@<40>C<EFBFBD><43>
<20><><EFBFBD><EFBFBD><EC90AC><EFBFBD>܂<EFBFBD><DC82>B

View File

@@ -38,10 +38,10 @@
3. 下へのキーを使って、レッスン1.2 に移動しましょう。
Note: 何をタイプしているか判らなくなったら、<ESC>を押してノーマルモードにし
NOTE: 何をタイプしているか判らなくなったら、<ESC>を押してノーマルモードにし
ます。それから入力しようとしていたコマンドを再入力しましょう。
Note: カーソルキーでも移動できます。しかし hjkl に一度慣れてしまえば、はるか
NOTE: カーソルキーでも移動できます。しかし hjkl に一度慣れてしまえば、はるか
に速く移動することができるでしょう。いやマジで!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -109,7 +109,7 @@ NOTE: 全てのレッスンを通じて、覚えようとするのではなく
---> この には 足りない テキスト ある。
---> この 行 には 幾つか 足りない テキスト が ある。
5. 挿入の方法がわかったら下のレッスン1の要約を見ましょう。
5. 挿入の方法がわかったらレッスン 1.5 へ進みましょう。
@@ -126,8 +126,8 @@ NOTE: 全てのレッスンを通じて、覚えようとするのではなく
3. テキストを追加し終えたら、 <ESC> を押してノーマルモードに戻りましょう。
4. 2行目の ---> と示された場所へ移動し、ステップ 2 から 3 繰り返して文法
修正しましょう。
4. 2行目の ---> と示された場所へ移動し、ステップ 2 から 3 繰り返して文法
修正しましょう。
---> ここには間違ったテキストがあり
ここには間違ったテキストがあります。
@@ -145,7 +145,8 @@ NOTE: 全てのレッスンを通じて、覚えようとするのではなく
!! NOTE: 以下のステップを実行する前に、まず全体を読んでください!!
1. レッスン 1.2 でやったように :q! をタイプして、このチュートリアルを終了
します。
します。あるいは、別の端末がある場合はそこで以下の内容を行ってもかまい
ません。
2. シェルプロンプトでこのコマンドをタイプします: vim tutor <ENTER>
'vim'が Vim エディタを起動するコマンド、'tutor' は編集したいファイルの
@@ -155,7 +156,8 @@ NOTE: 全てのレッスンを通じて、覚えようとするのではなく
4. 変更をファイルに保存します: :wq <ENTER>
5. vimtutor を再度起動し、以下の要約へ進みましょう。
5. ステップ 1 で vimtutuor を終了した場合は vimtutor を再度起動し、以下の
要約へ進みましょう。
6. 以上のステップを読んで理解した上でこれを実行しましょう。
@@ -215,7 +217,7 @@ NOTE: <ESC> キーを押すとノーマルモードに移行します。その
2. 以下の ---> と示された行にカーソルを移動しましょう。
3. 正しい文の末尾へカーソルを移動しましょう(最初の . の後です)。
3. 正しい文の末尾へカーソルを移動しましょう(最初の の後です)。
4. 行末まで削除するのに d$ とタイプしましょう。
@@ -259,13 +261,13 @@ NOTE: 冒険したい人は、ノーマルモードにてコマンドなしに
1. 以下の ---> と示された行の先頭にカーソルを移動します。
2. 2dw をタイプして単語2つ分削除します。
2. 2w をタイプして単語2つ分前に移動します。
3. 3e をタイプして3つ目の単語の終端に移動します。
4. 0 (ゼロ)をタイプして行頭に移動します。
5. ステップ 2 と 3 を違う数値使って繰り返します。
5. ステップ 2 と 3 を違う数値使って繰り返します。
---> This is just a line with words you can move around in.
@@ -286,7 +288,7 @@ NOTE: 冒険したい人は、ノーマルモードにてコマンドなしに
1. ---> と示された行の行頭部分にカーソルを移動しましょう。
2. UPPER CASE の単語2つを 2dw とタイプして削除します。
2. UPPER CASE の単語2つを d2w とタイプして削除します。
3. UPPER CASE という連続した単語を、1つのコマンドと異なるカウントを指定し、
ステップ 1 と 2 を繰り返します。
@@ -406,7 +408,7 @@ NOTE: オペレータ d とモーションの間にカウントを使った場
---> この合を人力した時ね、その人は幾つか問違ったキーを押しもした!
---> この行を入力した時に、その人は幾つか間違ったキーを押しました!
5. さぁ、レッスン 3.2 へ進みましょう。
5. さぁ、レッスン 3.3 へ進みましょう。
NOTE: 実際に試しましょう。決して覚えるだけにはしないこと。
@@ -428,8 +430,8 @@ NOTE: 実際に試しましょう。決して覚えるだけにはしないこ
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.
---> 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 は単語を変更するだけでなく、挿入も行えることに注意しましょう。
@@ -494,7 +496,7 @@ NOTE: タイプ中の間違いはバックスペースキーを使って直す
に行番号を覚えておきましょう。
NOTE: 画面の右下隅にカーソルの位置が表示されているかもしれません。これは
'ruler' オプション(レッスン6で説明)を設定することで表示されます。
'ruler' オプション(:help 'ruler' を参照)を設定することで表示されます。
2. 最下行に移動するために G をタイプしましょう。
ファイルの先頭に移動するには gg とタイプしましょう。
@@ -523,8 +525,8 @@ NOTE: 画面の右下隅にカーソルの位置が表示されているかも
5. 元の場所に戻るには CTRL-O (Ctrl を押し続けながら o 文字タイプ)をタイプし
ます。さらに戻るにはこれを繰り返します。CTRL-I は前方向です。
Note: "errroor" は error とスペルが違います; errroor はいわゆる error です。
Note: 検索がファイルの終わりに達すると、オプション 'wrapscan' が設定されている
---> "errroor" は error とスペルが違います; errroor はいわゆる error です。
NOTE: 検索がファイルの終わりに達すると、オプション 'wrapscan' が設定されている
場合は、ファイルの先頭から検索を続行します。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -612,10 +614,10 @@ NOTE: この機能は括弧が一致していないプログラムをデバッ
シェルプロンプトのようにディレクトリの一覧が表示されるはずです。
もしくは ls が動かないならば :!dir を使用しましょう。
Note: この方法によってあらゆるコマンドが実行することができます。もちろん引数
NOTE: この方法によってあらゆるコマンドが実行することができます。もちろん引数
も与えられます。
Note: 全ての : コマンドは <ENTER> を押して終了しなければなりません。
NOTE: 全ての : コマンドは <ENTER> を押して終了しなければなりません。
以降ではこのことに言及しません。
@@ -635,7 +637,7 @@ Note: 全ての : コマンドは <ENTER> を押して終了しなければな
4. これによりファイル全体が TEST という名前で保存されます。
もう一度 :!dir もしくは :!ls とタイプして確認してみましょう。
Note: ここで Vim を終了し、ファイル名 TEST と共に起動すると、保存した時の
NOTE: ここで Vim を終了し、ファイル名 TEST と共に起動すると、保存した時の
チュートリアルの複製ができ上がるはずです。
5. さらに、次のようにタイプしてファイルを消しましょう(MS-DOS): :!del TEST
@@ -656,7 +658,7 @@ Note: ここで Vim を終了し、ファイル名 TEST と共に起動すると
3. 文字 : を押すと、画面の最下部に :'<,'> が現れます。
4. w TEST (TEST は存在しないファイル名)をタイプします。
Enter を押す前に :'<,'>w TEST となっていることを確認して下さい。
<ENTER> を押す前に :'<,'>w TEST となっていることを確認して下さい。
5. Vim は TEST というファイルに選択された行を書き込むでしょう。
!dir もしくは !ls でそれを確認します。
@@ -747,7 +749,7 @@ NOTE: 外部コマンドの出力を読み込むことも出来ます。例え
3. カーソルの後ろにテキストを追加するために a (小文字) をタイプします。
4. その下の行のような単語に完成させます。挿入モードを抜ける為に <ESC>
4. その下の行のような単語に完成させます。挿入モードを抜ける為に <ESC>
します。
5. e を使って次の不完全な単語へ移動し、ステップ 3 と 4 を繰り返します。
@@ -755,7 +757,7 @@ NOTE: 外部コマンドの出力を読み込むことも出来ます。例え
---> 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 は同じ挿入モードへ移りますが、文字が挿入される位置だけが異なり
NOTE: a, i と A は同じ挿入モードへ移りますが、文字が挿入される位置だけが異なり
ます。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -803,7 +805,7 @@ NOTE: 置換モードは挿入モードに似ていますが、全てのタイ
---> a) this is the first item.
b)
Note: 単語を1つ yank するのに y をオペレータとして yw とすることも出来ます。
NOTE: 単語を1つ yank するのに y をオペレータとして yw とすることも出来ます。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
レッスン 6.5: オプションの設定
@@ -824,8 +826,8 @@ NOTE: 置換モードは挿入モードに似ていますが、全てのタイ
6. 大文字小文字の区別を無効にするには次の様に入力します: :set noic
Note: マッチの強調表示をやめるには次の様に入力します: :nohlsearch
Note: 1つの検索コマンドだけ大文字小文字の区別をやめたいならば、フレーズに \c
NOTE: マッチの強調表示をやめるには次の様に入力します: :nohlsearch
NOTE: 1つの検索コマンドだけ大文字小文字の区別をやめたいならば、フレーズに \c
を使用します: /ignore\c <ENTER>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
レッスン 6 要約
@@ -878,7 +880,7 @@ Note: 1つの検索コマンドだけ大文字小文字の区別をやめたい
** Vim の特徴を発揮する **
Vim には Vi よりも多くの特徴を踏まえていまが、そのほとんどは初期状態にて
Vim には Vi よりも多くの特徴を踏まえていまが、そのほとんどは初期状態にて
使用不可となっています。より多くの特徴を使いはじめるには "vimrc" ファイル
を作成します。

View File

@@ -694,7 +694,7 @@ vimobj = $(vimobj) \
!if ($(OSTYPE)==WIN32)
vimobj = $(vimobj) \
$(OBJDIR)\os_win32.obj $(OBJDIR)\os_mswin.obj
$(OBJDIR)\os_win32.obj $(OBJDIR)\os_mswin.obj $(OBJDIR)\winclip.obj
!elif ($(OSTYPE)==DOS16)
vimobj = $(vimobj) \
$(OBJDIR)\os_msdos.obj

View File

@@ -1,6 +1,6 @@
#
# Makefile for VIM on Win32, using Cygnus gcc
# Last updated by Dan Sharp. Last Change: 2012 Jun 30
# Last updated by Dan Sharp. Last Change: 2013 Feb 17
#
# Also read INSTALLpc.txt!
#
@@ -47,8 +47,8 @@
# (i386)
# USEDLL no or yes: set to yes to use the Runtime library DLL (no)
# For USEDLL=yes the cygwin1.dll is required to run Vim.
# "no" does not work with latest version of Cygwin, use
# Make_ming.mak instead. Or set CC to gcc-3 and add
# For "no" the mingw-gcc-g++ package or the mingw64-i686-gcc-g++
# package is required to complie Vim. Or set CC to gcc-3 and add
# -L/lib/w32api to EXTRA_LIBS.
# POSTSCRIPT no or yes: set to yes for PostScript printing (no)
# FEATURES TINY, SMALL, NORMAL, BIG or HUGE (BIG)
@@ -106,6 +106,13 @@ ifndef OPTIMIZE
OPTIMIZE = MAXSPEED
endif
# Link against the shared version of libstdc++ by default. Set
# STATIC_STDCPLUS to "yes" to link against static version instead.
ifndef STATIC_STDCPLUS
STATIC_STDCPLUS=no
endif
### See feature.h for a list of optionals.
### Any other defines can be included here.
@@ -114,9 +121,17 @@ DEFINES = -DWIN32 -DHAVE_PATHDEF -DFEAT_$(FEATURES) \
INCLUDES = -march=$(ARCH) -Iproto
#>>>>> name of the compiler and linker, name of lib directory
CROSS_COMPILE =
ifeq (yes, $(USEDLL))
# CROSS_COMPILE is used for the gvimext DLL.
CROSS_COMPILE = i686-pc-mingw32-
CC = gcc
RC = windres
else
# i686-pc-mingw32-gcc, i686-w64-mingw32-gcc or gcc-3 can be used.
CROSS_COMPILE = i686-pc-mingw32-
CC = $(CROSS_COMPILE)gcc
RC = $(CROSS_COMPILE)windres
endif
##############################
# DYNAMIC_PERL=yes and no both work
@@ -193,31 +208,45 @@ endif
##############################
ifdef RUBY
ifndef RUBY_VER
RUBY_VER=16
endif
ifndef RUBY_VER_LONG
RUBY_VER_LONG=1.6
endif
ifndef DYNAMIC_RUBY
DYNAMIC_RUBY = yes
DYNAMIC_RUBY=yes
endif
# Set default value
ifndef RUBY_VER
RUBY_VER = 16
endif
ifndef RUBY_VER_LONG
RUBY_VER_LONG = 1.6
endif
ifndef RUBY_API_VER
RUBY_API_VER = $(subst .,,$(RUBY_VER_LONG))
endif
ifndef RUBY_PLATFORM
ifeq ($(RUBY_VER), 16)
ifndef RUBY_PLATFORM
RUBY_PLATFORM = i586-mswin32
endif
ifndef RUBY_INSTALL_NAME
RUBY_INSTALL_NAME = mswin32-ruby$(RUBY_VER)
endif
else
ifndef RUBY_PLATFORM
ifneq ($(wildcard $(RUBY)/lib/ruby/$(RUBY_VER_LONG)/i386-mingw32),)
RUBY_PLATFORM = i386-mingw32
else
ifneq ($(wildcard $(RUBY)/lib/ruby/$(RUBY_VER_LONG)/x64-mingw32),)
RUBY_PLATFORM = x64-mingw32
else
RUBY_PLATFORM = i386-mswin32
endif
endif
endif
endif
ifndef RUBY_INSTALL_NAME
RUBY_INSTALL_NAME = msvcrt-ruby$(RUBY_VER)
ifeq ($(RUBY_VER), 16)
RUBY_INSTALL_NAME = mswin32-ruby$(RUBY_API_VER)
else
ifeq ($(ARCH),x86-64)
RUBY_INSTALL_NAME = x64-msvcrt-ruby$(RUBY_API_VER)
else
RUBY_INSTALL_NAME = msvcrt-ruby$(RUBY_API_VER)
endif
endif
endif
@@ -226,6 +255,10 @@ RUBY_19_OR_LATER = 1
endif
DEFINES += -DFEAT_RUBY
ifneq ($(findstring w64-mingw32,$(CC)),)
# A workaround for mingw-w64
DEFINES += -DHAVE_STRUCT_TIMESPEC -DHAVE_STRUCT_TIMEZONE
endif
INCLUDES += -I$(RUBY)/lib/ruby/$(RUBY_VER_LONG)/$(RUBY_PLATFORM)
ifdef RUBY_19_OR_LATER
INCLUDES += -I$(RUBY)/include/ruby-$(RUBY_VER_LONG) -I$(RUBY)/include/ruby-$(RUBY_VER_LONG)/$(RUBY_PLATFORM)
@@ -460,7 +493,12 @@ endif
ifeq (yes, $(OLE))
DEFINES += -DFEAT_OLE
EXTRA_OBJS += $(OUTDIR)/if_ole.o
EXTRA_LIBS += -loleaut32 -lstdc++
EXTRA_LIBS += -loleaut32
ifeq (yes, $(STATIC_STDCPLUS))
EXTRA_LIBS += -Wl,-Bstatic -lstdc++ -Wl,-Bdynamic
else
EXTRA_LIBS += -lstdc++
endif
endif
##############################
@@ -517,6 +555,7 @@ OBJ = \
$(OUTDIR)/option.o \
$(OUTDIR)/os_win32.o \
$(OUTDIR)/os_mswin.o \
$(OUTDIR)/winclip.o \
$(OUTDIR)/pathdef.o \
$(OUTDIR)/popupmnu.o \
$(OUTDIR)/quickfix.o \

View File

@@ -241,6 +241,7 @@ LINK32_OBJS= \
"$(INTDIR)/ops.obj" \
"$(INTDIR)/option.obj" \
"$(INTDIR)/os_mswin.obj" \
"$(INTDIR)/winclip.obj" \
"$(INTDIR)/os_win32.obj" \
"$(INTDIR)/popupmnu.obj" \
"$(INTDIR)/quickfix.obj" \
@@ -600,6 +601,10 @@ SOURCE=.\os_mswin.c
# End Source File
# Begin Source File
SOURCE=.\winclip.c
# End Source File
# Begin Source File
SOURCE=.\os_win32.c
# End Source File
# Begin Source File

View File

@@ -288,18 +288,26 @@ else
ifneq ($(wildcard $(RUBY)/lib/ruby/$(RUBY_VER_LONG)/i386-mingw32),)
RUBY_PLATFORM = i386-mingw32
else
ifneq ($(wildcard $(RUBY)/lib/ruby/$(RUBY_VER_LONG)/x64-mingw32),)
RUBY_PLATFORM = x64-mingw32
else
RUBY_PLATFORM = i386-mswin32
endif
endif
endif
endif
ifndef RUBY_INSTALL_NAME
ifeq ($(RUBY_VER), 16)
RUBY_INSTALL_NAME = mswin32-ruby$(RUBY_API_VER)
else
ifeq ($(ARCH),x86-64)
RUBY_INSTALL_NAME = x64-msvcrt-ruby$(RUBY_API_VER)
else
RUBY_INSTALL_NAME = msvcrt-ruby$(RUBY_API_VER)
endif
endif
endif
ifeq (19, $(word 1,$(sort 19 $(RUBY_VER))))
RUBY_19_OR_LATER = 1
@@ -523,6 +531,7 @@ OBJ = \
$(OUTDIR)/option.o \
$(OUTDIR)/os_win32.o \
$(OUTDIR)/os_mswin.o \
$(OUTDIR)/winclip.o \
$(OUTDIR)/pathdef.o \
$(OUTDIR)/popupmnu.o \
$(OUTDIR)/quickfix.o \

View File

@@ -543,6 +543,7 @@ OBJ = \
$(OUTDIR)\ops.obj \
$(OUTDIR)\option.obj \
$(OUTDIR)\os_mswin.obj \
$(OUTDIR)\winclip.obj \
$(OUTDIR)\os_win32.obj \
$(OUTDIR)\pathdef.obj \
$(OUTDIR)\popupmnu.obj \
@@ -1149,6 +1150,8 @@ $(OUTDIR)/ops.obj: $(OUTDIR) ops.c $(INCL)
$(OUTDIR)/os_mswin.obj: $(OUTDIR) os_mswin.c $(INCL)
$(OUTDIR)/winclip.obj: $(OUTDIR) winclip.c $(INCL)
$(OUTDIR)/os_win32.obj: $(OUTDIR) os_win32.c $(INCL) os_win32.h
$(OUTDIR)/os_w32exe.obj: $(OUTDIR) os_w32exe.c $(INCL)
@@ -1256,6 +1259,7 @@ proto.h: \
proto/ops.pro \
proto/option.pro \
proto/os_mswin.pro \
proto/winclip.pro \
proto/os_win32.pro \
proto/popupmnu.pro \
proto/quickfix.pro \

View File

@@ -107,6 +107,7 @@ ObjFiles = \
$(INTDIR)\os_win16.obj\
$(INTDIR)\os_msdos.obj\
$(INTDIR)\os_mswin.obj\
$(INTDIR)\winclip.obj\
$(INTDIR)\popupmnu.obj\
$(INTDIR)\quickfix.obj\
$(INTDIR)\regexp.obj\

View File

@@ -1345,6 +1345,8 @@ LINT_EXTRA = -DUSE_SNIFF -DHANGUL_INPUT -D"__attribute__(x)="
DEPEND_CFLAGS = -DPROTO -DDEPEND -DFEAT_GUI $(LINT_CFLAGS)
# Note: MZSCHEME_LIBS must come before LIBS, because LIBS adds -lm which is
# needed by racket.
ALL_LIB_DIRS = $(GUI_LIBS_DIR) $(X_LIBS_DIR)
ALL_LIBS = \
$(GUI_LIBS1) \
@@ -1353,10 +1355,10 @@ ALL_LIBS = \
$(X_PRE_LIBS) \
$(X_LIBS) \
$(X_EXTRA_LIBS) \
$(MZSCHEME_LIBS) \
$(LIBS) \
$(EXTRA_LIBS) \
$(LUA_LIBS) \
$(MZSCHEME_LIBS) \
$(PERL_LIBS) \
$(PYTHON_LIBS) \
$(PYTHON3_LIBS) \
@@ -1636,7 +1638,7 @@ PRO_AUTO = \
RSRC_DIR = os_mac_rsrc
PRO_MANUAL = os_amiga.pro os_msdos.pro os_win16.pro os_win32.pro \
os_mswin.pro os_beos.pro os_vms.pro $(PERL_PRO)
os_mswin.pro winclip.pro os_beos.pro os_vms.pro $(PERL_PRO)
# Default target is making the executable and tools
all: $(VIMTARGET) $(TOOLS) languages $(GUI_BUNDLE)
@@ -1790,6 +1792,10 @@ os_mswin.pro: os_mswin.c
$(CPROTO) -DWIN16 -DWIN32 -UHAVE_CONFIG_H $< > proto/$@
echo "/* vim: set ft=c : */" >> proto/$@
winclip.pro: winclip.c
$(CPROTO) -DWIN16 -DWIN32 -UHAVE_CONFIG_H $< > proto/$@
echo "/* vim: set ft=c : */" >> proto/$@
os_beos.pro: os_beos.c
$(CPROTO) -D__BEOS__ -UHAVE_CONFIG_H $< > proto/$@
echo "/* vim: set ft=c : */" >> proto/$@
@@ -2640,6 +2646,12 @@ objects/os_mac_conv.o: os_mac_conv.c
objects/os_unix.o: os_unix.c
$(CCC) -o $@ os_unix.c
objects/os_mswin.o: os_mswin.c
$(CCC) -o $@ os_mswin.c
objects/winclip.o: winclip.c
$(CCC) -o $@ winclip.c
objects/pathdef.o: auto/pathdef.c
$(CCC) -o $@ auto/pathdef.c
@@ -2968,6 +2980,10 @@ objects/version.o: version.c vim.h auto/config.h feature.h os_unix.h auto/osdef.
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
arabic.h version.h
objects/winclip.o: winclip.c vimio.h vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h ex_cmds.h proto.h globals.h farsi.h arabic.h \
proto/winclip.pro
objects/window.o: window.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \

42
src/auto/configure vendored
View File

@@ -4737,13 +4737,24 @@ $as_echo "no" >&6; }
if test -f "${vi_cv_path_lua_pfx}/bin/cyglua-${vi_cv_version_lua}.dll"; then
vi_cv_dll_name_lua="cyglua-${vi_cv_version_lua}.dll"
else
for i in 0 1 2 3 4 5 6 7 8 9; do
if test -f "${vi_cv_path_lua_pfx}/lib/liblua${vi_cv_version_lua}.so.$i"; then
LUA_SONAME=".$i"
break
multiarch=`dpkg-architecture -qDEB_HOST_MULTIARCH 2> /dev/null`
if test "X$multiarch" != "X"; then
lib_multiarch="lib/${multiarch}"
fi
for subdir in "${lib_multiarch}" lib64 lib; do
if test -z "$subdir"; then
continue
fi
for sover in "${vi_cv_version_lua}.so" "-${vi_cv_version_lua}.so" ".so.${vi_cv_version_lua}"; do
for i in .0 .1 .2 .3 .4 .5 .6 .7 .8 .9 ""; do
if test -f "${vi_cv_path_lua_pfx}/${subdir}/liblua${sover}$i"; then
sover2="$i"
break 3
fi
done
done
done
vi_cv_dll_name_lua="liblua${vi_cv_version_lua}.so$LUA_SONAME"
vi_cv_dll_name_lua="liblua${sover}$sover2"
fi
$as_echo "#define DYNAMIC_LUA 1" >>confdefs.h
@@ -8844,6 +8855,27 @@ fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CYGWIN environment" >&5
$as_echo_n "checking for CYGWIN environment... " >&6; }
case `uname` in
CYGWIN*) CYGWIN=yes; { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CYGWIN clipboard support" >&5
$as_echo_n "checking for CYGWIN clipboard support... " >&6; }
if test "x$with_x" = "xno" ; then
OS_EXTRA_SRC=winclip.c; OS_EXTRA_OBJ=objects/winclip.o
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
$as_echo "#define FEAT_CYGWIN_WIN32_CLIPBOARD 1" >>confdefs.h
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no - using X11" >&5
$as_echo "no - using X11" >&6; }
fi ;;
*) CYGWIN=no; { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; };;
esac
if test "$enable_hangulinput" = "yes"; then
if test "x$GUITYPE" = "xNONE"; then

View File

@@ -1,5 +1,5 @@
:: command to build big Vim with OLE, Perl, Python, Ruby and Tcl
SET VCDIR="C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\"
SET TOOLDIR=E:\
%VCDIR%nmake -f Make_mvc.mak GUI=yes OLE=yes PERL=E:\perl514 DYNAMIC_PERL=yes PERL_VER=514 PYTHON=%TOOLDIR%python27 DYNAMIC_PYTHON=yes PYTHON_VER=27 PYTHON3=%TOOLDIR%python32 DYNAMIC_PYTHON3=yes PYTHON3_VER=32 RUBY=%TOOLDIR%ruby192 DYNAMIC_RUBY=yes RUBY_VER=192 RUBY_VER_LONG=1.9.2 TCL=%TOOLDIR%tcl TCL_VER=85 TCL_VER_LONG=8.5 DYNAMIC_TCL=yes %1 IME=yes CSCOPE=yes
%VCDIR%nmake -f Make_mvc.mak GUI=yes OLE=yes PERL=E:\perl514 DYNAMIC_PERL=yes PERL_VER=514 PYTHON=%TOOLDIR%python27 DYNAMIC_PYTHON=yes PYTHON_VER=27 PYTHON3=%TOOLDIR%python32 DYNAMIC_PYTHON3=yes PYTHON3_VER=32 RUBY=%TOOLDIR%ruby192 DYNAMIC_RUBY=yes RUBY_VER=19 RUBY_VER_LONG=1.9.2 TCL=%TOOLDIR%tcl TCL_VER=85 TCL_VER_LONG=8.5 DYNAMIC_TCL=yes %1 IME=yes CSCOPE=yes

View File

@@ -82,6 +82,9 @@ open_buffer(read_stdin, eap, flags)
#ifdef FEAT_AUTOCMD
buf_T *old_curbuf;
#endif
#ifdef FEAT_SYN_HL
long old_tw = curbuf->b_p_tw;
#endif
/*
* The 'readonly' flag is only set when BF_NEVERLOADED is being reset.
@@ -113,6 +116,10 @@ open_buffer(read_stdin, eap, flags)
}
EMSG(_("E83: Cannot allocate buffer, using other one..."));
enter_buffer(curbuf);
#ifdef FEAT_SYN_HL
if (old_tw != curbuf->b_p_tw)
check_colorcolumn(curwin);
#endif
return FAIL;
}
@@ -641,6 +648,9 @@ free_buffer(buf)
buf_T *buf;
{
free_buffer_stuff(buf, TRUE);
#ifdef FEAT_EVAL
unref_var_dict(buf->b_vars);
#endif
#ifdef FEAT_LUA
lua_buffer_free(buf);
#endif
@@ -682,8 +692,8 @@ free_buffer_stuff(buf, free_options)
#endif
}
#ifdef FEAT_EVAL
vars_clear(&buf->b_vars.dv_hashtab); /* free all internal variables */
hash_init(&buf->b_vars.dv_hashtab);
vars_clear(&buf->b_vars->dv_hashtab); /* free all internal variables */
hash_init(&buf->b_vars->dv_hashtab);
#endif
#ifdef FEAT_USR_CMDS
uc_clear(&buf->b_ucmds); /* clear local user commands */
@@ -786,6 +796,9 @@ handle_swap_exists(old_curbuf)
# if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL)
cleanup_T cs;
# endif
#ifdef FEAT_SYN_HL
long old_tw = curbuf->b_p_tw;
#endif
if (swap_exists_action == SEA_QUIT)
{
@@ -804,7 +817,13 @@ handle_swap_exists(old_curbuf)
if (!buf_valid(old_curbuf) || old_curbuf == curbuf)
old_curbuf = buflist_new(NULL, NULL, 1L, BLN_CURBUF | BLN_LISTED);
if (old_curbuf != NULL)
{
enter_buffer(old_curbuf);
#ifdef FEAT_SYN_HL
if (old_tw != curbuf->b_p_tw)
check_colorcolumn(curwin);
#endif
}
/* If "old_curbuf" is NULL we are in big trouble here... */
# if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL)
@@ -912,7 +931,8 @@ do_bufdel(command, arg, addr_count, start_bnr, end_bnr, forceit)
if (!VIM_ISDIGIT(*arg))
{
p = skiptowhite_esc(arg);
bnr = buflist_findpat(arg, p, command == DOBUF_WIPE, FALSE);
bnr = buflist_findpat(arg, p, command == DOBUF_WIPE,
FALSE, FALSE);
if (bnr < 0) /* failed */
break;
arg = p;
@@ -1364,6 +1384,9 @@ set_curbuf(buf, action)
buf_T *prevbuf;
int unload = (action == DOBUF_UNLOAD || action == DOBUF_DEL
|| action == DOBUF_WIPE);
#ifdef FEAT_SYN_HL
long old_tw = curbuf->b_p_tw;
#endif
setpcmark();
if (!cmdmod.keepalt)
@@ -1430,12 +1453,19 @@ set_curbuf(buf, action)
# endif
)
#endif
{
enter_buffer(buf);
#ifdef FEAT_SYN_HL
if (old_tw != curbuf->b_p_tw)
check_colorcolumn(curwin);
#endif
}
}
/*
* Enter a new current buffer.
* Old curbuf must have been abandoned already!
* Old curbuf must have been abandoned already! This also means "curbuf" may
* be pointing to freed memory.
*/
void
enter_buffer(buf)
@@ -1667,6 +1697,17 @@ buflist_new(ffname, sfname, lnum, flags)
vim_free(ffname);
return NULL;
}
#ifdef FEAT_EVAL
/* init b: variables */
buf->b_vars = dict_alloc();
if (buf->b_vars == NULL)
{
vim_free(ffname);
vim_free(buf);
return NULL;
}
init_var_dict(buf->b_vars, &buf->b_bufvar, VAR_SCOPE);
#endif
}
if (ffname != NULL)
@@ -1751,10 +1792,6 @@ buflist_new(ffname, sfname, lnum, flags)
buf->b_wininfo->wi_fpos.lnum = lnum;
buf->b_wininfo->wi_win = curwin;
#ifdef FEAT_EVAL
/* init b: variables */
init_var_dict(&buf->b_vars, &buf->b_bufvar, VAR_SCOPE);
#endif
#ifdef FEAT_SYN_HL
hash_init(&buf->b_s.b_keywtab);
hash_init(&buf->b_s.b_keywtab_ic);
@@ -2103,18 +2140,20 @@ buflist_findname_stat(ffname, stp)
return NULL;
}
#if defined(FEAT_LISTCMDS) || defined(FEAT_EVAL) || defined(FEAT_PERL) || defined(PROTO)
#if defined(FEAT_LISTCMDS) || defined(FEAT_EVAL) || defined(FEAT_PERL) \
|| defined(PROTO)
/*
* Find file in buffer list by a regexp pattern.
* Return fnum of the found buffer.
* Return < 0 for error.
*/
int
buflist_findpat(pattern, pattern_end, unlisted, diffmode)
buflist_findpat(pattern, pattern_end, unlisted, diffmode, curtab_only)
char_u *pattern;
char_u *pattern_end; /* pointer to first char after pattern */
int unlisted; /* find unlisted buffers */
int diffmode UNUSED; /* find diff-mode buffers only */
int curtab_only; /* find buffers in current tab only */
{
buf_T *buf;
regprog_T *prog;
@@ -2182,6 +2221,23 @@ buflist_findpat(pattern, pattern_end, unlisted, diffmode)
#endif
&& buflist_match(prog, buf) != NULL)
{
if (curtab_only)
{
/* Ignore the match if the buffer is not open in
* the current tab. */
#ifdef FEAT_WINDOWS
win_T *wp;
for (wp = firstwin; wp != NULL; wp = wp->w_next)
if (wp->w_buffer == buf)
break;
if (wp == NULL)
continue;
#else
if (curwin->w_buffer != buf)
continue;
#endif
}
if (match >= 0) /* already found a match */
{
match = -2;
@@ -2355,12 +2411,7 @@ fname_match(prog, name)
if (name != NULL)
{
regmatch.regprog = prog;
#ifdef CASE_INSENSITIVE_FILENAME
regmatch.rm_ic = TRUE; /* Always ignore case */
#else
regmatch.rm_ic = FALSE; /* Never ignore case */
#endif
regmatch.rm_ic = p_fic; /* ignore case when 'fileignorecase' is set */
if (vim_regexec(&regmatch, name, (colnr_T)0))
match = name;
else

View File

@@ -284,7 +284,12 @@ buf_init_chartab(buf, global)
}
++c;
}
c = *p;
p = skip_to_option_part(p);
if (c == ',' && *p == NUL)
/* Trailing comma is not allowed. */
return FAIL;
}
}
chartab_initialized = TRUE;
@@ -939,19 +944,17 @@ vim_iswordp(p)
return GET_CHARTAB(curbuf, *p) != 0;
}
#if defined(FEAT_SYN_HL) || defined(PROTO)
int
vim_iswordp_buf(p, buf)
char_u *p;
buf_T *buf;
{
# ifdef FEAT_MBYTE
#ifdef FEAT_MBYTE
if (has_mbyte && MB_BYTE2LEN(*p) > 1)
return mb_get_class(p) >= 2;
# endif
#endif
return (GET_CHARTAB(buf, *p) != 0);
}
#endif
/*
* return TRUE if 'c' is a valid file-name character

View File

@@ -439,3 +439,6 @@
/* Define if fcntl()'s F_SETFD command knows about FD_CLOEXEC */
#undef HAVE_FD_CLOEXEC
/* Define if you want Cygwin to use the WIN32 clipboard, not compatible with X11*/
#undef FEAT_CYGWIN_WIN32_CLIPBOARD

View File

@@ -494,15 +494,26 @@ if test "$enable_luainterp" = "yes" -o "$enable_luainterp" = "dynamic"; then
if test -f "${vi_cv_path_lua_pfx}/bin/cyglua-${vi_cv_version_lua}.dll"; then
vi_cv_dll_name_lua="cyglua-${vi_cv_version_lua}.dll"
else
dnl Determine the SONAME for the current version, but fallback to
dnl liblua${vi_cv_version_lua}.so if no SONAME-versioned file is found.
for i in 0 1 2 3 4 5 6 7 8 9; do
if test -f "${vi_cv_path_lua_pfx}/lib/liblua${vi_cv_version_lua}.so.$i"; then
LUA_SONAME=".$i"
break
multiarch=`dpkg-architecture -qDEB_HOST_MULTIARCH 2> /dev/null`
if test "X$multiarch" != "X"; then
lib_multiarch="lib/${multiarch}"
fi
dnl Determine the sover for the current version, but fallback to
dnl liblua${vi_cv_version_lua}.so if no sover-versioned file is found.
for subdir in "${lib_multiarch}" lib64 lib; do
if test -z "$subdir"; then
continue
fi
for sover in "${vi_cv_version_lua}.so" "-${vi_cv_version_lua}.so" ".so.${vi_cv_version_lua}"; do
for i in .0 .1 .2 .3 .4 .5 .6 .7 .8 .9 ""; do
if test -f "${vi_cv_path_lua_pfx}/${subdir}/liblua${sover}$i"; then
sover2="$i"
break 3
fi
done
done
done
vi_cv_dll_name_lua="liblua${vi_cv_version_lua}.so$LUA_SONAME"
vi_cv_dll_name_lua="liblua${sover}$sover2"
fi
AC_DEFINE(DYNAMIC_LUA)
LUA_LIBS=""
@@ -2472,6 +2483,21 @@ dnl ---------------------------------------------------------------------------
dnl end of GUI-checking
dnl ---------------------------------------------------------------------------
dnl Check for Cygwin, which needs an extra source file if not using X11
AC_MSG_CHECKING(for CYGWIN environment)
case `uname` in
CYGWIN*) CYGWIN=yes; AC_MSG_RESULT(yes)
AC_MSG_CHECKING(for CYGWIN clipboard support)
if test "x$with_x" = "xno" ; then
OS_EXTRA_SRC=winclip.c; OS_EXTRA_OBJ=objects/winclip.o
AC_MSG_RESULT(yes)
AC_DEFINE(FEAT_CYGWIN_WIN32_CLIPBOARD)
else
AC_MSG_RESULT(no - using X11)
fi ;;
*) CYGWIN=no; AC_MSG_RESULT(no);;
esac
dnl Only really enable hangul input when GUI and XFONTSET are available
if test "$enable_hangulinput" = "yes"; then

View File

@@ -2152,7 +2152,7 @@ ex_diffgetput(eap)
i = atol((char *)eap->arg);
else
{
i = buflist_findpat(eap->arg, p, FALSE, TRUE);
i = buflist_findpat(eap->arg, p, FALSE, TRUE, FALSE);
if (i < 0)
return; /* error message already given */
}

View File

@@ -375,7 +375,7 @@ get_vim_env(void)
/* First get $VIMRUNTIME. If it's set, remove the tail. */
vim = getenv("VIMRUNTIME");
if (vim != NULL && *vim != 0)
if (vim != NULL && *vim != 0 && strlen(vim) < BUFSIZE)
{
strcpy(buf, vim);
remove_tail(buf);

View File

@@ -1592,6 +1592,21 @@ ins_redraw(ready)
# endif
last_cursormoved = curwin->w_cursor;
}
#endif
#ifdef FEAT_AUTOCMD
/* Trigger TextChangedI if b_changedtick differs. */
if (!ready && has_textchangedI()
&& last_changedtick != curbuf->b_changedtick
# ifdef FEAT_INS_EXPAND
&& !pum_visible()
# endif
)
{
if (last_changedtick_buf == curbuf)
apply_autocmds(EVENT_TEXTCHANGEDI, NULL, NULL, FALSE, curbuf);
last_changedtick_buf = curbuf;
last_changedtick = curbuf->b_changedtick;
}
#endif
if (must_redraw)
update_screen(0);
@@ -3380,6 +3395,9 @@ ins_compl_bs()
if (compl_leader != NULL)
{
ins_compl_new_leader();
if (compl_shown_match != NULL)
/* Make sure current match is not a hidden item. */
compl_curr_match = compl_shown_match;
return NUL;
}
return K_BS;
@@ -3846,6 +3864,12 @@ ins_compl_prep(c)
#endif
}
}
#ifdef FEAT_AUTOCMD
else if (ctrl_x_mode == CTRL_X_LOCAL_MSG)
/* Trigger the CompleteDone event to give scripts a chance to act
* upon the (possibly failed) completion. */
apply_autocmds(EVENT_COMPLETEDONE, NULL, NULL, FALSE, curbuf);
#endif
/* reset continue_* if we left expansion-mode, if we stay they'll be
* (re)set properly in ins_complete() */
@@ -4312,13 +4336,7 @@ ins_compl_get_exp(ini)
/* May change home directory back to "~". */
tilde_replace(compl_pattern, num_matches, matches);
ins_compl_add_matches(num_matches, matches,
#ifdef CASE_INSENSITIVE_FILENAME
TRUE
#else
FALSE
#endif
);
ins_compl_add_matches(num_matches, matches, p_fic || p_wic);
}
break;
@@ -9133,9 +9151,8 @@ ins_mousescroll(dir)
tpos = curwin->w_cursor;
# if defined(FEAT_GUI) && defined(FEAT_WINDOWS)
/* Currently the mouse coordinates are only known in the GUI. */
if (gui.in_use && mouse_row >= 0 && mouse_col >= 0)
# ifdef FEAT_WINDOWS
if (mouse_row >= 0 && mouse_col >= 0)
{
int row, col;
@@ -9185,7 +9202,7 @@ ins_mousescroll(dir)
# endif
}
# if defined(FEAT_GUI) && defined(FEAT_WINDOWS)
# ifdef FEAT_WINDOWS
curwin->w_redr_status = TRUE;
curwin = old_curwin;

View File

@@ -688,6 +688,9 @@ static void f_setreg __ARGS((typval_T *argvars, typval_T *rettv));
static void f_settabvar __ARGS((typval_T *argvars, typval_T *rettv));
static void f_settabwinvar __ARGS((typval_T *argvars, typval_T *rettv));
static void f_setwinvar __ARGS((typval_T *argvars, typval_T *rettv));
#ifdef FEAT_CRYPT
static void f_sha256 __ARGS((typval_T *argvars, typval_T *rettv));
#endif /* FEAT_CRYPT */
static void f_shellescape __ARGS((typval_T *argvars, typval_T *rettv));
static void f_shiftwidth __ARGS((typval_T *argvars, typval_T *rettv));
static void f_simplify __ARGS((typval_T *argvars, typval_T *rettv));
@@ -748,6 +751,7 @@ static void f_undotree __ARGS((typval_T *argvars, typval_T *rettv));
static void f_values __ARGS((typval_T *argvars, typval_T *rettv));
static void f_virtcol __ARGS((typval_T *argvars, typval_T *rettv));
static void f_visualmode __ARGS((typval_T *argvars, typval_T *rettv));
static void f_wildmenumode __ARGS((typval_T *argvars, typval_T *rettv));
static void f_winbufnr __ARGS((typval_T *argvars, typval_T *rettv));
static void f_wincol __ARGS((typval_T *argvars, typval_T *rettv));
static void f_winheight __ARGS((typval_T *argvars, typval_T *rettv));
@@ -784,7 +788,7 @@ static char_u *get_tv_string __ARGS((typval_T *varp));
static char_u *get_tv_string_buf __ARGS((typval_T *varp, char_u *buf));
static char_u *get_tv_string_buf_chk __ARGS((typval_T *varp, char_u *buf));
static dictitem_T *find_var __ARGS((char_u *name, hashtab_T **htp));
static dictitem_T *find_var_in_ht __ARGS((hashtab_T *ht, char_u *varname, int writing));
static dictitem_T *find_var_in_ht __ARGS((hashtab_T *ht, int htname, char_u *varname, int writing));
static hashtab_T *find_var_ht __ARGS((char_u *name, char_u **varname));
static void vars_clear_ext __ARGS((hashtab_T *ht, int free_val));
static void delete_var __ARGS((hashtab_T *ht, hashitem_T *hi));
@@ -914,7 +918,9 @@ eval_clear()
hash_clear(&compat_hashtab);
free_scriptnames();
# if defined(FEAT_CMDL_COMPL)
free_locales();
# endif
/* global variables */
vars_clear(&globvarht);
@@ -1558,8 +1564,6 @@ eval_expr(arg, nextcmd)
}
#if (defined(FEAT_USR_CMDS) && defined(FEAT_CMDL_COMPL)) \
|| defined(FEAT_COMPL_FUNC) || defined(PROTO)
/*
* Call some vimL function and return the result in "*rettv".
* Uses argv[argc] for the function arguments. Only Number and String
@@ -1637,6 +1641,33 @@ call_vim_function(func, argc, argv, safe, str_arg_only, rettv)
return ret;
}
/*
* Call vimL function "func" and return the result as a number.
* Returns -1 when calling the function fails.
* Uses argv[argc] for the function arguments.
*/
long
call_func_retnr(func, argc, argv, safe)
char_u *func;
int argc;
char_u **argv;
int safe; /* use the sandbox */
{
typval_T rettv;
long retval;
/* All arguments are passed as strings, no conversion to number. */
if (call_vim_function(func, argc, argv, safe, TRUE, &rettv) == FAIL)
return -1;
retval = get_tv_number_chk(&rettv, NULL);
clear_tv(&rettv);
return retval;
}
#if (defined(FEAT_USR_CMDS) && defined(FEAT_CMDL_COMPL)) \
|| defined(FEAT_COMPL_FUNC) || defined(PROTO)
# if (defined(FEAT_USR_CMDS) && defined(FEAT_CMDL_COMPL)) || defined(PROTO)
/*
* Call vimL function "func" and return the result as a string.
@@ -1663,32 +1694,6 @@ call_func_retstr(func, argc, argv, safe)
}
# endif
# if defined(FEAT_COMPL_FUNC) || defined(PROTO)
/*
* Call vimL function "func" and return the result as a number.
* Returns -1 when calling the function fails.
* Uses argv[argc] for the function arguments.
*/
long
call_func_retnr(func, argc, argv, safe)
char_u *func;
int argc;
char_u **argv;
int safe; /* use the sandbox */
{
typval_T rettv;
long retval;
/* All arguments are passed as strings, no conversion to number. */
if (call_vim_function(func, argc, argv, safe, TRUE, &rettv) == FAIL)
return -1;
retval = get_tv_number_chk(&rettv, NULL);
clear_tv(&rettv);
return retval;
}
# endif
/*
* Call vimL function "func" and return the result as a List.
* Uses argv[argc] for the function arguments.
@@ -1717,7 +1722,6 @@ call_func_retlist(func, argc, argv, safe)
}
#endif
/*
* Save the current function call pointer, and set it to NULL.
* Used when executing autocommands and for ":source".
@@ -2127,7 +2131,7 @@ list_buf_vars(first)
{
char_u numbuf[NUMBUFLEN];
list_hashtable_vars(&curbuf->b_vars.dv_hashtab, (char_u *)"b:",
list_hashtable_vars(&curbuf->b_vars->dv_hashtab, (char_u *)"b:",
TRUE, first);
sprintf((char *)numbuf, "%ld", (long)curbuf->b_changedtick);
@@ -2142,7 +2146,7 @@ list_buf_vars(first)
list_win_vars(first)
int *first;
{
list_hashtable_vars(&curwin->w_vars.dv_hashtab,
list_hashtable_vars(&curwin->w_vars->dv_hashtab,
(char_u *)"w:", TRUE, first);
}
@@ -2154,7 +2158,7 @@ list_win_vars(first)
list_tab_vars(first)
int *first;
{
list_hashtable_vars(&curtab->tp_vars.dv_hashtab,
list_hashtable_vars(&curtab->tp_vars->dv_hashtab,
(char_u *)"t:", TRUE, first);
}
#endif
@@ -3944,7 +3948,7 @@ get_user_var_name(xp, idx)
}
/* b: variables */
ht = &curbuf->b_vars.dv_hashtab;
ht = &curbuf->b_vars->dv_hashtab;
if (bdone < ht->ht_used)
{
if (bdone++ == 0)
@@ -3962,7 +3966,7 @@ get_user_var_name(xp, idx)
}
/* w: variables */
ht = &curwin->w_vars.dv_hashtab;
ht = &curwin->w_vars->dv_hashtab;
if (wdone < ht->ht_used)
{
if (wdone++ == 0)
@@ -3976,7 +3980,7 @@ get_user_var_name(xp, idx)
#ifdef FEAT_WINDOWS
/* t: variables */
ht = &curtab->tp_vars.dv_hashtab;
ht = &curtab->tp_vars->dv_hashtab;
if (tdone < ht->ht_used)
{
if (tdone++ == 0)
@@ -5160,6 +5164,16 @@ eval7(arg, rettv, evaluate, want_string)
ret = get_func_tv(s, len, rettv, arg,
curwin->w_cursor.lnum, curwin->w_cursor.lnum,
&len, evaluate, NULL);
/* If evaluate is FALSE rettv->v_type was not set in
* get_func_tv, but it's needed in handle_subscript() to parse
* what follows. So set it here. */
if (rettv->v_type == VAR_UNKNOWN && !evaluate && **arg == '(')
{
rettv->vval.v_string = vim_strsave((char_u *)"");
rettv->v_type = VAR_FUNC;
}
/* Stop the expression evaluation when immediately
* aborting on error, or when an interrupt occurred or
* an exception was thrown but not caught. */
@@ -6773,16 +6787,20 @@ garbage_collect()
/* buffer-local variables */
for (buf = firstbuf; buf != NULL; buf = buf->b_next)
set_ref_in_ht(&buf->b_vars.dv_hashtab, copyID);
set_ref_in_item(&buf->b_bufvar.di_tv, copyID);
/* window-local variables */
FOR_ALL_TAB_WINDOWS(tp, wp)
set_ref_in_ht(&wp->w_vars.dv_hashtab, copyID);
set_ref_in_item(&wp->w_winvar.di_tv, copyID);
#ifdef FEAT_AUTOCMD
if (aucmd_win != NULL)
set_ref_in_item(&aucmd_win->w_winvar.di_tv, copyID);
#endif
#ifdef FEAT_WINDOWS
/* tabpage-local variables */
for (tp = first_tabpage; tp != NULL; tp = tp->tp_next)
set_ref_in_ht(&tp->tp_vars.dv_hashtab, copyID);
set_ref_in_item(&tp->tp_winvar.di_tv, copyID);
#endif
/* global variables */
@@ -7912,7 +7930,7 @@ static struct fst
{"garbagecollect", 0, 1, f_garbagecollect},
{"get", 2, 3, f_get},
{"getbufline", 2, 3, f_getbufline},
{"getbufvar", 2, 2, f_getbufvar},
{"getbufvar", 2, 3, f_getbufvar},
{"getchar", 0, 1, f_getchar},
{"getcharmod", 0, 0, f_getcharmod},
{"getcmdline", 0, 0, f_getcmdline},
@@ -7932,11 +7950,11 @@ static struct fst
{"getqflist", 0, 0, f_getqflist},
{"getreg", 0, 2, f_getreg},
{"getregtype", 0, 1, f_getregtype},
{"gettabvar", 2, 2, f_gettabvar},
{"gettabwinvar", 3, 3, f_gettabwinvar},
{"gettabvar", 2, 3, f_gettabvar},
{"gettabwinvar", 3, 4, f_gettabwinvar},
{"getwinposx", 0, 0, f_getwinposx},
{"getwinposy", 0, 0, f_getwinposy},
{"getwinvar", 2, 2, f_getwinvar},
{"getwinvar", 2, 3, f_getwinvar},
{"glob", 1, 3, f_glob},
{"globpath", 2, 3, f_globpath},
{"has", 1, 1, f_has},
@@ -8055,6 +8073,9 @@ static struct fst
{"settabvar", 3, 3, f_settabvar},
{"settabwinvar", 4, 4, f_settabwinvar},
{"setwinvar", 3, 3, f_setwinvar},
#ifdef FEAT_CRYPT
{"sha256", 1, 1, f_sha256},
#endif
{"shellescape", 1, 2, f_shellescape},
{"shiftwidth", 0, 0, f_shiftwidth},
{"simplify", 1, 1, f_simplify},
@@ -8115,6 +8136,7 @@ static struct fst
{"values", 1, 1, f_values},
{"virtcol", 1, 1, f_virtcol},
{"visualmode", 0, 1, f_visualmode},
{"wildmenumode", 0, 0, f_wildmenumode},
{"winbufnr", 1, 1, f_winbufnr},
{"wincol", 0, 0, f_wincol},
{"winheight", 1, 1, f_winheight},
@@ -9001,14 +9023,15 @@ f_bufloaded(argvars, rettv)
rettv->vval.v_number = (buf != NULL && buf->b_ml.ml_mfp != NULL);
}
static buf_T *get_buf_tv __ARGS((typval_T *tv));
static buf_T *get_buf_tv __ARGS((typval_T *tv, int curtab_only));
/*
* Get buffer by number or pattern.
*/
static buf_T *
get_buf_tv(tv)
get_buf_tv(tv, curtab_only)
typval_T *tv;
int curtab_only;
{
char_u *name = tv->vval.v_string;
int save_magic;
@@ -9031,7 +9054,7 @@ get_buf_tv(tv)
p_cpo = (char_u *)"";
buf = buflist_findnr(buflist_findpat(name, name + STRLEN(name),
TRUE, FALSE));
TRUE, FALSE, curtab_only));
p_magic = save_magic;
p_cpo = save_cpo;
@@ -9055,7 +9078,7 @@ f_bufname(argvars, rettv)
(void)get_tv_number(&argvars[0]); /* issue errmsg if type error */
++emsg_off;
buf = get_buf_tv(&argvars[0]);
buf = get_buf_tv(&argvars[0], FALSE);
rettv->v_type = VAR_STRING;
if (buf != NULL && buf->b_fname != NULL)
rettv->vval.v_string = vim_strsave(buf->b_fname);
@@ -9078,7 +9101,7 @@ f_bufnr(argvars, rettv)
(void)get_tv_number(&argvars[0]); /* issue errmsg if type error */
++emsg_off;
buf = get_buf_tv(&argvars[0]);
buf = get_buf_tv(&argvars[0], FALSE);
--emsg_off;
/* If the buffer isn't found and the second argument is not zero create a
@@ -9113,7 +9136,7 @@ f_bufwinnr(argvars, rettv)
(void)get_tv_number(&argvars[0]); /* issue errmsg if type error */
++emsg_off;
buf = get_buf_tv(&argvars[0]);
buf = get_buf_tv(&argvars[0], TRUE);
#ifdef FEAT_WINDOWS
for (wp = firstwin; wp; wp = wp->w_next)
{
@@ -9324,7 +9347,7 @@ f_char2nr(argvars, rettv)
*/
static void
f_cindent(argvars, rettv)
typval_T *argvars;
typval_T *argvars UNUSED;
typval_T *rettv;
{
#ifdef FEAT_CINDENT
@@ -10373,9 +10396,9 @@ static void findfilendir __ARGS((typval_T *argvars, typval_T *rettv, int find_wh
static void
findfilendir(argvars, rettv, find_what)
typval_T *argvars;
typval_T *argvars UNUSED;
typval_T *rettv;
int find_what;
int find_what UNUSED;
{
#ifdef FEAT_SEARCHPATH
char_u *fname;
@@ -10745,9 +10768,9 @@ static void foldclosed_both __ARGS((typval_T *argvars, typval_T *rettv, int end)
*/
static void
foldclosed_both(argvars, rettv, end)
typval_T *argvars;
typval_T *argvars UNUSED;
typval_T *rettv;
int end;
int end UNUSED;
{
#ifdef FEAT_FOLDING
linenr_T lnum;
@@ -10796,8 +10819,8 @@ f_foldclosedend(argvars, rettv)
*/
static void
f_foldlevel(argvars, rettv)
typval_T *argvars;
typval_T *rettv;
typval_T *argvars UNUSED;
typval_T *rettv UNUSED;
{
#ifdef FEAT_FOLDING
linenr_T lnum;
@@ -11077,7 +11100,7 @@ f_getbufline(argvars, rettv)
(void)get_tv_number(&argvars[0]); /* issue errmsg if type error */
++emsg_off;
buf = get_buf_tv(&argvars[0]);
buf = get_buf_tv(&argvars[0], FALSE);
--emsg_off;
lnum = get_tv_lnum_buf(&argvars[1], buf);
@@ -11101,11 +11124,12 @@ f_getbufvar(argvars, rettv)
buf_T *save_curbuf;
char_u *varname;
dictitem_T *v;
int done = FALSE;
(void)get_tv_number(&argvars[0]); /* issue errmsg if type error */
varname = get_tv_string_chk(&argvars[1]);
++emsg_off;
buf = get_buf_tv(&argvars[0]);
buf = get_buf_tv(&argvars[0], FALSE);
rettv->v_type = VAR_STRING;
rettv->vval.v_string = NULL;
@@ -11117,29 +11141,37 @@ f_getbufvar(argvars, rettv)
curbuf = buf;
if (*varname == '&') /* buffer-local-option */
get_option_tv(&varname, rettv, TRUE);
{
if (get_option_tv(&varname, rettv, TRUE) == OK)
done = TRUE;
}
else if (STRCMP(varname, "changedtick") == 0)
{
rettv->v_type = VAR_NUMBER;
rettv->vval.v_number = curbuf->b_changedtick;
done = TRUE;
}
else
{
if (*varname == NUL)
/* let getbufvar({nr}, "") return the "b:" dictionary. The
* scope prefix before the NUL byte is required by
* find_var_in_ht(). */
varname = (char_u *)"b:" + 2;
/* look up the variable */
v = find_var_in_ht(&curbuf->b_vars.dv_hashtab, varname, FALSE);
/* Look up the variable. */
/* Let getbufvar({nr}, "") return the "b:" dictionary. */
v = find_var_in_ht(&curbuf->b_vars->dv_hashtab,
'b', varname, FALSE);
if (v != NULL)
{
copy_tv(&v->di_tv, rettv);
done = TRUE;
}
}
/* restore previous notion of curbuf */
curbuf = save_curbuf;
}
if (!done && argvars[2].v_type != VAR_UNKNOWN)
/* use the default value */
copy_tv(&argvars[2], rettv);
--emsg_off;
}
@@ -11214,27 +11246,7 @@ f_getchar(argvars, rettv)
rettv->vval.v_string = vim_strsave(temp);
#ifdef FEAT_MOUSE
if (n == K_LEFTMOUSE
|| n == K_LEFTMOUSE_NM
|| n == K_LEFTDRAG
|| n == K_LEFTRELEASE
|| n == K_LEFTRELEASE_NM
|| n == K_MIDDLEMOUSE
|| n == K_MIDDLEDRAG
|| n == K_MIDDLERELEASE
|| n == K_RIGHTMOUSE
|| n == K_RIGHTDRAG
|| n == K_RIGHTRELEASE
|| n == K_X1MOUSE
|| n == K_X1DRAG
|| n == K_X1RELEASE
|| n == K_X2MOUSE
|| n == K_X2DRAG
|| n == K_X2RELEASE
|| n == K_MOUSELEFT
|| n == K_MOUSERIGHT
|| n == K_MOUSEDOWN
|| n == K_MOUSEUP)
if (is_mouse_key(n))
{
int row = mouse_row;
int col = mouse_col;
@@ -11577,7 +11589,7 @@ f_getline(argvars, rettv)
static void
f_getmatches(argvars, rettv)
typval_T *argvars UNUSED;
typval_T *rettv;
typval_T *rettv UNUSED;
{
#ifdef FEAT_SEARCH_EXTRA
dict_T *dict;
@@ -11765,6 +11777,7 @@ f_gettabvar(argvars, rettv)
tabpage_T *tp;
dictitem_T *v;
char_u *varname;
int done = FALSE;
rettv->v_type = VAR_STRING;
rettv->vval.v_string = NULL;
@@ -11774,10 +11787,16 @@ f_gettabvar(argvars, rettv)
if (tp != NULL && varname != NULL)
{
/* look up the variable */
v = find_var_in_ht(&tp->tp_vars.dv_hashtab, varname, FALSE);
v = find_var_in_ht(&tp->tp_vars->dv_hashtab, 0, varname, FALSE);
if (v != NULL)
{
copy_tv(&v->di_tv, rettv);
done = TRUE;
}
}
if (!done && argvars[2].v_type != VAR_UNKNOWN)
copy_tv(&argvars[2], rettv);
}
/*
@@ -11888,6 +11907,7 @@ getwinvar(argvars, rettv, off)
char_u *varname;
dictitem_T *v;
tabpage_T *tp;
int done = FALSE;
#ifdef FEAT_WINDOWS
if (off == 1)
@@ -11911,18 +11931,20 @@ getwinvar(argvars, rettv, off)
curbuf = win->w_buffer;
if (*varname == '&') /* window-local-option */
get_option_tv(&varname, rettv, 1);
{
if (get_option_tv(&varname, rettv, 1) == OK)
done = TRUE;
}
else
{
if (*varname == NUL)
/* let getwinvar({nr}, "") return the "w:" dictionary. The
* scope prefix before the NUL byte is required by
* find_var_in_ht(). */
varname = (char_u *)"w:" + 2;
/* look up the variable */
v = find_var_in_ht(&win->w_vars.dv_hashtab, varname, FALSE);
/* Look up the variable. */
/* Let getwinvar({nr}, "") return the "w:" dictionary. */
v = find_var_in_ht(&win->w_vars->dv_hashtab, 'w', varname, FALSE);
if (v != NULL)
{
copy_tv(&v->di_tv, rettv);
done = TRUE;
}
}
/* restore previous notion of curwin */
@@ -11930,6 +11952,10 @@ getwinvar(argvars, rettv, off)
curbuf = curwin->w_buffer;
}
if (!done && argvars[off + 2].v_type != VAR_UNKNOWN)
/* use the default return value */
copy_tv(&argvars[off + 2], rettv);
--emsg_off;
}
@@ -13583,7 +13609,7 @@ f_line2byte(argvars, rettv)
*/
static void
f_lispindent(argvars, rettv)
typval_T *argvars;
typval_T *argvars UNUSED;
typval_T *rettv;
{
#ifdef FEAT_LISP
@@ -13977,8 +14003,8 @@ f_match(argvars, rettv)
*/
static void
f_matchadd(argvars, rettv)
typval_T *argvars;
typval_T *rettv;
typval_T *argvars UNUSED;
typval_T *rettv UNUSED;
{
#ifdef FEAT_SEARCH_EXTRA
char_u buf[NUMBUFLEN];
@@ -14015,7 +14041,7 @@ f_matchadd(argvars, rettv)
*/
static void
f_matcharg(argvars, rettv)
typval_T *argvars;
typval_T *argvars UNUSED;
typval_T *rettv;
{
if (rettv_list_alloc(rettv) == OK)
@@ -14047,8 +14073,8 @@ f_matcharg(argvars, rettv)
*/
static void
f_matchdelete(argvars, rettv)
typval_T *argvars;
typval_T *rettv;
typval_T *argvars UNUSED;
typval_T *rettv UNUSED;
{
#ifdef FEAT_SEARCH_EXTRA
rettv->vval.v_number = match_delete(curwin,
@@ -14318,7 +14344,7 @@ f_mode(argvars, rettv)
rettv->v_type = VAR_STRING;
}
#ifdef FEAT_MZSCHEME
#if defined(FEAT_MZSCHEME) || defined(PROTO)
/*
* "mzeval()" function
*/
@@ -14865,8 +14891,8 @@ list2proftime(arg, tm)
*/
static void
f_reltime(argvars, rettv)
typval_T *argvars;
typval_T *rettv;
typval_T *argvars UNUSED;
typval_T *rettv UNUSED;
{
#ifdef FEAT_RELTIME
proftime_T res;
@@ -14914,7 +14940,7 @@ f_reltime(argvars, rettv)
*/
static void
f_reltimestr(argvars, rettv)
typval_T *argvars;
typval_T *argvars UNUSED;
typval_T *rettv;
{
#ifdef FEAT_RELTIME
@@ -15959,7 +15985,7 @@ do_searchpair(spat, mpat, epat, dir, skip, flags, match_pos,
int flags; /* SP_SETPCMARK and other SP_ values */
pos_T *match_pos;
linenr_T lnum_stop; /* stop at this line if not zero */
long time_limit; /* stop after this many msec */
long time_limit UNUSED; /* stop after this many msec */
{
char_u *save_cpo;
char_u *pat, *pat2 = NULL, *pat3 = NULL;
@@ -16202,7 +16228,7 @@ f_setbufvar(argvars, rettv)
return;
(void)get_tv_number(&argvars[0]); /* issue errmsg if type error */
varname = get_tv_string_chk(&argvars[1]);
buf = get_buf_tv(&argvars[0]);
buf = get_buf_tv(&argvars[0], FALSE);
varp = &argvars[2];
if (buf != NULL && varname != NULL && varp != NULL)
@@ -16384,8 +16410,8 @@ f_setloclist(argvars, rettv)
*/
static void
f_setmatches(argvars, rettv)
typval_T *argvars;
typval_T *rettv;
typval_T *argvars UNUSED;
typval_T *rettv UNUSED;
{
#ifdef FEAT_SEARCH_EXTRA
list_T *l;
@@ -16710,6 +16736,24 @@ setwinvar(argvars, rettv, off)
}
}
#ifdef FEAT_CRYPT
/*
* "sha256({string})" function
*/
static void
f_sha256(argvars, rettv)
typval_T *argvars;
typval_T *rettv;
{
char_u *p;
p = get_tv_string(&argvars[0]);
rettv->vval.v_string = vim_strsave(
sha256_bytes(p, (int)STRLEN(p), NULL, 0));
rettv->v_type = VAR_STRING;
}
#endif /* FEAT_CRYPT */
/*
* "shellescape({string})" function
*/
@@ -18439,7 +18483,7 @@ f_type(argvars, rettv)
*/
static void
f_undofile(argvars, rettv)
typval_T *argvars;
typval_T *argvars UNUSED;
typval_T *rettv;
{
rettv->v_type = VAR_STRING;
@@ -18552,6 +18596,20 @@ f_visualmode(argvars, rettv)
#endif
}
/*
* "wildmenumode()" function
*/
static void
f_wildmenumode(argvars, rettv)
typval_T *argvars UNUSED;
typval_T *rettv UNUSED;
{
#ifdef FEAT_WILDMENU
if (wild_menu_showing)
rettv->vval.v_number = 1;
#endif
}
/*
* "winbufnr(nr)" function
*/
@@ -19994,16 +20052,17 @@ find_var(name, htp)
*htp = ht;
if (ht == NULL)
return NULL;
return find_var_in_ht(ht, varname, htp != NULL);
return find_var_in_ht(ht, *name, varname, htp != NULL);
}
/*
* Find variable "varname" in hashtab "ht".
* Find variable "varname" in hashtab "ht" with name "htname".
* Returns NULL if not found.
*/
static dictitem_T *
find_var_in_ht(ht, varname, writing)
find_var_in_ht(ht, htname, varname, writing)
hashtab_T *ht;
int htname;
char_u *varname;
int writing;
{
@@ -20012,7 +20071,7 @@ find_var_in_ht(ht, varname, writing)
if (*varname == NUL)
{
/* Must be something like "s:", otherwise "ht" would be NULL. */
switch (varname[-2])
switch (htname)
{
case 's': return &SCRIPT_SV(current_SID)->sv_var;
case 'g': return &globvars_var;
@@ -20087,12 +20146,12 @@ find_var_ht(name, varname)
|| vim_strchr(name + 2, AUTOLOAD_CHAR) != NULL)
return NULL;
if (*name == 'b') /* buffer variable */
return &curbuf->b_vars.dv_hashtab;
return &curbuf->b_vars->dv_hashtab;
if (*name == 'w') /* window variable */
return &curwin->w_vars.dv_hashtab;
return &curwin->w_vars->dv_hashtab;
#ifdef FEAT_WINDOWS
if (*name == 't') /* tab page variable */
return &curtab->tp_vars.dv_hashtab;
return &curtab->tp_vars->dv_hashtab;
#endif
if (*name == 'v') /* v: variable */
return &vimvarht;
@@ -20181,6 +20240,19 @@ init_var_dict(dict, dict_var, scope)
dict_var->di_key[0] = NUL;
}
/*
* Unreference a dictionary initialized by init_var_dict().
*/
void
unref_var_dict(dict)
dict_T *dict;
{
/* Now the dict needs to be freed if no one else is using it, go back to
* normal reference counting. */
dict->dv_refcount -= DO_NOT_FREE_CNT - 1;
dict_unref(dict);
}
/*
* Clean up a list of internal variables.
* Frees all allocated variables and the value they contain.
@@ -20329,7 +20401,7 @@ set_var(name, tv, copy)
EMSG2(_(e_illvar), name);
return;
}
v = find_var_in_ht(ht, varname, TRUE);
v = find_var_in_ht(ht, 0, varname, TRUE);
if (tv->v_type == VAR_FUNC && var_check_func_name(name, v == NULL))
return;
@@ -21140,6 +21212,9 @@ ex_function(eap)
if (arg[j] != NUL)
emsg_funcname((char *)e_invarg2, arg);
}
/* Disallow using the g: dict. */
if (fudi.fd_dict != NULL && fudi.fd_dict->dv_scope == VAR_DEF_SCOPE)
EMSG(_("E862: Cannot use g: here"));
}
/*

View File

@@ -415,8 +415,15 @@ ex_sort(eap)
}
*s = NUL;
/* Use last search pattern if sort pattern is empty. */
if (s == p + 1 && last_search_pat() != NULL)
if (s == p + 1)
{
if (last_search_pat() == NULL)
{
EMSG(_(e_noprevre));
goto sortend;
}
regmatch.regprog = vim_regcomp(last_search_pat(), RE_MAGIC);
}
else
regmatch.regprog = vim_regcomp(p + 1, RE_MAGIC);
if (regmatch.regprog == NULL)
@@ -2106,7 +2113,7 @@ read_viminfo_up_to_marks(virp, forceit, writing)
buf_T *buf;
#ifdef FEAT_CMDHIST
prepare_viminfo_history(forceit ? 9999 : 0);
prepare_viminfo_history(forceit ? 9999 : 0, writing);
#endif
eof = viminfo_readline(virp);
while (!eof && virp->vir_line[0] != '>')
@@ -2154,7 +2161,7 @@ read_viminfo_up_to_marks(virp, forceit, writing)
case '=':
case '@':
#ifdef FEAT_CMDHIST
eof = read_viminfo_history(virp);
eof = read_viminfo_history(virp, writing);
#else
eof = viminfo_readline(virp);
#endif
@@ -2175,7 +2182,8 @@ read_viminfo_up_to_marks(virp, forceit, writing)
#ifdef FEAT_CMDHIST
/* Finish reading history items. */
finish_viminfo_history();
if (!writing)
finish_viminfo_history();
#endif
/* Change file names to buffer numbers for fmarks. */
@@ -4764,8 +4772,8 @@ do_sub(eap)
* substitute may have inserted or
* deleted characters before the
* cursor. */
len_change = STRLEN(new_line)
- STRLEN(orig_line);
len_change = (int)STRLEN(new_line)
- (int)STRLEN(orig_line);
curwin->w_cursor.col += len_change;
ml_replace(lnum, new_line, FALSE);
}
@@ -4878,7 +4886,7 @@ do_sub(eap)
goto skip;
}
if (got_quit)
break;
goto skip;
}
/* Move the cursor to the start of the match, so that we can
@@ -5411,7 +5419,7 @@ ex_global(eap)
if (type == 'v')
smsg((char_u *)_("Pattern found in every line: %s"), pat);
else
smsg((char_u *)_(e_patnotf2), pat);
smsg((char_u *)_("Pattern not found: %s"), pat);
}
else
global_exe(cmd);

View File

@@ -1926,11 +1926,7 @@ do_arglist(str, what, after)
* Delete the items: use each item as a regexp and find a match in the
* argument list.
*/
#ifdef CASE_INSENSITIVE_FILENAME
regmatch.rm_ic = TRUE; /* Always ignore case */
#else
regmatch.rm_ic = FALSE; /* Never ignore case */
#endif
regmatch.rm_ic = p_fic; /* ignore case when 'fileignorecase' is set */
for (i = 0; i < new_ga.ga_len && !got_int; ++i)
{
p = ((char_u **)new_ga.ga_data)[i];

View File

@@ -1734,6 +1734,8 @@ do_one_cmd(cmdlinep, sourcing,
#ifdef FEAT_EVAL
/* avoid that a function call in 'statusline' does this */
&& !getline_equal(fgetline, cookie, get_func_line)
#endif
#ifdef FEAT_AUTOCMD
/* avoid that an autocommand, e.g. QuitPre, does this */
&& !getline_equal(fgetline, cookie, getnextac)
#endif
@@ -2643,7 +2645,8 @@ do_one_cmd(cmdlinep, sourcing,
while (p > ea.arg && vim_iswhite(p[-1]))
--p;
}
ea.line2 = buflist_findpat(ea.arg, p, (ea.argt & BUFUNL) != 0, FALSE);
ea.line2 = buflist_findpat(ea.arg, p, (ea.argt & BUFUNL) != 0,
FALSE, FALSE);
if (ea.line2 < 0) /* failed */
goto doend;
ea.addr_count = 1;
@@ -5375,7 +5378,9 @@ fail:
#endif
return FAIL;
}
#endif
#if defined(FEAT_USR_CMDS) || defined(FEAT_EVAL) || defined(PROTO)
/*
* List of names for completion for ":command" with the EXPAND_ flag.
* Must be alphabetical for completion.
@@ -5430,7 +5435,9 @@ static struct
{EXPAND_USER_VARS, "var"},
{0, NULL}
};
#endif
#if defined(FEAT_USR_CMDS) || defined(PROTO)
static void
uc_list(name, name_len)
char_u *name;
@@ -6375,10 +6382,12 @@ parse_compl_arg(value, vallen, complp, argt, compl_arg)
int vallen;
int *complp;
long *argt;
char_u **compl_arg;
char_u **compl_arg UNUSED;
{
char_u *arg = NULL;
# if defined(FEAT_EVAL) && defined(FEAT_CMDL_COMPL)
size_t arglen = 0;
# endif
int i;
int valend = vallen;
@@ -6388,7 +6397,9 @@ parse_compl_arg(value, vallen, complp, argt, compl_arg)
if (value[i] == ',')
{
arg = &value[i + 1];
# if defined(FEAT_EVAL) && defined(FEAT_CMDL_COMPL)
arglen = vallen - i - 1;
# endif
valend = i;
break;
}
@@ -6516,7 +6527,7 @@ ex_quit(eap)
}
#ifdef FEAT_AUTOCMD
apply_autocmds(EVENT_QUITPRE, NULL, NULL, FALSE, curbuf);
/* Refuse to quick when locked or when the buffer in the last window is
/* Refuse to quit when locked or when the buffer in the last window is
* being closed (can only happen in autocommands). */
if (curbuf_locked() || (curbuf->b_nwindows == 1 && curbuf->b_closing))
return;
@@ -6590,7 +6601,10 @@ ex_quit_all(eap)
return;
}
#ifdef FEAT_AUTOCMD
if (curbuf_locked())
apply_autocmds(EVENT_QUITPRE, NULL, NULL, FALSE, curbuf);
/* Refuse to quit when locked or when the buffer in the last window is
* being closed (can only happen in autocommands). */
if (curbuf_locked() || (curbuf->b_nwindows == 1 && curbuf->b_closing))
return;
#endif
@@ -6926,7 +6940,10 @@ ex_exit(eap)
return;
}
#ifdef FEAT_AUTOCMD
if (curbuf_locked())
apply_autocmds(EVENT_QUITPRE, NULL, NULL, FALSE, curbuf);
/* Refuse to quit when locked or when the buffer in the last window is
* being closed (can only happen in autocommands). */
if (curbuf_locked() || (curbuf->b_nwindows == 1 && curbuf->b_closing))
return;
#endif
@@ -10819,24 +10836,24 @@ put_view(fd, wp, add_edit, flagp, current_arg_idx)
{
if (fprintf(fd,
"let s:c = %ld - ((%ld * winwidth(0) + %ld) / %ld)",
(long)wp->w_cursor.col,
(long)(wp->w_cursor.col - wp->w_leftcol),
(long)wp->w_virtcol + 1,
(long)(wp->w_virtcol - wp->w_leftcol),
(long)wp->w_width / 2, (long)wp->w_width) < 0
|| put_eol(fd) == FAIL
|| put_line(fd, "if s:c > 0") == FAIL
|| fprintf(fd,
" exe 'normal! 0' . s:c . 'lzs' . (%ld - s:c) . 'l'",
(long)wp->w_cursor.col) < 0
" exe 'normal! ' . s:c . '|zs' . %ld . '|'",
(long)wp->w_virtcol + 1) < 0
|| put_eol(fd) == FAIL
|| put_line(fd, "else") == FAIL
|| fprintf(fd, " normal! 0%dl", wp->w_cursor.col) < 0
|| fprintf(fd, " normal! 0%d|", wp->w_virtcol + 1) < 0
|| put_eol(fd) == FAIL
|| put_line(fd, "endif") == FAIL)
return FAIL;
}
else
{
if (fprintf(fd, "normal! 0%dl", wp->w_cursor.col) < 0
if (fprintf(fd, "normal! 0%d|", wp->w_virtcol + 1) < 0
|| put_eol(fd) == FAIL)
return FAIL;
}

View File

@@ -56,6 +56,7 @@ static int new_cmdpos; /* position set by set_cmdline_pos() */
typedef struct hist_entry
{
int hisnum; /* identifying number */
int viminfo; /* when TRUE hisstr comes from viminfo */
char_u *hisstr; /* actual entry, separator char after the NUL */
} histentry_T;
@@ -67,7 +68,7 @@ static int hislen = 0; /* actual length of history tables */
static int hist_char2type __ARGS((int c));
static int in_history __ARGS((int, char_u *, int, int));
static int in_history __ARGS((int, char_u *, int, int, int));
# ifdef FEAT_EVAL
static int calc_hist_idx __ARGS((int histype, int num));
# endif
@@ -119,6 +120,9 @@ static int ExpandUserDefined __ARGS((expand_T *xp, regmatch_T *regmatch, int *nu
static int ExpandUserList __ARGS((expand_T *xp, int *num_file, char_u ***file));
# endif
#endif
#ifdef FEAT_CMDHIST
static void clear_hist_entry __ARGS((histentry_T *hisptr));
#endif
#ifdef FEAT_CMDWIN
static int ex_window __ARGS((void));
@@ -3653,19 +3657,16 @@ ExpandOne(xp, str, orig, options, mode)
{
for (i = 0; i < xp->xp_numfiles; ++i)
{
#ifdef CASE_INSENSITIVE_FILENAME
if (xp->xp_context == EXPAND_DIRECTORIES
if (p_fic && (xp->xp_context == EXPAND_DIRECTORIES
|| xp->xp_context == EXPAND_FILES
|| xp->xp_context == EXPAND_SHELLCMD
|| xp->xp_context == EXPAND_BUFFERS)
|| xp->xp_context == EXPAND_BUFFERS))
{
if (TOLOWER_LOC(xp->xp_files[i][len]) !=
TOLOWER_LOC(xp->xp_files[0][len]))
break;
}
else
#endif
if (xp->xp_files[i][len] != xp->xp_files[0][len])
else if (xp->xp_files[i][len] != xp->xp_files[0][len])
break;
}
if (i < xp->xp_numfiles)
@@ -5346,10 +5347,7 @@ init_history()
if (hisidx[type] < 0) /* there are no entries yet */
{
for (i = 0; i < newlen; ++i)
{
temp[i].hisnum = 0;
temp[i].hisstr = NULL;
}
clear_hist_entry(&temp[i]);
}
else if (newlen > hislen) /* array becomes bigger */
{
@@ -5357,10 +5355,7 @@ init_history()
temp[i] = history[type][i];
j = i;
for ( ; i <= newlen - (hislen - hisidx[type]); ++i)
{
temp[i].hisnum = 0;
temp[i].hisstr = NULL;
}
clear_hist_entry(&temp[i]);
for ( ; j < hislen; ++i, ++j)
temp[i] = history[type][j];
}
@@ -5388,16 +5383,26 @@ init_history()
}
}
static void
clear_hist_entry(hisptr)
histentry_T *hisptr;
{
hisptr->hisnum = 0;
hisptr->viminfo = FALSE;
hisptr->hisstr = NULL;
}
/*
* Check if command line 'str' is already in history.
* If 'move_to_front' is TRUE, matching entry is moved to end of history.
*/
static int
in_history(type, str, move_to_front, sep)
in_history(type, str, move_to_front, sep, writing)
int type;
char_u *str;
int move_to_front; /* Move the entry to the front if it exists */
int sep;
int writing; /* ignore entries read from viminfo */
{
int i;
int last_i = -1;
@@ -5415,6 +5420,7 @@ in_history(type, str, move_to_front, sep)
* well. */
p = history[type][i].hisstr;
if (STRCMP(str, p) == 0
&& !(writing && history[type][i].viminfo)
&& (type != HIST_SEARCH || sep == p[STRLEN(p) + 1]))
{
if (!move_to_front)
@@ -5436,8 +5442,9 @@ in_history(type, str, move_to_front, sep)
history[type][last_i] = history[type][i];
last_i = i;
}
history[type][i].hisstr = str;
history[type][i].hisnum = ++hisnum[type];
history[type][i].viminfo = FALSE;
history[type][i].hisstr = str;
return TRUE;
}
return FALSE;
@@ -5501,15 +5508,14 @@ add_to_history(histype, new_entry, in_map, sep)
/* Current line is from the same mapping, remove it */
hisptr = &history[HIST_SEARCH][hisidx[HIST_SEARCH]];
vim_free(hisptr->hisstr);
hisptr->hisstr = NULL;
hisptr->hisnum = 0;
clear_hist_entry(hisptr);
--hisnum[histype];
if (--hisidx[HIST_SEARCH] < 0)
hisidx[HIST_SEARCH] = hislen - 1;
}
last_maptick = -1;
}
if (!in_history(histype, new_entry, TRUE, sep))
if (!in_history(histype, new_entry, TRUE, sep, FALSE))
{
if (++hisidx[histype] == hislen)
hisidx[histype] = 0;
@@ -5523,6 +5529,7 @@ add_to_history(histype, new_entry, in_map, sep)
hisptr->hisstr[len + 1] = sep;
hisptr->hisnum = ++hisnum[histype];
hisptr->viminfo = FALSE;
if (histype == HIST_SEARCH && in_map)
last_maptick = maptick;
}
@@ -5712,8 +5719,7 @@ clr_history(histype)
for (i = hislen; i--;)
{
vim_free(hisptr->hisstr);
hisptr->hisnum = 0;
hisptr++->hisstr = NULL;
clear_hist_entry(hisptr);
}
hisidx[histype] = -1; /* mark history as cleared */
hisnum[histype] = 0; /* reset identifier counter */
@@ -5758,16 +5764,14 @@ del_history_entry(histype, str)
{
found = TRUE;
vim_free(hisptr->hisstr);
hisptr->hisstr = NULL;
hisptr->hisnum = 0;
clear_hist_entry(hisptr);
}
else
{
if (i != last)
{
history[histype][last] = *hisptr;
hisptr->hisstr = NULL;
hisptr->hisnum = 0;
clear_hist_entry(hisptr);
}
if (--last < 0)
last += hislen;
@@ -5811,8 +5815,7 @@ del_history_idx(histype, idx)
history[histype][i] = history[histype][j];
i = j;
}
history[histype][i].hisstr = NULL;
history[histype][i].hisnum = 0;
clear_hist_entry(&history[histype][i]);
if (--i < 0)
i += hislen;
hisidx[histype] = i;
@@ -6031,8 +6034,9 @@ hist_type2char(type, use_question)
* This allocates history arrays to store the read history lines.
*/
void
prepare_viminfo_history(asklen)
prepare_viminfo_history(asklen, writing)
int asklen;
int writing;
{
int i;
int num;
@@ -6040,18 +6044,17 @@ prepare_viminfo_history(asklen)
int len;
init_history();
viminfo_add_at_front = (asklen != 0);
viminfo_add_at_front = (asklen != 0 && !writing);
if (asklen > hislen)
asklen = hislen;
for (type = 0; type < HIST_COUNT; ++type)
{
/*
* Count the number of empty spaces in the history list. If there are
* more spaces available than we request, then fill them up.
*/
/* Count the number of empty spaces in the history list. Entries read
* from viminfo previously are also considered empty. If there are
* more spaces available than we request, then fill them up. */
for (i = 0, num = 0; i < hislen; i++)
if (history[type][i].hisstr == NULL)
if (history[type][i].hisstr == NULL || history[type][i].viminfo)
num++;
len = asklen;
if (num > len)
@@ -6073,8 +6076,9 @@ prepare_viminfo_history(asklen)
* new.
*/
int
read_viminfo_history(virp)
read_viminfo_history(virp, writing)
vir_T *virp;
int writing;
{
int type;
long_u len;
@@ -6090,7 +6094,7 @@ read_viminfo_history(virp)
int sep = (*val == ' ' ? NUL : *val);
if (!in_history(type, val + (type == HIST_SEARCH),
viminfo_add_at_front, sep))
viminfo_add_at_front, sep, writing))
{
/* Need to re-allocate to append the separator byte. */
len = STRLEN(val);
@@ -6120,6 +6124,9 @@ read_viminfo_history(virp)
return viminfo_readline(virp);
}
/*
* Finish reading history lines from viminfo. Not used when writing viminfo.
*/
void
finish_viminfo_history()
{
@@ -6130,7 +6137,7 @@ finish_viminfo_history()
for (type = 0; type < HIST_COUNT; ++type)
{
if (history[type] == NULL)
return;
continue;
idx = hisidx[type] + viminfo_hisidx[type];
if (idx >= hislen)
idx -= hislen;
@@ -6144,7 +6151,8 @@ finish_viminfo_history()
hisidx[type] = hislen - 1;
do
{
if (history[type][idx].hisstr != NULL)
if (history[type][idx].hisstr != NULL
|| history[type][idx].viminfo)
break;
if (++idx == hislen)
idx = 0;
@@ -6156,6 +6164,7 @@ finish_viminfo_history()
{
vim_free(history[type][idx].hisstr);
history[type][idx].hisstr = viminfo_history[type][i];
history[type][idx].viminfo = TRUE;
if (--idx < 0)
idx = hislen - 1;
}
@@ -6180,6 +6189,7 @@ write_viminfo_history(fp)
int num_saved;
char_u *p;
int c;
int round;
init_history();
if (hislen == 0)
@@ -6198,26 +6208,63 @@ write_viminfo_history(fp)
_("Input Line"));
if (num_saved > hislen)
num_saved = hislen;
i = hisidx[type];
if (i >= 0)
while (num_saved--)
{
p = history[type][i].hisstr;
if (p != NULL)
/*
* Merge typed and viminfo history:
* round 1: history of typed commands.
* round 2: history from recently read viminfo.
*/
for (round = 1; round <= 2; ++round)
{
if (round == 1)
/* start at newest entry, somewhere in the list */
i = hisidx[type];
else if (viminfo_hisidx[type] > 0)
/* start at newest entry, first in the list */
i = 0;
else
/* empty list */
i = -1;
if (i >= 0)
while (num_saved > 0
&& !(round == 2 && i >= viminfo_hisidx[type]))
{
fputc(hist_type2char(type, TRUE), fp);
/* For the search history: put the separator in the second
* column; use a space if there isn't one. */
if (type == HIST_SEARCH)
p = round == 1 ? history[type][i].hisstr
: viminfo_history[type][i];
if (p != NULL && (round == 2 || !history[type][i].viminfo))
{
c = p[STRLEN(p) + 1];
putc(c == NUL ? ' ' : c, fp);
--num_saved;
fputc(hist_type2char(type, TRUE), fp);
/* For the search history: put the separator in the
* second column; use a space if there isn't one. */
if (type == HIST_SEARCH)
{
c = p[STRLEN(p) + 1];
putc(c == NUL ? ' ' : c, fp);
}
viminfo_writestring(fp, p);
}
if (round == 1)
{
/* Decrement index, loop around and stop when back at
* the start. */
if (--i < 0)
i = hislen - 1;
if (i == hisidx[type])
break;
}
else
{
/* Increment index. Stop at the end in the while. */
++i;
}
viminfo_writestring(fp, p);
}
if (--i < 0)
i = hislen - 1;
}
}
for (i = 0; i < viminfo_hisidx[type]; ++i)
vim_free(viminfo_history[type][i]);
vim_free(viminfo_history[type]);
viminfo_history[type] = NULL;
viminfo_hisidx[type] = 0;
}
}
#endif /* FEAT_VIMINFO */

Some files were not shown because too many files have changed in this diff Show More