Compare commits

...

300 Commits

Author SHA1 Message Date
Bram Moolenaar
1d478a6242 patch 7.4.886
Problem:    Windows7: Switching screen buffer causes flicker when using
            system().
Solution:   Instead of actually switching screen buffer, duplicate the handle.
            (Yasuhiro Matsumoto)
2015-09-29 14:01:12 +02:00
Bram Moolenaar
c79a5452ac patch 7.4.885
Problem:    When doing an upwards search without wildcards the search fails if
            the initial directory doesn't exist.
Solution:   Fix the non-wildcard case. (Stefan Kempf)
2015-09-29 12:08:42 +02:00
Bram Moolenaar
ca63501fbc Update various runtime files. 2015-09-25 20:34:21 +02:00
Bram Moolenaar
c1d20998d7 patch 7.4.884
Problem:    Travis also builds on a tag push.
Solution:   Filter out tag pushes. (Kenichi Ito)
2015-09-25 20:30:58 +02:00
Bram Moolenaar
10ad1d90da patch 7.4.883
Problem:    Block-mode replace works characterwise instead of blockwise after
            column 147. (Issue #422)
Solution:   Set Visual mode. (Christian Brabandt)
2015-09-25 19:35:02 +02:00
Bram Moolenaar
5f1fea28f5 patch 7.4.882
Problem:    When leaving the command line window with CTRL-C while a
            completion menu is displayed the menu isn't removed.
Solution:   Force a screen update. (Hirohito Higashi)
2015-09-25 19:12:22 +02:00
Bram Moolenaar
0a777ab989 patch 7.4.881
Problem:    Test 49 fails.
Solution:   Add line number to check of call stack.
2015-09-25 17:56:50 +02:00
Bram Moolenaar
02d803fc0c patch 7.4.880
Problem:    No build and coverage status.
Solution:   Add links to the README file. (Christian Brabandt)
2015-09-25 17:50:22 +02:00
Bram Moolenaar
1d6328ca00 patch 7.4.879
Problem:    Can't see line numbers in nested function calls.
Solution:   Add line number to the file name. (Alberto Fanjul)
2015-09-25 17:37:16 +02:00
Bram Moolenaar
69b67f7e77 patch 7.4.878
Problem:    Coverity error for clearing only one byte of struct.
Solution:   Clear the whole struct. (Dominique Pelle)
2015-09-25 16:59:47 +02:00
Bram Moolenaar
4d0c7bc74a patch 7.4.877
Problem:    ":find" sometimes fails. (Excanoe)
Solution:   Compare current characters instead of previous ones.
2015-09-25 16:38:01 +02:00
Bram Moolenaar
b0262f239e patch 7.4.876
Problem:    Windows7: when using vim.exe with msys or msys2, conhost.exe
            (console window provider on Windows7) will freeze or crash.
Solution:   Make original screen buffer active, before executing external
            program.  And when the program is finished, revert to vim's one.
            (Taro Muraoka)
2015-09-25 15:28:38 +02:00
Bram Moolenaar
3fe076f0fe patch 7.4.875
Problem:    Not obvious how to contribute.
Solution:   Add a remark about CONTRIBUTING.md to README.md
2015-09-25 15:00:56 +02:00
Bram Moolenaar
8919554fe1 patch 7.4.874
Problem:    MS-Windows: When Vim runs inside another application, the size
            isn't right.
Solution:   When in child mode compute the size differently. (Agorgianitis
            Loukas)
2015-09-25 15:00:31 +02:00
Bram Moolenaar
b8603882b1 patch 7.4.873
Problem:    Compiler warning for unused variable. (Tony Mechelynck)
Solution:   Remove the variable.  Also fix int vs long_u mixup.
2015-09-17 23:20:42 +02:00
Bram Moolenaar
0600f3511c patch 7.4.872
Problem:    Not using CI services available.
Solution:   Add configuration files for travis and appveyor. (PR #401)
2015-09-15 19:18:18 +02:00
Bram Moolenaar
7b256fe744 patch 7.4.871
Problem:    Vim leaks memory, when 'wildignore' filters out all matches.
Solution:   Free the files array when it becomes empty.
2015-09-15 19:05:59 +02:00
Bram Moolenaar
2455c4ede8 patch 7.4.870
Problem:    May get into an invalid state when using getchar() in an
            expression mapping.
Solution:   Anticipate mod_mask to change. (idea by Yukihiro Nakadaira)
2015-09-15 18:29:39 +02:00
Bram Moolenaar
3b59755862 patch 7.4.869
Problem:    MS-Windows: scrolling may cause text to disappear when using an
            Intel GPU.
Solution:   Call GetPixel(). (Yohei Endo)
2015-09-15 17:58:29 +02:00
Bram Moolenaar
54f018cd59 patch 7.4.868
Problem:    'smarttab' is also effective when 'paste' is enabled. (Alexander
            Monakov)
Solution:   Disable 'smarttab' when 'paste' is set. (Christian Brabandt)
            Do the same for 'expandtab'.
2015-09-15 17:30:40 +02:00
Bram Moolenaar
9534680731 patch 7.4.867
Problem:    Can't build on MS-Windows. (Taro Muraoka)
Solution:   Adjust #ifdef.
2015-09-15 15:57:29 +02:00
Bram Moolenaar
93c88e0f6a patch 7.4.866
Problem:    Crash when changing the 'tags' option from a remote command.
            (Benjamin Fritz)
Solution:   Instead of executing messages immediately, use a queue, like for
            netbeans. (James Kolb)
2015-09-15 14:12:05 +02:00
Bram Moolenaar
ed84b76021 patch 7.4.865
Problem:    Compiler warning for uninitialized variable.
Solution:   Initialize.
2015-09-09 22:35:29 +02:00
Bram Moolenaar
e906c50207 patch 7.4.864
Problem:    Tiny build fails.
Solution:   Put qf_ items inside #ifdef.
2015-09-09 21:10:39 +02:00
Bram Moolenaar
43335ea394 patch 7.4.863
Problem:    plines_nofill() used without the diff feature.
Solution:   Define PLINES_NOFILL().
2015-09-09 20:59:37 +02:00
Bram Moolenaar
5325b9bbae patch 7.4.862
Problem:    Still problems with pango_shape_full() not available.
Solution:   Change AC_TRY_COMPILE to AC_TRY_LINK.
2015-09-09 20:27:02 +02:00
Bram Moolenaar
12969c04fe Update documentation and syntax files. 2015-09-08 23:36:10 +02:00
Bram Moolenaar
3cbe0c01ad patch 7.4.861
Problem:    pango_shape_full() is not always available.
Solution:   Add a configure check.
2015-09-08 20:00:22 +02:00
Bram Moolenaar
a122b5e98a patch 7.4.860
Problem:    Filetype detection is outdated.
Solution:   Include all recent and not-so-recent changes.
2015-09-08 19:13:51 +02:00
Bram Moolenaar
d8986fd914 patch 7.4.859
Problem:    Vim doesn't recognize all htmldjango files.
Solution:   Recognize a comment. (Daniel Hahler, PR #410)
2015-09-08 19:10:55 +02:00
Bram Moolenaar
aa23b37942 patch 7.4.858
Problem:    It's a bit clumsy to execute a command on a list of matches.
Solution:   Add the ":ldo", ":lfdo", ":cdo" and ":cfdo" commands. (Yegappan
            Lakshmanan)
2015-09-08 18:46:31 +02:00
Bram Moolenaar
4a4b821085 patch 7.4.857
Problem:    Dragging the current tab with the mouse doesn't work properly.
Solution:   Take the current tabpage index into account. (Hirohito Higashi)
2015-09-08 17:50:41 +02:00
Bram Moolenaar
a09a2c5857 patch 7.4.856
Problem:    "zt" still doesn't work well with filler lines. (Gary Johnson)
Solution:   Check for filler lines above the cursor. (Christian Brabandt)
2015-09-08 17:31:59 +02:00
Bram Moolenaar
7e2ec008f5 patch 7.4.855
Problem:    GTK: font glitches for combining characters
Solution:   Use pango_shape_full() instead of pango_shape(). (luchr, PR #393)
2015-09-08 16:31:06 +02:00
Bram Moolenaar
b58988b832 patch 7.4.854
Problem:    Missing information about runtime files.
Solution:   Add section about runtime files. (Christian Brabandt)
2015-09-01 21:25:44 +02:00
Bram Moolenaar
cf619daa8e patch 7.4.853
Problem:    "zt" in diff mode does not always work properly. (Gary Johnson)
Solution:   Don't count filler lines twice. (Christian Brabandt)
2015-09-01 20:53:24 +02:00
Bram Moolenaar
ac360bf2ca patch 7.4.852
Problem:    On MS-Windows console Vim uses ANSI APIs for keyboard input and
            console output, it cannot input/output Unicode characters.
Solution:   Use Unicode APIs for console I/O. (Ken Takata, Yasuhiro Matsumoto)
2015-09-01 20:31:20 +02:00
Bram Moolenaar
615942452e patch 7.4.851
Problem:    Saving and restoring the console buffer does not work properly.
Solution:   Instead of ReadConsoleOutputA/WriteConsoleOutputA use
            CreateConsoleScreenBuffer and SetConsoleActiveScreenBuffer.
            (Ken Takata)
2015-09-01 20:23:37 +02:00
Bram Moolenaar
544780248b patch 7.4.850
Problem:    <Esc> does not show up.
Solution:   Use &gt; and &lt;. (Kazunobu Kuriyama)
2015-09-01 19:50:09 +02:00
Bram Moolenaar
8b5f65a527 patch 7.4.849
Problem:    Moving the cursor in Insert mode starts new undo sequence.
Solution:   Add CTRL-G U to keep the undo sequence for the following cursor
            movement command. (Christian Brabandt)
2015-09-01 19:26:12 +02:00
Bram Moolenaar
5adfea1ac6 patch 7.4.848
Problem:    CTRL-A on hex number in Visual block mode is incorrect.
Solution:   Account for the "0x". (Hirohito Higashi)
2015-09-01 18:51:39 +02:00
Bram Moolenaar
8667d66ca9 patch 7.4.847
Problem:    "vi)d" may leave a character behind.
Solution:   Skip over multi-byte character. (Christian Brabandt)
2015-09-01 18:27:49 +02:00
Bram Moolenaar
6017f3799d patch 7.4.846
Problem:    Some GitHub users don't know how to use issues.
Solution:   Add a file that explains the basics of contributing.
2015-09-01 17:50:48 +02:00
Bram Moolenaar
5df1ed2de3 patch 7.4.845
Problem:    Compiler warning for possible loss of data.
Solution:   Add a type cast. (Erich Ritz)
2015-09-01 16:25:34 +02:00
Bram Moolenaar
37a8de17d4 patch 7.4.844
Problem:    When '#' is in 'isident' the is# comparator doesn't work.
Solution:   Don't use vim_isIDc(). (Yasuhiro Matsumoto)
2015-09-01 16:05:00 +02:00
Bram Moolenaar
d43f0951bc patch 7.4.843
Problem:    Still possible to go beyond the end of a string.
Solution:   Check for NUL also in second string. (Dominique Pelle)
2015-08-27 22:30:47 +02:00
Bram Moolenaar
cdf0442d00 patch 7.4.842
Problem:    Sending too many messages to close the balloon.
Solution:   Only send a WM_CLOSE message. (Jurgen Kramer)
2015-08-27 22:25:10 +02:00
Bram Moolenaar
5ea87a0496 patch 7.4.841
Problem:    Can't compile without the multi-byte feature. (John Marriott)
Solution:   Add more #ifdef's.
2015-08-26 23:24:09 +02:00
Bram Moolenaar
8e5f5b47c2 patch 7.4.840
Problem:    Tooltip window stays open.
Solution:   Send a WM_CLOSE message. (Jurgen Kramer)
2015-08-26 23:12:38 +02:00
Bram Moolenaar
6ed535dbc0 patch 7.4.839
Problem:    Compiler warning on 64-bit system.
Solution:   Add cast to int. (Mike Williams)
2015-08-26 23:01:21 +02:00
Bram Moolenaar
8060687905 patch 7.4.838
Problem:    Can't compile without the crypt feature. (John Marriott)
Solution:   Add #ifdef.
2015-08-25 21:27:35 +02:00
Bram Moolenaar
88774fdd23 Updated runtime files and Italian messages. 2015-08-25 19:52:04 +02:00
Bram Moolenaar
80ce282107 patch 7.4.837
Problem:    Compiler warning with MSVC compiler when using +sniff.
Solution:   Use Sleep() instead of _sleep(). (Tux)
2015-08-25 19:49:50 +02:00
Bram Moolenaar
0a38dd29d6 patch 7.4.836
Problem:    Accessing unitinialized memory.
Solution:   Add missing calls to init_tv(). (Dominique Pelle)
2015-08-25 16:49:01 +02:00
Bram Moolenaar
f6470c288c patch 7.4.835
Problem:    Comparing utf-8 sequences does not handle different byte sizes
            correctly.
Solution:   Get the byte size of each character. (Dominique Pelle)
2015-08-25 16:31:40 +02:00
Bram Moolenaar
7e47d1ac6a patch 7.4.834
Problem:    gettabvar() doesn't work after Vim start. (Szymon Wrozynski)
Solution:   Handle first window in tab still being NULL. (Christian Brabandt)
2015-08-25 16:19:05 +02:00
Bram Moolenaar
e68c25c677 patch 7.4.833
Problem:    More side effects of ":set all&" are missing. (Björn Linse)
Solution:   Call didset_options() and add didset_options2() to collect more
            side effects to take care of.  Still not everything...
2015-08-25 15:39:55 +02:00
Bram Moolenaar
be83b73ddb patch 7.4.832
Problem:    $HOME in  is expanded too early.
Solution:   Skip over  when expanding environment names.
2015-08-25 14:21:19 +02:00
Bram Moolenaar
3f188935ec patch 7.4.831
Problem:    When expanding  on the command line and encountering an
            error, the command is executed anyway.
Solution:   Bail out when an error is detected.
2015-08-25 13:57:04 +02:00
Bram Moolenaar
b341dda575 patch 7.4.830
Problem:    Resetting 'encoding' when doing ":set all&" causes problems.
            (Bjorn Linse) Display is not updated.
Solution:   Do not reset 'encoding'. Do a full redraw.
2015-08-25 12:56:31 +02:00
Bram Moolenaar
7fb7d34caf patch 7.4.829
Problem:    Crash when clicking in beval balloon. (Travis Lebsock)
Solution:   Use PostMessage() instead of DestroyWindow(). (Raymond Ko, PR 298)
2015-08-25 12:21:32 +02:00
Bram Moolenaar
670acbc70f patch 7.4.828
Problem:    Crash when using "syn keyword x c". (Dominique Pelle)
Solution:   Initialize the keyword tabble. (Raymond Ko, PR 397)
2015-08-25 11:58:36 +02:00
Bram Moolenaar
8cba8ba3e0 patch 7.4.827
Problem:    Not all test targets are in the Makefile.
Solution:   Add the missing targets.
2015-08-18 13:48:54 +02:00
Bram Moolenaar
3cfd5289ca patch 7.4.826
Problem:    Compiler warnings and errors.
Solution:   Make it build properly without the multi-byte feature.
2015-08-13 23:28:43 +02:00
Bram Moolenaar
1560d07045 patch 7.4.825
Problem:    Invalid memory access for ":syn keyword x a[".
Solution:   Do not skip over the NUL. (Dominique Pelle)
2015-08-13 22:53:29 +02:00
Bram Moolenaar
8e8b486727 patch 7.4.824
Problem:    Can't compile without the multi-byte feature. (John Marriott)
Solution:   Add #ifdef.
2015-08-12 22:56:58 +02:00
Bram Moolenaar
fc39ecf8de Update runtime files. 2015-08-11 20:34:49 +02:00
Bram Moolenaar
25c2f6783a patch 7.4.823
Problem:    Cursor moves after CTRL-A on alphabetic character.
Solution:   (Hirohito Higashi, test by Christian Brabandt)
2015-08-11 19:36:42 +02:00
Bram Moolenaar
cde8854730 patch 7.4.822
Problem:    More problems reported by coverity.
Solution:   Avoid the warnings. (Christian Brabandt)
2015-08-11 19:14:00 +02:00
Bram Moolenaar
bd8539aac3 patch 7.4.821
Problem:    Coverity reports a few problems.
Solution:   Avoid the warnings. (Christian Brabandt)
2015-08-11 18:53:03 +02:00
Bram Moolenaar
8fee878fe2 patch 7.4.820
Problem:    Invalid memory access in file_pat_to_reg_pat.
Solution:   Avoid looking before the start of a string. (Dominique Pelle)
2015-08-11 18:45:48 +02:00
Bram Moolenaar
901e58c243 patch 7.4.819
Problem:    Beeping when running the tests.
Solution:   Fix 41 beeps. (Roland Eggner)
2015-08-11 18:33:48 +02:00
Bram Moolenaar
89c17c02ca patch 7.4.818
Problem:    'linebreak' breaks c% if the last Visual selection was block.
            (Chris Morganiser, Issue 389)
Solution:   Handle Visual block mode differently. (Christian Brabandt)
2015-08-11 17:46:36 +02:00
Bram Moolenaar
2288afed42 patch 7.4.817
Problem:    Invalid memory access in file_pat_to_reg_pat().
Solution:   Use vim_isspace() instead of checking for a space only. (Dominique
            Pelle)
2015-08-11 16:20:05 +02:00
Bram Moolenaar
dd8a5286e1 patch 7.4.816
Problem:    Invalid memory access when doing ":fun X(".
Solution:   Check for missing ')'. (Dominique Pelle)
2015-08-11 15:54:52 +02:00
Bram Moolenaar
73627d0bd4 patch 7.4.815
Problem:    Invalid memory access when doing ":call g:".
Solution:   Check for an empty name. (Dominique Pelle)
2015-08-11 15:46:09 +02:00
Bram Moolenaar
382197865c patch 7.4.814
Problem:    Illegal memory access with "sy match a fold".
Solution:   Check for empty string. (Dominique Pelle)
2015-08-11 15:27:13 +02:00
Bram Moolenaar
dbd24b5967 patch 7.4.813
Problem:    It is not possible to save and restore character search state.
Solution:   Add getcharsearch() and setcharsearch().  (James McCoy)
2015-08-11 14:26:19 +02:00
Bram Moolenaar
fbd302ff38 patch 7.4.812
Problem:    Gcc sanitizer complains about using a NULL pointer to memmove().
Solution:   Only call memmove when there is something to move. (Vittorio
            Zecca)
2015-08-08 18:23:46 +02:00
Bram Moolenaar
204b93f958 patch 7.4.811
Problem:    Invalid memory access when using "exe 'sc'".
Solution:   Avoid going over the end of the string. (Dominique Pelle)
2015-08-04 22:02:51 +02:00
Bram Moolenaar
9dd33af4ba patch 7.4.810
Problem:    With a sequence of commands using buffers in diff mode E749 is
            given. (itchyny)
Solution:   Skip unloaded buffer. (Hirohito Higashi)
2015-08-04 21:51:25 +02:00
Bram Moolenaar
75e6413546 patch 7.4.809
Problem:    Test is duplicated.
Solution:   Roll back 7.4.802.
2015-08-04 21:27:11 +02:00
Bram Moolenaar
bb86ebb0ef patch 7.4.808
Problem:    On MS-Windows 8 IME input doen't work correctly.
Solution:   Read console input before calling MsgWaitForMultipleObjects().
            (vim-jp, Nobuhiro Takasaki)
2015-08-04 19:27:05 +02:00
Bram Moolenaar
0bbcb5c8ef patch 7.4.807
Problem:    After CTRL-V CTRL-A mode isn't updated. (Hirohito Higashi)
Solution:   Clear the command line or update the displayed command.
2015-08-04 19:18:52 +02:00
Bram Moolenaar
cc218ab3ca patch 7.4.806
Problem:    CTRL-A in Visual mode doesn't work properly with "alpha" in
            'nrformat'.
Solution:   Make it work. (Christian Brabandt)
2015-08-04 18:23:22 +02:00
Bram Moolenaar
29bc9db36e patch 7.4.805
Problem:    The ruler shows "Bot" even when there are only filler lines
            missing. (Gary Johnson)
Solution:   Use "All" when the first line and one filler line are visible.
2015-08-04 17:43:25 +02:00
Bram Moolenaar
43fe32900c patch 7.4.804
Problem:    Xxd doesn't have a license notice.
Solution:   Add license as indicated by Juergen.
2015-08-04 17:29:07 +02:00
Bram Moolenaar
f7bb86dc59 patch 7.4.803
Problem:    C indent does not support C11 raw strings. (Mark Lodato)
Solution:   Do not change indent inside the raw string.
2015-07-28 21:17:36 +02:00
Bram Moolenaar
52e21cf057 patch 7.4.802
Problem:    Using "A" in Visual mode while 'linebreak' is set is not tested.
Solution:   Add a test for this, verifies the problem is fixed. (Ingo Karkat)
2015-07-28 17:16:33 +02:00
Bram Moolenaar
278236000f patch 7.4.801
Problem:    Test for ":diffoff" doesn't catch all potential problems.
Solution:   Add a :diffthis and a :diffoff command. (Olaf Dabrunz)
2015-07-28 14:42:45 +02:00
Bram Moolenaar
829aef1eb4 patch 7.4.800
Problem:    Using freed memory when triggering CmdUndefined autocommands.
Solution:   Set pointer to NULL. (Dominique Pelle)
2015-07-28 14:25:48 +02:00
Bram Moolenaar
6b9be1b6f2 patch 7.4.799
Problem:    Accessing memory before an allocated block.
Solution:   Check for not going before the start of a pattern. (Dominique
            Pelle)
2015-07-28 13:33:45 +02:00
Bram Moolenaar
31b259bf95 patch 7.4.798
Problem:    Repeating a change in Visual mode does not work as expected.
            (Urtica Dioica)
Solution:   Make redo in Visual mode work better. (Christian Brabandt)
2015-07-28 11:21:32 +02:00
Bram Moolenaar
5f95f288a2 patch 7.4.797
Problem:    Crash when using more lines for the command line than
            'maxcombine'.
Solution:   Use the correct array index.  Also, do not try redrawing when
            exiting.  And use screen_Columns instead of Columns.
2015-07-25 22:53:00 +02:00
Bram Moolenaar
33c3a694fc patch 7.4.796
Problem:    Warning from 64 bit compiler.
Solution:   Add type cast. (Mike Williams)
2015-07-22 22:46:13 +02:00
Bram Moolenaar
dd1616e6ce Correct optwin script, update PHP complete. 2015-07-22 22:22:59 +02:00
Bram Moolenaar
b388be0abf patch 7.4.795
Problem:    The 'fixeol' option is not copied to a new window.
Solution:   Copy the option value. (Yasuhiro Matsumoto)
2015-07-22 22:19:38 +02:00
Bram Moolenaar
d4a95c3bc5 patch 7.4.794
Problem:    Visual Studio 2015 is not recognized.
Solution:   Add the version numbers to the makefile. (Taro Muraoka)
2015-07-21 20:22:12 +02:00
Bram Moolenaar
f91328100d Updated and new runtime files. 2015-07-21 19:19:13 +02:00
Bram Moolenaar
165bc69d1b patch 7.4.793
Problem:    Can't specify when not to ring the bell.
Solution:   Add the 'belloff' option. (Christian Brabandt)
2015-07-21 17:53:25 +02:00
Bram Moolenaar
6561d52ecb patch 7.4.792
Problem:    Can only conceal text by defining syntax items.
Solution:   Use matchadd() to define concealing. (Christian Brabandt)
2015-07-21 15:48:27 +02:00
Bram Moolenaar
d51cb706a4 patch 7.4.791
Problem:    The buffer list can be very long.
Solution:   Add an argument to ":ls" to specify the type of buffer to list.
            (Marcin Szamotulski)
2015-07-21 15:03:06 +02:00
Bram Moolenaar
d113a80c77 patch 7.4.790
Problem:    Test fails when the autochdir feature is not available.  Test
            output contains the test script.
Solution:   Check for the autochdir feature. (Kazunobu Kuriyama)  Only write
            the relevant test output.
2015-07-21 10:57:44 +02:00
Bram Moolenaar
9cac424d05 patch 7.4.789
Problem:    Using freed memory and crash. (Dominique Pellej)
Solution:   Correct use of pointers. (Hirohito Higashi)
2015-07-19 14:42:23 +02:00
Bram Moolenaar
5cbb8dbc32 patch 7.4.788
Problem:    Can't build without the crypt feature. (John Marriott)
Solution:   Add #ifdef's.
2015-07-17 23:08:29 +02:00
Bram Moolenaar
fb9bc4829a patch 7.4.787
Problem:    snprintf() isn't available everywhere.
Solution:   Use vim_snprintf(). (Ken Takata)
2015-07-17 22:04:48 +02:00
Bram Moolenaar
537443018d patch 7.4.786
Problem:    It is not possible for a plugin to adjust to a changed setting.
Solution:   Add the OptionSet autocommand event. (Christian Brabandt)
2015-07-17 17:38:22 +02:00
Bram Moolenaar
34d72d4b6c patch 7.4.785
Problem:    On some systems automatically adding the missing EOL causes
            problems. Setting 'binary' has too many side effects.
Solution:   Add the 'fixeol' option, default on. (Pavel Samarkin)
2015-07-17 14:18:08 +02:00
Bram Moolenaar
2cf6938706 patch 7.4.784
Problem:    Using both "noinsert" and "noselect" in 'completeopt' does not
            work properly.
Solution:   Change the ins_complete() calls. (Ozaki Kiichi)
2015-07-17 13:42:23 +02:00
Bram Moolenaar
2536d4f396 patch 7.4.783
Problem:    copy_chars() and copy_spaces() are inefficient.
Solution:   Use memset() instead. (Dominique Pelle)
2015-07-17 13:22:51 +02:00
Bram Moolenaar
5d1bc78a2b patch 7.4.782
Problem:    Still a few problems with CTRL-A and CTRL-X in Visual mode.
Solution:   Fix the reported problems. (Christian Brabandt)
2015-07-17 13:03:48 +02:00
Bram Moolenaar
fe6f186877 patch 7.4.781
Problem:    line2byte() returns one less when 'bin' and 'noeol' are set.
Solution:   Only adjust the size for the last line. (Rob Wu)
2015-07-12 17:52:57 +02:00
Bram Moolenaar
1db43b1145 patch 7.4.780
Problem:    Compiler complains about uninitialized variable and clobbered
            variables.
Solution:   Add Initialization.  Make variables static.
2015-07-12 16:21:23 +02:00
Bram Moolenaar
3ec3261980 patch 7.4.779
Problem:    Using CTRL-A in a line without a number moves the cursor. May
            cause a crash when at the start of the line. (Urtica Dioica)
Solution:   Do not move the cursor if no number was changed.
2015-07-12 15:02:38 +02:00
Bram Moolenaar
ae2fe73abc patch 7.4.778
Problem:    Coverity warns for uninitialized variable.
Solution:   Change condition of assignment.
2015-07-10 22:38:00 +02:00
Bram Moolenaar
86ae720d75 Updated runtime files. 2015-07-10 19:31:35 +02:00
Bram Moolenaar
694cac7a35 patch 7.4.777
Problem:    The README file doesn't look nice on github.
Solution:   Add a markdown version of the README file.
2015-07-10 19:22:03 +02:00
Bram Moolenaar
2c61ec65e8 patch 7.4.776
Problem:    Equivalence class for 'd' does not work correctly.
Solution:   Fix 0x1e0f and 0x1d0b. (Dominique Pelle)
2015-07-10 19:16:34 +02:00
Bram Moolenaar
efcabd6892 Add files missing from patch 7.4.771. 2015-07-10 18:23:59 +02:00
Bram Moolenaar
b6be1e2390 patch 7.4.775
Problem:    It is not possible to avoid using the first item of completion.
Solution:   Add the "noinsert" and "noselect" values to 'completeopt'. (Shougo
            Matsu)
2015-07-10 18:18:40 +02:00
Bram Moolenaar
42a4512f62 patch 7.4.774
Problem:    When using the CompleteDone autocommand event it's difficult to
            get to the completed items.
Solution:   Add the v:completed_items variable. (Shougo Matsu)
2015-07-10 17:56:23 +02:00
Bram Moolenaar
ae94b7718a patch 7.4.773
Problem:    'langmap' is used in command-line mode when checking for mappings.
            Issue 376.
Solution:   Do not use 'langmap' in command-line mode. (Larry Velazquez)
2015-07-10 17:19:30 +02:00
Bram Moolenaar
5c5c9801b1 patch 7.4.772
Problem:    Racket 6.2 is not supported on MS-Windows.
Solution:   Check for the "racket" subdirectory. (Weiyong Mao)
2015-07-10 16:12:48 +02:00
Bram Moolenaar
5f1e68b7bc patch 7.4.771
Problem:    Search does not handle multi-byte character at the start position
            correctly.
Solution:   Take byte size of character into account. (Yukihiro Nakadaira)
2015-07-10 14:43:35 +02:00
Bram Moolenaar
46fd4df719 patch 7.4.770
Problem:    Background color response with transparency is not ignored.
Solution:   Change the way escape sequences are recognized. (partly by
            Hirohito Higashi)
2015-07-10 14:05:10 +02:00
Bram Moolenaar
2693ca21ce patch 7.4.769
Problem:    Behavior of :diffoff is not tested.
Solution:   Add a bit of testing. (Olaf Dabrunz)
2015-07-04 15:05:14 +02:00
Bram Moolenaar
4392996461 patch 7.4.768
Problem:    :diffoff only works properly once.
Solution:   Also make :diffoff work when used a second time. (Olaf Dabrunz)
2015-07-03 15:06:56 +02:00
Bram Moolenaar
fafeee6b9e patch 7.4.767
Problem:    --remote-tab-silent can fail on MS-Windows.
Solution:   Use single quotes to avoid problems with backslashes. (Idea by
            Weiyong Mao)
2015-07-03 13:33:01 +02:00
Bram Moolenaar
92abe859ed patch 7.4.766
Problem:    Background color check does not work on Tera Term.
Solution:   Also recognize ST as a termination character. (Hirohito Higashi)
2015-07-03 13:05:50 +02:00
Bram Moolenaar
9bb1930af9 patch 7.4.765
Problem:    CTRL-A and CTRL-X in Visual mode do not always work well.
Solution:   Improvements for increment and decrement. (Christian Brabandt)
2015-07-03 12:44:07 +02:00
Bram Moolenaar
6a57cce048 patch 7.4.764
Problem:    test_increment fails on MS-Windows. (Ken Takata)
Solution:   Clear Visual mappings. (Taro Muraoka)
2015-06-28 19:24:39 +02:00
Bram Moolenaar
1f860d8590 patch 7.4.763
Problem:    Building with Lua 5.1 doesn't work.
Solution:   Define lua_replace and lua_remove. (KF Leong)
2015-06-27 18:36:16 +02:00
Bram Moolenaar
4921c24b31 patch 7.4.762
Problem:    Comment for may_req_bg_color() is wrong. (Christ van Willegen)
Solution:   Rewrite the comment.
2015-06-27 18:34:24 +02:00
Bram Moolenaar
979243b990 Update help files. 2015-06-26 19:35:49 +02:00
Bram Moolenaar
e5401220b0 patch 7.4.761
Problem:    The request-background termcode implementation is incomplete.
Solution:   Add the missing pieces.
2015-06-25 19:16:56 +02:00
Bram Moolenaar
5081d20247 patch 7.4.760
Problem:    Spelling mistakes are not displayed after ":syn spell".
Solution:   Force a redraw after ":syn spell" command. (Christian Brabandt)
2015-06-25 18:36:26 +02:00
Bram Moolenaar
9514b1f9a1 patch 7.4.759
Problem:    Building with Lua 5.3 doesn't work, symbols have changed.
Solution:   Use the new names for the new version. (Felix Schnizlein)
2015-06-25 18:27:32 +02:00
Bram Moolenaar
fa67fbe6b8 patch 7.4.758
Problem:    When 'conceallevel' is 1 and quitting the command-line window with
            CTRL-C the first character ':' is erased.
Solution:   Reset 'conceallevel' in the command-line window. (Hirohito
            Higashi)
2015-06-25 18:20:36 +02:00
Bram Moolenaar
b5c3265521 patch 7.4.757
Problem:    Cannot detect the background color of a terminal.
Solution:   Add T_RBG to request the background color if possible. (Lubomir
            Rintel)
2015-06-25 17:03:36 +02:00
Bram Moolenaar
367fbf17da patch 7.4.756
Problem:    Can't use strawberry Perl 5.22 x64 on MS-Windows.
Solution:   Add new defines and #if. (Ken Takata)
2015-06-25 16:13:46 +02:00
Bram Moolenaar
641e48c224 patch 7.4.755
Problem:    It is not easy to count the number of characters.
Solution:   Add the skipcc argument to strchars(). (Hirohito Higashi, Ken
            Takata)
2015-06-25 16:09:26 +02:00
Bram Moolenaar
3a304b2382 patch 7.4.754
Problem:    Using CTRL-A in Visual mode does not work well. (Gary Johnson)
Solution:   Make it increment all numbers in the Visual area. (Christian
            Brabandt)
2015-06-25 13:57:36 +02:00
Bram Moolenaar
74db34cc91 patch 7.4.753
Problem:    Appending in Visual mode with 'linebreak' set does not work
            properly.  Also when 'selection' is "exclusive". (Ingo Karkat)
Solution:   Recalculate virtual columns. (Christian Brabandt)
2015-06-25 13:30:46 +02:00
Bram Moolenaar
66312acf14 patch 7.4.752
Problem:    Unicode 8.0 not supported.
Solution:   Update tables for Unicode 8.0.  Avoid E36 when running the script.
            (James McCoy)
2015-06-21 14:22:00 +02:00
Bram Moolenaar
70b5a5f5b9 patch 7.4.751
Problem:    It is not obvious how to enable the address sanitizer.
Solution:   Add commented-out flags in the Makefile. (Dominique Pelle)
            Also add missing test targets.
2015-06-21 13:44:13 +02:00
Bram Moolenaar
280a868a24 patch 7.4.750
Problem:    Cannot build with clang 3.5 on Cygwin with perl enabled.
Solution:   Strip "-fdebug-prefix-map" in configure. (Ken Takata)
2015-06-21 13:41:08 +02:00
Bram Moolenaar
0e7c4b99c6 patch 7.4.749
Problem:    For some options two consecutive commas are OK. (Nikolay Pavlov)
Solution:   Add the P_ONECOMMA flag.
2015-06-20 15:30:03 +02:00
Bram Moolenaar
6a7e2a668b patch 7.4.748
Problem:    Buffer overflow.
Solution:   Make the buffer larger. (Kazunobu Kuriyama)
2015-06-19 21:06:11 +02:00
Bram Moolenaar
e2db6c975b Add the logiPat plugin to the distribution. 2015-06-19 18:48:41 +02:00
Bram Moolenaar
b8c890035e patch 7.4.747
Problem:    ":cnext" may jump to the wrong column when setting
            'virtualedit=all' (cs86661)
Solution:   Reset the coladd field. (Hirohito Higashi)
2015-06-19 18:35:34 +02:00
Bram Moolenaar
01cf376da1 patch 7.4.746
Problem:    ":[count]tag" is not always working. (cs86661)
Solution:   Set cur_match a bit later. (Hirohito Higashi)
2015-06-19 16:45:43 +02:00
Bram Moolenaar
0fce425772 patch 7.4.745
Problem:    The entries added by matchaddpos() are returned by getmatches()
            but can't be set with setmatches(). (Lcd)
Solution:   Fix setmatches(). (Christian Brabandt)
2015-06-19 16:32:57 +02:00
Bram Moolenaar
cf0213ef7e patch 7.4.744
Problem:    No tests for Ruby and Perl.
Solution:   Add minimal tests. (Ken Takata)
2015-06-19 15:45:29 +02:00
Bram Moolenaar
c004bc2726 patch 7.4.743
Problem:    "p" in Visual mode causes an unexpected line split.
Solution:   Advance the cursor first. (Yukihiro Nakadaira)
2015-06-19 15:17:55 +02:00
Bram Moolenaar
a594d77ffc patch 7.4.742
Problem:    Cannot specify a vertical split when loading a buffer for a
            quickfix command.
Solution:   Add the "vsplit" value to 'switchbuf'. (Brook Hong)
2015-06-19 14:41:49 +02:00
Bram Moolenaar
a7b7b1cef9 patch 7.4.741
Problem:    When using += with ":set" a trailing comma is not recognized.
            (Issue 365)
Solution:   Don't add a second comma. Add a test. (partly by Christian
            Brabandt)
2015-06-19 14:06:43 +02:00
Bram Moolenaar
541f92d6cf Updated runtime files. 2015-06-19 13:27:23 +02:00
Bram Moolenaar
c7a0d32c83 patch 7.4.740
Problem:    ":1quit" works like ":.quit". (Bohr Shaw)
Solution:   Don't exit Vim when a range is specified. (Christian Brabandt)
2015-06-19 12:43:07 +02:00
Bram Moolenaar
acc39888cd patch 7.4.739
Problem:    In a string "\U" only takes 4 digits, while after CTRL-V U eight
            digits can be used.
Solution:   Make "\U" also take eight digits. (Christian Brabandt)
2015-06-19 12:08:13 +02:00
Bram Moolenaar
d710e0d247 patch 7.4.738
Problem:    Can't compile without the syntax highlighting feature.
Solution:   Add #ifdef around use of w_p_cul. (Hirohito Higashi)
2015-06-10 12:16:47 +02:00
Bram Moolenaar
6e8d3b0d41 patch 7.4.737
Problem:    On MS-Windows vimgrep over arglist doesn't work (Issue 361)
Solution:   Only escape backslashes in ## expansion when it is not used as the
            path separator. (James McCoy)
2015-06-09 21:33:31 +02:00
Bram Moolenaar
b878bbbca6 patch 7.4.736
Problem:    Invalid memory access.
Solution:   Avoid going over the end of a NUL terminated string. (Dominique
            Pelle)
2015-06-09 20:39:24 +02:00
Bram Moolenaar
e2e4b98622 patch 7.4.735
Problem:    Wrong argument for sizeof().
Solution:   Use a pointer argument. (Chris Hall)
2015-06-09 20:30:51 +02:00
Bram Moolenaar
d009e86826 patch 7.4.734
Problem:    ml_get error when using "p" in a Visual selection in the last
            line.
Solution:   Change the behavior at the last line. (Yukihiro Nakadaira)
2015-06-09 20:20:03 +02:00
Bram Moolenaar
d68f2219b5 patch 7.4.733
Problem:    test_listchars breaks on MS-Windows. (Kenichi Ito)
Solution:   Set fileformat to "unix". (Christian Brabandt)
2015-06-09 19:58:32 +02:00
Bram Moolenaar
f2571c61d5 Updated runtime files. 2015-06-09 19:44:55 +02:00
Bram Moolenaar
d0d0fe09cf patch 7.4.732
Problem:    The cursor line is not always updated for the "O" command.
Solution:   Reset the VALID_CROW flag. (Christian Brabandt)
2015-06-09 19:23:46 +02:00
Bram Moolenaar
7098ee5c37 patch 7.4.731
Problem:    The tab menu shows "Close tab" even when it doesn't work.
Solution:   Don't show "Close tab" for the last tab. (John Marriott)
2015-06-09 19:14:24 +02:00
Bram Moolenaar
bc56336bb4 patch 7.4.730
Problem:    When setting the crypt key and using a swap file, text may be
            encrypted twice or unencrypted text remains in the swap file.
            (Issue 369)
Solution:   Call ml_preserve() before re-encrypting.  Set correct index for
            next pointer block.
2015-06-09 18:35:25 +02:00
Bram Moolenaar
0481fee488 patch 7.4.729
Problem:    Occasional crash with 'list' set.
Solution:   Fix off-by-one error. (Christian Brabandt)
2015-05-14 05:56:09 +02:00
Bram Moolenaar
4270496716 patch 7.4.728
Problem:    Can't build with some version of Visual Studio 2015.
Solution:   Recognize another version 14 number. (Sinan)
2015-05-06 11:33:47 +02:00
Bram Moolenaar
9c60161888 patch 7.4.727
Problem:    Cannot build GvimExt with MingW.
Solution:   Add -lgdi32.  (KF Leong)
2015-05-06 06:51:50 +02:00
Bram Moolenaar
1fd3e30ce9 patch 7.4.726
Problem:    Cannot build GvimExt.
Solution:   Set APPVER to 5.0.  (KF Leong)
2015-05-05 10:25:16 +02:00
Bram Moolenaar
659c94d483 patch 7.4.725
Problem:    ":call setreg('"', [])" reports an internal error.
Solution:   Make the register empty. (Yasuhiro Matsumoto)
2015-05-04 20:19:21 +02:00
Bram Moolenaar
7bc25aed33 patch 7.4.724
Problem:    Vim icon does not show in Windows context menu. (issue 249)
Solution:   Load the icon in GvimExt.
2015-05-04 18:27:36 +02:00
Bram Moolenaar
4032cfdf17 patch 7.4.723
Problem:    For indenting, finding the C++ baseclass can be slow.
Solution:   Cache the result. (Hirohito Higashi)
2015-05-04 17:50:33 +02:00
Bram Moolenaar
73284b973a patch 7.4.722
Problem:    0x202f is not recognized as a non-breaking space character.
Solution:   Add 0x202f to the list. (Christian Brabandt)
2015-05-04 17:28:22 +02:00
Bram Moolenaar
d59c099120 patch 7.4.721
Problem:    When 'list' is set Visual mode does not highlight anything in
            empty lines. (mgaleski)
Solution:   Check the value of lcs_eol in another place. (Christian Brabandt)
2015-05-04 16:52:01 +02:00
Bram Moolenaar
f300ad230b patch 7.4.720
Problem:    Can't build with Visual Studio 2015.
Solution:   Recognize the "version 14" numbers and omit /nodefaultlib when
            appropriate. (Paul Moore)
2015-05-04 16:18:42 +02:00
Bram Moolenaar
c4dc286fe6 patch 7.4.719
Problem:    Overflow when adding MAXCOL to a pointer.
Solution:   Subtract pointers instead. (James McCoy)
2015-05-04 16:10:26 +02:00
Bram Moolenaar
81278efadf patch 7.4.718
Problem:    Autocommands triggered by quickfix cannot get the current title
            value.
Solution:   Set w:quickfix_title earlier. (Yannick)
            Also move the check for a title into the function.
2015-05-04 12:34:22 +02:00
Bram Moolenaar
1cd5e613b0 patch 7.4.717
Problem:    ":let list += list" can change a locked list.
Solution:   Check for the lock earlier. (Olaf Dabrunz)
2015-05-04 11:10:27 +02:00
Bram Moolenaar
cad2fc9935 patch 7.4.716
Problem:    When using the 'c' flag of ":substitute" and selecting "a" or "l"
            at the prompt the flags are not remembered for ":&&". (Ingo
            Karkat)
Solution:   Save the flag values and restore them. (Hirohito Higashi)
2015-05-04 10:46:03 +02:00
Bram Moolenaar
2186ffa2c7 patch 7.4.715
Problem:    Invalid memory access when there are illegal bytes.
Solution:   Get the length from the text, not from the character. (Dominique
            Pelle)
2015-05-04 10:33:15 +02:00
Bram Moolenaar
069dd08d8d patch 7.4.714
Problem:    Illegal memory access when there are illegal bytes.
Solution:   Check the byte length of the character. (Dominique Pelle)
2015-05-04 09:56:49 +02:00
Bram Moolenaar
ea98f8b4d6 patch 7.4.713
Problem:    Wrong condition for #ifdef.
Solution:   Change USR_EXRC_FILE2 to USR_VIMRC_FILE2. (Mikael Fourrier)
2015-05-04 09:31:11 +02:00
Bram Moolenaar
1510f996c5 patch 7.4.712
Problem:    Missing change in another file.
Solution:   Also change message.c
2015-04-22 22:18:22 +02:00
Bram Moolenaar
4c6b3b20dd patch 7.4.711
Problem:    Missing change in one file.
Solution:   Also change option.c
2015-04-21 19:10:48 +02:00
Bram Moolenaar
7927836733 patch 7.4.710
Problem:    It is not possible to make spaces visibible in list mode.
Solution:   Add the "space" item to 'listchars'. (David Bürgin, issue 350)
2015-04-21 18:33:48 +02:00
Bram Moolenaar
40ce3a4e1f patch 7.4.709
Problem:    ":tabmove" does not work as documented.
Solution:   Make it work consistently.  Update documentation and add tests.
            (Hirohito Higashi)
2015-04-21 18:08:39 +02:00
Bram Moolenaar
77354e78a8 patch 7.4.708
Problem:    gettext() is called too often.
Solution:   Do not call gettext() for messages until they are actually used.
            (idea by Yasuhiro Matsumoto)
2015-04-21 16:49:05 +02:00
Bram Moolenaar
3cbac309f7 patch 7.4.707
Problem:    Undo files can have their executable bit set.
Solution:   Strip of the executable bit. (Mikael Berthe)
2015-04-21 16:12:06 +02:00
Bram Moolenaar
5b14f89164 patch 7.4.706
Problem:    Window drawn wrong when 'laststatus' is zero and there is a
            command-line window. (Yclept Nemo)
Solution:   Set the status height a bit later. (Christian Brabandt)
2015-04-21 15:43:05 +02:00
Bram Moolenaar
bbc1a592a0 patch 7.4.705
Problem:    Can't build with Ruby 2.2.
Solution:   Add #ifdefs to handle the incompatible change. (Andrei Olsen)
2015-04-21 15:25:31 +02:00
Bram Moolenaar
d82a2a990b patch 7.4.704
Problem:    Searching for a character matches an illegal byte and causes
            invalid memory access. (Dominique Pelle)
Solution:   Do not match an invalid byte when search for a character in a
            string.  Fix equivalence classes using negative numbers, which
            result in illegal bytes.
2015-04-21 14:02:35 +02:00
Bram Moolenaar
f9bde2b152 patch 7.4.703
Problem:    Compiler warning for start_dir unused when building unittests.
Solution:   Move start_dir inside the #ifdef.
2015-04-17 22:08:16 +02:00
Bram Moolenaar
d39a751280 patch 7.4.702
Problem:    Joining an empty list does uneccessary work.
Solution:   Let join() return early. (Marco Hinz)
2015-04-16 22:51:22 +02:00
Bram Moolenaar
ec45c4a6df patch 7.4.701
Problem:    Compiler warning for using uninitialized variable. (Yasuhiro
            Matsumoto)
Solution:   Initialize it.
2015-04-15 14:27:49 +02:00
Bram Moolenaar
ba172f2eab Remove local-additions entries from help.txt. 2015-04-15 14:13:18 +02:00
Bram Moolenaar
0a63dedf99 Updated runtime files. 2015-04-15 13:31:24 +02:00
Bram Moolenaar
d5f6933d5c patch 7.4.700
Problem:    Fold can't be opened after ":move". (Ein Brown)
Solution:   Delete the folding information and update it afterwards.
            (Christian Brabandt)
2015-04-15 12:43:50 +02:00
Bram Moolenaar
05b20fb14e patch 7.4.699
Problem:    E315 when trying to delete a fold. (Yutao Yuan)
Solution:   Make sure the fold doesn't go beyond the last buffer line.
            (Christian Brabandt)
2015-04-13 20:52:36 +02:00
Bram Moolenaar
9bc174b69d patch 7.4.698
Problem:    Various problems with locked and fixed lists and dictionaries.
Solution:   Disallow changing locked items, fix a crash, add tests. (Olaf
            Dabrunz)
2015-04-13 16:16:38 +02:00
Bram Moolenaar
d94682ffb4 patch 7.4.697
Problem:    The filename used for ":profile" must be given literally.
Solution:   Expand "~" and environment variables. (Marco Hinz)
2015-04-13 15:37:56 +02:00
Bram Moolenaar
50ab994ab3 patch 7.4.696
Problem:    Not freeing memory when encountering an error.
Solution:   Free the stack before returning. (Eliseo Martínez)
2015-04-13 15:28:12 +02:00
Bram Moolenaar
7c94ce910f patch 7.4.695
Problem:    Out-of-bounds read, dectected by Coverity.
Solution:   Remember the value of cmap for the first matching encoding.  Reset
            cmap to that value if first matching encoding is going to be used.
            (Eliseo Martínez)
2015-04-13 14:45:27 +02:00
Bram Moolenaar
83d1b19015 More updated runtime files. 2015-04-13 14:22:40 +02:00
Bram Moolenaar
29d54df5cd patch 7.4.694
Problem:    Running tests changes the .viminfo file.
Solution:   Disable viminfo in the text objects test.
2015-04-13 12:58:12 +02:00
Bram Moolenaar
5a5f45917d Updated runtime files. 2015-04-13 12:43:06 +02:00
Bram Moolenaar
695baeefe1 patch 7.4.693
Problem:    Session file is not correct when there are multiple tab pages.
Solution:   Reset the current window number for each tab page. (Jacob Niehus)
2015-04-13 12:39:22 +02:00
Bram Moolenaar
de1502f2b4 patch 7.4.692 for Problem: Defining SOLARIS for no good reason. (Danek Duvall)
Solution:   Remove it.
2015-04-09 22:08:21 +02:00
Bram Moolenaar
f630387827 patch 7.4.691 for Problem: Can't build with MzScheme.
Solution:   Change "cwd" into the global variable "start_dir".
2015-04-03 17:59:43 +02:00
Bram Moolenaar
da6365774d patch 7.4.690 for Problem: Memory access errors when changing indent in Ex mode. Also missing
redraw when using CTRL-U. (Knil Ino)
Solution:   Update pointers after calling ga_grow().
2015-04-03 17:11:45 +02:00
Bram Moolenaar
d87c36ea5e updated for version 7.4.689
Problem:    On MS-Windows, when 'autochdir' is set, diff mode with files in
            different directories does not work. (Axel Bender)
Solution:   Remember the current directory and use it where needed. (Christian
            Brabandt)
2015-04-03 14:56:49 +02:00
Bram Moolenaar
478c46e50f updated for version 7.4.688
Problem:    When "$" is in 'cpo' the popup menu isn't undrawn correctly.
            (Issue 166)
Solution:   When using the popup menu remove the "$".
2015-03-31 19:18:00 +02:00
Bram Moolenaar
1e7813a187 updated for version 7.4.687
Problem:    There is no way to use a different in Replace mode for a terminal.
Solution:   Add t_SR. (Omar Sandoval)
2015-03-31 18:31:03 +02:00
Bram Moolenaar
7d2757a472 updated for version 7.4.686
Problem:    "zr" and "zm" do not take a count.
Solution:   Implement the count, restrict the fold level to the maximum
            nesting depth.  (Marcin Szamotulski)
2015-03-31 17:46:22 +02:00
Bram Moolenaar
0e462411ca updated for version 7.4.685
Problem:    When there are illegal utf-8 characters the old regexp engine may
            go past the end of a string.
Solution:   Only advance to the end of the string. (Dominique Pelle)
2015-03-31 14:17:31 +02:00
Bram Moolenaar
e5c421cfd7 updated for version 7.4.684
Problem:    When starting several Vim instances in diff mode, the temp files
            used may not be unique. (Issue 353)
Solution:   Add an argument to vim_tempname() to keep the file.
2015-03-31 13:33:08 +02:00
Bram Moolenaar
1ca2e361a8 updated for version 7.4.683
Problem:    Typo in the vimtutor command.
Solution:   Fix the typo. (Corey Farwell, github pull 349)
2015-03-25 20:24:04 +01:00
Bram Moolenaar
09deeb7c94 updated for version 7.4.682
Problem:    The search highlighting and match highlighting replaces the
            cursorline highlighting, this doesn't look good.
Solution:   Combine the highlighting. (Yasuhiro Matsumoto)
2015-03-24 18:22:41 +01:00
Bram Moolenaar
dbcf19dc49 Add test files for patch 7.4.680. 2015-03-24 17:57:45 +01:00
Bram Moolenaar
71371b1579 updated for version 7.4.681
Problem:    MS-Windows: When Vim is minimized the window height is computed
            incorrectly.
Solution:   When minimized use the previously computed size. (Ingo Karkat)
2015-03-24 17:57:12 +01:00
Bram Moolenaar
310f2d59b2 updated for version 7.4.680
Problem:    CTRL-W in Insert mode does not work well for multi-byte
            characters.
Solution:   Use mb_get_class(). (Yasuhiro Matsumoto)
2015-03-24 17:49:51 +01:00
Bram Moolenaar
6383b92d8c updated for version 7.4.679
Problem:    Color values greater than 255 cause problems on MS-Windows.
Solution:   Truncate to 255 colors. (Yasuhiro Matsumoto)
2015-03-24 17:12:19 +01:00
Bram Moolenaar
f11ce667b0 updated for version 7.4.678
Problem:    When using --remote the directory may end up being wrong.
Solution:   Use localdir() to find out what to do. (Xaizek)
2015-03-24 16:48:58 +01:00
Bram Moolenaar
a161e26d55 updated for version 7.4.677
Problem:    Configure fails when specifying a python-config-dir. (Lcd)
Solution:   Check if PYTHONFRAMEWORKPREFIX is set.
2015-03-24 15:14:27 +01:00
Bram Moolenaar
6c927557e2 updated for version 7.4.676
Problem:    On Mac, when not using the default Python framework configure
            doesn't do the right thing.
Solution:   Use a linker search path. (Kazunobu Kuriyama)
2015-03-24 12:21:33 +01:00
Bram Moolenaar
eab316bdf9 updated for version 7.4.675
Problem:    When a FileReadPost autocommand moves the cursor inside a line it
            gets moved back.
Solution:   When checking whether an autocommand moved the cursor store the
            column as well. (Christian Brabandt)
2015-03-24 11:46:30 +01:00
Bram Moolenaar
77b7710d4e updated for version 7.4.674
Problem:    Missing changes in one file.
Solution:   Also change the win32 file.
2015-03-21 22:18:41 +01:00
Bram Moolenaar
e7154eb5c3 updated for version 7.4.673
Problem:    The first syntax entry gets sequence number zero, which doesn't
            work. (Clinton McKay)
Solution:   Start at number one. (Bjorn Linse)
2015-03-21 21:46:13 +01:00
Bram Moolenaar
5837f1f447 Update runtime files. 2015-03-21 18:06:14 +01:00
Bram Moolenaar
b5971141df updated for version 7.4.672
Problem:    When completing a shell command, directories in the current
            directory are not listed.
Solution:   When "." is not in $PATH also look in the current directory for
            directories.
2015-03-21 17:32:19 +01:00
Bram Moolenaar
4df702999d updated for version 7.4.671
Problem:    Warning for shadowing a variable.
Solution:   Rename off to mb_off. (Kazunobu Kuriyama)
2015-03-21 14:20:16 +01:00
Bram Moolenaar
dcefba9934 updated for version 7.4.670
Problem:    Using 'cindent' for Javascript is less than perfect.
Solution:   Improve indenting of continuation lines. (Hirohito Higashi)
2015-03-20 19:06:06 +01:00
Bram Moolenaar
3b7b83649c updated for version 7.4.669
Problem:    When netbeans is active the sign column always shows up.
Solution:   Only show the sign column once a sign has been added. (Xavier de
            Gaye)
2015-03-20 18:11:48 +01:00
Bram Moolenaar
825e7ab423 updated for version 7.4.668
Problem:    Can't use a glob pattern as a regexp pattern.
Solution:   Add glob2regpat(). (Christian Brabandt)
2015-03-20 17:36:42 +01:00
Bram Moolenaar
fbc25b20cb updated for version 7.4.667
Problem:    'colorcolumn' isn't drawn in a closed fold while 'cursorcolumn'
            is. (Carlos Pita)
Solution:   Make it consistent. (Christian Brabandt)
2015-03-20 17:16:27 +01:00
Bram Moolenaar
b1fc2bf29c updated for version 7.4.666
Problem:    There is a chance that Vim may lock up.
Solution:   Handle timer events differently. (Aaron Burrow)
2015-03-20 16:26:54 +01:00
Bram Moolenaar
76feaf1bfe updated for version 7.4.665
Problem:    'linebreak' does not work properly with multi-byte characters.
Solution:   Compute the pointer offset with mb_head_off().  (Yasuhiro
            Matsumoto)
2015-03-20 15:58:52 +01:00
Bram Moolenaar
6b31467aa7 updated for version 7.4.664
Problem:    When 'compatible' is reset 'numberwidth' is set to 4, but the
            effect doesn't show until a change is made.
Solution:   Check if 'numberwidth' changed. (Christian Brabandt)
2015-03-20 15:42:10 +01:00
Bram Moolenaar
404c942fb8 updated for version 7.4.663
Problem:    When using netbeans a buffer is not found in another tab.
Solution:   When 'switchbuf' is set to "usetab" then switch to another tab
            when possible. (Xavier de Gaye)
2015-03-14 15:35:52 +01:00
Bram Moolenaar
438b64ab71 updated for version 7.4.662
Problem:    When 'M' is in the 'cpo' option then selecting a text object in
            parenthesis does not work correctly.
Solution:   Keep 'M' in 'cpo' when finding a match. (Hirohito Higashi)
2015-03-13 15:03:00 +01:00
Bram Moolenaar
6c5bdb751c updated for version 7.4.661
Problem:    Using "0 CTRL-D" in Insert mode may have CursorHoldI interfere.
            (Gary Johnson)
Solution:   Don't store K_CURSORHOLD as the last character. (Christian
            Brabandt)
2015-03-13 13:24:23 +01:00
Bram Moolenaar
c7dc1f4a53 updated for version 7.4.660
Problem:    Using freed memory when g:colors_name is changed in the colors
            script. (oni-link)
Solution:   Make a copy of the variable value.
2015-03-13 12:53:37 +01:00
Bram Moolenaar
488eb26ec7 updated for version 7.4.659
Problem:    When 'ruler' is set the preferred column is reset. (Issue 339)
Solution:   Don't set curswant when redrawing the status lines.
2015-03-13 11:23:50 +01:00
Bram Moolenaar
0f8dd840fc updated for version 7.4.658
Problem:    'formatexpr' is evaluated too often.
Solution:   Only invoke it when beyond the 'textwidth' column, as it is
            documented. (James McCoy)
2015-03-08 14:48:49 +01:00
Bram Moolenaar
ab11a5914b updated for version 7.4.657
Problem:    Compiler warnings for pointer mismatch.
Solution:   Add a typecast. (John Marriott)
2015-03-06 22:00:11 +01:00
Bram Moolenaar
d8b77f7dc0 updated for version 7.4.656
Problem:    Missing changes for glob() in one file.
Solution:   Add the missing changes.
2015-03-05 21:21:19 +01:00
Bram Moolenaar
b6c2735c56 updated for version 7.4.655
Problem:    Text deleted by "dit" depends on indent of closing tag.
            (Jan Parthey)
Solution:   Do not adjust oap->end in do_pending_operator(). (Christian
            Brabandt)
2015-03-05 19:57:49 +01:00
Bram Moolenaar
a245bc79b4 updated for version 7.4.654
Problem:    glob() and globpath() cannot include links to non-existing files.
            (Charles Campbell)
Solution:   Add an argument to include all links with glob(). (James McCoy)
            Also for globpath().
2015-03-05 19:35:25 +01:00
Bram Moolenaar
e421450a5e updated for version 7.4.653
Problem:    Insert mode completion with complete() may have CTRL-L work like
            CTRL-P.
Solution:   Handle completion with complete() differently. (Yasuhiro
            Matsumoto, Christian Brabandt, Hirohito Higashi)
2015-03-05 18:08:43 +01:00
Bram Moolenaar
4dcdf29910 updated for version 7.4.652
Problem:    Xxd lacks a few features.
Solution:   Use 8 characters for the file position.  Add the -e and -o
            arguments. (Vadim Vygonets)
2015-03-05 17:51:15 +01:00
Bram Moolenaar
4f36dc3bf7 updated for version 7.4.651
Problem:    Can't match "%>80v" properly for multi-byte characters.
Solution:   Multiply the character number by the maximum number of bytes in a
            character. (Yasuhiro Matsumoto)
2015-03-05 17:16:06 +01:00
Bram Moolenaar
5d3fbf3bfe updated for version 7.4.650
Problem:    Configure check may fail because the dl library is not used.
Solution:   Put "-ldl" in LIBS rather than LDFLAGS. (Oazki Kiichi)
2015-03-05 16:47:20 +01:00
Bram Moolenaar
cf48767cd1 updated for version 7.4.649
Problem:    Compiler complains about ignoring return value of fwrite().
            (Michael Jarvis)
Solution:   Add (void).
2015-03-05 13:36:00 +01:00
Bram Moolenaar
f3c2afb77f Update a few runtime files. 2015-03-02 23:16:07 +01:00
Bram Moolenaar
2b8388bd01 Updated runtime files. 2015-02-28 13:11:45 +01:00
Bram Moolenaar
bac203ea2d updated for version 7.4.648
Problem:    Tests broken on MS-Windows.
Solution:   Delete wrong copy line. (Ken Takata)
2015-02-27 22:12:34 +01:00
Bram Moolenaar
13cf77ba17 updated for version 7.4.647
Problem:    After running the tests on MS-Windows many files differ from their
            originals as they were checked out.
Solution:   Use a temp directory for executing the tests. (Ken Takata, Taro
            Muraoka)
2015-02-27 21:11:02 +01:00
Bram Moolenaar
e25bb90b2e updated for version 7.4.646
Problem:    ":bufdo" may start at a deleted buffer.
Solution:   Find the first not deleted buffer. (Shane Harper)
2015-02-27 20:33:37 +01:00
Bram Moolenaar
8da9bbfd02 updated for version 7.4.645
Problem:    When splitting the window in a BufAdd autocommand while still in
            the first, empty buffer the window count is wrong.
Solution:   Do not reset b_nwindows to zero and don't increment it.
2015-02-27 19:34:56 +01:00
Bram Moolenaar
ba17ed6797 updated for version 7.4.644
Problem:    Stratus VOS doesn't have sync().
Solution:   Use fflush(). (Karli Aurelia)
2015-02-27 18:25:16 +01:00
Bram Moolenaar
c6b7217ff5 updated for version 7.4.643
Problem:    Using the default file format for Mac files. (Issue 77)
Solution:   Reset the try_mac counter in the right place. (Oswald)
2015-02-27 17:48:09 +01:00
Bram Moolenaar
d45c07ac74 updated for version 7.4.642
Problem:    When using "gf" escaped spaces are not handled.
Solution:   Recognize escaped spaces.
2015-02-27 17:19:10 +01:00
Bram Moolenaar
dfd7691bb8 updated for version 7.4.641
Problem:    The tabline menu was using ":999tabnew" which is now invalid.
Solution:   Use ":$tabnew" instead. (Florian Degner)
2015-02-27 15:03:58 +01:00
Bram Moolenaar
c3bbad085c updated for version 7.4.640
Problem:    After deleting characters in Insert mode such that lines are
            joined undo does not work properly. (issue 324)
Solution:   Use Insstart instead of Insstart_orig. (Christian Brabandt)
2015-02-17 17:50:26 +01:00
Bram Moolenaar
8fc6bc7126 updated for version 7.4.639
Problem:    Combination of linebreak and conceal doesn't work well.
Solution:   Fix the display problems. (Christian Brabandt)
2015-02-17 17:26:10 +01:00
Bram Moolenaar
46538ee46c updated for version 7.4.638
Problem:    Can't build with Lua 5.3 on Windows.
Solution:   use luaL_optinteger() instead of LuaL_optlong(). (Ken Takata)
2015-02-17 16:28:55 +01:00
Bram Moolenaar
1e997827f1 updated for version 7.4.637
Problem:    Incorrectly read the number of buffer for which an autocommand
            should be registered.
Solution:   Reverse check for "<buffer=abuf>". (Lech Lorens)
2015-02-17 16:04:57 +01:00
Bram Moolenaar
35e7594dd4 Add missing test files from 7.4.634 to the repository. 2015-02-17 15:47:46 +01:00
Bram Moolenaar
4653911950 updated for version 7.4.636
Problem:    A search with end offset gets stuck at end of file. (Gary Johnson)
Solution:   When a search doesn't move the cursor repeat it with a higher
            count. (Christian Brabandt)
2015-02-17 15:43:57 +01:00
Bram Moolenaar
05eb612ff3 updated for version 7.4.635
Problem:    If no NL or CR is found in the first block of a file then the
            'fileformat' may be set to "mac". (Issue 77)
Solution:   Check if a CR was found. (eswald)
2015-02-17 14:15:19 +01:00
Bram Moolenaar
f65aad5554 updated for version 7.4.634
Problem:    Marks are not restored after redo + undo.
Solution:   Fix the way marks are restored. (Olaf Dabrunz)
2015-02-17 13:43:40 +01:00
Bram Moolenaar
be20f9fa5d updated for version 7.4.633
Problem:    After 7.4.630 the problem persists.
Solution:   Also skip redo when calling a user function.
2015-02-17 12:44:09 +01:00
Bram Moolenaar
eaa330e8e9 updated for version 7.4.632
Problem:    7.4.592 breaks the netrw plugin, because the autocommands are
            skipped.
Solution:   Roll back the change.
2015-02-17 12:17:14 +01:00
Bram Moolenaar
4a42710695 updated for version 7.4.631
Problem:    The default conceal character is documented to be a space but it's
            initially a dash. (Christian Brabandt)
Solution:   Make the intial value a space.
2015-02-17 11:11:48 +01:00
Bram Moolenaar
c51b02d7d9 updated for version 7.4.630
Problem:    When using Insert mode completion combined with autocommands the
            redo command may not work.
Solution:   Do not save the redo buffer when executing autocommands. (Yasuhiro
            Matsumoto)
2015-02-17 10:58:25 +01:00
Bram Moolenaar
98f52500b6 updated for version 7.4.629
Problem:    Coverity warning for Out-of-bounds read.
Solution:   Increase MAXWLEN to 254. (Eliseo Martínez)
2015-02-10 20:03:45 +01:00
Bram Moolenaar
8872ef1b4e updated for version 7.4.628
Problem:    Compiler warning for variable might be clobbered by longjmp.
Solution:   Add volatile. (Michael Jarvis)
2015-02-10 19:27:05 +01:00
Bram Moolenaar
494838a3fe updated for version 7.4.627
Problem:    The last screen cell is not updated.
Solution:   Respect the "tn" termcap feature. (Hayaki Saito)
2015-02-10 19:20:37 +01:00
Bram Moolenaar
eb2928595b updated for version 7.4.626
Problem:    MSVC with W4 gives useless warnings.
Solution:   Disable more warnings. (Mike Williams)
2015-02-10 18:47:58 +01:00
Bram Moolenaar
24a6ff88bc updated for version 7.4.625
Problem:    Possible NULL pointer dereference.
Solution:   Check for NULL before using it. (Mike Williams)
2015-02-10 18:41:58 +01:00
Bram Moolenaar
9abd5c6507 updated for version 7.4.624
Problem:    May leak memory or crash when vim_realloc() returns NULL.
Solution:   Handle a NULL value properly. (Mike Williams)
2015-02-10 18:34:01 +01:00
Bram Moolenaar
a1d2c58985 updated for version 7.4.623
Problem:    Crash with pattern: \(\)\{80000}  (Dominique Pelle)
Solution:   When the max limit is large fall back to the old engine.
2015-02-10 18:18:17 +01:00
Bram Moolenaar
168e04966c updated for version 7.4.622
Problem:    Compiler warning for unused argument.
Solution:   Add UNUSED.
2015-02-05 20:29:59 +01:00
Bram Moolenaar
f554a3285e updated for version 7.4.621
Problem:    Returning 1 in the wrong function. (Raymond Ko)
Solution:   Return 1 in the right function (hopefully).
2015-02-04 23:08:01 +01:00
Bram Moolenaar
934b136193 updated for version 7.4.620
Problem:    Compiler warning for unitinialized variable. (Tony Mechelynck)
Solution:   Initialize "did_free". (Ben Fritz)
2015-02-04 23:06:45 +01:00
Bram Moolenaar
b84634de30 updated for version 7.4.619
Problem:    luaV_setref() not returning the correct value.
Solution:   Return one.
2015-02-04 22:02:37 +01:00
Bram Moolenaar
9d49da8cbb updated for version 7.4.618
Problem:    luaV_setref() is missing a return statement. (Ozaki Kiichi)
Solution:   Put the return statement back.
2015-02-03 23:10:46 +01:00
Bram Moolenaar
0122c4070f Update runtime files. 2015-02-03 19:13:34 +01:00
Bram Moolenaar
c0a37b9db3 updated for version 7.4.617
Problem:    Wrong ":argdo" range does not cause an error.
Solution:   Reset "cmd" to NULL. (Marcin Szamotulski, Ingo Karkat)
2015-02-03 19:10:53 +01:00
Bram Moolenaar
f2c03d7301 updated for version 7.4.616
Problem:    Cannot insert a tab in front of a block.
Solution:   Correctly compute aop->start. (Christian Brabandt)
2015-02-03 18:36:44 +01:00
Bram Moolenaar
e71eea801e updated for version 7.4.615
Problem:    Vim hangs when freeing a lot of objects.
Solution:   Do not go back to the start of the list every time.  (Yasuhiro
            Matsumoto and Ariya Mizutani)
2015-02-03 17:10:06 +01:00
Bram Moolenaar
d7ce7a9ad2 updated for version 7.4.614
Problem:    There is no test for what patch 7.4.601 fixes.
Solution:   Add a test. (Christian Brabandt)
2015-02-03 16:53:51 +01:00
Bram Moolenaar
70781ee403 updated for version 7.4.613
Problem:    The NFA engine does not implement the 'redrawtime' time limit.
Solution:   Implement the time limit.
2015-02-03 16:49:24 +01:00
Bram Moolenaar
e08dd4e49e updated for version 7.4.612
Problem:    test_eval fails on Mac.
Solution:   Use the * register instead of the + register. (Jun Takimoto)
2015-02-03 16:07:47 +01:00
Bram Moolenaar
b641df4965 updated for version 7.4.611
Problem:    Syntax error.
Solution:   Change statement to return.
2015-02-03 13:16:04 +01:00
Bram Moolenaar
016154919e updated for version 7.4.610
Problem:    Some function headers may be missing from generated .pro files.
Solution:   Add PROTO to the #ifdef.
2015-02-03 13:00:38 +01:00
Bram Moolenaar
2459a5ecaa updated for version 7.4.609
Problem:    For complicated list and dict use the garbage collector can run
            out of stack space.
Solution:   Use a stack of dicts and lists to be marked, thus making it
            iterative instead of recursive. (Ben Fritz)
2015-02-03 12:55:18 +01:00
309 changed files with 15462 additions and 5169 deletions

2
.gitignore vendored
View File

@@ -69,5 +69,7 @@ src/testdir/lua.vim
src/testdir/small.vim
src/testdir/tiny.vim
src/testdir/test*.out
src/testdir/test*.failed
src/testdir/test.log
src/testdir/dostmp/*
src/memfile_test

41
.travis.yml Normal file
View File

@@ -0,0 +1,41 @@
language: c
compiler:
- clang
- gcc
env:
- COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge
"CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-python3interp --enable-rubyinterp --enable-luainterp'"
- COVERAGE=no FEATURES=small CONFOPT=
- COVERAGE=no FEATURES=tiny CONFOPT=
sudo: false
branches:
except:
- /^v[0-9]/
addons:
apt:
packages:
- lcov
- libperl-dev
- python-dev
- python3-dev
- liblua5.1-0-dev
- lua5.1
before_install:
- pip install --user cpp-coveralls
script:
- NPROC=$(getconf _NPROCESSORS_ONLN)
- ./configure --with-features=$FEATURES $CONFOPT --enable-fail-if-missing && make -j$NPROC
- ./src/vim --version
- make test
after_success:
- if [ x"$COVERAGE" = "xyes" ]; then ~/.local/bin/coveralls -b src -x .xs -e src/xxd -e src/if_perl.c --encodings utf-8 latin-1 EUC-KR; fi
# vim:set sts=2 sw=2 tw=0 et:

54
CONTRIBUTING.md Normal file
View File

@@ -0,0 +1,54 @@
# Contributing to Vim
Patches are welcome in whatever form.
Discussions about patches happen on the vim-dev maillist.
If you create a pull request on GitHub it will be
forwarded to the vim-dev maillist. You can also send your patch there
directly. An attachment with a unified diff format is preferred.
Information about the maillist can be found [on the Vim website].
[on the Vim website]: http://www.vim.org/maillist.php#vim-dev
Please consider adding a test. Test coverage isn't very good yet, this needs
to improve. Look through recent patches for examples. The tests are located
under "src/testdir".
# Reporting issues
We use GitHub issues, but that is not a requirement. Writing to the Vim
maillist is also fine.
Please use the GitHub issues only for actual issues. If you are not 100% sure
that your problem is a Vim issue, please first discuss this on the Vim user
maillist. Try reproducing the problem without any plugins or settings:
vim -N -u NONE
If you report an issue, please describe exactly how to reproduce it.
For example, don't say "insert some text" but say what you did exactly:
"ahere is some text&lt;Esc&gt;".
Ideally, the steps you list can be used to write a test to verify the problem
is fixed.
Feel free to report even the smallest problem, also typos in the documentation.
You can find known issues in the todo file: ":help todo".
Or open [the todo file] on GitHub to see the latest version.
[the todo file]: https://github.com/vim/vim/blob/master/runtime/doc/todo.txt
# Syntax, indent and other runtime files
The latest version of these files can be obtained from the repository.
They are usually not updated with numbered patches.
If you find a problem with one of these files or have a suggestion for
improvement, please first try to contact the maintainer directly.
Look in the header of the file for the name and email address.
The maintainer will take care of issues and send updates to Bram for
distribution with Vim.
If the maintainer does not react, contact the vim-dev maillist.

View File

@@ -4,6 +4,8 @@
# source files for all source archives
SRC_ALL = \
.hgignore \
.travis.yml \
appveyor.yml \
src/README.txt \
src/arabic.c \
src/arabic.h \
@@ -481,6 +483,8 @@ SRC_EXTRA = \
# runtime files for all distributions
RT_ALL = \
README.txt \
README.md \
CONTRIBUTING.md \
runtime/bugreport.vim \
runtime/doc/*.awk \
runtime/doc/*.pl \

120
README.md Normal file
View File

@@ -0,0 +1,120 @@
`README.md` for version 7.4 of Vim: Vi IMproved.
## What is VIM ##
Vim is an almost compatible version of the UNIX editor Vi. Many new features
have been added: multi-level undo, syntax highlighting, command line history,
on-line help, spell checking, filename completion, block operations, etc.
There is also a Graphical User Interface (GUI) available. See
`runtime/doc/vi_diff.txt` for differences with Vi.
This editor is very useful for editing programs and other plain text files.
All commands are given with normal keyboard characters, so those who can type
with ten fingers can work very fast. Additionally, function keys can be
defined by the user, and the mouse can be used.
Vim runs under Amiga DOS, MS-DOS, MS-Windows (95, 98, Me, NT, 2000, XP, Vista,
7), Atari MiNT, Macintosh, BeOS, VMS, RISC OS, OS/2 and almost all flavours of
UNIX. Porting to other systems should not be very difficult.
## Distribution ##
There are separate distributions for Unix, PC, Amiga and some other systems.
This `README.md` file comes with the runtime archive. It includes the
documentation, syntax files and other files that are used at runtime. To run
Vim you must get either one of the binary archives or a source archive.
Which one you need depends on the system you want to run it on and whether you
want or must compile it yourself. Check http://www.vim.org/download.php for
an overview of currently available distributions.
[![Build Status](https://travis-ci.org/vim/vim.svg?branch=master)](https://travis-ci.org/vim/vim)
[![Coverage Status](https://coveralls.io/repos/vim/vim/badge.svg?branch=master&service=github)](https://coveralls.io/github/vim/vim?branch=master)
## Documentation ##
The vim tutor is a one hour training course for beginners. Mostly it can be
started as `vimtutor`. See `:help tutor` for more information.
The best is to use `:help` in Vim. If you don't have an executable yet, read
`runtime/doc/help.txt`. It contains pointers to the other documentation
files. The User Manual reads like a book and is recommended to learn to use
Vim. See `:help user-manual`.
## Copying ##
Vim is Charityware. You can use and copy it as much as you like, but you are
encouraged to make a donation to help orphans in Uganda. Please read the file
`runtime/doc/uganda.txt` for details (do `:help uganda` inside Vim).
Summary of the license: There are no restrictions on using or distributing an
unmodified copy of Vim. Parts of Vim may also be distributed, but the license
text must always be included. For modified versions a few restrictions apply.
The license is GPL compatible, you may compile Vim with GPL libraries and
distribute it.
## Sponsoring ##
Fixing bugs and adding new features takes a lot of time and effort. To show
your appreciation for the work and motivate Bram and others to continue
working on Vim please send a donation.
Since Bram is back to a paid job the money will now be used to help children
in Uganda. See `runtime/doc/uganda.txt`. But at the same time donations
increase Bram's motivation to keep working on Vim!
For the most recent information about sponsoring look on the Vim web site:
http://www.vim.org/sponsor/
## Compiling ##
If you obtained a binary distribution you don't need to compile Vim. If you
obtained a source distribution, all the stuff for compiling Vim is in the
`src` directory. See `src/INSTALL` for instructions.
## Installation ##
See one of these files for system-specific instructions:
README_ami.txt Amiga
README_unix.txt Unix
README_dos.txt MS-DOS and MS-Windows
README_os2.txt OS/2
README_mac.txt Macintosh
README_vms.txt VMS
There are more `README_*.txt` files, depending on the distribution you used.
## Contributing ##
If you would like to help making Vim better, see the `CONTRIBUTING.md` file.
## Information ##
The latest news about Vim can be found on the Vim home page:
http://www.vim.org/
If you have problems, have a look at the Vim documentation or tips:
http://www.vim.org/docs.php
http://vim.wikia.com/wiki/Vim_Tips_Wiki
If you still have problems or any other questions, use one of the mailing
lists to discuss them with Vim users and developers:
http://www.vim.org/maillist.php
If nothing else works, report bugs directly:
Bram Moolenaar <Bram@vim.org>
## Main author ##
Send any other comments, patches, flowers and suggestions to:
Bram Moolenaar <Bram@vim.org>

View File

@@ -94,8 +94,9 @@ INFORMATION
The latest news about Vim can be found on the Vim home page:
http://www.vim.org/
If you have problems, have a look at the Vim FAQ:
http://vimdoc.sf.net/vimfaq.html
If you have problems, have a look at the Vim documentation or tips:
http://www.vim.org/docs.php
http://vim.wikia.com/wiki/Vim_Tips_Wiki
If you still have problems or any other questions, use one of the mailing
lists to discuss them with Vim users and developers:
@@ -110,6 +111,3 @@ MAIN AUTHOR
Send any other comments, patches, flowers and suggestions to:
Bram Moolenaar E-mail: Bram@vim.org
Finsterruetihof 1
8134 Adliswil
Switzerland

15
appveyor.yml Normal file
View File

@@ -0,0 +1,15 @@
version: "{build}"
before_build:
- '"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64 /release'
build_script:
- cd src
- sed -e "s/\$(LINKARGS2)/\$(LINKARGS2) | sed -e 's#.*\\\\r.*##'/" Make_mvc.mak > Make_mvc2.mak
- nmake -f Make_mvc2.mak CPU=AMD64 GUI=yes IME=yes MBYTE=yes ICONV=yes DEBUG=no PYTHON_VER=27 DYNAMIC_PYTHON=yes PYTHON=C:\Python27-x64 PYTHON3_VER=34 DYNAMIC_PYTHON3=yes PYTHON3=C:\Python34-x64
- .\gvim -u NONE -c "redir @a | ver | 0put a | wq!" ver.txt
- type ver.txt
test_script:
- cd testdir
- nmake -f Make_dos.mak VIMPROG=..\gvim

View File

@@ -3,7 +3,7 @@
" Maintainer: Dávid Szabó ( complex857 AT gmail DOT com )
" Previous Maintainer: Mikolaj Machowski ( mikmach AT wp DOT pl )
" URL: https://github.com/shawncplus/phpcomplete.vim
" Last Change: 2014 Dec 01
" Last Change: 2015 Jul 13
"
" OPTIONS:
"
@@ -141,71 +141,80 @@ function! phpcomplete#CompletePHP(findstart, base) " {{{
if a:base != ""
let context = substitute(context, '\s*[$a-zA-Z_0-9\x7f-\xff]*$', '', '')
end
else
let context = ''
end
let [current_namespace, imports] = phpcomplete#GetCurrentNameSpace(getline(0, line('.')))
try
let winheight = winheight(0)
let winnr = winnr()
if context =~? '^use\s'
return phpcomplete#CompleteUse(a:base)
endif
let [current_namespace, imports] = phpcomplete#GetCurrentNameSpace(getline(0, line('.')))
if context =~ '\(->\|::\)$'
" {{{
" Get name of the class
let classname = phpcomplete#GetClassName(line('.'), context, current_namespace, imports)
if context =~? '^use\s' || context ==? 'use'
return phpcomplete#CompleteUse(a:base)
endif
" Get location of class definition, we have to iterate through all
if classname != ''
if classname =~ '\'
" split the last \ segment as a classname, everything else is the namespace
let classname_parts = split(classname, '\')
let namespace = join(classname_parts[0:-2], '\')
let classname = classname_parts[-1]
if context =~ '\(->\|::\)$'
" {{{
" Get name of the class
let classname = phpcomplete#GetClassName(line('.'), context, current_namespace, imports)
" Get location of class definition, we have to iterate through all
if classname != ''
if classname =~ '\'
" split the last \ segment as a classname, everything else is the namespace
let classname_parts = split(classname, '\')
let namespace = join(classname_parts[0:-2], '\')
let classname = classname_parts[-1]
else
let namespace = '\'
endif
let classlocation = phpcomplete#GetClassLocation(classname, namespace)
else
let namespace = '\'
let classlocation = ''
endif
let classlocation = phpcomplete#GetClassLocation(classname, namespace)
if classlocation != ''
if classlocation == 'VIMPHP_BUILTINOBJECT' && has_key(g:php_builtin_classes, tolower(classname))
return phpcomplete#CompleteBuiltInClass(context, classname, a:base)
endif
if filereadable(classlocation)
let classfile = readfile(classlocation)
let classcontent = ''
let classcontent .= "\n".phpcomplete#GetClassContents(classlocation, classname)
let sccontent = split(classcontent, "\n")
let visibility = expand('%:p') == fnamemodify(classlocation, ':p') ? 'private' : 'public'
return phpcomplete#CompleteUserClass(context, a:base, sccontent, visibility)
endif
endif
return phpcomplete#CompleteUnknownClass(a:base, context)
" }}}
elseif context =~? 'implements'
return phpcomplete#CompleteClassName(a:base, ['i'], current_namespace, imports)
elseif context =~? 'extends\s\+.\+$' && a:base == ''
return ['implements']
elseif context =~? 'extends'
let kinds = context =~? 'class\s' ? ['c'] : ['i']
return phpcomplete#CompleteClassName(a:base, kinds, current_namespace, imports)
elseif context =~? 'class [a-zA-Z_\x7f-\xff\\][a-zA-Z_0-9\x7f-\xff\\]*'
" special case when you've typed the class keyword and the name too, only extends and implements allowed there
return filter(['extends', 'implements'], 'stridx(v:val, a:base) == 0')
elseif context =~? 'new'
return phpcomplete#CompleteClassName(a:base, ['c'], current_namespace, imports)
endif
if a:base =~ '^\$'
return phpcomplete#CompleteVariable(a:base)
else
let classlocation = ''
return phpcomplete#CompleteGeneral(a:base, current_namespace, imports)
endif
if classlocation != ''
if classlocation == 'VIMPHP_BUILTINOBJECT' && has_key(g:php_builtin_classes, tolower(classname))
return phpcomplete#CompleteBuiltInClass(context, classname, a:base)
endif
if filereadable(classlocation)
let classfile = readfile(classlocation)
let classcontent = ''
let classcontent .= "\n".phpcomplete#GetClassContents(classlocation, classname)
let sccontent = split(classcontent, "\n")
let visibility = expand('%:p') == fnamemodify(classlocation, ':p') ? 'private' : 'public'
return phpcomplete#CompleteUserClass(context, a:base, sccontent, visibility)
endif
endif
return phpcomplete#CompleteUnknownClass(a:base, context)
" }}}
elseif context =~? 'implements'
return phpcomplete#CompleteClassName(a:base, ['i'], current_namespace, imports)
elseif context =~? 'extends\s\+.\+$'
return ['implements']
elseif context =~? 'extends'
let kinds = context =~? 'class\s' ? ['c'] : ['i']
return phpcomplete#CompleteClassName(a:base, kinds, current_namespace, imports)
elseif context =~? 'class [a-zA-Z_\x7f-\xff\\][a-zA-Z_0-9\x7f-\xff\\]*'
" special case when you've typed the class keyword and the name too, only extends and implements allowed there
return filter(['extends', 'implements'], 'stridx(v:val, a:base) == 0')
elseif context =~? 'new'
return phpcomplete#CompleteClassName(a:base, ['c'], current_namespace, imports)
endif
if a:base =~ '^\$'
return phpcomplete#CompleteVariable(a:base)
else
return phpcomplete#CompleteGeneral(a:base, current_namespace, imports)
endif
finally
silent! exec winnr.'resize '.winheight
endtry
endfunction
" }}}
@@ -244,12 +253,13 @@ function! phpcomplete#CompleteUse(base) " {{{
if has_key(tag, 'namespace')
let patched_ctags_detected = 1
endif
if tag.kind ==? 'n' && tag.name =~? '^'.namespace_match_pattern
let patched_ctags_detected = 1
call add(namespaced_matches, {'word': tag.name, 'kind': 'n', 'menu': tag.filename, 'info': tag.filename })
elseif has_key(tag, 'namespace') && (tag.kind ==? 'c' || tag.kind ==? 'i') && tag.namespace ==? namespace_for_class
elseif has_key(tag, 'namespace') && (tag.kind ==? 'c' || tag.kind ==? 'i' || tag.kind ==? 't') && tag.namespace ==? namespace_for_class
call add(namespaced_matches, {'word': namespace_for_class.'\'.tag.name, 'kind': tag.kind, 'menu': tag.filename, 'info': tag.filename })
elseif (tag.kind ==? 'c' || tag.kind ==? 'i')
elseif (tag.kind ==? 'c' || tag.kind ==? 'i' || tag.kind ==? 't')
call add(no_namespace_matches, {'word': namespace_for_class.'\'.tag.name, 'kind': tag.kind, 'menu': tag.filename, 'info': tag.filename })
endif
endfor
@@ -272,6 +282,10 @@ function! phpcomplete#CompleteUse(base) " {{{
endfor
endif
for comp in res
let comp.word = substitute(comp.word, '^\\', '', '')
endfor
return res
endfunction
" }}}
@@ -304,7 +318,7 @@ function! phpcomplete#CompleteGeneral(base, current_namespace, imports) " {{{
\ '^&\?\zs[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\ze')
if f_name =~? '^'.substitute(a:base, '\\', '\\\\', 'g')
let f_args = matchstr(i,
\ '^&\?[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\s*(\zs.\{-}\ze)\_s*\({\|$\)')
\ '^&\?[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\s*(\zs.\{-}\ze)\_s*\(;\|{\|$\)')
let int_functions[f_name.'('] = f_args.')'
endif
endfor
@@ -326,6 +340,7 @@ function! phpcomplete#CompleteGeneral(base, current_namespace, imports) " {{{
let ext_functions = {}
let ext_constants = {}
let ext_classes = {}
let ext_traits = {}
let ext_interfaces = {}
let ext_namespaces = {}
@@ -420,7 +435,7 @@ function! phpcomplete#CompleteGeneral(base, current_namespace, imports) " {{{
endif
endif
endif
elseif tag.kind ==? 'c' || tag.kind ==? 'i'
elseif tag.kind ==? 'c' || tag.kind ==? 'i' || tag.kind ==? 't'
let info = ' - '.tag.filename
let key = ''
@@ -441,6 +456,8 @@ function! phpcomplete#CompleteGeneral(base, current_namespace, imports) " {{{
let ext_classes[key] = info
elseif tag.kind ==? 'i'
let ext_interfaces[key] = info
elseif tag.kind ==? 't'
let ext_traits[key] = info
endif
endif
endif
@@ -463,7 +480,7 @@ function! phpcomplete#CompleteGeneral(base, current_namespace, imports) " {{{
endfor
for [interfacename, info] in items(g:php_builtin_interfacenames)
if interfacename =~? '^'.base
let builtin_interfaces[leading_slash.interfacename] = info
let builtin_interfaces[leading_slash.g:php_builtin_interfaces[tolower(interfacename)].name] = info
endif
endfor
endif
@@ -511,6 +528,8 @@ function! phpcomplete#CompleteGeneral(base, current_namespace, imports) " {{{
else
let ext_interfaces[imported_name] = ' '.import.name.' - '.import.filename
endif
elseif import.kind ==? 't'
let ext_traits[imported_name] = ' '.import.name.' - '.import.filename
endif
" no builtin interfaces
@@ -540,6 +559,9 @@ function! phpcomplete#CompleteGeneral(base, current_namespace, imports) " {{{
" Add external interfaces
call extend(all_values, ext_interfaces)
" Add external traits
call extend(all_values, ext_traits)
" Add built-in classes
call extend(all_values, builtin_classnames)
@@ -566,6 +588,8 @@ function! phpcomplete#CompleteGeneral(base, current_namespace, imports) " {{{
elseif has_key(ext_interfaces, i) || has_key(builtin_interfaces, i)
let info = has_key(ext_interfaces, i) ? ext_interfaces[i] : builtin_interfaces[i].' - builtin'
let final_list += [{'word':i, 'kind': 'i', 'menu': info, 'info': i.info}]
elseif has_key(ext_traits, i)
let final_list += [{'word':i, 'kind': 't', 'menu': ext_traits[i], 'info': ext_traits[i]}]
elseif has_key(int_constants, i) || has_key(builtin_constants, i)
let info = has_key(int_constants, i) ? int_constants[i] : ' - builtin'
let final_list += [{'word':i, 'kind': 'd', 'menu': info, 'info': i.info}]
@@ -622,7 +646,7 @@ function! phpcomplete#CompleteUnknownClass(base, context) " {{{
let f_name = matchstr(i,
\ '^&\?\zs[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\ze')
let f_args = matchstr(i,
\ '^&\?[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\s*(\zs.\{-}\ze)\_s*\({\|$\)')
\ '^&\?[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\s*(\zs.\{-}\ze)\_s*\(;\|{\|$\)')
let int_functions[f_name.'('] = f_args.')'
endfor
@@ -784,7 +808,7 @@ function! phpcomplete#CompleteClassName(base, kinds, current_namespace, imports)
let tags = []
if len(tag_match_pattern) >= g:phpcomplete_min_num_of_chars_for_namespace_completion
let tags = phpcomplete#GetTaglist('^'.tag_match_pattern)
let tags = phpcomplete#GetTaglist('^\c'.tag_match_pattern)
endif
if len(tags)
@@ -861,6 +885,39 @@ function! phpcomplete#CompareCompletionRow(i1, i2) " {{{
endfunction
" }}}
function! s:getNextCharWithPos(filelines, current_pos) " {{{
let line_no = a:current_pos[0]
let col_no = a:current_pos[1]
let last_line = a:filelines[len(a:filelines) - 1]
let end_pos = [len(a:filelines) - 1, strlen(last_line) - 1]
if line_no > end_pos[0] || line_no == end_pos[0] && col_no > end_pos[1]
return ['EOF', 'EOF']
endif
" we've not reached the end of the current line break
if col_no + 1 < strlen(a:filelines[line_no])
let col_no += 1
else
" we've reached the end of the current line, jump to the next
" non-blank line (blank lines have no position where we can read from,
" not even a whitespace. The newline char does not positionable by vim
let line_no += 1
while strlen(a:filelines[line_no]) == 0
let line_no += 1
endwhile
let col_no = 0
endif
" return 'EOF' string to signal end of file, normal results only one char
" in length
if line_no == end_pos[0] && col_no > end_pos[1]
return ['EOF', 'EOF']
endif
return [[line_no, col_no], a:filelines[line_no][col_no]]
endfunction " }}}
function! phpcomplete#EvaluateModifiers(modifiers, required_modifiers, prohibited_modifiers) " {{{
" if theres no modifier, and no modifier is allowed and no modifier is required
if len(a:modifiers) == 0 && len(a:required_modifiers) == 0
@@ -924,7 +981,7 @@ function! phpcomplete#CompleteUserClass(context, base, sccontent, visibility) "
let f_name = matchstr(i,
\ 'function\s*&\?\zs[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\ze')
let f_args = matchstr(i,
\ 'function\s*&\?[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\s*(\zs.\{-}\ze)\_s*\({\|\_$\)')
\ 'function\s*&\?[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\s*(\zs.\{-}\ze)\_s*\(;\|{\|\_$\)')
if f_name != '' && stridx(f_name, '__') != 0
let c_functions[f_name.'('] = f_args
if g:phpcomplete_parse_docblock_comments
@@ -1322,8 +1379,8 @@ function! phpcomplete#GetCallChainReturnType(classname_candidate, class_candidat
" Get Structured information of all classes and subclasses including namespace and includes
" try to find the method's return type in docblock comment
for classstructure in classcontents
let doclock_target_pattern = 'function\s\+&\?'.method.'\|\(public\|private\|protected\|var\).\+\$'.method
let doc_str = phpcomplete#GetDocBlock(split(classstructure.content, '\n'), doclock_target_pattern)
let docblock_target_pattern = 'function\s\+&\?'.method.'\|\(public\|private\|protected\|var\).\+\$'.method
let doc_str = phpcomplete#GetDocBlock(split(classstructure.content, '\n'), docblock_target_pattern)
if doc_str != ''
break
endif
@@ -1475,21 +1532,19 @@ function! phpcomplete#GetClassName(start_line, context, current_namespace, impor
return ''
endif
if line =~? '\v^\s*(abstract\s+|final\s+)*\s*class'
let class_name = matchstr(line, '\c\s*class\s*\zs'.class_name_pattern.'\ze')
if line =~? '\v^\s*(abstract\s+|final\s+)*\s*class\s'
let class_name = matchstr(line, '\cclass\s\+\zs'.class_name_pattern.'\ze')
let extended_class = matchstr(line, '\cclass\s\+'.class_name_pattern.'\s\+extends\s\+\zs'.class_name_pattern.'\ze')
let classname_candidate = a:context =~? 'parent::' ? extended_class : class_name
else
let i += 1
continue
if classname_candidate != ''
let [classname_candidate, class_candidate_namespace] = phpcomplete#GetCallChainReturnType(classname_candidate, class_candidate_namespace, class_candidate_imports, methodstack)
" return absolute classname, without leading \
return (class_candidate_namespace == '\' || class_candidate_namespace == '') ? classname_candidate : class_candidate_namespace.'\'.classname_candidate
endif
endif
if classname_candidate != ''
let [classname_candidate, class_candidate_namespace] = phpcomplete#GetCallChainReturnType(classname_candidate, class_candidate_namespace, class_candidate_imports, methodstack)
" return absolute classname, without leading \
return (class_candidate_namespace == '\' || class_candidate_namespace == '') ? classname_candidate : class_candidate_namespace.'\'.classname_candidate
endif
let i += 1
endwhile
elseif a:context =~? '(\s*new\s\+'.class_name_pattern.'\s*)->'
let classname_candidate = matchstr(a:context, '\cnew\s\+\zs'.class_name_pattern.'\ze')
@@ -1602,26 +1657,26 @@ function! phpcomplete#GetClassName(start_line, context, current_namespace, impor
endif
endif
" in-file lookup for typehinted function arguments
" - the function can have a name or be anonymous (e.g., function qux() { ... } vs. function () { ... })
" - the type-hinted argument can be anywhere in the arguments list.
if line =~? 'function\(\s\+'.function_name_pattern.'\)\?\s*(.\{-}'.class_name_pattern.'\s\+'.object && !object_is_array
let f_args = matchstr(line, '\cfunction\(\s\+'.function_name_pattern.'\)\?\s*(\zs.\{-}\ze)')
let args = split(f_args, '\s*\zs,\ze\s*')
for arg in args
if arg =~# object.'\(,\|$\)'
let classname_candidate = matchstr(arg, '\s*\zs'.class_name_pattern.'\ze\s\+'.object)
let [classname_candidate, class_candidate_namespace] = phpcomplete#ExpandClassName(classname_candidate, a:current_namespace, a:imports)
" function declaration line
if line =~? 'function\(\s\+'.function_name_pattern.'\)\?\s*('
let function_lines = join(reverse(copy(lines)), " ")
" search for type hinted arguments
if function_lines =~? 'function\(\s\+'.function_name_pattern.'\)\?\s*(.\{-}'.class_name_pattern.'\s\+'.object && !object_is_array
let f_args = matchstr(function_lines, '\cfunction\(\s\+'.function_name_pattern.'\)\?\s*(\zs.\{-}\ze)')
let args = split(f_args, '\s*\zs,\ze\s*')
for arg in args
if arg =~# object.'\(,\|$\)'
let classname_candidate = matchstr(arg, '\s*\zs'.class_name_pattern.'\ze\s\+'.object)
let [classname_candidate, class_candidate_namespace] = phpcomplete#ExpandClassName(classname_candidate, a:current_namespace, a:imports)
break
endif
endfor
if classname_candidate != ''
break
endif
endfor
if classname_candidate != ''
break
endif
endif
" if we see a function declaration, try loading the docblock for it and look for matching @params
if line =~? 'function\(\s\+'.function_name_pattern.'\)\?\s*(.\{-}'.object
" search for docblock for the function
let match_line = substitute(line, '\\', '\\\\', 'g')
let sccontent = getline(0, a:start_line - i)
let doc_str = phpcomplete#GetDocBlock(sccontent, match_line)
@@ -1641,13 +1696,16 @@ function! phpcomplete#GetClassName(start_line, context, current_namespace, impor
endif
" assignment for the variable in question with a variable on the right hand side
if line =~# '^\s*'.object.'\s*=&\?\s*'.variable_name_pattern
if line =~# '^\s*'.object.'\s*=&\?\s\+\(clone\)\?\s*'.variable_name_pattern
" try to find the next non-comment or string ";" char
let start_col = match(line, '^\s*'.object.'\C\s*=\zs&\?\s*'.variable_name_pattern)
let filelines = reverse(lines)
let [pos, char] = s:getNextCharWithPos(filelines, [a:start_line - i - 1, start_col])
let start_col = match(line, '^\s*'.object.'\C\s*=\zs&\?\s\+\(clone\)\?\s*'.variable_name_pattern)
let filelines = reverse(copy(lines))
let [pos, char] = s:getNextCharWithPos(filelines, [len(filelines) - i, start_col])
let chars_read = 1
let last_pos = pos
" function_boundary == 0 if we are not in a function
let real_lines_offset = len(function_boundary) == 1 ? 1 : function_boundary[0][0]
" read while end of the file
while char != 'EOF' && chars_read < 1000
let last_pos = pos
@@ -1655,7 +1713,11 @@ function! phpcomplete#GetClassName(start_line, context, current_namespace, impor
let chars_read += 1
" we got a candidate
if char == ';'
let synIDName = synIDattr(synID(pos[0] + 1, pos[1] + 1, 0), 'name')
" pos values is relative to the function's lines,
" line 0 need to be offsetted with the line number
" where te function was started to get the line number
" in real buffer terms
let synIDName = synIDattr(synID(real_lines_offset + pos[0], pos[1] + 1, 0), 'name')
" it's not a comment or string, end search
if synIDName !~? 'comment\|string'
break
@@ -1663,7 +1725,7 @@ function! phpcomplete#GetClassName(start_line, context, current_namespace, impor
endif
endwhile
let prev_context = phpcomplete#GetCurrentInstruction(last_pos[0] + 1, last_pos[1], b:phpbegin)
let prev_context = phpcomplete#GetCurrentInstruction(real_lines_offset + last_pos[0], last_pos[1], b:phpbegin)
if prev_context == ''
" cannot get previous context give up
return
@@ -1683,12 +1745,14 @@ function! phpcomplete#GetClassName(start_line, context, current_namespace, impor
" assignment for the variable in question with a function on the right hand side
if line =~# '^\s*'.object.'\s*=&\?\s*'.function_invocation_pattern
" try to find the next non-comment or string ";" char
let start_col = match(line, '\C^\s*'.object.'\s*=\zs&\?\s*'.function_invocation_pattern)
let filelines = reverse(lines)
let [pos, char] = s:getNextCharWithPos(filelines, [a:start_line - i - 1, start_col])
let filelines = reverse(copy(lines))
let [pos, char] = s:getNextCharWithPos(filelines, [len(filelines) - i, start_col])
let chars_read = 1
let last_pos = pos
" function_boundary == 0 if we are not in a function
let real_lines_offset = len(function_boundary) == 1 ? 1 : function_boundary[0][0]
" read while end of the file
while char != 'EOF' && chars_read < 1000
let last_pos = pos
@@ -1696,7 +1760,11 @@ function! phpcomplete#GetClassName(start_line, context, current_namespace, impor
let chars_read += 1
" we got a candidate
if char == ';'
let synIDName = synIDattr(synID(pos[0] + 1, pos[1] + 1, 0), 'name')
" pos values is relative to the function's lines,
" line 0 need to be offsetted with the line number
" where te function was started to get the line number
" in real buffer terms
let synIDName = synIDattr(synID(real_lines_offset + pos[0], pos[1] + 1, 0), 'name')
" it's not a comment or string, end search
if synIDName !~? 'comment\|string'
break
@@ -1704,7 +1772,7 @@ function! phpcomplete#GetClassName(start_line, context, current_namespace, impor
endif
endwhile
let prev_context = phpcomplete#GetCurrentInstruction(last_pos[0] + 1, last_pos[1], b:phpbegin)
let prev_context = phpcomplete#GetCurrentInstruction(real_lines_offset + last_pos[0], last_pos[1], b:phpbegin)
if prev_context == ''
" cannot get previous context give up
return
@@ -1807,6 +1875,9 @@ function! phpcomplete#GetClassLocation(classname, namespace) " {{{
if has_key(g:php_builtin_classes, tolower(a:classname)) && (a:namespace == '' || a:namespace == '\')
return 'VIMPHP_BUILTINOBJECT'
endif
if has_key(g:php_builtin_interfaces, tolower(a:classname)) && (a:namespace == '' || a:namespace == '\')
return 'VIMPHP_BUILTINOBJECT'
endif
if a:namespace == '' || a:namespace == '\'
let search_namespace = '\'
@@ -1819,7 +1890,7 @@ function! phpcomplete#GetClassLocation(classname, namespace) " {{{
let i = 1
while i < line('.')
let line = getline(line('.')-i)
if line =~? '^\s*\(abstract\s\+\|final\s\+\)*\s*class\s*'.a:classname.'\(\s\+\|$\)' && tolower(current_namespace) == search_namespace
if line =~? '^\s*\(abstract\s\+\|final\s\+\)*\s*\(class\|interface\|trait\)\s*'.a:classname.'\(\s\+\|$\|{\)' && tolower(current_namespace) == search_namespace
return expand('%:p')
else
let i += 1
@@ -1831,7 +1902,9 @@ function! phpcomplete#GetClassLocation(classname, namespace) " {{{
let no_namespace_candidate = ''
let tags = phpcomplete#GetTaglist('^'.a:classname.'$')
for tag in tags
if tag.kind == 'c' || tag.kind == 'i'
" We'll allow interfaces and traits to be handled classes since you
" can't have colliding names with different kinds anyway
if tag.kind == 'c' || tag.kind == 'i' || tag.kind == 't'
if !has_key(tag, 'namespace')
let no_namespace_candidate = tag.filename
else
@@ -1981,7 +2054,7 @@ function! phpcomplete#GetClassContentsStructure(file_path, file_lines, class_nam
silent! below 1new
silent! 0put =cfile
call search('\(class\|interface\)\_s\+'.a:class_name.'\(\>\|$\)')
call search('\c\(class\|interface\|trait\)\_s\+'.a:class_name.'\(\>\|$\)')
let cfline = line('.')
call search('{')
let endline = line('.')
@@ -1989,13 +2062,62 @@ function! phpcomplete#GetClassContentsStructure(file_path, file_lines, class_nam
let content = join(getline(cfline, endline), "\n")
" Catch extends
if content =~? 'extends'
let extends_class = matchstr(content, 'class\_s\+'.a:class_name.'\_s\+extends\_s\+\zs'.class_name_pattern.'\ze')
let extends_string = matchstr(content, '\(class\|interface\)\_s\+'.a:class_name.'\_.\+extends\_s\+\zs\('.class_name_pattern.'\(,\|\_s\)*\)\+\ze\(extends\|{\)')
let extended_classes = map(split(extends_string, '\(,\|\_s\)\+'), 'substitute(v:val, "\\_s\\+", "", "g")')
else
let extends_class = ''
let extended_classes = ''
endif
" Catch implements
if content =~? 'implements'
let implements_string = matchstr(content, 'class\_s\+'.a:class_name.'\_.\+implements\_s\+\zs\('.class_name_pattern.'\(,\|\_s\)*\)\+\ze')
let implemented_interfaces = map(split(implements_string, '\(,\|\_s\)\+'), 'substitute(v:val, "\\_s\\+", "", "g")')
else
let implemented_interfaces = []
endif
call searchpair('{', '', '}', 'W')
let classcontent = join(getline(cfline, line('.')), "\n")
let class_closing_bracket_line = line('.')
let classcontent = join(getline(cfline, class_closing_bracket_line), "\n")
let used_traits = []
" move back to the line next to the class's definition
call cursor(endline + 1, 1)
let keep_searching = 1
while keep_searching != 0
" try to grab "use..." keywords
let [lnum, col] = searchpos('\c^\s\+use\s\+'.class_name_pattern, 'cW', class_closing_bracket_line)
let syn_name = synIDattr(synID(lnum, col, 0), "name")
if syn_name =~? 'string\|comment'
call cursor(lnum + 1, 1)
continue
endif
let trait_line = getline(lnum)
if trait_line !~? ';'
" try to find the next line containing ';'
let l = lnum
let search_line = trait_line
" add lines from the file until theres no ';' in them
while search_line !~? ';' && l > 0
" file lines are reversed so we need to go backwards
let l += 1
let search_line = getline(l)
let trait_line .= ' '.substitute(search_line, '\(^\s\+\|\s\+$\)', '', 'g')
endwhile
endif
let use_expression = matchstr(trait_line, '^\s*use\s\+\zs.\{-}\ze;')
let use_parts = map(split(use_expression, '\s*,\s*'), 'substitute(v:val, "\\s+", " ", "g")')
let used_traits += map(use_parts, 'substitute(v:val, "\\s", "", "g")')
call cursor(lnum + 1, 1)
if [lnum, col] == [0, 0]
let keep_searching = 0
endif
endwhile
silent! bw! %
let [current_namespace, imports] = phpcomplete#GetCurrentNameSpace(a:file_lines[0:cfline])
" go back to original window
exe phpcomplete_original_window.'wincmd w'
@@ -2008,21 +2130,35 @@ function! phpcomplete#GetClassContentsStructure(file_path, file_lines, class_nam
\ 'mtime': getftime(full_file_path),
\ })
if extends_class != ''
let [extends_class, namespace] = phpcomplete#ExpandClassName(extends_class, current_namespace, imports)
if namespace == ''
let namespace = '\'
endif
let classlocation = phpcomplete#GetClassLocation(extends_class, namespace)
if classlocation == "VIMPHP_BUILTINOBJECT"
let result += [phpcomplete#GenerateBuiltinClassStub(g:php_builtin_classes[tolower(extends_class)])]
elseif classlocation != '' && filereadable(classlocation)
let full_file_path = fnamemodify(classlocation, ':p')
let result += phpcomplete#GetClassContentsStructure(full_file_path, readfile(full_file_path), extends_class)
elseif tolower(current_namespace) == tolower(namespace)
" try to find the declaration in the same file.
let result += phpcomplete#GetClassContentsStructure(full_file_path, a:file_lines, extends_class)
endif
let all_extends = used_traits
if len(extended_classes) > 0
call extend(all_extends, extended_classes)
endif
if len(implemented_interfaces) > 0
call extend(all_extends, implemented_interfaces)
endif
if len(all_extends) > 0
for class in all_extends
let [class, namespace] = phpcomplete#ExpandClassName(class, current_namespace, imports)
if namespace == ''
let namespace = '\'
endif
let classlocation = phpcomplete#GetClassLocation(class, namespace)
if classlocation == "VIMPHP_BUILTINOBJECT"
if has_key(g:php_builtin_classes, tolower(class))
let result += [phpcomplete#GenerateBuiltinClassStub('class', g:php_builtin_classes[tolower(class)])]
endif
if has_key(g:php_builtin_interfaces, tolower(class))
let result += [phpcomplete#GenerateBuiltinClassStub('interface', g:php_builtin_interfaces[tolower(class)])]
endif
elseif classlocation != '' && filereadable(classlocation)
let full_file_path = fnamemodify(classlocation, ':p')
let result += phpcomplete#GetClassContentsStructure(full_file_path, readfile(full_file_path), class)
elseif tolower(current_namespace) == tolower(namespace) && match(join(a:file_lines, "\n"), '\c\(class\|interface\|trait\)\_s\+'.class.'\(\>\|$\)') != -1
" try to find the declaration in the same file.
let result += phpcomplete#GetClassContentsStructure(full_file_path, a:file_lines, class)
endif
endfor
endif
return result
@@ -2039,43 +2175,53 @@ function! phpcomplete#GetClassContents(classlocation, class_name) " {{{
endfunction
" }}}
function! phpcomplete#GenerateBuiltinClassStub(class_info) " {{{
let re = 'class '.a:class_info['name']." {"
for [name, initializer] in items(a:class_info.constants)
let re .= "\n\tconst ".name." = ".initializer.";"
endfor
for [name, info] in items(a:class_info.properties)
let re .= "\n\t// @var $".name." ".info.type
let re .= "\n\tpublic $".name.";"
endfor
for [name, info] in items(a:class_info.static_properties)
let re .= "\n\t// @var ".name." ".info.type
let re .= "\n\tpublic static ".name." = ".info.initializer.";"
endfor
for [name, info] in items(a:class_info.methods)
if name =~ '^__'
continue
endif
let re .= "\n\t/**"
let re .= "\n\t * ".name
let re .= "\n\t *"
let re .= "\n\t * @return ".info.return_type
let re .= "\n\t */"
let re .= "\n\tpublic function ".name."(".info.signature."){"
let re .= "\n\t}"
endfor
for [name, info] in items(a:class_info.static_methods)
let re .= "\n\t/**"
let re .= "\n\t * ".name
let re .= "\n\t *"
let re .= "\n\t * @return ".info.return_type
let re .= "\n\t */"
let re .= "\n\tpublic static function ".name."(".info.signature."){"
let re .= "\n\t}"
endfor
function! phpcomplete#GenerateBuiltinClassStub(type, class_info) " {{{
let re = a:type.' '.a:class_info['name']." {"
if has_key(a:class_info, 'constants')
for [name, initializer] in items(a:class_info.constants)
let re .= "\n\tconst ".name." = ".initializer.";"
endfor
endif
if has_key(a:class_info, 'properties')
for [name, info] in items(a:class_info.properties)
let re .= "\n\t// @var $".name." ".info.type
let re .= "\n\tpublic $".name.";"
endfor
endif
if has_key(a:class_info, 'static_properties')
for [name, info] in items(a:class_info.static_properties)
let re .= "\n\t// @var ".name." ".info.type
let re .= "\n\tpublic static ".name." = ".info.initializer.";"
endfor
endif
if has_key(a:class_info, 'methods')
for [name, info] in items(a:class_info.methods)
if name =~ '^__'
continue
endif
let re .= "\n\t/**"
let re .= "\n\t * ".name
let re .= "\n\t *"
let re .= "\n\t * @return ".info.return_type
let re .= "\n\t */"
let re .= "\n\tpublic function ".name."(".info.signature."){"
let re .= "\n\t}"
endfor
endif
if has_key(a:class_info, 'static_methods')
for [name, info] in items(a:class_info.static_methods)
let re .= "\n\t/**"
let re .= "\n\t * ".name
let re .= "\n\t *"
let re .= "\n\t * @return ".info.return_type
let re .= "\n\t */"
let re .= "\n\tpublic static function ".name."(".info.signature."){"
let re .= "\n\t}"
endfor
endif
let re .= "\n}"
return { 'class': a:class_info['name'],
return { a:type : a:class_info['name'],
\ 'content': re,
\ 'namespace': '',
\ 'imports': {},
@@ -2099,8 +2245,11 @@ function! phpcomplete#GetDocBlock(sccontent, search) " {{{
" start backward serch for the comment block
while l != 0
let line = a:sccontent[l]
" if comment end found save line position and end search
if line =~? '^\s*\*/'
" if it's a one line docblock like comment and we can just return it right away
if line =~? '^\s*\/\*\*.\+\*\/\s*$'
return substitute(line, '\v^\s*(\/\*\*\s*)|(\s*\*\/)\s*$', '', 'g')
"... or if comment end found save line position and end search
elseif line =~? '^\s*\*/'
let comment_end = l
break
" ... or the line doesn't blank (only whitespace or nothing) end search
@@ -2122,6 +2271,7 @@ function! phpcomplete#GetDocBlock(sccontent, search) " {{{
endif
let l -= 1
endwhile
" no docblock comment start found
if comment_start == -1
return ''
@@ -2270,19 +2420,48 @@ endfunction!
" }}}
function! phpcomplete#GetCurrentNameSpace(file_lines) " {{{
let original_window = winnr()
silent! below 1new
silent! 0put =a:file_lines
normal! G
" clear out classes, functions and other blocks
while 1
let block_start_pos = searchpos('\c\(class\|trait\|function\|interface\)\s\+\_.\{-}\zs{', 'Web')
if block_start_pos == [0, 0]
break
endif
let block_end_pos = searchpairpos('{', '', '}\|\%$', 'W', 'synIDattr(synID(line("."), col("."), 0), "name") =~? "string\\|comment"')
if block_end_pos != [0, 0]
" end of the block found, just delete it
silent! exec block_start_pos[0].','.block_end_pos[0].'d _'
else
" block pair not found, use block start as beginning and the end
" of the buffer instead
silent! exec block_start_pos[0].',$d _'
endif
endwhile
normal! G
" grab the remains
let file_lines = reverse(getline(1, line('.') - 1))
silent! bw! %
exe original_window.'wincmd w'
let namespace_name_pattern = '[a-zA-Z_\x7f-\xff\\][a-zA-Z_0-9\x7f-\xff\\]*'
let file_lines = reverse(copy(a:file_lines))
let i = 0
let file_length = len(file_lines)
let imports = {}
let current_namespace = '\'
while i < file_length
let line = file_lines[i]
if line =~? '^\s*namespace\s*'.namespace_name_pattern
let current_namespace = matchstr(line, '^\s*namespace\s*\zs'.namespace_name_pattern.'\ze')
if line =~? '^\(<?php\)\?\s*namespace\s*'.namespace_name_pattern
let current_namespace = matchstr(line, '\c^\(<?php\)\?\s*namespace\s*\zs'.namespace_name_pattern.'\ze')
break
endif
@@ -2303,11 +2482,11 @@ function! phpcomplete#GetCurrentNameSpace(file_lines) " {{{
let use_line .= ' '.substitute(search_line, '\(^\s\+\|\s\+$\)', '', 'g')
endwhile
endif
let use_expression = matchstr(use_line, '^\s*use\s\+\zs.\{-}\ze;')
let use_expression = matchstr(use_line, '^\c\s*use\s\+\zs.\{-}\ze;')
let use_parts = map(split(use_expression, '\s*,\s*'), 'substitute(v:val, "\\s+", " ", "g")')
for part in use_parts
if part =~? '\s\+as\s\+'
let [object, name] = split(part, '\s\+as\s\+')
let [object, name] = split(part, '\s\+as\s\+\c')
let object = substitute(object, '^\\', '', '')
let name = substitute(name, '^\\', '', '')
else
@@ -2343,7 +2522,7 @@ function! phpcomplete#GetCurrentNameSpace(file_lines) " {{{
break
endif
" if the name matches with the extracted classname and namespace
if (tag.kind == 'c' || tag.kind == 'i') && tag.name == classname
if (tag.kind == 'c' || tag.kind == 'i' || tag.kind == 't') && tag.name == classname
if has_key(tag, 'namespace')
let patched_ctags_detected = 1
if tag.namespace == namespace_for_classes
@@ -2386,7 +2565,7 @@ function! phpcomplete#GetCurrentNameSpace(file_lines) " {{{
let tags = phpcomplete#GetTaglist('^'.import['name'].'$')
for tag in tags
" search for the first matchin namespace, class, interface with no namespace
if !has_key(tag, 'namespace') && (tag.kind == 'n' || tag.kind == 'c' || tag.kind == 'i')
if !has_key(tag, 'namespace') && (tag.kind == 'n' || tag.kind == 'c' || tag.kind == 'i' || tag.kind == 't')
call extend(import, tag)
let import['builtin'] = 0
break
@@ -2445,7 +2624,7 @@ endfunction
function! phpcomplete#ExpandClassName(classname, current_namespace, imports) " {{{
" if there's an imported class, just use that class's information
if has_key(a:imports, a:classname) && (a:imports[a:classname].kind == 'c' || a:imports[a:classname].kind == 'i')
if has_key(a:imports, a:classname) && (a:imports[a:classname].kind == 'c' || a:imports[a:classname].kind == 'i' || a:imports[a:classname].kind == 't')
let namespace = has_key(a:imports[a:classname], 'namespace') ? a:imports[a:classname].namespace : ''
return [a:imports[a:classname].name, namespace]
endif

View File

@@ -1,7 +1,7 @@
"python3complete.vim - Omni Completion for python
" Maintainer: Aaron Griffin <aaronmgriffin@gmail.com>
" Version: 0.9
" Last Updated: 18 Jun 2009
" Last Updated: 18 Jun 2009 (small fix 2015 Sep 14 from Debian)
"
" Roland Puntaier: this file contains adaptations for python3 and is parallel to pythoncomplete.vim
"
@@ -359,6 +359,7 @@ class PyParser:
def __init__(self):
self.top = Scope('global',0)
self.scope = self.top
self.parserline = 0
def _parsedotname(self,pre=None):
#returns (dottedname, nexttoken)

View File

@@ -75,6 +75,7 @@ DOCS = \
pattern.txt \
pi_getscript.txt \
pi_gzip.txt \
pi_logipat.txt \
pi_netrw.txt \
pi_paren.txt \
pi_spec.txt \
@@ -207,6 +208,7 @@ HTMLS = \
pattern.html \
pi_getscript.html \
pi_gzip.html \
pi_logipat.html \
pi_netrw.html \
pi_paren.html \
pi_spec.html \

View File

@@ -1,4 +1,4 @@
*autocmd.txt* For Vim version 7.4. Last change: 2014 Sep 23
*autocmd.txt* For Vim version 7.4. Last change: 2015 Aug 18
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -259,6 +259,7 @@ Name triggered by ~
|Syntax| when the 'syntax' option has been set
|EncodingChanged| after the 'encoding' option has been changed
|TermChanged| after the value of 'term' has changed
|OptionSet| after setting any option
Startup and exit
|VimEnter| after doing all the startup stuff
@@ -505,6 +506,8 @@ ColorScheme After loading a color scheme. |:colorscheme|
CompleteDone After Insert mode completion is done. Either
when something was completed or abandoning
completion. |ins-completion|
The |v:completed_item| variable contains
information about the completed item.
*CursorHold*
CursorHold When the user doesn't press a key for the time
@@ -742,6 +745,29 @@ MenuPopup Just before showing the popup menu (under the
o Operator-pending
i Insert
c Command line
*OptionSet*
OptionSet After setting an option. The pattern is
matched against the long option name.
The |v:option_old| variable indicates the
old option value, |v:option_new| variable
indicates the newly set value, the
|v:option_type| variable indicates whether
it's global or local scoped and |<amatch>|
indicates what option has been set.
Is not triggered on startup and for the 'key'
option for obvious reasons.
Usage example: Check for the existence of the
directory in the 'backupdir' and 'undodir'
options, create the directory if it doesn't
exist yet.
Note: It's a bad idea to reset an option
during this autocommand, this may break a
plugin. You can always use `:noa` to prevent
triggering this autocommand.
*QuickFixCmdPre*
QuickFixCmdPre Before a quickfix command is run (|:make|,
|:lmake|, |:grep|, |:lgrep|, |:grepadd|,
@@ -933,6 +959,13 @@ WinLeave Before leaving a window. If the window to be
==============================================================================
6. Patterns *autocmd-patterns* *{pat}*
The {pat} argument can be a comma separated list. This works as if the
command was given with each pattern separately. Thus this command: >
:autocmd BufRead *.txt,*.info set et
Is equivalent to: >
:autocmd BufRead *.txt set et
:autocmd BufRead *.info set et
The file pattern {pat} is tested for a match against the file name in one of
two ways:
1. When there is no '/' in the pattern, Vim checks for a match against only
@@ -1039,7 +1072,7 @@ Instead of a pattern buffer-local autocommands use one of these forms:
Examples: >
:au CursorHold <buffer> echo 'hold'
:au CursorHold <buffer=33> echo 'hold'
:au CursorHold <buffer=abuf> echo 'hold'
:au BufNewFile * au CursorHold <buffer=abuf> echo 'hold'
All the commands for autocommands also work with buffer-local autocommands,
simply use the special string instead of the pattern. Examples: >

View File

@@ -1,4 +1,4 @@
*change.txt* For Vim version 7.4. Last change: 2015 Jan 27
*change.txt* For Vim version 7.4. Last change: 2015 Sep 06
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -379,10 +379,43 @@ Adding and subtracting ~
CTRL-A Add [count] to the number or alphabetic character at
or after the cursor. {not in Vi}
*v_CTRL-A*
{Visual}CTRL-A Add [count] to the number or alphabetic character in
the highlighted text. {not in Vi}
*v_g_CTRL-A*
{Visual}g CTRL-A Add [count] to the number or alphabetic character in
the highlighted text. If several lines are
highlighted, each one will be incremented by an
additional [count] (so effectively creating a
[count] incrementing sequence). {not in Vi}
For Example, if you have this list of numbers:
1. ~
1. ~
1. ~
1. ~
Move to the second "1." and Visually select three
lines, pressing g CTRL-A results in:
1. ~
2. ~
3. ~
4. ~
*CTRL-X*
CTRL-X Subtract [count] from the number or alphabetic
character at or after the cursor. {not in Vi}
*v_CTRL-X*
{Visual}CTRL-X Subtract [count] from the number or alphabetic
character in the highlighted text. {not in Vi}
*v_g_CTRL-X*
{Visual}g CTRL-X Subtract [count] from the number or alphabetic
character in the highlighted text. If several lines
are highlighted, each value will be decremented by an
additional [count] (so effectively creating a [count]
decrementing sequence). {not in Vi}
The CTRL-A and CTRL-X commands work for (signed) decimal numbers, unsigned
octal and hexadecimal numbers and alphabetic characters. This depends on the
'nrformats' option.
@@ -399,6 +432,10 @@ octal and hexadecimal numbers and alphabetic characters. This depends on the
under or after the cursor. This is useful to make lists with an alphabetic
index.
For decimals a leading negative sign is considered for incrementing/
decrementing, for octal and hex values, it won't be considered.
To ignore the sign Visually select the number before using CTRL-A or CTRL-X.
For numbers with leading zeros (including all octal and hexadecimal numbers),
Vim preserves the number of characters in the number when possible. CTRL-A on
"0077" results in "0100", CTRL-X on "0x100" results in "0x0ff".
@@ -597,9 +634,9 @@ For other systems the tmpnam() library function is used.
may add [flags], see |:s_flags|.
Note that after `:substitute` the '&' flag can't be
used, it's recognized as a pattern separator.
The space between `:substitute` and the 'c', 'g' and
'r' flags isn't required, but in scripts it's a good
idea to keep it to avoid confusion.
The space between `:substitute` and the 'c', 'g',
'i', 'I' and 'r' flags isn't required, but in scripts
it's a good idea to keep it to avoid confusion.
:[range]~[&][flags] [count] *:~*
Repeat last substitute with same substitute string
@@ -1098,13 +1135,13 @@ Rationale: In Vi the "y" command followed by a backwards motion would
With a linewise yank command the cursor is put in the first line, but the
column is unmodified, thus it may not be on the first yanked character.
There are nine types of registers: *registers* *E354*
There are ten types of registers: *registers* *E354*
1. The unnamed register ""
2. 10 numbered registers "0 to "9
3. The small delete register "-
4. 26 named registers "a to "z or "A to "Z
5. three read-only registers ":, "., "%
7. alternate buffer register "#
6. alternate buffer register "#
7. the expression register "=
8. The selection and drop registers "*, "+ and "~
9. The black hole register "_
@@ -1192,12 +1229,14 @@ if none of buffers matches the given name.
7. Expression register "= *quote_=* *quote=* *@=*
This is not really a register that stores text, but is a way to use an
expression in commands which use a register. The expression register is
read-only; you cannot put text into it. After the '=', the cursor moves to
the command-line, where you can enter any expression (see |expression|). All
normal command-line editing commands are available, including a special
history for expressions. When you end the command-line by typing <CR>, Vim
computes the result of the expression. If you end it with <Esc>, Vim abandons
the expression. If you do not enter an expression, Vim uses the previous
read-write.
When typing the '=' after " or CTRL-R the cursor moves to the command-line,
where you can enter any expression (see |expression|). All normal
command-line editing commands are available, including a special history for
expressions. When you end the command-line by typing <CR>, Vim computes the
result of the expression. If you end it with <Esc>, Vim abandons the
expression. If you do not enter an expression, Vim uses the previous
expression (like with the "/" command).
The expression must evaluate to a String. A Number is always automatically
@@ -1242,7 +1281,7 @@ Contains the most recent search-pattern. This is used for "n" and 'hlsearch'.
It is writable with `:let`, you can change it to have 'hlsearch' highlight
other matches without actually searching. You can't yank or delete into this
register. The search direction is available in |v:searchforward|.
Note that the valued is restored when returning from a function
Note that the value is restored when returning from a function
|function-search-undo|.
{not in Vi}
@@ -1457,10 +1496,10 @@ When you hit Return in a C-comment, Vim will insert the middle comment leader
for the new line: " * ". To close this comment you just have to type "/"
before typing anything else on the new line. This will replace the
middle-comment leader with the end-comment leader and apply any specified
alignment, leaving just " */". There is no need to hit BackSpace first.
alignment, leaving just " */". There is no need to hit Backspace first.
When there is a match with a middle part, but there also is a maching end part
which is longer, the end part is used. This makes a C style comment work
When there is a match with a middle part, but there also is a matching end
part which is longer, the end part is used. This makes a C style comment work
without requiring the middle part to end with a space.
Here is an example of alignment flags at work to make a comment stand out

View File

@@ -1,4 +1,4 @@
*cmdline.txt* For Vim version 7.4. Last change: 2014 Sep 06
*cmdline.txt* For Vim version 7.4. Last change: 2015 Sep 25
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -511,6 +511,8 @@ followed by another Vim command:
:argdo
:autocmd
:bufdo
:cdo
:cfdo
:command
:cscope
:debug
@@ -521,6 +523,8 @@ followed by another Vim command:
:help
:helpfind
:lcscope
:ldo
:lfdo
:make
:normal
:perl
@@ -597,6 +601,7 @@ starts editing the three files "foo bar", "goes to" and "school ".
When you want to use the special characters '"' or '|' in a command, or want
to use '%' or '#' in a file name, precede them with a backslash. The
backslash is not required in a range and in the ":substitute" command.
See also |`=|.
*:_!*
The '!' (bang) character after an Ex command makes the command behave in a
@@ -749,13 +754,13 @@ to insert special things while typing you can use the CTRL-R command. For
example, "%" stands for the current file name, while CTRL-R % inserts the
current file name right away. See |c_CTRL-R|.
Note: If you want to avoid the special characters in a Vim script you may want
to use |fnameescape()|.
Note: If you want to avoid the effects of special characters in a Vim script
you may want to use |fnameescape()|. Also see |`=|.
In Ex commands, at places where a file name can be used, the following
characters have a special meaning. These can also be used in the expression
function expand() |expand()|.
function |expand()|.
% Is replaced with the current file name. *:_%* *c_%*
# Is replaced with the alternate file name. *:_#* *c_#*
This is remembered for every window.
@@ -790,6 +795,7 @@ it, no matter how many backslashes.
# alternate.file
\# #
\\# \#
Also see |`=|.
*:<cword>* *:<cWORD>* *:<cfile>* *<cfile>*
*:<sfile>* *<sfile>* *:<afile>* *<afile>*
@@ -811,13 +817,13 @@ Note: these are typed literally, they are not special keys!
<afile> only when the file name isn't used to match with
(for FileType, Syntax and SpellFileMissing events).
<sfile> When executing a ":source" command, is replaced with the
file name of the sourced file. *E498*
When executing a function, is replaced with
"function {function-name}"; function call nesting is
indicated like this:
"function {function-name1}..{function-name2}". Note that
filename-modifiers are useless when <sfile> is used inside
a function.
file name of the sourced file. *E498*
When executing a function, is replaced with:
"function {function-name}[{lnum}]"
function call nesting is indicated like this:
"function {function-name1}[{lnum}]..{function-name2}[{lnum}]"
Note that filename-modifiers are useless when <sfile> is
used inside a function.
<slnum> When executing a ":source" command, is replaced with the
line number. *E842*
When executing a function it's the line number relative to
@@ -880,7 +886,7 @@ These modifiers can be given, in this order:
:gs?pat?sub?
Substitute all occurrences of "pat" with "sub". Otherwise
this works like ":s".
:S Escape special characters for use with a shell command (see
:S Escape special characters for use with a shell command (see
|shellescape()|). Must be the last one. Examples: >
:!dir <cfile>:S
:call system('chmod +w -- ' . expand('%:S'))
@@ -933,9 +939,8 @@ name). This is included for backwards compatibility with version 3.0, the
Note: Where a file name is expected wildcards expansion is done. On Unix the
shell is used for this, unless it can be done internally (for speed).
Backticks also work, like in >
Unless in |restricted-mode|, backticks work also, like in >
:n `echo *.c`
(backtick expansion is not possible in |restricted-mode|)
But expansion is only done if there are any wildcards before expanding the
'%', '#', etc.. This avoids expanding wildcards inside a file name. If you
want to expand the result of <cfile>, add a wildcard character to it.
@@ -946,6 +951,7 @@ Examples: (alternate file name is "?readme?")
:e #.* :e {files matching "?readme?.*"}
:cd <cfile> :cd {file name under cursor}
:cd <cfile>* :cd {file name under cursor plus "*" and then expanded}
Also see |`=|.
When the expanded argument contains a "!" and it is used for a shell command
(":!cmd", ":r !cmd" or ":w !cmd"), the "!" is escaped with a backslash to
@@ -972,6 +978,8 @@ for the file "$home" in the root directory. A few examples:
/\$home file "$home" in root directory
\\$home file "\\", followed by expanded $home
Also see |`=|.
==============================================================================
7. Command-line window *cmdline-window* *cmdwin*
*command-line-window*

View File

@@ -1,4 +1,4 @@
*diff.txt* For Vim version 7.4. Last change: 2014 Oct 31
*diff.txt* For Vim version 7.4. Last change: 2015 Jul 03
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -132,8 +132,9 @@ file for a moment and come back to the same file and be in diff mode again.
if the current window does not have 'diff' set then no options
in it are changed.
The ":diffoff" command resets the relevant options to the values they had when
using |:diffsplit|, |:diffpatch| , |:diffthis|. or starting Vim in diff mode.
The `:diffoff` command resets the relevant options to the values they had when
using `:diffsplit`, `:diffpatch` , `:diffthis`. or starting Vim in diff mode.
When using `:diffoff` twice the last saved values are restored.
Otherwise they are set to their default value:
'diff' off
@@ -314,6 +315,19 @@ name or a part of a buffer name. Examples:
Also see |'diffopt'| and the "diff" item of |'fillchars'|.
*diff-slow* *diff_translations*
For very long lines, the diff syntax highlighting might be slow, especially
since it tries to match all different kind of localisations. To disable
localisations and speed up the syntax highlighting, set the global variable
g:diff_translations to zero: >
let g:diff_translations = 0
<
After setting this variable, Reload the syntax script: >
set syntax=diff
<
FINDING THE DIFFERENCES *diff-diffexpr*

View File

@@ -1,4 +1,4 @@
*editing.txt* For Vim version 7.4. Last change: 2015 Jan 04
*editing.txt* For Vim version 7.4. Last change: 2015 Aug 25
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -304,7 +304,8 @@ CTRL-^ Edit the alternate file. Mostly the alternate file is
Mnemonic: "goto file".
Uses the 'isfname' option to find out which characters
are supposed to be in a file name. Trailing
punctuation characters ".,:;!" are ignored.
punctuation characters ".,:;!" are ignored. Escaped
spaces "\ " are reduced to a single space.
Uses the 'path' option as a list of directory names to
look for the file. See the 'path' option for details
about relative directories and wildcards.
@@ -411,25 +412,38 @@ Finds files:
/usr/include/sys/types.h
/usr/inc_old/types.h
*backtick-expansion* *`-expansion*
On Unix and a few other systems you can also use backticks in the file name,
for example: >
:e `find . -name ver\\*.c -print`
The backslashes before the star are required to prevent "ver*.c" to be
expanded by the shell before executing the find program.
On Unix and a few other systems you can also use backticks for the file name
argument, for example: >
:next `find . -name ver\\*.c -print`
:view `ls -t *.patch \| head -n1`
The backslashes before the star are required to prevent the shell from
expanding "ver*.c" prior to execution of the find program. The backslash
before the shell pipe symbol "|" prevents Vim from parsing it as command
termination.
This also works for most other systems, with the restriction that the
backticks must be around the whole item. It is not possible to have text
directly before the first or just after the last backtick.
*`=*
You can have the backticks expanded as a Vim expression, instead of an
external command, by using the syntax `={expr}` e.g.: >
You can have the backticks expanded as a Vim expression, instead of as an
external command, by putting an equal sign right after the first backtick,
e.g.: >
:e `=tempname()`
The expression can contain just about anything, thus this can also be used to
avoid the special meaning of '"', '|', '%' and '#'. However, 'wildignore'
does apply like to other wildcards.
Environment variables in the expression are expanded when evaluating the
expression, thus this works: >
:e `=$HOME . '/.vimrc'`
This does not work, $HOME is inside a string and used literally: >
:e `='$HOME' . '/.vimrc'`
If the expression returns a string then names are to be separated with line
breaks. When the result is a |List| then each item is used as a name. Line
breaks also separate names.
Note that such expressions are only supported in places where a filename is
expected as an argument to an Ex-command.
*++opt* *[++opt]*
The [++opt] argument can be used to force the value of 'fileformat',
@@ -854,7 +868,8 @@ USING THE ARGUMENT LIST
each file.
{not in Vi} {not available when compiled without the
|+listcmds| feature}
Also see |:windo|, |:tabdo| and |:bufdo|.
Also see |:windo|, |:tabdo|, |:bufdo|, |:cdo|, |:ldo|,
|:cfdo| and |:lfdo|
Example: >
:args *.c
@@ -1362,7 +1377,7 @@ There are a few things to remember when editing binary files:
- <Nul> characters are shown on the screen as ^@. You can enter them with
"CTRL-V CTRL-@" or "CTRL-V 000" {Vi cannot handle <Nul> characters in the
file}
- To insert a <NL> character in the file split up a line. When writing the
- To insert a <NL> character in the file split a line. When writing the
buffer to a file a <NL> will be written for the <EOL>.
- Vim normally appends an <EOL> at the end of the file if there is none.
Setting the 'binary' option prevents this. If you want to add the final
@@ -1392,7 +1407,8 @@ reveal it to others. The 'viminfo' file is not encrypted.
You could do this to edit very secret text: >
:set noundofile viminfo=
:noswapfile edit secrets.txt
Keep in mind that without a swap file you risk losing your work in a crash.
Keep in mind that without a swap file you risk losing your work in the event
of a crash or a power failure.
WARNING: If you make a typo when entering the key and then write the file and
exit, the text will be lost!

View File

@@ -1,4 +1,4 @@
*eval.txt* For Vim version 7.4. Last change: 2015 Jan 27
*eval.txt* For Vim version 7.4. Last change: 2015 Sep 19
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -525,7 +525,7 @@ Funcref to a Dictionary, but the "self" variable is not available then.
To avoid the extra name for the function it can be defined and directly
assigned to a Dictionary in this way: >
:let mydict = {'data': [0, 1, 2, 3]}
:function mydict.len() dict
:function mydict.len()
: return len(self.data)
:endfunction
:echo mydict.len()
@@ -1005,7 +1005,7 @@ function. Example: >
string *string* *expr-string* *E114*
string *string* *String* *expr-string* *E114*
------
"string" string constant *expr-quote*
@@ -1021,7 +1021,7 @@ A string constant accepts these special characters:
\X. same as \x.
\u.... character specified with up to 4 hex numbers, stored according to the
current value of 'encoding' (e.g., "\u02a4")
\U.... same as \u....
\U.... same as \u but allows up to 8 hex numbers.
\b backspace <BS>
\e escape <Esc>
\f formfeed <FF>
@@ -1330,6 +1330,12 @@ v:cmdbang Set like v:cmdarg for a file read/write command. When a "!"
can only be used in autocommands. For user commands |<bang>|
can be used.
*v:completed_item* *completed_item-variable*
v:completed_item
|Dictionary| containing the |complete-items| for the most
recently completed word after |CompleteDone|. The
|Dictionary| is empty if the completion failed.
*v:count* *count-variable*
v:count The count given for the last Normal mode command. Can be used
to get the count before a mapping. Read-only. Example: >
@@ -1462,7 +1468,9 @@ v:hlsearch Variable that indicates whether search highlighting is on.
requires |+extra_search|. Setting this variable to zero acts
the like |:nohlsearch| command, setting it to one acts like >
let &hlsearch = &hlsearch
<
< Note that the value is restored when returning from a
function. |function-search-undo|.
*v:insertmode* *insertmode-variable*
v:insertmode Used for the |InsertEnter| and |InsertChange| autocommand
events. Values:
@@ -1527,6 +1535,15 @@ v:oldfiles List of file names that is loaded from the |viminfo| file on
than String this will cause trouble.
{only when compiled with the |+viminfo| feature}
*v:option_new*
v:option_new New value of the option. Valid while executing an |OptionSet|
autocommand.
*v:option_old*
v:option_old Old value of the option. Valid while executing an |OptionSet|
autocommand.
*v:option_type*
v:option_type Scope of the set command. Valid while executing an
|OptionSet| autocommand. Can be either "global" or "local"
*v:operator* *operator-variable*
v:operator The last operator given in Normal mode. This is a single
character except for commands starting with <g> or <z>,
@@ -1730,7 +1747,7 @@ bufexists( {expr}) Number TRUE if buffer {expr} exists
buflisted( {expr}) Number TRUE if buffer {expr} is listed
bufloaded( {expr}) Number TRUE if buffer {expr} is loaded
bufname( {expr}) String Name of the buffer {expr}
bufnr( {expr}) Number Number of the buffer {expr}
bufnr( {expr} [, {create}]) Number Number of the buffer {expr}
bufwinnr( {expr}) Number window number of buffer {expr}
byte2line( {byte}) Number line number at byte count {byte}
byteidx( {expr}, {nr}) Number byte index of {nr}'th char in {expr}
@@ -1805,6 +1822,7 @@ 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
getcharsearch() Dict last character search
getcmdline() String return the current command-line
getcmdpos() Number return cursor position in command-line
getcmdtype() String return current command-line type
@@ -1834,9 +1852,10 @@ getwinposx() Number X coord in pixels of GUI Vim window
getwinposy() Number Y coord in pixels of GUI Vim window
getwinvar( {nr}, {varname} [, {def}])
any variable {varname} in window {nr}
glob( {expr} [, {nosuf} [, {list}]])
glob( {expr} [, {nosuf} [, {list} [, {alllinks}]]])
any expand file wildcards in {expr}
globpath( {path}, {expr} [, {nosuf} [, {list}]])
glob2regpat( {expr}) String convert a glob pat into a search pat
globpath( {path}, {expr} [, {nosuf} [, {list} [, {alllinks}]]])
String do glob({expr}) for all dirs in {path}
has( {feature}) Number TRUE if feature {feature} supported
has_key( {dict}, {key}) Number TRUE if {dict} has entry {key}
@@ -1953,6 +1972,7 @@ server2client( {clientid}, {string})
Number send reply string
serverlist() String get a list of available servers
setbufvar( {expr}, {varname}, {val}) set {varname} in buffer {expr} to {val}
setcharsearch( {dict}) Dict set character search from {dict}
setcmdpos( {pos}) Number set cursor position in command-line
setline( {lnum}, {line}) Number set line {lnum} to {line}
setloclist( {nr}, {list}[, {action}])
@@ -1984,7 +2004,7 @@ split( {expr} [, {pat} [, {keepempty}]])
sqrt( {expr}) Float square root of {expr}
str2float( {expr}) Float convert String to Float
str2nr( {expr} [, {base}]) Number convert String to Number
strchars( {expr}) Number character length of the String {expr}
strchars( {expr} [, {skipcc}]) Number character length of the String {expr}
strdisplaywidth( {expr} [, {col}]) Number display length of the String {expr}
strftime( {format}[, {time}]) String time in specified format
stridx( {haystack}, {needle}[, {start}])
@@ -2960,6 +2980,8 @@ extend({expr1}, {expr2} [, {expr3}]) *extend()*
{expr1} is changed when {expr2} is not empty. If necessary
make a copy of {expr1} first.
{expr2} remains unchanged.
When {expr1} is locked and {expr2} is not empty the operation
fails.
Returns {expr1}.
@@ -3314,7 +3336,7 @@ getchar([expr]) *getchar()*
: endwhile
:endfunction
<
You may also receive syntetic characters, such as
You may also receive synthetic characters, such as
|<CursorHold>|. Often you will want to ignore this and get
another character: >
:function GetKey()
@@ -3341,6 +3363,26 @@ getcharmod() *getcharmod()*
character itself are obtained. Thus Shift-a results in "A"
without a modifier.
getcharsearch() *getcharsearch()*
Return the current character search information as a {dict}
with the following entries:
char character previously used for a character
search (|t|, |f|, |T|, or |F|); empty string
if no character search has been performed
forward direction of character search; 1 for forward,
0 for backward
until type of character search; 1 for a |t| or |T|
character search, 0 for an |f| or |F|
character search
This can be useful to always have |;| and |,| search
forward/backward regardless of the direction of the previous
character search: >
:nnoremap <expr> ; getcharsearch().forward ? ';' : ','
:nnoremap <expr> , getcharsearch().forward ? ',' : ';'
< Also see |setcharsearch()|.
getcmdline() *getcmdline()*
Return the current command-line. Only works when the command
line is being edited, thus requires use of |c_CTRL-\_e| or
@@ -3638,7 +3680,7 @@ getwinvar({winnr}, {varname} [, {def}]) *getwinvar()*
:let list_is_on = getwinvar(2, '&list')
:echo "myvar = " . getwinvar(1, 'myvar')
<
glob({expr} [, {nosuf} [, {list}]]) *glob()*
glob({expr} [, {nosuf} [, {list} [, {alllinks}]]]) *glob()*
Expand the file wildcards in {expr}. See |wildcards| for the
use of special characters.
@@ -3655,8 +3697,11 @@ glob({expr} [, {nosuf} [, {list}]]) *glob()*
matches, they are separated by <NL> characters.
If the expansion fails, the result is an empty String or List.
A name for a non-existing file is not included. A symbolic
link is only included if it points to an existing file.
However, when the {alllinks} argument is present and it is
non-zero then all symbolic links are included.
For most systems backticks can be used to get files names from
any external command. Example: >
@@ -3668,7 +3713,16 @@ glob({expr} [, {nosuf} [, {list}]]) *glob()*
See |expand()| for expanding special Vim variables. See
|system()| for getting the raw output of an external command.
globpath({path}, {expr} [, {nosuf} [, {list}]]) *globpath()*
glob2regpat({expr}) *glob2regpat()*
Convert a file pattern, as used by glob(), into a search
pattern. The result can be used to match with a string that
is a file name. E.g. >
if filename =~ glob2regpat('Make*.mak')
< This is equivalent to: >
if filename =~ '^Make.*\.mak$'
<
*globpath()*
globpath({path}, {expr} [, {nosuf} [, {list} [, {allinks}]]])
Perform glob() on all directories in {path} and concatenate
the results. Example: >
:echo globpath(&rtp, "syntax/c.vim")
@@ -3694,6 +3748,8 @@ globpath({path}, {expr} [, {nosuf} [, {list}]]) *globpath()*
they are separated by <NL> characters. Example: >
:echo globpath(&rtp, "syntax/c.vim", 0, 1)
<
{allinks} is used as with |glob()|.
The "**" item can be used to search in a directory tree.
For example, to find all "README.txt" files in the directories
in 'runtimepath' and below: >
@@ -4371,7 +4427,7 @@ match({expr}, {pat}[, {start}[, {count}]]) *match()*
done like 'magic' is set and 'cpoptions' is empty.
*matchadd()* *E798* *E799* *E801*
matchadd({group}, {pattern}[, {priority}[, {id}]])
matchadd({group}, {pattern}[, {priority}[, {id} [, {dict}]]])
Defines a pattern to be highlighted in the current window (a
"match"). It will be highlighted with {group}. Returns an
identification number (ID), which can be used to delete the
@@ -4379,6 +4435,8 @@ matchadd({group}, {pattern}[, {priority}[, {id}]])
Matching is case sensitive and magic, unless case sensitivity
or magicness are explicitly overridden in {pattern}. The
'magic', 'smartcase' and 'ignorecase' options are not used.
The "Conceal" value is special, it causes the match to be
concealed.
The optional {priority} argument assigns a priority to the
match. A match with a high priority will have its
@@ -4396,9 +4454,18 @@ matchadd({group}, {pattern}[, {priority}[, {id}]])
message will appear and the match will not be added. An ID
is specified as a positive integer (zero excluded). IDs 1, 2
and 3 are reserved for |:match|, |:2match| and |:3match|,
respectively. If the {id} argument is not specified,
respectively. If the {id} argument is not specified or -1,
|matchadd()| automatically chooses a free ID.
The optional {dict} argmument allows for further custom
values. Currently this is used to specify a match specifc
conceal character that will be shown for |hl-Conceal|
highlighted matches. The dict can have the following members:
conceal Special character to show instead of the
match (only for |hl-Conceal| highlighed
matches, see |:syn-cchar|)
The number of matches is not limited, as it is the case with
the |:match| commands.
@@ -4412,7 +4479,7 @@ matchadd({group}, {pattern}[, {priority}[, {id}]])
available from |getmatches()|. All matches can be deleted in
one operation by |clearmatches()|.
matchaddpos({group}, {pos}[, {priority}[, {id}]]) *matchaddpos()*
matchaddpos({group}, {pos}[, {priority}[, {id}[, {dict}]]]) *matchaddpos()*
Same as |matchadd()|, but requires a list of positions {pos}
instead of a pattern. This command is faster than |matchadd()|
because it does not require to handle regular expressions and
@@ -4766,6 +4833,7 @@ printf({fmt}, {expr1} ...) *printf()*
s The text of the String argument is used. If a
precision is specified, no more bytes than the number
specified are used.
*printf-S*
S The text of the String argument is used. If a
precision is specified, no more display cells than the
number specified are used. Without the |+multi_byte|
@@ -4827,7 +4895,7 @@ py3eval({expr}) *py3eval()*
Evaluate Python expression {expr} and return its result
converted to Vim data structures.
Numbers and strings are returned as they are (strings are
copied though, unicode strings are additionally converted to
copied though, Unicode strings are additionally converted to
'encoding').
Lists are represented as Vim |List| type.
Dictionaries are represented as Vim |Dictionary| type with
@@ -4871,7 +4939,7 @@ readfile({fname} [, {binary} [, {max}]])
separated with CR will result in a single long line (unless a
NL appears somewhere).
All NUL characters are replaced with a NL character.
When {binary/append} contains "b" binary mode is used:
When {binary} contains "b" binary mode is used:
- When the last line ends in a NL an extra empty list item is
added.
- No CR characters are removed.
@@ -5351,6 +5419,26 @@ setbufvar({expr}, {varname}, {val}) *setbufvar()*
:call setbufvar("todo", "myvar", "foobar")
< This function is not available in the |sandbox|.
setcharsearch({dict}) *setcharsearch()*
Set the current character search information to {dict},
which contains one or more of the following entries:
char character which will be used for a subsequent
|,| or |;| command; an empty string clears the
character search
forward direction of character search; 1 for forward,
0 for backward
until type of character search; 1 for a |t| or |T|
character search, 0 for an |f| or |F|
character search
This can be useful to save/restore a user's character search
from a script: >
:let prevsearch = getcharsearch()
:" Perform a command which clobbers user's search
:call setcharsearch(prevsearch)
< Also see |getcharsearch()|.
setcmdpos({pos}) *setcmdpos()*
Set the cursor position in the command line to byte position
{pos}. The first position is 1.
@@ -5566,7 +5654,7 @@ setwinvar({nr}, {varname}, {val}) *setwinvar()*
:call setwinvar(2, "myvar", "foobar")
sha256({string}) *sha256()*
Returns a String with 64 hex charactes, which is the SHA256
Returns a String with 64 hex characters, which is the SHA256
checksum of {string}.
{only available when compiled with the |+cryptv| feature}
@@ -5773,7 +5861,8 @@ split({expr} [, {pattern} [, {keepempty}]]) *split()*
:let words = split(getline('.'), '\W\+')
< To split a string in individual characters: >
:for c in split(mystring, '\zs')
< If you want to keep the separator you can also use '\zs': >
< If you want to keep the separator you can also use '\zs' at
the end of the pattern: >
:echo split('abc:def:ghi', ':\zs')
< ['abc:', 'def:', 'ghi'] ~
Splitting a table where the first element can be empty: >
@@ -5821,15 +5910,35 @@ str2nr( {expr} [, {base}]) *str2nr()*
Text after the number is silently ignored.
strchars({expr}) *strchars()*
strchars({expr} [, {skipcc}]) *strchars()*
The result is a Number, which is the number of characters
String {expr} occupies. Composing characters are counted
separately.
in String {expr}.
When {skipcc} is omitted or zero, composing characters are
counted separately.
When {skipcc} set to 1, Composing characters are ignored.
Also see |strlen()|, |strdisplaywidth()| and |strwidth()|.
{skipcc} is only available after 7.4.755. For backward
compatibility, you can define a wrapper function: >
if has("patch-7.4.755")
function s:strchars(str, skipcc)
return strchars(a:str, a:skipcc)
endfunction
else
function s:strchars(str, skipcc)
if a:skipcc
return strlen(substitute(a:str, ".", "x", "g"))
else
return strchars(a:str)
endif
endfunction
endif
<
strdisplaywidth({expr}[, {col}]) *strdisplaywidth()*
The result is a Number, which is the number of display cells
String {expr} occupies on the screen when it starts a {col}.
String {expr} occupies on the screen when it starts at {col}.
When {col} is omitted zero is used. Otherwise it is the
screen column where to start. This matters for Tab
characters.
@@ -5895,15 +6004,11 @@ string({expr}) Return {expr} converted to a String. If {expr} is a Number,
*strlen()*
strlen({expr}) The result is a Number, which is the length of the String
{expr} in bytes.
If you want to count the number of multi-byte characters (not
counting composing characters) use something like this: >
:let len = strlen(substitute(str, ".", "x", "g"))
<
If the argument is a Number it is first converted to a String.
For other types an error is given.
Also see |len()|, |strchars()|, |strdisplaywidth()| and
|strwidth()|.
If you want to count the number of multi-byte characters use
|strchars()|.
Also see |len()|, |strdisplaywidth()| and |strwidth()|.
strpart({src}, {start}[, {len}]) *strpart()*
The result is a String, which is part of {src}, starting from
@@ -6017,6 +6122,9 @@ synID({lnum}, {col}, {trans}) *synID()*
{col} is 1 for the leftmost column, {lnum} is 1 for the first
line. 'synmaxcol' applies, in a longer line zero is returned.
Note that when the position is after the last character,
that's where the cursor can be in Insert mode, synID() returns
zero.
When {trans} is non-zero, transparent items are reduced to the
item that they reveal. This is useful when wanting to know
@@ -8279,7 +8387,7 @@ You can catch all Vim errors by the pattern >
*catch-text*
NOTE: You should never catch the error message text itself: >
:catch /No such variable/
only works in the english locale, but not when the user has selected
only works in the English locale, but not when the user has selected
a different language by the |:language| command. It is however helpful to
cite the message text in a comment: >
:catch /^Vim(\a\+):E108:/ " No such variable

View File

@@ -1,4 +1,4 @@
*farsi.txt* For Vim version 7.4. Last change: 2010 Aug 07
*farsi.txt* For Vim version 7.4. Last change: 2015 Aug 29
VIM REFERENCE MANUAL by Mortaza Ghassab Shiran
@@ -59,7 +59,7 @@ o Toggling between Farsi ISIR-3342 standard encoding and Vim Farsi via F9
right-to-left mode, this function is also supported only in right-to-left
mode.
Farsi Fonts *farsi fonts*
Farsi Fonts *farsi-fonts*
-----------
The following files are found in the subdirectories of the '$VIM/farsi/fonts'

View File

@@ -365,7 +365,7 @@ zX Undo manually opened and closed folds: re-apply 'foldlevel'.
Also forces recomputing folds, like |zx|.
*zm*
zm Fold more: Subtract one from 'foldlevel'. If 'foldlevel' was
zm Fold more: Subtract |v:count1| from 'foldlevel'. If 'foldlevel' was
already zero nothing happens.
'foldenable' will be set.
@@ -374,7 +374,7 @@ zM Close all folds: set 'foldlevel' to 0.
'foldenable' will be set.
*zr*
zr Reduce folding: Add one to 'foldlevel'.
zr Reduce folding: Add |v:count1| to 'foldlevel'.
*zR*
zR Open all folds. This sets 'foldlevel' to highest fold level.

View File

@@ -1,4 +1,4 @@
*help.txt* For Vim version 7.4. Last change: 2012 Dec 06
*help.txt* For Vim version 7.4. Last change: 2015 Jun 21
VIM - main help file
k
@@ -24,6 +24,7 @@ Get specific help: It is possible to go directly to whatever you want help
Command-line editing c_ :help c_<Del>
Vim command argument - :help -r
Option ' :help 'textwidth'
Regular expression / :help /[
Search for help: Type ":help word", then hit CTRL-D to see matching
help entries for "word".
Or use ":helpgrep word". |:helpgrep|
@@ -196,6 +197,7 @@ Remarks about specific systems ~
Standard plugins ~
|pi_getscript.txt| Downloading latest version of Vim scripts
|pi_gzip.txt| Reading and writing compressed files
|pi_logipat.txt| Logical operators on patterns
|pi_netrw.txt| Reading and writing files over a network
|pi_paren.txt| Highlight matching parens
|pi_tar.txt| Tar file explorer

View File

@@ -1,4 +1,4 @@
*if_ruby.txt* For Vim version 7.4. Last change: 2012 Aug 02
*if_ruby.txt* For Vim version 7.4. Last change: 2015 Feb 22
VIM REFERENCE MANUAL by Shugo Maeda
@@ -120,9 +120,13 @@ VIM::command({cmd})
*ruby-evaluate*
VIM::evaluate({expr})
Evaluates {expr} using the vim internal expression evaluator (see
|expression|). Returns the expression result as a string.
A |List| is turned into a string by joining the items and inserting
line breaks.
|expression|). Returns the expression result as:
- a Integer if the Vim expression evaluates to a number
- a Float if the Vim expression evaluates to a float
- a String if the Vim expression evaluates to a string
- a Array if the Vim expression evaluates to a Vim list
- a Hash if the Vim expression evaluates to a Vim dictionary
Dictionaries and lists are recursively expanded.
==============================================================================
3. VIM::Buffer objects *ruby-buffer*

View File

@@ -1,4 +1,4 @@
*index.txt* For Vim version 7.4. Last change: 2015 Jan 07
*index.txt* For Vim version 7.4. Last change: 2015 Sep 08
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -702,12 +702,16 @@ tag char note action in Normal mode ~
|g'| g'{mark} 1 like |'| but without changing the jumplist
|g`| g`{mark} 1 like |`| but without changing the jumplist
|gstar| g* 1 like "*", but without using "\<" and "\>"
|g+| g+ go to newer text state N times
|g,| g, 1 go to N newer position in change list
|g-| g- go to older text state N times
|g0| g0 1 when 'wrap' off go to leftmost character of
the current line that is on the screen;
when 'wrap' on go to the leftmost character
of the current screen line
|g8| g8 print hex value of bytes used in UTF-8
character under the cursor
|g;| g; 1 go to N older position in change list
|g<| g< display previous command output
|g?| g? 2 Rot13 encoding operator
|g?g?| g?? 2 Rot13 encode current line
@@ -736,6 +740,7 @@ tag char note action in Normal mode ~
the screen; when 'wrap' on go to the
leftmost non-white character of the current
screen line
|g_| g_ 1 cursor to the last CHAR N - 1 lines lower
|ga| ga print ascii value of character under the
cursor
|gd| gd 1 go to definition of word under the cursor
@@ -1133,6 +1138,8 @@ tag command action ~
|:cc| :cc go to specific error
|:cclose| :ccl[ose] close quickfix window
|:cd| :cd change directory
|:cdo| :cdo execute command in each valid error list entry
|:cfdo| :cfd[o] execute command in each file in error list
|:center| :ce[nter] format lines at the center
|:cexpr| :cex[pr] read errors from expr and jump to first
|:cfile| :cf[ile] read file with error messages and jump to first
@@ -1291,6 +1298,8 @@ tag command action ~
|:lchdir| :lch[dir] change directory locally
|:lclose| :lcl[ose] close location window
|:lcscope| :lcs[cope] like ":cscope" but uses location list
|:ldo| :ld[o] execute command in valid location list entries
|:lfdo| :lfd[o] execute command in each file in location list
|:left| :le[ft] left align lines
|:leftabove| :lefta[bove] make split window appear left or above
|:let| :let assign a value to a variable or option

View File

@@ -1,4 +1,4 @@
*insert.txt* For Vim version 7.4. Last change: 2014 Aug 04
*insert.txt* For Vim version 7.4. Last change: 2015 Sep 15
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -81,9 +81,11 @@ CTRL-W Delete the word before the cursor (see |i_backspacing| about
joining lines). See the section "word motions",
|word-motions|, for the definition of a word.
*i_CTRL-U*
CTRL-U Delete all entered characters in the current line (see
|i_backspacing| about joining lines).
CTRL-U Delete all entered characters before the cursor in the current
line. If there are no newly entered characters and
'backspace' is not empty, delete all characters before the
cursor in the current line.
See |i_backspacing| about joining lines.
*i_CTRL-I* *i_<Tab>* *i_Tab*
<Tab> or CTRL-I Insert a tab. If the 'expandtab' option is on, the
equivalent number of spaces is inserted (use CTRL-V <Tab> to
@@ -150,7 +152,7 @@ CTRL-R CTRL-R {0-9a-z"%#*+/:.-=} *i_CTRL-R_CTRL-R*
CTRL-R a results in "ac".
CTRL-R CTRL-R a results in "ab^Hc".
< Options 'textwidth', 'formatoptions', etc. still apply. If
you also want to avoid these, use "<C-R><C-O>r", see below.
you also want to avoid these, use CTRL-R CTRL-O, see below.
The '.' register (last inserted text) is still inserted as
typed. {not in Vi}
@@ -375,6 +377,9 @@ CTRL-O execute one command, return to Insert mode *i_CTRL-O*
CTRL-\ CTRL-O like CTRL-O but don't move the cursor *i_CTRL-\_CTRL-O*
CTRL-L when 'insertmode' is set: go to Normal mode *i_CTRL-L*
CTRL-G u break undo sequence, start new change *i_CTRL-G_u*
CTRL-G U don't break undo with next left/right cursor *i_CTRL-G_U*
movement (but only if the cursor stays
within same the line)
-----------------------------------------------------------------------
Note: If the cursor keys take you out of Insert mode, check the 'noesckeys'
@@ -414,6 +419,28 @@ that, with CTRL-O u. Another example: >
This breaks undo at each line break. It also expands abbreviations before
this.
An example for using CTRL-G U: >
inoremap <Left> <C-G>U<Left>
inoremap <Right> <C-G>U<Right>
inoremap <expr> <Home> col('.') == match(getline('.'), '\S') + 1 ?
\ repeat('<C-G>U<Left>', col('.') - 1) :
\ (col('.') < match(getline('.'), '\S') ?
\ repeat('<C-G>U<Right>', match(getline('.'), '\S') + 0) :
\ repeat('<C-G>U<Left>', col('.') - 1 - match(getline('.'), '\S')))
inoremap <expr> <End> repeat('<C-G>U<Right>', col('$') - col('.'))
inoremap ( ()<C-G>U<Left>
This makes it possible to use the cursor keys in Insert mode, without breaking
the undo sequence and therefore using |.| (redo) will work as expected.
Also entering a text like (with the "(" mapping from above): >
Lorem ipsum (dolor
will be repeatable by the |.|to the expected
Lorem ipsum (dolor)
Using CTRL-O splits undo: the text typed before and after it is undone
separately. If you want to avoid this (e.g., in a mapping) you might be able
to use CTRL-R = |i_CTRL-R|. E.g., to call a function: >

View File

@@ -1,4 +1,4 @@
*motion.txt* For Vim version 7.4. Last change: 2014 Feb 11
*motion.txt* For Vim version 7.4. Last change: 2015 Jun 06
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -172,6 +172,8 @@ CTRL-H or *CTRL-H* *<BS>*
l or *l*
<Right> or *<Right>* *<Space>*
<Space> [count] characters to the right. |exclusive| motion.
See the 'whichwrap' option for adjusting the behavior
at end of line
*0*
0 To the first character of the line. |exclusive|

View File

@@ -1,4 +1,4 @@
*netbeans.txt* For Vim version 7.4. Last change: 2012 Jan 26
*netbeans.txt* For Vim version 7.4. Last change: 2015 Mar 14
VIM REFERENCE MANUAL by Gordon Prieur et al.
@@ -306,7 +306,12 @@ bufID Buffer number. A message may be either for a specific buffer
or generic. Generic messages use a bufID of zero. NOTE: this
buffer ID is assigned by the IDE, it is not Vim's buffer
number. The bufID must be a sequentially rising number,
starting at one.
starting at one. When the 'switchbuf' option is set to
"usetab" and the "bufID" buffer is not found in the current
tab page, the netbeans commands and functions that set this
buffer as the current buffer will jump to the first open
window that contains this buffer in other tab pages instead of
replacing the buffer in the current window.
seqno The IDE uses a sequence number for Commands and Functions. A
Reply must use the sequence number of the Function that it is

View File

@@ -1,4 +1,4 @@
*options.txt* For Vim version 7.4. Last change: 2014 Dec 17
*options.txt* For Vim version 7.4. Last change: 2015 Sep 15
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -50,9 +50,19 @@ achieve special effects. These options come in three forms:
:se[t] {option}&vi Reset option to its Vi default value. {not in Vi}
:se[t] {option}&vim Reset option to its Vim default value. {not in Vi}
:se[t] all& Set all options, except terminal options, to their
default value. The values of 'term', 'lines' and
'columns' are not changed. {not in Vi}
:se[t] all& Set all options to their default value. The values of
these options are not changed:
all terminal options, starting with t_
'columns'
'cryptmethod'
'encoding'
'key'
'lines'
'term'
'ttymouse'
'ttytype'
Warning: This may have a lot of side effects.
{not in Vi}
*:set-args* *E487* *E521*
:se[t] {option}={value} or
@@ -536,11 +546,11 @@ number can be specified where "vim:" or "Vim:" is used:
vim<{vers}: version before {vers}
vim={vers}: version {vers}
vim>{vers}: version after {vers}
{vers} is 600 for Vim 6.0 (hundred times the major version plus minor).
For example, to use a modeline only for Vim 6.0 and later:
/* vim600: set foldmethod=marker: */ ~
To use a modeline for Vim before version 5.7:
/* vim<570: set sw=4: */ ~
{vers} is 700 for Vim 7.0 (hundred times the major version plus minor).
For example, to use a modeline only for Vim 7.0:
/* vim700: set foldmethod=marker */ ~
To use a modeline for Vim after version 7.2:
/* vim>702: set cole=2: */ ~
There can be no blanks between "vim" and the ":".
@@ -786,7 +796,8 @@ A jump table for the options with a short description can be found at |Q_op|.
line.
When 'smartindent' or 'cindent' is on the indent is changed in
a different way.
The 'autoindent' option is reset when the 'paste' option is set.
The 'autoindent' option is reset when the 'paste' option is set and
restored when 'paste' is reset.
{small difference from Vi: After the indent is deleted when typing
<Esc> or <CR>, the cursor position when moving up or down is after the
deleted indent; Vi puts the cursor somewhere in the deleted indent}.
@@ -1124,6 +1135,47 @@ A jump table for the options with a short description can be found at |Q_op|.
expression evaluates to a |List| this is equal to using each List item
as a string and putting "\n" in between them.
*'belloff'* *'bo'*
'belloff' 'bo' string (default "")
global
{not in Vi}
Specifies for which events the bell will not be rung. It is a comma
separated list of items. For each item that is present, the bell
will be silenced. This is most useful to specify specific events in
insert mode to be silenced.
item meaning when present ~
all All events.
backspace When hitting <BS> or <Del> and deleting results in an
error.
cursor Fail to move around using the cursor keys or
<PageUp>/<PageDown> in |Insert-mode|.
complete Error occurred when using |i_CTRL-X_CTRL-K| or
|i_CTRL-X_CTRL-T|.
copy Cannot copy char from insert mode using |i_CTRL-Y| or
|i_CTRL-E|.
ctrlg Unknown Char after <C-G> in Insert mode.
error Other Error occurred (e.g. try to join last line)
(mostly used in |Normal-mode| or |Cmdline-mode|).
esc hitting <Esc> in |Normal-mode|.
ex In |Visual-mode|, hitting |Q| results in an error.
hangul Error occurred when using hangul input.
insertmode Pressing <Esc> in 'insertmode'.
lang Calling the beep module for Lua/Mzscheme/TCL.
mess No output available for |g<|.
showmatch Error occurred for 'showmatch' function.
operator Empty region error |cpo-E|.
register Unknown register after <C-R> in |Insert-mode|.
shell Bell from shell output |:!|.
spell Error happened on spell suggest.
wildmode More matches in |cmdline-completion| available
(depends on the 'wildmode' setting).
This is most useful, to fine tune when in insert mode the bell should
be rung. For normal mode and ex commands, the bell is often rung to
indicate that an error occurred. It can be silenced by adding the
"error" keyword.
*'binary'* *'bin'* *'nobinary'* *'nobin'*
'binary' 'bin' boolean (default off)
local to buffer
@@ -1316,6 +1368,9 @@ A jump table for the options with a short description can be found at |Q_op|.
nofile only: The buffer name is fixed, it is not handled like a
file name. It is not modified in response to a |:cd|
command.
both: When using ":e bufname" and already editing "bufname"
the buffer is made empty and autocommands are
triggered as usual for |:edit|.
*E676*
"acwrite" implies that the buffer name is not related to a file, like
"nofile", but it will be written. Thus, in contrast to "nofile" and
@@ -1816,6 +1871,14 @@ A jump table for the options with a short description can be found at |Q_op|.
completion in the preview window. Only works in
combination with "menu" or "menuone".
noinsert Do not insert any text for a match until the user selects
a match from the menu. Only works in combination with
"menu" or "menuone". No effect if "longest" is present.
noselect Do not select a match in the menu, force the user to
select one from the menu. Only works in combination with
"menu" or "menuone".
*'concealcursor'* *'cocu'*
'concealcursor' 'cocu' string (default: "")
@@ -2660,15 +2723,16 @@ A jump table for the options with a short description can be found at |Q_op|.
local to buffer
{not in Vi}
When writing a file and this option is off and the 'binary' option
is on, no <EOL> will be written for the last line in the file. This
option is automatically set when starting to edit a new file, unless
the file does not have an <EOL> for the last line in the file, in
which case it is reset. Normally you don't have to set or reset this
option. When 'binary' is off the value is not used when writing the
file. When 'binary' is on it is used to remember the presence of a
<EOL> for the last line in the file, so that when you write the file
the situation from the original file can be kept. But you can change
it if you want to.
is on, or 'fixeol' option is off, no <EOL> will be written for the
last line in the file. This option is automatically set or reset when
starting to edit a new file, depending on whether file has an <EOL>
for the last line in the file. Normally you don't have to set or
reset this option.
When 'binary' is off and 'fixeol' is on the value is not used when
writing the file. When 'binary' is on or 'fixeol' is off it is used
to remember the presence of a <EOL> for the last line in the file, so
that when you write the file the situation from the original file can
be kept. But you can change it if you want to.
*'equalalways'* *'ea'* *'noequalalways'* *'noea'*
'equalalways' 'ea' boolean (default on)
@@ -2709,7 +2773,8 @@ A jump table for the options with a short description can be found at |Q_op|.
makes a difference for error messages, the bell will be used always
for a lot of errors without a message (e.g., hitting <Esc> in Normal
mode). See 'visualbell' on how to make the bell behave like a beep,
screen flash or do nothing.
screen flash or do nothing. See 'belloff' to finetune when to ring the
bell.
*'errorfile'* *'ef'*
'errorfile' 'ef' string (Amiga default: "AztecC.Err",
@@ -2771,6 +2836,8 @@ A jump table for the options with a short description can be found at |Q_op|.
<Tab>. Spaces are used in indents with the '>' and '<' commands and
when 'autoindent' is on. To insert a real tab when 'expandtab' is
on, use CTRL-V<Tab>. See also |:retab| and |ins-expandtab|.
This option is reset when the 'paste' option is set and restored when
the 'paste' option is reset.
NOTE: This option is reset when 'compatible' is set.
*'exrc'* *'ex'* *'noexrc'* *'noex'*
@@ -2948,8 +3015,8 @@ A jump table for the options with a short description can be found at |Q_op|.
2. If a <NL> is found and 'fileformats' includes "unix", 'fileformat'
is set to "unix". Note that when a <NL> is found without a
preceding <CR>, "unix" is preferred over "dos".
3. If 'fileformat' has not yet been set, and if 'fileformats'
includes "mac", 'fileformat' is set to "mac".
3. If 'fileformat' has not yet been set, and if a <CR> is found, and
if 'fileformats' includes "mac", 'fileformat' is set to "mac".
This means that "mac" is only chosen when:
"unix" is not present or no <NL> is found in the file, and
"dos" is not present or no <CR><NL> is found in the file.
@@ -3053,6 +3120,17 @@ A jump table for the options with a short description can be found at |Q_op|.
fold:c Folded |hl-Folded|
diff:c DiffDelete |hl-DiffDelete|
*'fixendofline'* *'fixeol'* *'nofixendofline'* *'nofixeol'*
'fixendofline' 'fixeol' boolean (default on)
local to buffer
{not in Vi}
When writing a file and this option is on, <EOL> at the end of file
will be restored if missing. Turn this option off if you want to
preserve the situation from the original file.
When the 'binary' option is set the value of this option doesn't
matter.
See the 'endofline' option.
*'fkmap'* *'fk'* *'nofkmap'* *'nofk'*
'fkmap' 'fk' boolean (default off) *E198*
global
@@ -3417,7 +3495,8 @@ A jump table for the options with a short description can be found at |Q_op|.
the height of the cursor can be changed. This can be done by
specifying a block cursor, or a percentage for a vertical or
horizontal cursor.
For a console the 't_SI' and 't_EI' escape sequences are used.
For a console the 't_SI', 't_SR', and 't_EI' escape sequences are
used.
The option is a comma separated list of parts. Each part consist of a
mode-list and an argument-list:
@@ -4713,33 +4792,38 @@ A jump table for the options with a short description can be found at |Q_op|.
{not in Vi}
Strings to use in 'list' mode and for the |:list| command. It is a
comma separated list of string settings.
*lcs-eol*
*lcs-eol*
eol:c Character to show at the end of each line. When
omitted, there is no extra character at the end of the
line.
*lcs-tab*
*lcs-tab*
tab:xy Two characters to be used to show a tab. The first
char is used once. The second char is repeated to
fill the space that the tab normally occupies.
"tab:>-" will show a tab that takes four spaces as
">---". When omitted, a tab is show as ^I.
*lcs-trail*
*lcs-space*
space:c Character to show for a space. When omitted, spaces
are left blank.
*lcs-trail*
trail:c Character to show for trailing spaces. When omitted,
trailing spaces are blank.
*lcs-extends*
trailing spaces are blank. Overrides the "space"
setting for trailing spaces.
*lcs-extends*
extends:c Character to show in the last column, when 'wrap' is
off and the line continues beyond the right of the
screen.
*lcs-precedes*
*lcs-precedes*
precedes:c Character to show in the first column, when 'wrap'
is off and there is text preceding the character
visible in the first column.
*lcs-conceal*
*lcs-conceal*
conceal:c Character to show in place of concealed text, when
'conceallevel' is set to 1.
*lcs-nbsp*
nbsp:c Character to show for a non-breakable space (character
0xA0, 160). Left blank when omitted.
*lcs-nbsp*
nbsp:c Character to show for a non-breakable space character
(0xA0 (160 decimal) and U+202F). Left blank when
omitted.
The characters ':' and ',' should not be used. UTF-8 characters can
be used when 'encoding' is "utf-8", otherwise only printable
@@ -4750,7 +4834,7 @@ A jump table for the options with a short description can be found at |Q_op|.
:set lcs=tab:>-,eol:<,nbsp:%
:set lcs=extends:>,precedes:<
< The "NonText" highlighting will be used for "eol", "extends" and
"precedes". "SpecialKey" for "nbsp", "tab" and "trail".
"precedes". "SpecialKey" for "nbsp", "space", "tab" and "trail".
|hl-NonText| |hl-SpecialKey|
*'lpl'* *'nolpl'* *'loadplugins'* *'noloadplugins'*
@@ -5331,19 +5415,21 @@ A jump table for the options with a short description can be found at |Q_op|.
When the 'paste' option is switched on (also when it was already on):
- mapping in Insert mode and Command-line mode is disabled
- abbreviations are disabled
- 'textwidth' is set to 0
- 'wrapmargin' is set to 0
- 'autoindent' is reset
- 'smartindent' is reset
- 'softtabstop' is set to 0
- 'expandtab' is reset
- 'formatoptions' is used like it is empty
- 'revins' is reset
- 'ruler' is reset
- 'showmatch' is reset
- 'formatoptions' is used like it is empty
- 'smartindent' is reset
- 'smarttab' is reset
- 'softtabstop' is set to 0
- 'textwidth' is set to 0
- 'wrapmargin' is set to 0
These options keep their value, but their effect is disabled:
- 'lisp'
- 'indentexpr'
- 'cindent'
- 'indentexpr'
- 'lisp'
NOTE: When you start editing another file while the 'paste' option is
on, settings from the modelines or autocommands may change the
settings again, causing trouble when pasting text. You might want to
@@ -5776,7 +5862,9 @@ A jump table for the options with a short description can be found at |Q_op|.
Inserting characters in Insert mode will work backwards. See "typing
backwards" |ins-reverse|. This option can be toggled with the CTRL-_
command in Insert mode, when 'allowrevins' is set.
NOTE: This option is reset when 'compatible' or 'paste' is set.
NOTE: This option is reset when 'compatible' is set.
This option is reset when 'paste' is set and restored when 'paste' is
reset.
*'rightleft'* *'rl'* *'norightleft'* *'norl'*
'rightleft' 'rl' boolean (default off)
@@ -5832,7 +5920,8 @@ A jump table for the options with a short description can be found at |Q_op|.
separated with a dash.
For an empty line "0-1" is shown.
For an empty buffer the line number will also be zero: "0,0-1".
This option is reset when the 'paste' option is set.
This option is reset when 'paste' is set and restored when 'paste' is
reset.
If you don't want to see the ruler all the time but want to know where
you are, use "g CTRL-G" |g_CTRL-G|.
NOTE: This option is reset when 'compatible' is set.
@@ -6471,7 +6560,9 @@ A jump table for the options with a short description can be found at |Q_op|.
jump is only done if the match can be seen on the screen. The time to
show the match can be set with 'matchtime'.
A Beep is given if there is no match (no matter if the match can be
seen or not). This option is reset when the 'paste' option is set.
seen or not).
This option is reset when 'paste' is set and restored when 'paste' is
reset.
When the 'm' flag is not included in 'cpoptions', typing a character
will immediately move the cursor back to where it belongs.
See the "sm" field in 'guicursor' for setting the cursor shape and
@@ -6580,8 +6671,9 @@ A jump table for the options with a short description can be found at |Q_op|.
mapping: ":inoremap # X^H#", where ^H is entered with CTRL-V CTRL-H.
When using the ">>" command, lines starting with '#' are not shifted
right.
NOTE: 'smartindent' is reset when 'compatible' is set. When 'paste'
is set smart indenting is disabled.
NOTE: 'smartindent' is reset when 'compatible' is set.
This option is reset when 'paste' is set and restored when 'paste' is
reset.
*'smarttab'* *'sta'* *'nosmarttab'* *'nosta'*
'smarttab' 'sta' boolean (default off)
@@ -6597,6 +6689,8 @@ A jump table for the options with a short description can be found at |Q_op|.
What gets inserted (a <Tab> or spaces) depends on the 'expandtab'
option. Also see |ins-expandtab|. When 'expandtab' is not set, the
number of spaces is minimized by using <Tab>s.
This option is reset when 'paste' is set and restored when 'paste' is
reset.
NOTE: This option is reset when 'compatible' is set.
*'softtabstop'* *'sts'*
@@ -6611,7 +6705,8 @@ A jump table for the options with a short description can be found at |Q_op|.
commands like "x" still work on the actual characters.
When 'sts' is zero, this feature is off.
When 'sts' is negative, the value of 'shiftwidth' is used.
'softtabstop' is set to 0 when the 'paste' option is set.
'softtabstop' is set to 0 when the 'paste' option is set and restored
when 'paste' is reset.
See also |ins-expandtab|. When 'expandtab' is not set, the number of
spaces is minimized by using <Tab>s.
The 'L' flag in 'cpoptions' changes how tabs are used when 'list' is
@@ -7058,6 +7153,7 @@ A jump table for the options with a short description can be found at |Q_op|.
split If included, split the current window before loading
a buffer for a |quickfix| command that display errors.
Otherwise: do not split, use current window.
vsplit Just like "split" but split vertically.
newtab Like "split", but open a new tab page. Overrules
"split" when both are present.
@@ -7314,14 +7410,12 @@ A jump table for the options with a short description can be found at |Q_op|.
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
when it differs from the ANSI codepage.
*E617*
Note: This does not apply to the GTK+ 2 GUI. After the GUI has been
successfully initialized, 'termencoding' is forcibly set to "utf-8".
Any attempts to set a different value will be rejected, and an error
message is shown.
For the Win32 GUI 'termencoding' is not used for typed characters,
For the Win32 GUI and console versions 'termencoding' is not used,
because the Win32 system always passes Unicode characters.
When empty, the same encoding is used as for the 'encoding' option.
This is the normal value.
@@ -7371,8 +7465,10 @@ A jump table for the options with a short description can be found at |Q_op|.
{not in Vi}
Maximum width of text that is being inserted. A longer line will be
broken after white space to get this width. A zero value disables
this. 'textwidth' is set to 0 when the 'paste' option is set. When
'textwidth' is zero, 'wrapmargin' may be used. See also
this.
'textwidth' is set to 0 when the 'paste' option is set and restored
when 'paste' is reset.
When 'textwidth' is zero, 'wrapmargin' may be used. See also
'formatoptions' and |ins-textwidth|.
When 'formatexpr' is set it will be used to break the line.
NOTE: This option is set to 0 when 'compatible' is set.
@@ -8394,6 +8490,8 @@ A jump table for the options with a short description can be found at |Q_op|.
Options that add a margin, such as 'number' and 'foldcolumn', cause
the text width to be further reduced. This is Vi compatible.
When 'textwidth' is non-zero, this option is not used.
This option is set to 0 when 'paste' is set and restored when 'paste'
is reset.
See also 'formatoptions' and |ins-textwidth|. {Vi: works differently
and less usefully}

View File

@@ -1,4 +1,4 @@
*pattern.txt* For Vim version 7.4. Last change: 2014 Sep 06
*pattern.txt* For Vim version 7.4. Last change: 2015 Mar 16
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -59,6 +59,8 @@ explanations are in chapter 27 |usr_27.txt|.
*n*
n Repeat the latest "/" or "?" [count] times.
If the cursor doesn't move the search is repeated with
count + 1.
|last-pattern| {Vi: no count}
*N*
@@ -1058,7 +1060,10 @@ x A single character, with no special meaning, matches itself
*E769*
When the ']' is not there Vim will not give an error message but
assume no collection is used. Useful to search for '['. However, you
do get E769 for internal searching.
do get E769 for internal searching. And be aware that in a
`:substitute` command the whole command becomes the pattern. E.g.
":s/[/x/" searches for "[/x" and replaces it with nothing. It does
not search for "[" and replaces it with "x"!
If the sequence begins with "^", it matches any single character NOT
in the collection: "[^xyz]" matches anything but 'x', 'y' and 'z'.

117
runtime/doc/pi_logipat.txt Normal file
View File

@@ -0,0 +1,117 @@
*pi_logipat.txt* Logical Patterns Mar 13, 2013
Author: Charles E. Campbell <NdrOchip@ScampbellPfamily.AbizM>
Copyright: (c) 2004-2013 by Charles E. Campbell *logipat-copyright*
The VIM LICENSE applies to LogiPat.vim and LogiPat.txt
(see |copyright|) except use "LogiPat" instead of "Vim"
No warranty, express or implied. Use At-Your-Own-Risk.
==============================================================================
1. Contents *logipat* *logipat-contents*
1. Contents.................: |logipat-contents|
2. LogiPat Manual...........: |logipat-manual|
3. LogiPat Examples.........: |logipat-examples|
4. Caveat...................: |logipat-caveat|
5. LogiPat History..........: |logipat-history|
==============================================================================
2. LogiPat Manual *logipat-manual* *logipat-man*
*logipat-arg* *logipat-input* *logipat-pattern* *logipat-operators*
Boolean logic patterns are composed of
operators ! = not
| = logical-or
& = logical-and
grouping ( ... )
patterns "pattern"
:LogiPat {boolean-logic pattern} *:LogiPat*
:LogiPat is a command which takes a boolean-logic
argument (|logipat-arg|).
:LP {boolean-logic pattern} *:LP*
:LP is a shorthand command version of :LogiPat
(|:LogiPat|).
:ELP {boolean-logic pattern} *:ELP*
No search is done, but the conversion from the
boolean logic pattern to the regular expression
is performed and echoed onto the display.
:LogiPatFlags {search flags} *LogiPat-flags*
:LogiPatFlags {search flags}
LogiPat uses the |search()| command. The flags
passed to that call to search() may be specified
by the :LogiPatFlags command.
:LPF {search flags} *:LPF*
:LPF is a shorthand version of :LogiPatFlags.
:let pat=LogiPat({boolean-logic pattern}) *LogiPat()*
If one calls LogiPat() directly, no search
is done, but the transformation from the boolean
logic pattern into a regular expression pattern
is performed and returned.
To get a " inside a pattern, as opposed to having it delimit
the pattern, double it.
==============================================================================
3. LogiPat Examples *logipat-examples*
LogiPat takes Boolean logic arguments and produces a regular
expression which implements the choices. A series of examples
follows:
>
:LogiPat "abc"
< will search for lines containing the string :abc:
>
:LogiPat "ab""cd"
< will search for lines containing the string :ab"c:
>
:LogiPat !"abc"
< will search for lines which don't contain the string :abc:
>
:LogiPat "abc"|"def"
< will search for lines which contain either the string
:abc: or the string :def:
>
:LogiPat !("abc"|"def")
< will search for lines which don't contain either
of the strings :abc: or :def:
>
:LogiPat "abc"&"def"
< will search for lines which contain both of the strings
:abc: and :def:
>
:let pat= LogiPat('!"abc"')
< will return the regular expression which will match
all lines not containing :abc: . The double quotes
are needed to pass normal patterns to LogiPat, and
differentiate such patterns from boolean logic
operators.
==============================================================================
4. Caveat *logipat-caveat*
The "not" operator may be fragile; ie. it may not always play well
with the & (logical-and) and | (logical-or) operators. Please try out
your patterns, possibly with :set hls, to insure that what is matching
is what you want.
==============================================================================
3. LogiPat History *logipat-history*
v3 Sep 25, 2006 * LP_Or() fixed; it now encapsulates its output
in \%(...\) parentheses
Dec 12, 2011 * |:ELP| added
* "" is mapped to a single " and left inside patterns
v2 May 31, 2005 * LPF and LogiPatFlags commands weren't working
v1 May 23, 2005 * initial release
==============================================================================
vim:tw=78:ts=8:ft=help

View File

@@ -1,4 +1,4 @@
*quickfix.txt* For Vim version 7.4. Last change: 2014 Mar 27
*quickfix.txt* For Vim version 7.4. Last change: 2015 Sep 08
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -299,6 +299,75 @@ use this code: >
au QuickfixCmdPost make call QfMakeConv()
EXECUTE A COMMAND IN ALL THE BUFFERS IN QUICKFIX OR LOCATION LIST:
*:cdo*
:cdo[!] {cmd} Execute {cmd} in each valid entry in the quickfix list.
It works like doing this: >
:cfirst
:{cmd}
:cnext
:{cmd}
etc.
< When the current file can't be |abandon|ed and the [!]
is not present, the command fails.
When an error is detected excecution stops.
The last buffer (or where an error occurred) becomes
the current buffer.
{cmd} can contain '|' to concatenate several commands.
Only valid entries in the quickfix list are used.
A range can be used to select entries, e.g.: >
:10,$cdo cmd
< To skip entries 1 to 9.
Note: While this command is executing, the Syntax
autocommand event is disabled by adding it to
'eventignore'. This considerably speeds up editing
each buffer.
{not in Vi} {not available when compiled without the
|+listcmds| feature}
Also see |:bufdo|, |:tabdo|, |:argdo|, |:windo|,
|:ldo|, |:cfdo| and |:lfdo|.
*:cfdo*
:cfdo[!] {cmd} Execute {cmd} in each file in the quickfix list.
It works like doing this: >
:cfirst
:{cmd}
:cnfile
:{cmd}
etc.
< Otherwise it works the same as `:cdo`.
{not in Vi} {not available when compiled without the
|+listcmds| feature}
*:ldo*
:ld[o][!] {cmd} Execute {cmd} in each valid entry in the location list
for the current window.
It works like doing this: >
:lfirst
:{cmd}
:lnext
:{cmd}
etc.
< Only valid entries in the location list are used.
Otherwise it works the same as `:cdo`.
{not in Vi} {not available when compiled without the
|+listcmds| feature}
*:lfdo*
:lfdo[!] {cmd} Execute {cmd} in each file in the location list for
the current window.
It works like doing this: >
:lfirst
:{cmd}
:lnfile
:{cmd}
etc.
< Otherwise it works the same as `:ldo`.
{not in Vi} {not available when compiled without the
|+listcmds| feature}
=============================================================================
2. The error window *quickfix-window*

View File

@@ -1,4 +1,4 @@
*quickref.txt* For Vim version 7.4. Last change: 2014 Nov 19
*quickref.txt* For Vim version 7.4. Last change: 2015 Jul 21
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -620,6 +620,7 @@ Short explanation of each option: *option-list*
'balloondelay' 'bdlay' delay in mS before a balloon may pop up
'ballooneval' 'beval' switch on balloon evaluation
'balloonexpr' 'bexpr' expression to show in balloon
'belloff' 'bo' do not ring the bell for these reasons
'binary' 'bin' read/write/edit file in binary mode
'bioskey' 'biosk' MS-DOS: use bios calls for input characters
'bomb' prepend a Byte Order Mark to the file
@@ -696,6 +697,7 @@ Short explanation of each option: *option-list*
'fileignorecase' 'fic' ignore case when using file names
'filetype' 'ft' type of file, used for autocommands
'fillchars' 'fcs' characters to use for displaying special items
'fixendofline' 'fixeol' make sure last line in file has <EOL>
'fkmap' 'fk' Farsi keyboard mapping
'foldclose' 'fcl' close a fold when the cursor leaves it
'foldcolumn' 'fdc' width of the column used to indicate folds
@@ -710,10 +712,10 @@ Short explanation of each option: *option-list*
'foldnestmax' 'fdn' maximum fold depth
'foldopen' 'fdo' for which commands a fold will be opened
'foldtext' 'fdt' expression used to display for a closed fold
'formatexpr' 'fex' expression used with "gq" command
'formatlistpat' 'flp' pattern used to recognize a list header
'formatoptions' 'fo' how automatic formatting is to be done
'formatprg' 'fp' name of external program used with "gq" command
'formatexpr' 'fex' expression used with "gq" command
'fsync' 'fs' whether to invoke fsync() after file write
'gdefault' 'gd' the ":substitute" flag 'g' is default on
'grepformat' 'gfm' format of 'grepprg' output
@@ -732,15 +734,15 @@ Short explanation of each option: *option-list*
'helplang' 'hlg' preferred help languages
'hidden' 'hid' don't unload buffer when it is |abandon|ed
'highlight' 'hl' sets highlighting mode for various occasions
'hlsearch' 'hls' highlight matches with last search pattern
'history' 'hi' number of command-lines that are remembered
'hkmap' 'hk' Hebrew keyboard mapping
'hkmapp' 'hkp' phonetic Hebrew keyboard mapping
'hlsearch' 'hls' highlight matches with last search pattern
'icon' let Vim set the text of the window icon
'iconstring' string to use for the Vim icon text
'ignorecase' 'ic' ignore case in search patterns
'imactivatekey' 'imak' key that activates the X input method
'imactivatefunc' 'imaf' function to enable/disable the X input method
'imactivatekey' 'imak' key that activates the X input method
'imcmdline' 'imc' use IM when starting to edit a command line
'imdisable' 'imd' do not use the IM in any mode
'iminsert' 'imi' use :lmap or IM in Insert mode
@@ -893,9 +895,9 @@ Short explanation of each option: *option-list*
'switchbuf' 'swb' sets behavior when switching to another buffer
'synmaxcol' 'smc' maximum column to find syntax items
'syntax' 'syn' syntax to be loaded for current buffer
'tabstop' 'ts' number of spaces that <Tab> in file uses
'tabline' 'tal' custom format for the console tab pages line
'tabpagemax' 'tpm' maximum number of tab pages for |-p| and "tab all"
'tabstop' 'ts' number of spaces that <Tab> in file uses
'tagbsearch' 'tbs' use binary searching in tags files
'taglength' 'tl' number of significant characters for a tag
'tagrelative' 'tr' file names in tag file are relative

View File

@@ -1,4 +1,4 @@
*remote.txt* For Vim version 7.4. Last change: 2008 May 24
*remote.txt* For Vim version 7.4. Last change: 2015 Mar 01
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -36,7 +36,8 @@ The following command line arguments are available:
The remote Vim is raised. If you don't want
this use >
vim --remote-send "<C-\><C-N>:n filename<CR>"
< --remote-silent [+{cmd}] {file} ... *--remote-silent*
<
--remote-silent [+{cmd}] {file} ... *--remote-silent*
As above, but don't complain if there is no
server and the file is edited locally.
--remote-wait [+{cmd}] {file} ... *--remote-wait*

View File

@@ -1,4 +1,4 @@
*repeat.txt* For Vim version 7.4. Last change: 2015 Jan 07
*repeat.txt* For Vim version 7.4. Last change: 2015 Apr 13
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -600,6 +600,7 @@ For example, to profile the one_script.vim script file: >
:prof[ile] start {fname} *:prof* *:profile* *E750*
Start profiling, write the output in {fname} upon exit.
"~/" and environment variables in {fname} will be expanded.
If {fname} already exists it will be silently overwritten.
The variable |v:profiling| is set to one.

View File

@@ -1,4 +1,4 @@
*syntax.txt* For Vim version 7.4. Last change: 2015 Jan 07
*syntax.txt* For Vim version 7.4. Last change: 2015 Aug 13
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -211,7 +211,8 @@ thing. These are then linked to a highlight group that specifies the color.
A syntax group name doesn't specify any color or attributes itself.
The name for a highlight or syntax group must consist of ASCII letters, digits
and the underscore. As a regexp: "[a-zA-Z0-9_]*"
and the underscore. As a regexp: "[a-zA-Z0-9_]*". However, Vim does not give
an error when using other characters.
To be able to allow each user to pick his favorite set of colors, there must
be preferred names for highlight groups that are common for many languages.
@@ -1135,6 +1136,8 @@ there are very long lines in the file. To disable translations: >
:let diff_translations = 0
Also see |diff-slow|.
DIRCOLORS *dircolors.vim* *ft-dircolors-syntax*
@@ -3319,6 +3322,32 @@ must not click outside of the pixel strings, but feel free to improve it.
It will look much better with a font in a quadratic cell size, e.g. for X: >
:set guifont=-*-clean-medium-r-*-*-8-*-*-*-*-80-*
YAML *yaml.vim* *ft-yaml-syntax*
*g:yaml_schema* *b:yaml_schema*
A YAML schema is a combination of a set of tags and a mechanism for resolving
non-specific tags. For user this means that YAML parser may, depending on
plain scalar contents, treat plain scalar (which can actually be only string
and nothing else) as a value of the other type: null, boolean, floating-point,
integer. `g:yaml_schema` option determines according to which schema values
will be highlighted specially. Supported schemas are
Schema Description ~
failsafe No additional highlighting.
json Supports JSON-style numbers, booleans and null.
core Supports more number, boolean and null styles.
pyyaml In addition to core schema supports highlighting timestamps,
but there are some differences in what is recognized as
numbers and many additional boolean values not present in core
schema.
Default schema is `core`.
Note that schemas are not actually limited to plain scalars, but this is the
only difference between schemas defined in YAML specification and the only
difference defined in the syntax file.
==============================================================================
5. Defining a syntax *:syn-define* *E410*
@@ -3416,7 +3445,7 @@ DEFINING KEYWORDS *:syn-keyword*
:syntax keyword Type contained int long char
:syntax keyword Type int long contained char
:syntax keyword Type int long char contained
< *E789*
< *E789* *E890*
When you have a keyword with an optional tail, like Ex commands in
Vim, you can put the optional characters inside [], to define all the
variations at once: >
@@ -3670,6 +3699,7 @@ Whether or not it is actually concealed depends on the value of the
'conceallevel' option. The 'concealcursor' option is used to decide whether
concealable items in the current line are displayed unconcealed to be able to
edit the line.
Another way to conceal text with with |matchadd()|.
concealends *:syn-concealends*
@@ -4251,7 +4281,7 @@ If the "maxlines={N}" argument is given, the number of lines that are searched
for a comment or syncing pattern is restricted to N lines backwards (after
adding "minlines"). This is useful if you have few things to sync on and a
slow machine. Example: >
:syntax sync ccomment maxlines=500
:syntax sync maxlines=500 ccomment
<
*:syn-sync-linebreaks*
When using a pattern that matches multiple lines, a change in one line may
@@ -4645,6 +4675,8 @@ ctermbg={color-nr} *highlight-ctermbg*
Note that for some color terminals these names may result in the wrong
colors!
You can also use "NONE" to remove the color.
*:hi-normal-cterm*
When setting the "ctermfg" or "ctermbg" colors for the Normal group,
these will become the colors used for the non-highlighted text.

View File

@@ -202,23 +202,29 @@ REORDERING TAB PAGES:
Move the current tab page to after tab page N. Use zero to
make the current tab page the first one. Without N the tab
page is made the last one. >
:.tabmove " do nothing
:-tabmove " move the tab page to the left
:tabmove " move the tab page to the right
:.tabmove " as above
:+tabmove " as above
:+tabmove " move the tab page to the right
:0tabmove " move the tab page to the beginning of the tab
" list
:$tabmove " move the tab page to the end of the tab list
<
:tabmove 0 " as above
:tabmove " move the tab page to the last
:$tabmove " as above
:tabmove $ " as above
:tabm[ove] +[N]
:tabm[ove] -[N]
Move the current tab page N places to the right (with +) or to
the left (with -).
the left (with -). >
:tabmove - " move the tab page to the left
:tabmove -1 " as above
:tabmove + " move the tab page to the right
:tabmove +1 " as above
Note that although it is possible to move a tab behind the N-th one by using
:Ntabmove, it is impossible to move it by N places by using :+Ntabmove. For
clarification what +N means in this context see |[range]|.
:Ntabmove. And move it by N places by using :+Ntabmove. For clarification what
+N means in this context see |[range]|.
LOOPING OVER TAB PAGES:
@@ -242,7 +248,8 @@ LOOPING OVER TAB PAGES:
{cmd} must not open or close tab pages or reorder them.
{not in Vi} {not available when compiled without the
|+listcmds| feature}
Also see |:windo|, |:argdo| and |:bufdo|.
Also see |:windo|, |:argdo|, |:bufdo|, |:cdo|, |:ldo|, |:cfdo|
and |:lfdo|
==============================================================================
3. Other items *tab-page-other*

View File

@@ -76,6 +76,7 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
'bdir' options.txt /*'bdir'*
'bdlay' options.txt /*'bdlay'*
'beautify' vi_diff.txt /*'beautify'*
'belloff' options.txt /*'belloff'*
'beval' options.txt /*'beval'*
'bex' options.txt /*'bex'*
'bexpr' options.txt /*'bexpr'*
@@ -89,6 +90,7 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
'bk' options.txt /*'bk'*
'bkc' options.txt /*'bkc'*
'bl' options.txt /*'bl'*
'bo' options.txt /*'bo'*
'bomb' options.txt /*'bomb'*
'breakat' options.txt /*'breakat'*
'breakindent' options.txt /*'breakindent'*
@@ -246,6 +248,8 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
'fileignorecase' options.txt /*'fileignorecase'*
'filetype' options.txt /*'filetype'*
'fillchars' options.txt /*'fillchars'*
'fixendofline' options.txt /*'fixendofline'*
'fixeol' options.txt /*'fixeol'*
'fk' options.txt /*'fk'*
'fkmap' options.txt /*'fkmap'*
'fl' vi_diff.txt /*'fl'*
@@ -540,6 +544,8 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
'nofen' options.txt /*'nofen'*
'nofic' options.txt /*'nofic'*
'nofileignorecase' options.txt /*'nofileignorecase'*
'nofixendofline' options.txt /*'nofixendofline'*
'nofixeol' options.txt /*'nofixeol'*
'nofk' options.txt /*'nofk'*
'nofkmap' options.txt /*'nofkmap'*
'nofoldenable' options.txt /*'nofoldenable'*
@@ -929,9 +935,11 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
't_KJ' term.txt /*'t_KJ'*
't_KK' term.txt /*'t_KK'*
't_KL' term.txt /*'t_KL'*
't_RB' term.txt /*'t_RB'*
't_RI' term.txt /*'t_RI'*
't_RV' term.txt /*'t_RV'*
't_SI' term.txt /*'t_SI'*
't_SR' term.txt /*'t_SR'*
't_Sb' term.txt /*'t_Sb'*
't_Sf' term.txt /*'t_Sf'*
't_WP' term.txt /*'t_WP'*
@@ -995,6 +1003,7 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
't_ve' term.txt /*'t_ve'*
't_vi' term.txt /*'t_vi'*
't_vs' term.txt /*'t_vs'*
't_xn' term.txt /*'t_xn'*
't_xs' term.txt /*'t_xs'*
'ta' options.txt /*'ta'*
'tabline' options.txt /*'tabline'*
@@ -1835,6 +1844,7 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
:CompilerSet usr_41.txt /*:CompilerSet*
:DiffOrig diff.txt /*:DiffOrig*
:DoMatchParen pi_paren.txt /*:DoMatchParen*
:ELP pi_logipat.txt /*:ELP*
:Explore pi_netrw.txt /*:Explore*
:GLVS pi_getscript.txt /*:GLVS*
:GetLatestVimScripts_dat pi_getscript.txt /*:GetLatestVimScripts_dat*
@@ -1842,7 +1852,10 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
:GnatPretty ft_ada.txt /*:GnatPretty*
:GnatTags ft_ada.txt /*:GnatTags*
:Hexplore pi_netrw.txt /*:Hexplore*
:LP pi_logipat.txt /*:LP*
:LPF pi_logipat.txt /*:LPF*
:Lexplore pi_netrw.txt /*:Lexplore*
:LogiPat pi_logipat.txt /*:LogiPat*
:Man filetype.txt /*:Man*
:MkVimball pi_vimball.txt /*:MkVimball*
:N editing.txt /*:N*
@@ -2002,11 +2015,13 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
:cclose quickfix.txt /*:cclose*
:cd editing.txt /*:cd*
:cd- editing.txt /*:cd-*
:cdo quickfix.txt /*:cdo*
:ce change.txt /*:ce*
:center change.txt /*:center*
:cex quickfix.txt /*:cex*
:cexpr quickfix.txt /*:cexpr*
:cf quickfix.txt /*:cf*
:cfdo quickfix.txt /*:cfdo*
:cfile quickfix.txt /*:cfile*
:cfir quickfix.txt /*:cfir*
:cfirst quickfix.txt /*:cfirst*
@@ -2353,6 +2368,7 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
:lclose quickfix.txt /*:lclose*
:lcs if_cscop.txt /*:lcs*
:lcscope if_cscop.txt /*:lcscope*
:ldo quickfix.txt /*:ldo*
:le change.txt /*:le*
:left change.txt /*:left*
:lefta windows.txt /*:lefta*
@@ -2371,6 +2387,7 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
:lex quickfix.txt /*:lex*
:lexpr quickfix.txt /*:lexpr*
:lf quickfix.txt /*:lf*
:lfdo quickfix.txt /*:lfdo*
:lfile quickfix.txt /*:lfile*
:lfir quickfix.txt /*:lfir*
:lfirst quickfix.txt /*:lfirst*
@@ -4340,6 +4357,7 @@ E887 if_pyth.txt /*E887*
E888 pattern.txt /*E888*
E889 map.txt /*E889*
E89 message.txt /*E89*
E890 syntax.txt /*E890*
E90 message.txt /*E90*
E91 options.txt /*E91*
E92 message.txt /*E92*
@@ -4419,6 +4437,8 @@ L motion.txt /*L*
Linux-backspace options.txt /*Linux-backspace*
List eval.txt /*List*
Lists eval.txt /*Lists*
LogiPat() pi_logipat.txt /*LogiPat()*
LogiPat-flags pi_logipat.txt /*LogiPat-flags*
Lua if_lua.txt /*Lua*
M motion.txt /*M*
MDI starting.txt /*MDI*
@@ -4465,6 +4485,7 @@ OffTheSpot mbyte.txt /*OffTheSpot*
OnTheSpot mbyte.txt /*OnTheSpot*
Operator-pending intro.txt /*Operator-pending*
Operator-pending-mode intro.txt /*Operator-pending-mode*
OptionSet autocmd.txt /*OptionSet*
OverTheSpot mbyte.txt /*OverTheSpot*
P change.txt /*P*
PATHEXT eval.txt /*PATHEXT*
@@ -4554,6 +4575,7 @@ SourcePre autocmd.txt /*SourcePre*
SpellFileMissing autocmd.txt /*SpellFileMissing*
StdinReadPost autocmd.txt /*StdinReadPost*
StdinReadPre autocmd.txt /*StdinReadPre*
String eval.txt /*String*
SwapExists autocmd.txt /*SwapExists*
Syntax autocmd.txt /*Syntax*
T motion.txt /*T*
@@ -4873,6 +4895,7 @@ b:current_syntax-variable syntax.txt /*b:current_syntax-variable*
b:netrw_lastfile pi_netrw.txt /*b:netrw_lastfile*
b:tex_stylish syntax.txt /*b:tex_stylish*
b:var eval.txt /*b:var*
b:yaml_schema syntax.txt /*b:yaml_schema*
baan-folding syntax.txt /*baan-folding*
baan-syntax syntax.txt /*baan-syntax*
baan.vim syntax.txt /*baan.vim*
@@ -5199,6 +5222,7 @@ complete_CTRL-E insert.txt /*complete_CTRL-E*
complete_CTRL-Y insert.txt /*complete_CTRL-Y*
complete_add() eval.txt /*complete_add()*
complete_check() eval.txt /*complete_check()*
completed_item-variable eval.txt /*completed_item-variable*
completion-functions usr_41.txt /*completion-functions*
complex-change change.txt /*complex-change*
complex-repeat repeat.txt /*complex-repeat*
@@ -5416,10 +5440,12 @@ diff-mode diff.txt /*diff-mode*
diff-options diff.txt /*diff-options*
diff-original-file diff.txt /*diff-original-file*
diff-patchexpr diff.txt /*diff-patchexpr*
diff-slow diff.txt /*diff-slow*
diff.txt diff.txt /*diff.txt*
diff.vim syntax.txt /*diff.vim*
diff_filler() eval.txt /*diff_filler()*
diff_hlID() eval.txt /*diff_hlID()*
diff_translations diff.txt /*diff_translations*
digraph digraph.txt /*digraph*
digraph-arg change.txt /*digraph-arg*
digraph-encoding digraph.txt /*digraph-encoding*
@@ -5634,6 +5660,7 @@ extensions-improvements todo.txt /*extensions-improvements*
f motion.txt /*f*
faq intro.txt /*faq*
farsi farsi.txt /*farsi*
farsi-fonts farsi.txt /*farsi-fonts*
farsi.txt farsi.txt /*farsi.txt*
fasm.vim syntax.txt /*fasm.vim*
fcs_choice-variable eval.txt /*fcs_choice-variable*
@@ -5880,6 +5907,7 @@ ft-xhtml-omni insert.txt /*ft-xhtml-omni*
ft-xml-omni insert.txt /*ft-xml-omni*
ft-xml-syntax syntax.txt /*ft-xml-syntax*
ft-xpm-syntax syntax.txt /*ft-xpm-syntax*
ft-yaml-syntax syntax.txt /*ft-yaml-syntax*
ft_ada.txt ft_ada.txt /*ft_ada.txt*
ft_sql.txt ft_sql.txt /*ft_sql.txt*
ftdetect filetype.txt /*ftdetect*
@@ -6109,6 +6137,7 @@ g:vimsyn_folding syntax.txt /*g:vimsyn_folding*
g:vimsyn_maxlines syntax.txt /*g:vimsyn_maxlines*
g:vimsyn_minlines syntax.txt /*g:vimsyn_minlines*
g:vimsyn_noerror syntax.txt /*g:vimsyn_noerror*
g:yaml_schema syntax.txt /*g:yaml_schema*
g:zip_nomax pi_zip.txt /*g:zip_nomax*
g:zip_shq pi_zip.txt /*g:zip_shq*
g:zip_unzipcmd pi_zip.txt /*g:zip_unzipcmd*
@@ -6160,6 +6189,7 @@ getbufline() eval.txt /*getbufline()*
getbufvar() eval.txt /*getbufvar()*
getchar() eval.txt /*getchar()*
getcharmod() eval.txt /*getcharmod()*
getcharsearch() eval.txt /*getcharsearch()*
getcmdline() eval.txt /*getcmdline()*
getcmdpos() eval.txt /*getcmdpos()*
getcmdtype() eval.txt /*getcmdtype()*
@@ -6199,6 +6229,7 @@ gi insert.txt /*gi*
gj motion.txt /*gj*
gk motion.txt /*gk*
glob() eval.txt /*glob()*
glob2regpat() eval.txt /*glob2regpat()*
global-ime mbyte.txt /*global-ime*
global-local options.txt /*global-local*
global-variable eval.txt /*global-variable*
@@ -6516,6 +6547,7 @@ i_CTRL-G_<Down> insert.txt /*i_CTRL-G_<Down>*
i_CTRL-G_<Up> insert.txt /*i_CTRL-G_<Up>*
i_CTRL-G_CTRL-J insert.txt /*i_CTRL-G_CTRL-J*
i_CTRL-G_CTRL-K insert.txt /*i_CTRL-G_CTRL-K*
i_CTRL-G_U insert.txt /*i_CTRL-G_U*
i_CTRL-G_j insert.txt /*i_CTRL-G_j*
i_CTRL-G_k insert.txt /*i_CTRL-G_k*
i_CTRL-G_u insert.txt /*i_CTRL-G_u*
@@ -6725,6 +6757,7 @@ lcs-eol options.txt /*lcs-eol*
lcs-extends options.txt /*lcs-extends*
lcs-nbsp options.txt /*lcs-nbsp*
lcs-precedes options.txt /*lcs-precedes*
lcs-space options.txt /*lcs-space*
lcs-tab options.txt /*lcs-tab*
lcs-trail options.txt /*lcs-trail*
left-right-motions motion.txt /*left-right-motions*
@@ -6772,6 +6805,18 @@ location-list quickfix.txt /*location-list*
location-list-window quickfix.txt /*location-list-window*
log() eval.txt /*log()*
log10() eval.txt /*log10()*
logipat pi_logipat.txt /*logipat*
logipat-arg pi_logipat.txt /*logipat-arg*
logipat-caveat pi_logipat.txt /*logipat-caveat*
logipat-contents pi_logipat.txt /*logipat-contents*
logipat-copyright pi_logipat.txt /*logipat-copyright*
logipat-examples pi_logipat.txt /*logipat-examples*
logipat-history pi_logipat.txt /*logipat-history*
logipat-input pi_logipat.txt /*logipat-input*
logipat-man pi_logipat.txt /*logipat-man*
logipat-manual pi_logipat.txt /*logipat-manual*
logipat-operators pi_logipat.txt /*logipat-operators*
logipat-pattern pi_logipat.txt /*logipat-pattern*
long-lines version5.txt /*long-lines*
love intro.txt /*love*
lowercase change.txt /*lowercase*
@@ -7415,6 +7460,7 @@ php3.vim syntax.txt /*php3.vim*
phtml.vim syntax.txt /*phtml.vim*
pi_getscript.txt pi_getscript.txt /*pi_getscript.txt*
pi_gzip.txt pi_gzip.txt /*pi_gzip.txt*
pi_logipat.txt pi_logipat.txt /*pi_logipat.txt*
pi_netrw.txt pi_netrw.txt /*pi_netrw.txt*
pi_paren.txt pi_paren.txt /*pi_paren.txt*
pi_spec.txt pi_spec.txt /*pi_spec.txt*
@@ -7461,6 +7507,7 @@ printf() eval.txt /*printf()*
printf-% eval.txt /*printf-%*
printf-E eval.txt /*printf-E*
printf-G eval.txt /*printf-G*
printf-S eval.txt /*printf-S*
printf-X eval.txt /*printf-X*
printf-c eval.txt /*printf-c*
printf-d eval.txt /*printf-d*
@@ -7754,6 +7801,7 @@ session-file starting.txt /*session-file*
set-option options.txt /*set-option*
set-spc-auto spell.txt /*set-spc-auto*
setbufvar() eval.txt /*setbufvar()*
setcharsearch() eval.txt /*setcharsearch()*
setcmdpos() eval.txt /*setcmdpos()*
setline() eval.txt /*setline()*
setloclist() eval.txt /*setloclist()*
@@ -8095,9 +8143,11 @@ t_KI term.txt /*t_KI*
t_KJ term.txt /*t_KJ*
t_KK term.txt /*t_KK*
t_KL term.txt /*t_KL*
t_RB term.txt /*t_RB*
t_RI term.txt /*t_RI*
t_RV term.txt /*t_RV*
t_SI term.txt /*t_SI*
t_SR term.txt /*t_SR*
t_Sb term.txt /*t_Sb*
t_Sf term.txt /*t_Sf*
t_WP term.txt /*t_WP*
@@ -8200,6 +8250,7 @@ t_vb term.txt /*t_vb*
t_ve term.txt /*t_ve*
t_vi term.txt /*t_vi*
t_vs term.txt /*t_vs*
t_xn term.txt /*t_xn*
t_xs term.txt /*t_xs*
tab intro.txt /*tab*
tab-page tabpage.txt /*tab-page*
@@ -8458,6 +8509,7 @@ v:charconvert_from eval.txt /*v:charconvert_from*
v:charconvert_to eval.txt /*v:charconvert_to*
v:cmdarg eval.txt /*v:cmdarg*
v:cmdbang eval.txt /*v:cmdbang*
v:completed_item eval.txt /*v:completed_item*
v:count eval.txt /*v:count*
v:count1 eval.txt /*v:count1*
v:ctype eval.txt /*v:ctype*
@@ -8485,6 +8537,9 @@ v:mouse_lnum eval.txt /*v:mouse_lnum*
v:mouse_win eval.txt /*v:mouse_win*
v:oldfiles eval.txt /*v:oldfiles*
v:operator eval.txt /*v:operator*
v:option_new eval.txt /*v:option_new*
v:option_old eval.txt /*v:option_old*
v:option_type eval.txt /*v:option_type*
v:prevcount eval.txt /*v:prevcount*
v:profiling eval.txt /*v:profiling*
v:progname eval.txt /*v:progname*
@@ -8516,11 +8571,13 @@ v_<Esc> visual.txt /*v_<Esc>*
v_= change.txt /*v_=*
v_> change.txt /*v_>*
v_C change.txt /*v_C*
v_CTRL-A change.txt /*v_CTRL-A*
v_CTRL-C visual.txt /*v_CTRL-C*
v_CTRL-G visual.txt /*v_CTRL-G*
v_CTRL-H change.txt /*v_CTRL-H*
v_CTRL-O visual.txt /*v_CTRL-O*
v_CTRL-V visual.txt /*v_CTRL-V*
v_CTRL-X change.txt /*v_CTRL-X*
v_CTRL-Z starting.txt /*v_CTRL-Z*
v_CTRL-\_CTRL-G intro.txt /*v_CTRL-\\_CTRL-G*
v_CTRL-\_CTRL-N intro.txt /*v_CTRL-\\_CTRL-N*
@@ -8576,7 +8633,9 @@ v_gJ change.txt /*v_gJ*
v_gN visual.txt /*v_gN*
v_gV visual.txt /*v_gV*
v_g] tagsrch.txt /*v_g]*
v_g_CTRL-A change.txt /*v_g_CTRL-A*
v_g_CTRL-G editing.txt /*v_g_CTRL-G*
v_g_CTRL-X change.txt /*v_g_CTRL-X*
v_g_CTRL-] tagsrch.txt /*v_g_CTRL-]*
v_gf editing.txt /*v_gf*
v_gn visual.txt /*v_gn*
@@ -8881,6 +8940,7 @@ xterm-screens tips.txt /*xterm-screens*
xterm-scroll-region term.txt /*xterm-scroll-region*
xterm-shifted-keys term.txt /*xterm-shifted-keys*
y change.txt /*y*
yaml.vim syntax.txt /*yaml.vim*
yank change.txt /*yank*
ye-option-gone version4.txt /*ye-option-gone*
year-2000 intro.txt /*year-2000*

View File

@@ -1,4 +1,4 @@
*term.txt* For Vim version 7.4. Last change: 2014 May 13
*term.txt* For Vim version 7.4. Last change: 2015 Jun 25
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -224,10 +224,11 @@ The options are listed below. The associated termcap code is always equal to
the last two characters of the option name. Only one termcap code is
required: Cursor motion, 't_cm'.
The options 't_da', 't_db', 't_ms', 't_xs' represent flags in the termcap.
When the termcap flag is present, the option will be set to "y". But any
non-empty string means that the flag is set. An empty string means that the
flag is not set. 't_CS' works like this too, but it isn't a termcap flag.
The options 't_da', 't_db', 't_ms', 't_xs', 't_xn' represent flags in the
termcap. When the termcap flag is present, the option will be set to "y".
But any non-empty string means that the flag is set. An empty string means
that the flag is not set. 't_CS' works like this too, but it isn't a termcap
flag.
OUTPUT CODES
option meaning ~
@@ -281,6 +282,9 @@ OUTPUT CODES
t_vs cursor very visible *t_vs* *'t_vs'*
*t_xs* *'t_xs'*
t_xs if non-empty, standout not erased by overwriting (hpterm)
*t_xn* *'t_xn'*
t_xn if non-empty, writing a character at the last screen cell
does not cause scrolling
t_ZH italics mode *t_ZH* *'t_ZH'*
t_ZR italics end *t_ZR* *'t_ZR'*
@@ -290,12 +294,15 @@ Added by Vim (there are no standard codes for these):
t_WP set window position (Y, X) in pixels *t_WP* *'t_WP'*
t_WS set window size (height, width) in characters *t_WS* *'t_WS'*
t_SI start insert mode (bar cursor shape) *t_SI* *'t_SI'*
t_EI end insert mode (block cursor shape) *t_EI* *'t_EI'*
t_SR start replace mode (underline cursor shape) *t_SR* *'t_SR'*
t_EI end insert or replace mode (block cursor shape) *t_EI* *'t_EI'*
|termcap-cursor-shape|
t_RV request terminal version string (for xterm) *t_RV* *'t_RV'*
|xterm-8bit| |v:termresponse| |'ttymouse'| |xterm-codes|
t_u7 request cursor position (for xterm) *t_u7* *'t_u7'*
see |'ambiwidth'|
t_RB request terminal background color *t_RB* *'t_RB'*
see |'ambiwidth'|
KEY CODES
Note: Use the <> form if possible
@@ -434,13 +441,16 @@ If one of these is not available, 't_Sb' and 't_Sf' are used. 't_me' is used
to reset to the default colors.
*termcap-cursor-shape* *termcap-cursor-color*
When Vim enters Insert mode the 't_SI' escape sequence is sent. When leaving
Insert mode 't_EI' is used. But only if both are defined. This can be used
to change the shape or color of the cursor in Insert mode. These are not
standard termcap/terminfo entries, you need to set them yourself.
When Vim enters Insert mode the 't_SI' escape sequence is sent. When Vim
enters Replace mode the 't_SR' escape sequence is sent if it is set, otherwise
't_SI' is sent. When leaving Insert mode or Replace mode 't_EI' is used. This
can be used to change the shape or color of the cursor in Insert or Replace
mode. These are not standard termcap/terminfo entries, you need to set them
yourself.
Example for an xterm, this changes the color of the cursor: >
if &term =~ "xterm"
let &t_SI = "\<Esc>]12;purple\x7"
let &t_SR = "\<Esc>]12;red\x7"
let &t_EI = "\<Esc>]12;blue\x7"
endif
NOTE: When Vim exits the shape for Normal mode will remain. The shape from

View File

@@ -1,4 +1,4 @@
*todo.txt* For Vim version 7.4. Last change: 2015 Jan 23
*todo.txt* For Vim version 7.4. Last change: 2015 Sep 25
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -35,8 +35,11 @@ not be repeated below, unless there is extra information.
-------------------- Known bugs and current work -----------------------
Regexp problems:
- The NFA engine does not implement the time limit passed to
nfa_regexec_multi()
- The regexp engines are not reentrant, causing havoc when interrupted by a
remote expression or something else. Move global variables onto the stack
or into an allocated struct.
- The old engine does not find a match for "/\%#=1\(\)\{80}", the new engine
matches everywhere.
- Using win_linetabsize() can still be slow. Cache the result, store col and
vcol. Reset them when moving to another line.
- Very slow with a long line and Ruby highlighting. (John Whitley, 2014 Dec 4)
@@ -53,24 +56,26 @@ Regexp problems:
- Does not work with NFA regexp engine:
\%u, \%x, \%o, \%d followed by a composing character
- Bug relating to back references. (Ingo Karkat, 2014 Jul 24)
- New RE does not give an error for empty group: "\(\)\{2}" (Dominique Pelle,
2015 Feb 7)
- Using back reference before the capturing group sometimes works with the old
engine, can we do this with the new engine? E.g. with
"/\%(<\1>\)\@<=.*\%(<\/\(\w\+\)>\)\@=" matching text inside HTML tags.
This problem is probably the same: "\%(^\1.*$\n\)\@<=\(\d\+\).*$".
(guotuofeng, 2015 Jun 22)
- Strange matching with "\(Hello\n\)\@<=A". (Anas Syed, 2015 Feb 12)
- Problem with \v(A)@<=b+\1c. (Issue 334)
- Diff highlighting can be very slow. (Issue 309)
- Using "{1,1000}" is much slower than it was with the old engine.
(Dominique Pelle, 2015 Jan 22)
- Using %> for a virtual column has a check based on 'tabsize'. Better would
be to cache the result of win_linetabsize(col), storing both col and vcol,
and use them to decide whether win_linetabsize() needs to be called. Reset
col and vcol when moving to another line.
- this doesn't work: "syntax match ErrorMsg /.\%9l\%>20c\&\%<28c/". Leaving
out the \& works. Seems any column check after \& fails.
Still using freed memory after using setloclist(). (lcd, 2014 Jul 23)
More info Jul 24. Not clear why.
Patch to make getregtype() return the right size for non-linux systems.
(Yasuhiro Matsumoto, 2014 Jul 8)
Breaks test_eval. Inefficient, can we only compute y_width when needed?
Problem that a previous silent ":throw" causes a following try/catch not to
work. (ZyX, 2013 Sep 28)
@@ -79,95 +84,144 @@ Problem using ":try" inside ":execute". (ZyX, 2013 Sep 15)
":cd C:\Windows\System32\drivers\etc*" does not work, even though the
directory exists. (Sergio Gallelli, 2013 Dec 29)
Using ":windo" to set options in all windows has the side effect that it
changes the window layout and the current window. Make a variant that saves
and restores. Use in the matchparen plugin.
Perhaps we can use ":silent window"?
Illegal memory access, requires ASAN to see. (Dominique Pelle, 2015 Jul 28)
Gvim: when both Tab and CTRL-I are mapped, use CTRL-I not for Tab.
Unexpected delay when using CTRL-O u. It's not timeoutlen.
(Gary Johnson, 2015 Aug 28)
Can src/GvimExt/Make_cyg.mak be removed?
Same for src/xxd/Make_cyg.mak
Python: ":py raw_input('prompt')" doesn't work. (Manu Hack)
2html update. (Ben Fritz, 2015 Sep 9)
MS-Windows: When editing a file with a leading space, writing it uses the
wrong name. (Aram, 2014 Nov 7) Vim 7.4.
Can't recognize the $ProgramFiles(x86) environment variable. Recognize it
specifically? First try with the parens, then without.
Value returned by virtcol() changes depending on how lines wrap. This is
inconsistent with the documentation.
Better greek spell checking. Issue 299.
Add bzl filetype support. (David Barnett, 2015 Aug 11)
Patch to fix slow valgrind highlighting. (Dominique, 2015 Jan 15)
Does maintainer respond?
When complete() first argument is before where insert started and 'backspace'
is Vi compatible, the completion fails. (Hirohito Higashi, 2015 Feb 19)
Patch on issue 212: feedkeys() with dot doesn't work as expected.
Test 44 fails when [[=A=]] is changed to [[=À=]]. Caused by getcmdline() not
handling the 0x80 as a second byte correctly? (Dominique Pelle, 2015 Jun 10)
Patch to support hex values for setting option value.
(Zyx, 2014 Nov 6)
Patch to fix problems with small screen sizes. (Christian Brabandt, 2015 Jan
8)
":tabdo windo echo 'hi'" causes "* register not to be changed.
(Salman Halim, 2015 Jan 17)
Patch by Christian, 2015 Jan 20. There is another problem, wait a bit.
On MS-Windows running tests with Mercurial has problems when the fileformat of
the input files are changed. (Ken Takata, Taro Muraoka, 2014 Sep 25)
Update Nov 5.
Weird encryption problems on Windows. (Ben Fritz, 2015 Feb 13)
Goes away when disabling the swap file. (might1, Feb 16)
MS-Windows: Crash opening very long file name starting with "\\".
(Christian Brock, 2012 Jun 29)
Patch for this from Marcin Szamotulski, 2014 Dec 28:
8 Make the # register writable, so that it can be restored after jumping
around in windows.
The OptionSet autocommand event is not always triggered. (Rick Howe, 2015 Sep
24): setwinvar(), :diffthis, :diffoff.
Using CTRL-L while popup menu is visible behaves like CTRL-P, which is wrong.
Patch by Yasuhiro Matsumoto, 2015 Jan 5.
Is this right? Comment from Amadeus Demarzi.
Another patch from Christian, Jan 6.
Comment from Hirohito Higashi, Jan 6.
The argument for "-S" is not taken literally, the ":so" command expands
wildcards. Add a ":nowild" command modifier? (ZyX, 2015 March 4)
Cursorline background color not mixed with character highlight.
Patch by Yasuhiro Matsumoto, 2014 Dec 3.
":set all&" still does not handle all side effects. Centralize handling side
effects for when set by the user, on init and when reset to default.
Problem using diff syntax with cp932 encoding. Idea from Yasuhiro Matsumoto,
patch from Ken Takata (2014 Nov 6)
Proposal to make options.txt easier to read. (Arnaud Decara, 2015 Aug 5)
Update Aug 14.
Patch for problem with restoring screen on Windows. (Nobuhiro Takasaki, 2015
Sep 10)
Patch to be able to use hex numbers with :digraph. (Lcd, 2015 Sep 6)
Update Sep 7. Update by Christian Brabandt, 2015 Sep 8.
Build with Python on Mac does not always use the right library.
(Kazunobu Kuriyama, 2015 Mar 28)
Example in editing.txt uses $HOME with the expectating that it ends in a
slash. For me it does, but perhaps not for everybody. Add a function that
inserts a slash when needed? pathconcat(dir, path) (Thilo Six, 2015 Aug 12)
ml_updatechunk() is slow when retrying for another encoding. (John Little,
2014 Sep 11)
Patch to add a different escape sequence for replace mode.
(Omar Sandoval, 2014 Nov 30)
Patch to fix checking global option value when not using it.
(Arnaud Decara, 2015 Jul 23)
Patch on Issue 166, popup drawing with '$' in 'cpo'.
When 'showbreak' is set repeating a Visual operation counts the size of the
'showbreak' text as part of the operation. (Axel Bender, 2015 Jul 20)
Calling setreg() with an empty list doesn't work.
Patch by Yasuhiro Matsumoto, 2014 Dec 14.
Patch to apply 'fileformats' when starting Vim. (Mike Williams, 2015 Jul 22)
Patch for matchit plugin related to multibyte chars. (Ken Takata, 2015 Jul 22)
Patch for multi-byte characters in langmap and applying a mapping on them.
(Christian Brabandt, 2015 Jun 12, update July 25)
Is this the right solution?
Patch to add grepfile(). (Scott Prager, 2015 May 26)
Work in progress.
Patch for global-local options consistency. (Arnaud Decara, 2015 Jul 22)
Is this right?
Patch to have CTRL-A and CTRL-X update the '[ and '] marks.
(Yukihiro Nakadaira, 2015 Aug 23)
Patch to make getregtype() return the right size for non-linux systems.
(Yasuhiro Matsumoto, 2014 Jul 8)
Breaks test_eval. Inefficient, can we only compute y_width when needed?
Patch to use different terminal mode settings for system(). (Hayaki Saito)
Does this work for everybody?
Patch to fix that wide characters do not work properly after exiting.
(Yasuhiro Matsumoto, 2015 May 24) Better patch to come.
Patch for man.vim. (SungHyun Nam, 2015 May 20)
Doesn't work completely (Dominique Orban)
Patch to add a "literal" argument to bufnr(). (Olaf Dabrunz, 2015 Aug 4)
When a session file is created and there are "nofile" buffers, these are not
filled. Need to trigger BufReadCmd autocommands. Also handle deleting the
initial empty buffer better. (ZyX, 2015 March 8)
Extended file attributes lost on write (backupcopy=no). Issue 306.
Window height computed incorrectly when Vim is minimized.
Patch to fix this. (Ingo Karkat, 2014 Dec 19)
Patch to allow values greater than 255 for ctermfg/ctermbg on Windows.
(Yasuhiro Matsumoto, 2014 Dec 5)
Patch to add :lockjumps. (Carlo Baldassi, 2015 May 25)
OK to not block marks?
Mixup of highlighting when there is a match and SpellBad. (ZyX, 2015 Jan 1)
Problem caused by patch 7.3.638: window->open does not update window
correctly. Issue 91. With patch.
Patch for drag&drop reordering of GUI tab pages reordering.
(Ken Takata, 2013 Nov 22, second one, also by Masamichi Abe)
'ff' is wrong for one-line file without EOL. (Patch on Issue 77)
Patch on Issue 72: 'autochdir' causes problems for :vimgrep.
When 'balloonexpr' returns a list the result has a trailing newline.
Just remove one trailing newline. (lcd, 2014 Oct 17)
When two SIGWINCH arrive very quickly, the second one may be lost.
(Josh Triplett, 2015 Sep 17)
Make comments in the test Makefile silent. (Kartik Agaram, 2014 Sep 24)
Patch to add GUI colors to the terminal, when it supports it. (ZyX, 2013 Jan
26, update 2013 Dec 14, another 2014 Nov 22)
Patch to improve behavior of dead keys on MS-Windows. (John Wellesz, 2015 Aug
25) https://github.com/vim/vim/pull/399.diff
Result of systemlist() does not show whether text ended in line break.
(Bjorn Linse, 2014 Nov 27)
@@ -181,6 +235,9 @@ lines. (Marco Hinz, 2014 Nov 2)
Adding "~" to 'cdpath' doesn't work for completion? (Davido, 2013 Aug 19)
Should be easy to highlight all matches with 'incsearch'. Idea by Itchyny,
2015 Feb 6.
Plugins need to make a lot of effort, lots of mappings, to know what happened
before pressing the key that triggers a plugin action. How about keeping the
last N pressed keys, so that they do not need to be mapped?
@@ -194,11 +251,24 @@ With test, Nov 23.
Wrong scrolling when using incsearch. Patch by Christian Brabandt, 2014 Dec 4.
Is this a good solution?
Patch to allow setting w:quickfix_title via setqflist() and setloclist()
functions. (Christian Brabandt, 2013 May 8, update May 21)
Patch to add getlocstack() / setlocstack(). (Christian Brabandt, 2013 May 14)
Second one. Update May 22.
Update by Daniel Hahler, 2014 Jul 4, Aug 14, Oct 14, Oct 15.
Patch: Let rare word highlighting overrule good word highlighting.
(Jakson A. Aquino, 2010 Jul 30, again 2011 Jul 2)
Patch to add digits argument to round(). (Yasuhiro Matsumoto, 2015 Apr 26)
Can assign to s:type when a function s:type has been defined.
Also the other way around: define a function while a variable with that name
was already defined.
(Yasuhiro Matsumoto, 2014 Nov 3)
Patch for ordered dict. (Ozaki Kiichi, 2015 May 7)
Patch to make closed folds line up. (Charles Campbell, 2014 Sep 12)
Remark from Roland Eggner: does it cause crashes? (2014 Dec 12)
Updated patch by Roland Eggner, Dec 16
@@ -214,6 +284,9 @@ Delete old code in os_msdos.c, mch_FullName().
Patch: On MS-Windows shellescape() may have to triple double quotes.
(Ingo Karkat, 2015 Jan 16)
Patch for variable tabstops. On github (Christian Brabandt, 2014 May 15)
Update 2015 Jul 25 (email).
Redo only remembers the last change. Could use "{count}g." to redo an older
change. How does the user know which change? At least have a way to list
them: ":repeats".
@@ -238,13 +311,13 @@ Patch to add argument to :cquit. (Thinca, 2014 Oct 12)
No error for missing endwhile. (ZyX, 2014 Mar 20)
The entries added by matchaddpos() are returned by getmatches() but can't be
set with setmatches(). (lcd47, 2014 Jun 29)
Patch to make extend() fail early when it might fail at some point.
(Olaf Dabrunz, 2015 May 2) Makes extend() slower, do we still want it?
Perhaps only the checks that can be done without looping over the dict or
arguments.
Patch to add :arglocal and :arglists. (Marcin Szamotulski, 2014 Aug 6)
PHP syntax is extremely slow. (Anhad Jai Singh, 2014 Jan 19)
Spell files use a latin single quote. Unicode also has another single quote:
0x2019. (Ron Aaron, 2014 Apr 4)
New OpenOffice spell files support this with ICONV. But they are not
@@ -257,12 +330,6 @@ Update 2015 Jan 10.
Win32: patch to use 64 bit stat() if possible. (Ken Takata, 2014 May 12)
More tests May 14. Update May 29. Update Aug 10.
The garbage collector may use too much stack. Make set_ref_in_item()
iterative instead of recursive. Test program by Marc Weber (2013 Dec 10)
Patch by Ben Fritz, 2014 Jun 22. Update 2015 Jan 21.
Related: Vim hangs when freeing a lot of objects. Patch by Yasuhiro
Matsumoto, 2014 Aug 26.
Idea: For a window in the middle (has window above and below it), use
right-mouse-drag on the status line to move a window up/down without changing
its height? It's like dragging the status bar above it at the same time.
@@ -272,6 +339,9 @@ What for systems that don't have unsetenv()?
Patch to add a :domodeline command. (Christian Brabandt, 2014 Oct 21)
Patch to add TabNew, TabNewEntered and TabClosed autocommand events.
(Felipe Morales, 2015 Feb 1)
This does not give an error: (Andre Sihera, 2014 Mar 21)
vim -u NONE 1 2 3 -c 'bufdo if 1 | echo 1'
This neither: (ZyX)
@@ -335,7 +405,7 @@ Editing an ascii file as ucs-2 or ucs-4 causes display errors.
":Next 1 some-arg" does not complain about trailing argument. Also for
various other commands. (ZyX, 2014 Mar 30)
patch to skip sort if no line matches the expression.
Patch to skip sort if no line matches the expression.
(Christian Brabandt, 2014 Jun 25)
Patch to add sortuniq(). (Cade Forester, 2014 Mar 19)
@@ -362,8 +432,6 @@ Remark on the docs. Should not be a compile time feature. But then what?
Completion of ":e" is ":earlier", should be ":edit". Complete to the matching
command instead of doing this alphabetically. (Mikel Jorgensen)
Patch to add v:completed_item. (Shougo Matsu, 2013 Nov 29).
Patch to get MSVC version in a nicer way. (Ken Takata, 2014 Jul 24)
Patch to define macros for hardcoded values. (Elias Diem, 2013 Dec 14)
@@ -371,10 +439,8 @@ Patch to define macros for hardcoded values. (Elias Diem, 2013 Dec 14)
Several syntax file match "^\s*" which may get underlined if that's in the
highlight group. Add a "\zs" after it?
Patch to fix temp directories for Windows, so that it works without tweaking.
Issue 28.
Go through more coverity reports.
The undo file name can get too long. (Issue 346)
For the path use a hash instead of dir%dir%dir%name hash%name.
Patch to add ":undorecover", get as much text out of the undo file as
possible. (Christian Brabandt, 2014 Mar 12, update Aug 22)
@@ -426,9 +492,6 @@ When evaluating expression in backticks, autoload doesn't work.
Using <nr>ifoobar<esc> can slow down Vim. Patch by Christian Brabandt, 2013
Dec 13.
Fold can't be opened after ":move". (Ein Brown)
Patch from Christian Brabandt doesn't fix it completely.
Patch from Christian Brabandt to preserve upper case marks when wiping out a
buffer. (2013 Dec 9)
@@ -501,12 +564,6 @@ Dialog is too big on Linux too. (David Fishburn, 2013 Sep 2)
Patch to check whether a buffer is quickfix or a location list.
(Yasuhiro Matsumoto, 2014 Dec 9)
Patch to allow setting w:quickfix_title via setqflist() and setloclist()
functions. (Christian Brabandt, 2013 May 8, update May 21)
Patch to add getlocstack() / setlocstack(). (Christian Brabandt, 2013 May 14)
Second one. Update May 22.
Update by Daniel Hahler, 2014 Jul 4, Aug 14, Oct 14, Oct 15.
Patch to make fold updates much faster. (Christian Brabandt, 2012 Dec)
Issue 54: document behavior of -complete, also expands arg.
@@ -555,10 +612,6 @@ signs? Patch by Christian Brabandt, 2013 Aug 22.
Patch to remove flicker from popup menu. (Yasuhiro Matsumoto, 2013 Aug 15)
Patch to add 'completeselect' option. Specifies how to select a candidate in
insert completion. (Shougo, 2013 May 29)
Update to add to existing 'completeopt'. 2013 May 30
Problem with refresh:always in completion. (Tyler Wade, 2013 Mar 17)
b:undo_ftplugin cannot call a script-local function. (Boris Danilov, 2013 Jan
@@ -591,9 +644,6 @@ Win32: When 'autochdir' is on and 'encoding' is changed, files on the command
line are opened again, but from the wrong directory. Apply 'autochdir' only
after starting up?
Patch to add ":ldo" and ":cdo", execute commands over quickfix list and
location list. (Yegappan Lakshmanan, 2013 Jun 2)
8 "stl" and "stlnc" in 'fillchars' don't work for multi-byte characters.
Patch by Christian Wellenbrock, 2013 Jul 5.
@@ -777,9 +827,6 @@ Patch to make "z=" work when 'spell' is off. Does this have nasty side
effects? (Christian Brabandt, 2012 Aug 5, Update 2013 Aug 12)
Would also need to do this for spellbadword() and spellsuggest().
Patch for variable tabstops. On github (Christian Brabandt, 2014 May 15)
Update Aug 16 (email).
On 64 bit MS-Windows "long" is only 32 bits, but we sometimes need to store a
64 bits value. Change all number options to use nropt_T and define it to the
right type.
@@ -985,9 +1032,6 @@ Patch for GVimExt to show an icon. (Dominik Riebeling, 2010 Nov 7)
When writing a file > 2Gbyte, the reported number of bytes is negative.
(Antonio Colombo, 2010 Dec 18)
Patch: Let rare word highlighting overrule good word highlighting.
(Jakson A. Aquino, 2010 Jul 30, again 2011 Jul 2)
When 'lines' is 25 and 'scrolloff' is 12, "j" scrolls zero or two lines
instead of one. (Constantin Pan, 2010 Sep 10)
@@ -1045,8 +1089,8 @@ Dominique can't reproduce it.
":function f(x) keepjumps" creates a function where every command is executed
like it has ":keepjumps" before it.
Coverity: ask someone to create new user: Dominique.
Check if there are new reported defects: http://scan.coverity.com/rung2.html
Coverity: Check if there are new reported defects:
https://scan.coverity.com/projects/241
Patch to support :undo absolute jump to file save number. (Christian Brabandt,
2010 Nov 5)
@@ -1082,7 +1126,7 @@ string value.
Invalid read error in Farsi mode. (Dominique Pelle, 2009 Aug 2)
For running gvim on an USB stick: avoid the OLE registration. Use a command
For running gvim on a USB stick: avoid the OLE registration. Use a command
line argument -noregister.
When using an expression in 'statusline' leading white space sometimes goes
@@ -1396,6 +1440,7 @@ Kondakoff, 2009 May 13)
Problem with 'langmap' being used on the rhs of a mapping. (Nikolai Weibull,
2008 May 14)
Possibly related problem: Alexey Muranov, 2015 Apr 2
Problem with CTRL-F. (Charles Campbell, 2008 March 21)
Only happens with "gvim -geometry "160x26+4+27" -u NONE -U NONE prop.c".
@@ -1656,12 +1701,6 @@ Check for this and use iconv? (Edward L. Fox, 2007 Sep 12)
Does the conversion in the other direction work when 'fileencodings' is set
properly?
Add a few features to xxd. (Vadim Vygonets, 2013 Nov 11)
Patches: 2013 Nov 19
1: Add -e: little endian hexdump
2: Add -o: add offset to displayed position
3: Change displayed file position width to 8 chars
Cursor displayed in the wrong position when using 'numberwidth'. (James Vega,
2007 Jun 21)
@@ -2106,8 +2145,6 @@ Awaiting updated patches:
Search in 'runtimepath'?
More docs needed about how to use this.
How to get the messages into the .po files?
strchars() Like strlen() and strwidth() but counting characters
instead of bytes.
confirm() add "flags" argument, with 'v' for vertical
layout and 'c' for console dialog. (Haegg)
Flemming Madsen has a patch for the 'c' flag
@@ -4042,8 +4079,6 @@ Autocommands:
8 Autocommand for when modified files have been found, when getting input
focus again (e.g., FileChangedFocus).
Check when: getting focus, jumping to another buffer, ...
7 Autocommand for when an option is changed. Match buffer name or option
name?
8 Autocommands should not change registers. And marks? And the jumplist?
And anything else? Add a command to save and restore these things.
8 Add autocommands, user functions and user commands to ":mkvimrc".
@@ -4657,7 +4692,6 @@ Searching:
should be ignored (like "*/" or "#endif" inside /* */).
Also: use "%" to jump from start to end of syntax region and back.
Alternative: use matchit.vim
8 "/:/e+1" gets stuck on a match at the end of the line. Do we care?
8 A pattern like "\([^a]\+\)\+" takes an awful long time. Recognize that
the recursive "\+" is meaningless and optimize for it.
This one is also very slow on "/* some comment */": "^\/\*\(.*[^/]\)*$".

View File

@@ -1,4 +1,4 @@
*usr_02.txt* For Vim version 7.4. Last change: 2010 Jul 20
*usr_02.txt* For Vim version 7.4. Last change: 2015 Apr 12
VIM USER MANUAL - by Bram Moolenaar
@@ -527,9 +527,11 @@ Summary: *help-summary* >
:help subject()
< Function "subject". >
:help -subject
< Command-line option "-subject". >
< Command-line argument "-subject". >
:help +subject
< Compile-time feature "+subject". >
:help /*
< Regular expression item "*" >
:help EventName
< Autocommand event "EventName". >
:help digraphs.txt

View File

@@ -1,4 +1,4 @@
VIM(1) VIM(1)
VIM(1) General Commands Manual VIM(1)
@@ -21,13 +21,13 @@ DESCRIPTION
to edit all kinds of plain text. It is especially useful for editing
programs.
There are a lot of enhancements above Vi: multi level undo, multi win-
There are a lot of enhancements above Vi: multi level undo, multi win
dows and buffers, syntax highlighting, command line editing, filename
completion, on-line help, visual selection, etc.. See ":help
vi_diff.txt" for a summary of the differences between Vim and Vi.
While running Vim a lot of help can be obtained from the on-line help
system, with the ":help" command. See the ON-LINE HELP section below.
system, with the ":help" command. See the ON-LINE HELP section below.
Most often Vim is started to edit a single file with the command
@@ -38,44 +38,44 @@ DESCRIPTION
vim [options] [filelist]
If the filelist is missing, the editor will start with an empty buffer.
Otherwise exactly one out of the following four may be used to choose
Otherwise exactly one out of the following four may be used to choose
one or more files to be edited.
file .. A list of filenames. The first one will be the current
file and read into the buffer. The cursor will be posi-
file .. A list of filenames. The first one will be the current
file and read into the buffer. The cursor will be posi
tioned on the first line of the buffer. You can get to the
other files with the ":next" command. To edit a file that
other files with the ":next" command. To edit a file that
starts with a dash, precede the filelist with "--".
- The file to edit is read from stdin. Commands are read
- The file to edit is read from stdin. Commands are read
from stderr, which should be a tty.
-t {tag} The file to edit and the initial cursor position depends on
a "tag", a sort of goto label. {tag} is looked up in the
a "tag", a sort of goto label. {tag} is looked up in the
tags file, the associated file becomes the current file and
the associated command is executed. Mostly this is used
for C programs, in which case {tag} could be a function
the associated command is executed. Mostly this is used
for C programs, in which case {tag} could be a function
name. The effect is that the file containing that function
becomes the current file and the cursor is positioned on
becomes the current file and the cursor is positioned on
the start of the function. See ":help tag-commands".
-q [errorfile]
Start in quickFix mode. The file [errorfile] is read and
the first error is displayed. If [errorfile] is omitted,
Start in quickFix mode. The file [errorfile] is read and
the first error is displayed. If [errorfile] is omitted,
the filename is obtained from the 'errorfile' option
(defaults to "AztecC.Err" for the Amiga, "errors.err" on
other systems). Further errors can be jumped to with the
(defaults to "AztecC.Err" for the Amiga, "errors.err" on
other systems). Further errors can be jumped to with the
":cn" command. See ":help quickfix".
Vim behaves differently, depending on the name of the command (the exe-
Vim behaves differently, depending on the name of the command (the exe
cutable may still be the same file).
vim The "normal" way, everything is default.
ex Start in Ex mode. Go to Normal mode with the ":vi" command.
ex Start in Ex mode. Go to Normal mode with the ":vi" command.
Can also be done with the "-e" argument.
view Start in read-only mode. You will be protected from writing
view Start in read-only mode. You will be protected from writing
the files. Can also be done with the "-R" argument.
gvim gview
@@ -87,102 +87,102 @@ DESCRIPTION
be done with the "-y" argument.
rvim rview rgvim rgview
Like the above, but with restrictions. It will not be possi-
ble to start shell commands, or suspend Vim. Can also be
Like the above, but with restrictions. It will not be possi
ble to start shell commands, or suspend Vim. Can also be
done with the "-Z" argument.
OPTIONS
The options may be given in any order, before or after filenames.
The options may be given in any order, before or after filenames.
Options without an argument can be combined after a single dash.
+[num] For the first file the cursor will be positioned on line
"num". If "num" is missing, the cursor will be positioned
+[num] For the first file the cursor will be positioned on line
"num". If "num" is missing, the cursor will be positioned
on the last line.
+/{pat} For the first file the cursor will be positioned on the
first occurrence of {pat}. See ":help search-pattern" for
the available search patterns.
+/{pat} For the first file the cursor will be positioned in the
line with the first occurrence of {pat}. See ":help
search-pattern" for the available search patterns.
+{command}
-c {command}
{command} will be executed after the first file has been
read. {command} is interpreted as an Ex command. If the
{command} contains spaces it must be enclosed in double
quotes (this depends on the shell that is used). Example:
{command} will be executed after the first file has been
read. {command} is interpreted as an Ex command. If the
{command} contains spaces it must be enclosed in double
quotes (this depends on the shell that is used). Example:
Vim "+set si" main.c
Note: You can use up to 10 "+" or "-c" commands.
-S {file} {file} will be sourced after the first file has been read.
This is equivalent to -c "source {file}". {file} cannot
-S {file} {file} will be sourced after the first file has been read.
This is equivalent to -c "source {file}". {file} cannot
start with '-'. If {file} is omitted "Session.vim" is used
(only works when -S is the last argument).
--cmd {command}
Like using "-c", but the command is executed just before
processing any vimrc file. You can use up to 10 of these
Like using "-c", but the command is executed just before
processing any vimrc file. You can use up to 10 of these
commands, independently from "-c" commands.
-A If Vim has been compiled with ARABIC support for editing
right-to-left oriented files and Arabic keyboard mapping,
this option starts Vim in Arabic mode, i.e. 'arabic' is
-A If Vim has been compiled with ARABIC support for editing
right-to-left oriented files and Arabic keyboard mapping,
this option starts Vim in Arabic mode, i.e. 'arabic' is
set. Otherwise an error message is given and Vim aborts.
-b Binary mode. A few options will be set that makes it pos-
-b Binary mode. A few options will be set that makes it pos
sible to edit a binary or executable file.
-C Compatible. Set the 'compatible' option. This will make
Vim behave mostly like Vi, even though a .vimrc file
-C Compatible. Set the 'compatible' option. This will make
Vim behave mostly like Vi, even though a .vimrc file
exists.
-d Start in diff mode. There should be two, three or four
file name arguments. Vim will open all the files and show
-d Start in diff mode. There should be two, three or four
file name arguments. Vim will open all the files and show
differences between them. Works like vimdiff(1).
-d {device} Open {device} for use as a terminal. Only on the Amiga.
-d {device} Open {device} for use as a terminal. Only on the Amiga.
Example: "-d con:20/30/600/150".
-D Debugging. Go to debugging mode when executing the first
-D Debugging. Go to debugging mode when executing the first
command from a script.
-e Start Vim in Ex mode, just like the executable was called
-e Start Vim in Ex mode, just like the executable was called
"ex".
-E Start Vim in improved Ex mode, just like the executable was
called "exim".
-f Foreground. For the GUI version, Vim will not fork and
-f Foreground. For the GUI version, Vim will not fork and
detach from the shell it was started in. On the Amiga, Vim
is not restarted to open a new window. This option should
be used when Vim is executed by a program that will wait
for the edit session to finish (e.g. mail). On the Amiga
is not restarted to open a new window. This option should
be used when Vim is executed by a program that will wait
for the edit session to finish (e.g. mail). On the Amiga
the ":sh" and ":!" commands will not work.
--nofork Foreground. For the GUI version, Vim will not fork and
--nofork Foreground. For the GUI version, Vim will not fork and
detach from the shell it was started in.
-F If Vim has been compiled with FKMAP support for editing
right-to-left oriented files and Farsi keyboard mapping,
this option starts Vim in Farsi mode, i.e. 'fkmap' and
'rightleft' are set. Otherwise an error message is given
and Vim aborts.
-g If Vim has been compiled with GUI support, this option
enables the GUI. If no GUI support was compiled in, an
error message is given and Vim aborts.
-h Give a bit of help about the command line arguments and
options. After this Vim exits.
-H If Vim has been compiled with RIGHTLEFT support for editing
right-to-left oriented files and Hebrew keyboard mapping,
this option starts Vim in Hebrew mode, i.e. 'hkmap' and
-F If Vim has been compiled with FKMAP support for editing
right-to-left oriented files and Farsi keyboard mapping,
this option starts Vim in Farsi mode, i.e. 'fkmap' and
'rightleft' are set. Otherwise an error message is given
and Vim aborts.
-g If Vim has been compiled with GUI support, this option
enables the GUI. If no GUI support was compiled in, an
error message is given and Vim aborts.
-h Give a bit of help about the command line arguments and
options. After this Vim exits.
-H If Vim has been compiled with RIGHTLEFT support for editing
right-to-left oriented files and Hebrew keyboard mapping,
this option starts Vim in Hebrew mode, i.e. 'hkmap' and
'rightleft' are set. Otherwise an error message is given
and Vim aborts.
-i {viminfo}
When using the viminfo file is enabled, this option sets
the filename to use, instead of the default "~/.viminfo".
When using the viminfo file is enabled, this option sets
the filename to use, instead of the default "~/.viminfo".
This can also be used to skip the use of the .viminfo file,
by giving the name "NONE".
@@ -190,92 +190,92 @@ OPTIONS
-l Lisp mode. Sets the 'lisp' and 'showmatch' options on.
-m Modifying files is disabled. Resets the 'write' option.
You can still modify the buffer, but writing a file is not
-m Modifying files is disabled. Resets the 'write' option.
You can still modify the buffer, but writing a file is not
possible.
-M Modifications not allowed. The 'modifiable' and 'write'
options will be unset, so that changes are not allowed and
files can not be written. Note that these options can be
-M Modifications not allowed. The 'modifiable' and 'write'
options will be unset, so that changes are not allowed and
files can not be written. Note that these options can be
set to enable making modifications.
-N No-compatible mode. Reset the 'compatible' option. This
will make Vim behave a bit better, but less Vi compatible,
-N No-compatible mode. Reset the 'compatible' option. This
will make Vim behave a bit better, but less Vi compatible,
even though a .vimrc file does not exist.
-n No swap file will be used. Recovery after a crash will be
impossible. Handy if you want to edit a file on a very
slow medium (e.g. floppy). Can also be done with ":set
-n No swap file will be used. Recovery after a crash will be
impossible. Handy if you want to edit a file on a very
slow medium (e.g. floppy). Can also be done with ":set
uc=0". Can be undone with ":set uc=200".
-nb Become an editor server for NetBeans. See the docs for
-nb Become an editor server for NetBeans. See the docs for
details.
-o[N] Open N windows stacked. When N is omitted, open one window
for each file.
-O[N] Open N windows side by side. When N is omitted, open one
-O[N] Open N windows side by side. When N is omitted, open one
window for each file.
-p[N] Open N tab pages. When N is omitted, open one tab page for
each file.
-R Read-only mode. The 'readonly' option will be set. You
can still edit the buffer, but will be prevented from acci-
dently overwriting a file. If you do want to overwrite a
file, add an exclamation mark to the Ex command, as in
":w!". The -R option also implies the -n option (see
below). The 'readonly' option can be reset with ":set
-R Read-only mode. The 'readonly' option will be set. You
can still edit the buffer, but will be prevented from acci
dently overwriting a file. If you do want to overwrite a
file, add an exclamation mark to the Ex command, as in
":w!". The -R option also implies the -n option (see
below). The 'readonly' option can be reset with ":set
noro". See ":help 'readonly'".
-r List swap files, with information about using them for
-r List swap files, with information about using them for
recovery.
-r {file} Recovery mode. The swap file is used to recover a crashed
editing session. The swap file is a file with the same
-r {file} Recovery mode. The swap file is used to recover a crashed
editing session. The swap file is a file with the same
filename as the text file with ".swp" appended. See ":help
recovery".
-s Silent mode. Only when started as "Ex" or when the "-e"
-s Silent mode. Only when started as "Ex" or when the "-e"
option was given before the "-s" option.
-s {scriptin}
The script file {scriptin} is read. The characters in the
file are interpreted as if you had typed them. The same
The script file {scriptin} is read. The characters in the
file are interpreted as if you had typed them. The same
can be done with the command ":source! {scriptin}". If the
end of the file is reached before the editor exits, further
characters are read from the keyboard.
-T {terminal}
Tells Vim the name of the terminal you are using. Only
required when the automatic way doesn't work. Should be a
terminal known to Vim (builtin) or defined in the termcap
Tells Vim the name of the terminal you are using. Only
required when the automatic way doesn't work. Should be a
terminal known to Vim (builtin) or defined in the termcap
or terminfo file.
-u {vimrc} Use the commands in the file {vimrc} for initializations.
All the other initializations are skipped. Use this to
edit a special kind of files. It can also be used to skip
all initializations by giving the name "NONE". See ":help
-u {vimrc} Use the commands in the file {vimrc} for initializations.
All the other initializations are skipped. Use this to
edit a special kind of files. It can also be used to skip
all initializations by giving the name "NONE". See ":help
initialization" within vim for more details.
-U {gvimrc} Use the commands in the file {gvimrc} for GUI initializa-
tions. All the other GUI initializations are skipped. It
can also be used to skip all GUI initializations by giving
the name "NONE". See ":help gui-init" within vim for more
-U {gvimrc} Use the commands in the file {gvimrc} for GUI initializa
tions. All the other GUI initializations are skipped. It
can also be used to skip all GUI initializations by giving
the name "NONE". See ":help gui-init" within vim for more
details.
-V[N] Verbose. Give messages about which files are sourced and
for reading and writing a viminfo file. The optional num-
-V[N] Verbose. Give messages about which files are sourced and
for reading and writing a viminfo file. The optional num
ber N is the value for 'verbose'. Default is 10.
-v Start Vim in Vi mode, just like the executable was called
"vi". This only has effect when the executable is called
-v Start Vim in Vi mode, just like the executable was called
"vi". This only has effect when the executable is called
"ex".
-w {scriptout}
All the characters that you type are recorded in the file
{scriptout}, until you exit Vim. This is useful if you
want to create a script file to be used with "vim -s" or
All the characters that you type are recorded in the file
{scriptout}, until you exit Vim. This is useful if you
want to create a script file to be used with "vim -s" or
":source!". If the {scriptout} file exists, characters are
appended.
@@ -285,27 +285,27 @@ OPTIONS
-x Use encryption when writing files. Will prompt for a crypt
key.
-X Don't connect to the X server. Shortens startup time in a
terminal, but the window title and clipboard will not be
-X Don't connect to the X server. Shortens startup time in a
terminal, but the window title and clipboard will not be
used.
-y Start Vim in easy mode, just like the executable was called
"evim" or "eview". Makes Vim behave like a click-and-type
"evim" or "eview". Makes Vim behave like a click-and-type
editor.
-Z Restricted mode. Works like the executable starts with
-Z Restricted mode. Works like the executable starts with
"r".
-- Denotes the end of the options. Arguments after this will
be handled as a file name. This can be used to edit a
-- Denotes the end of the options. Arguments after this will
be handled as a file name. This can be used to edit a
filename that starts with a '-'.
--echo-wid GTK GUI only: Echo the Window ID on stdout.
--help Give a help message and exit, just like "-h".
--literal Take file name arguments literally, do not expand wild-
cards. This has no effect on Unix where the shell expands
--literal Take file name arguments literally, do not expand wild
cards. This has no effect on Unix where the shell expands
wildcards.
--noplugin Skip loading plugins. Implied by -u NONE.
@@ -315,18 +315,18 @@ OPTIONS
is given and the files are edited in the current Vim.
--remote-expr {expr}
Connect to a Vim server, evaluate {expr} in it and print
Connect to a Vim server, evaluate {expr} in it and print
the result on stdout.
--remote-send {keys}
Connect to a Vim server and send {keys} to it.
--remote-silent
As --remote, but without the warning when no server is
As --remote, but without the warning when no server is
found.
--remote-wait
As --remote, but Vim does not exit until the files have
As --remote, but Vim does not exit until the files have
been edited.
--remote-wait-silent
@@ -337,31 +337,31 @@ OPTIONS
List the names of all Vim servers that can be found.
--servername {name}
Use {name} as the server name. Used for the current Vim,
Use {name} as the server name. Used for the current Vim,
unless used with a --remote argument, then it's the name of
the server to connect to.
--socketid {id}
GTK GUI only: Use the GtkPlug mechanism to run gvim in
GTK GUI only: Use the GtkPlug mechanism to run gvim in
another window.
--version Print version information and exit.
ON-LINE HELP
Type ":help" in Vim to get started. Type ":help subject" to get help
on a specific subject. For example: ":help ZZ" to get help for the
"ZZ" command. Use <Tab> and CTRL-D to complete subjects (":help cmd-
line-completion"). Tags are present to jump from one place to another
Type ":help" in Vim to get started. Type ":help subject" to get help
on a specific subject. For example: ":help ZZ" to get help for the
"ZZ" command. Use <Tab> and CTRL-D to complete subjects (":help cmd
line-completion"). Tags are present to jump from one place to another
(sort of hypertext links, see ":help"). All documentation files can be
viewed in this way, for example ":help syntax.txt".
FILES
/usr/local/lib/vim/doc/*.txt
The Vim documentation files. Use ":help doc-file-list"
The Vim documentation files. Use ":help doc-file-list"
to get the complete list.
/usr/local/lib/vim/doc/tags
The tags file used for finding information in the docu-
The tags file used for finding information in the docu
mentation files.
/usr/local/lib/vim/syntax/syntax.vim
@@ -381,7 +381,7 @@ FILES
~/.gvimrc Your personal gvim initializations.
/usr/local/lib/vim/optwin.vim
Script used for the ":options" command, a nice way to
Script used for the ":options" command, a nice way to
view and set options.
/usr/local/lib/vim/menu.vim
@@ -391,11 +391,11 @@ FILES
Script to generate a bug report. See ":help bugs".
/usr/local/lib/vim/filetype.vim
Script to detect the type of a file by its name. See
Script to detect the type of a file by its name. See
":help 'filetype'".
/usr/local/lib/vim/scripts.vim
Script to detect the type of a file by its contents.
Script to detect the type of a file by its contents.
See ":help 'filetype'".
/usr/local/lib/vim/print/*.ps
@@ -410,8 +410,8 @@ SEE ALSO
AUTHOR
Most of Vim was made by Bram Moolenaar, with a lot of help from others.
See ":help credits" in Vim.
Vim is based on Stevie, worked on by: Tim Thompson, Tony Andrews and
G.R. (Fred) Walter. Although hardly any of the original code remains.
Vim is based on Stevie, worked on by: Tim Thompson, Tony Andrews and
G.R. (Fred) Walter. Although hardly any of the original code remains.
BUGS
Probably. See ":help todo" for a list of known problems.

View File

@@ -1,4 +1,4 @@
*windows.txt* For Vim version 7.4. Last change: 2014 Dec 05
*windows.txt* For Vim version 7.4. Last change: 2015 Aug 29
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -715,7 +715,8 @@ can also get to them with the buffer list commands, like ":bnext".
{cmd} must not open or close windows or reorder them.
{not in Vi} {not available when compiled without the
|+listcmds| feature}
Also see |:tabdo|, |:argdo| and |:bufdo|.
Also see |:tabdo|, |:argdo|, |:bufdo|, |:cdo|, |:ldo|,
|:cfdo| and |:lfdo|
*:bufdo*
:[range]bufdo[!] {cmd} Execute {cmd} in each buffer in the buffer list or if
@@ -743,7 +744,8 @@ can also get to them with the buffer list commands, like ":bnext".
each buffer.
{not in Vi} {not available when compiled without the
|+listcmds| feature}
Also see |:tabdo|, |:argdo| and |:windo|.
Also see |:tabdo|, |:argdo|, |:windo|, |:cdo|, |:ldo|,
|:cfdo| and |:lfdo|
Examples: >
@@ -986,9 +988,10 @@ A buffer can also be unlisted. This means it exists, but it is not in the
list of buffers. |unlisted-buffer|
:files[!] *:files*
:buffers[!] *:buffers* *:ls*
:ls[!] Show all buffers. Example:
:files[!] [flags] *:files*
:buffers[!] [flags] *:buffers* *:ls*
:ls[!] [flags]
Show all buffers. Example:
1 #h "/test/text" line 1 ~
2u "asdf" line 0 ~
@@ -998,8 +1001,8 @@ list of buffers. |unlisted-buffer|
(the term "unlisted" is a bit confusing then...).
Each buffer has a unique number. That number will not change,
so you can always go to a specific buffer with ":buffer N" or
"N CTRL-^", where N is the buffer number.
thus you can always go to a specific buffer with ":buffer N"
or "N CTRL-^", where N is the buffer number.
Indicators (chars in the same column are mutually exclusive):
u an unlisted buffer (only displayed when [!] is used)
@@ -1014,6 +1017,21 @@ list of buffers. |unlisted-buffer|
+ a modified buffer
x a buffer with read errors
[flags] can be a combination of the following characters,
which restrict the buffers to be listed:
+ modified buffers
- buffers with 'modifiable' off
= readonly buffers
a active buffers
u unloaded buffers (overrides the "!")
h hidden buffers
x buffers with a read error
% current buffer
# alternate buffer
Combining flags means they are "and"ed together, e.g.:
h+ hidden buffers which are modified
a+ active buffers which are modified
*:bad* *:badd*
:bad[d] [+lnum] {fname}
Add file name {fname} to the buffer list, without loading it.
@@ -1099,13 +1117,13 @@ list of buffers. |unlisted-buffer|
the current buffer remains being edited. See |:buffer-!| for
[!]. This will also edit a buffer that is not in the buffer
list, without setting the 'buflisted' flag.
Also see ||+cmd|.
Also see |+cmd|.
:[N]b[uffer][!] [+cmd] {bufname}
Edit buffer for {bufname} from the buffer list. See
|:buffer-!| for [!]. This will also edit a buffer that is not
in the buffer list, without setting the 'buflisted' flag.
Also see ||+cmd|.
Also see |+cmd|.
:[N]sb[uffer] [+cmd] [N] *:sb* *:sbuffer*
Split window and edit buffer [N] from the buffer list. If [N]
@@ -1113,7 +1131,7 @@ list of buffers. |unlisted-buffer|
"useopen" setting of 'switchbuf' when splitting. This will
also edit a buffer that is not in the buffer list, without
setting the 'buflisted' flag.
Also see ||+cmd|.
Also see |+cmd|.
:[N]sb[uffer] [+cmd] {bufname}
Split window and edit buffer for {bufname} from the buffer
@@ -1122,13 +1140,13 @@ list of buffers. |unlisted-buffer|
Note: If what you want to do is split the buffer, make a copy
under another name, you can do it this way: >
:w foobar | sp #
< Also see ||+cmd|.
< Also see |+cmd|.
:[N]bn[ext][!] [+cmd] [N] *:bn* *:bnext* *E87*
Go to [N]th next buffer in buffer list. [N] defaults to one.
Wraps around the end of the buffer list.
See |:buffer-!| for [!].
Also see ||+cmd|.
Also see |+cmd|.
If you are in a help buffer, this takes you to the next help
buffer (if there is one). Similarly, if you are in a normal
(non-help) buffer, this takes you to the next normal buffer.
@@ -1141,21 +1159,21 @@ list of buffers. |unlisted-buffer|
:[N]sbn[ext] [+cmd] [N]
Split window and go to [N]th next buffer in buffer list.
Wraps around the end of the buffer list. Uses 'switchbuf'
Also see ||+cmd|.
Also see |+cmd|.
:[N]bN[ext][!] [+cmd] [N] *:bN* *:bNext* *:bp* *:bprevious* *E88*
:[N]bp[revious][!] [+cmd] [N]
Go to [N]th previous buffer in buffer list. [N] defaults to
one. Wraps around the start of the buffer list.
See |:buffer-!| for [!] and 'switchbuf'.
Also see ||+cmd|.
Also see |+cmd|.
:[N]sbN[ext] [+cmd] [N] *:sbN* *:sbNext* *:sbp* *:sbprevious*
:[N]sbp[revious] [+cmd] [N]
Split window and go to [N]th previous buffer in buffer list.
Wraps around the start of the buffer list.
Uses 'switchbuf'.
Also see ||+cmd|.
Also see |+cmd|.
:br[ewind][!] [+cmd] *:br* *:brewind*
Go to first buffer in buffer list. If the buffer list is

View File

@@ -76,6 +76,16 @@ Change the character encoding in the righthand column from ASCII to EBCDIC.
This does not change the hexadecimal representation. The option is
meaningless in combinations with \-r, \-p or \-i.
.TP
.IR \-e
Switch to little-endian hexdump.
This option treats byte groups as words in little-endian byte order.
The default grouping of 4 bytes may be changed using
.RI "" \-g .
This option only applies to hexdump, leaving the ASCII (or EBCDIC)
representation unchanged.
The command line switches
\-r, \-p, \-i do not work with this mode.
.TP
.IR "\-g bytes " | " \-groupsize bytes"
separate the output of every
.RI < bytes >
@@ -84,7 +94,7 @@ Specify
.I \-g 0
to suppress grouping.
.RI < Bytes "> defaults to " 2
in normal mode and \fI1\fP in bits mode.
in normal mode, \fI4\fP in little-endian mode and \fI1\fP in bits mode.
Grouping does not apply to postscript or include style.
.TP
.IR \-h " | " \-help
@@ -99,6 +109,11 @@ stop after writing
.RI < len >
octets.
.TP
.I \-o offset
add
.RI < offset >
to the displayed file position.
.TP
.IR \-p " | " \-ps " | " \-postscript " | " \-plain
output in postscript continuous hexdump style. Also known as plain hexdump
style.

View File

@@ -1,4 +1,4 @@
XXD(1) XXD(1)
XXD(1) General Commands Manual XXD(1)
@@ -14,30 +14,29 @@ DESCRIPTION
xxd creates a hex dump of a given file or standard input. It can also
convert a hex dump back to its original binary form. Like uuencode(1)
and uudecode(1) it allows the transmission of binary data in a `mail-
safe' ASCII representation, but has the advantage of decoding to stan-
safe' ASCII representation, but has the advantage of decoding to stan
dard output. Moreover, it can be used to perform binary file patching.
OPTIONS
If no infile is given, standard input is read. If infile is specified
as a `-' character, then input is taken from standard input. If no
If no infile is given, standard input is read. If infile is specified
as a `-' character, then input is taken from standard input. If no
outfile is given (or a `-' character is in its place), results are sent
to standard output.
Note that a "lazy" parser is used which does not check for more than
the first option letter, unless the option is followed by a parameter.
Spaces between a single option letter and its parameter are optional.
Note that a "lazy" parser is used which does not check for more than
the first option letter, unless the option is followed by a parameter.
Spaces between a single option letter and its parameter are optional.
Parameters to options can be specified in decimal, hexadecimal or octal
notation. Thus -c8, -c 8, -c 010 and -cols 8 are all equivalent.
-a | -autoskip
toggle autoskip: A single '*' replaces nul-lines. Default off.
toggle autoskip: A single '*' replaces nul-lines. Default off.
-b | -bits
Switch to bits (binary digits) dump, rather than hexdump. This
option writes octets as eight digits "1"s and "0"s instead of a
normal hexadecimal dump. Each line is preceded by a line number
in hexadecimal and followed by an ascii (or ebcdic) representa-
in hexadecimal and followed by an ascii (or ebcdic) representa
tion. The command line switches -r, -p, -i do not work with this
mode.
@@ -50,25 +49,34 @@ OPTIONS
to EBCDIC. This does not change the hexadecimal representation.
The option is meaningless in combinations with -r, -p or -i.
-e Switch to little-endian hexdump. This option treats byte groups
as words in little-endian byte order. The default grouping of 4
bytes may be changed using -g. This option only applies to hex
dump, leaving the ASCII (or EBCDIC) representation unchanged.
The command line switches -r, -p, -i do not work with this mode.
-g bytes | -groupsize bytes
separate the output of every <bytes> bytes (two hex characters
or eight bit-digits each) by a whitespace. Specify -g 0 to sup-
press grouping. <Bytes> defaults to 2 in normal mode and 1 in
bits mode. Grouping does not apply to postscript or include
style.
or eight bit-digits each) by a whitespace. Specify -g 0 to sup
press grouping. <Bytes> defaults to 2 in normal mode, 4 in lit
tle-endian mode and 1 in bits mode. Grouping does not apply to
postscript or include style.
-h | -help
print a summary of available commands and exit. No hex dumping
is performed.
-i | -include
output in C include file style. A complete static array defini-
output in C include file style. A complete static array defini
tion is written (named after the input file), unless xxd reads
from stdin.
-l len | -len len
stop after writing <len> octets.
-o offset
add <offset> to the displayed file position.
-p | -ps | -postscript | -plain
output in postscript continuous hexdump style. Also known as
plain hexdump style.
@@ -76,8 +84,8 @@ OPTIONS
-r | -revert
reverse operation: convert (or patch) hexdump into binary. If
not writing to stdout, xxd writes into its output file without
truncating it. Use the combination -r -p to read plain hexadeci-
mal dumps without line number information and without a particu-
truncating it. Use the combination -r -p to read plain hexadeci
mal dumps without line number information and without a particu
lar column layout. Additional Whitespace and line-breaks are
allowed anywhere.
@@ -101,7 +109,7 @@ OPTIONS
CAVEATS
xxd -r has some builtin magic while evaluating line number information.
If the output file is seekable, then the linenumbers at the start of
each hexdump line may be out of order, lines may be missing, or over-
each hexdump line may be out of order, lines may be missing, or over
lapping. In these cases xxd will lseek(2) to the next position. If the
output file is not seekable, only gaps are allowed, which will be
filled by null-bytes.
@@ -112,8 +120,8 @@ CAVEATS
input line after reading enough columns of hexadecimal data (see option
-c). This also means, that changes to the printable ascii (or ebcdic)
columns are always ignored. Reverting a plain (or postscript) style
hexdump with xxd -r -p does not depend on the correct number of col-
umns. Here anything that looks like a pair of hex-digits is inter-
hexdump with xxd -r -p does not depend on the correct number of col
umns. Here anything that looks like a pair of hex-digits is inter
preted.
Note the difference between
@@ -218,7 +226,6 @@ EXAMPLES
% stty < /dev/term/b -echo -opost -isig -icanon min 1
% echo -n foo > /dev/term/b
RETURN VALUES
The following error values are returned:
@@ -256,7 +263,4 @@ AUTHOR
<tony@sctnugen.ppp.gu.edu.au> <T.Nugent@sct.gu.edu.au>
Small changes by Bram Moolenaar. Edited by Juergen Weigert.
Manual page for xxd August 1996 XXD(1)

View File

@@ -1,7 +1,7 @@
" Vim support file to detect file types
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2015 Jan 14
" Last Change: 2015 Sep 22
" Listen very carefully, I will say this only once
if exists("did_load_filetypes")
@@ -143,7 +143,7 @@ au BufNewFile,BufRead .arch-inventory,=tagging-method setf arch
au BufNewFile,BufRead *.art setf art
" AsciiDoc
au BufNewFile,BufRead *.asciidoc setf asciidoc
au BufNewFile,BufRead *.asciidoc,*.adoc setf asciidoc
" ASN.1
au BufNewFile,BufRead *.asn,*.asn1 setf asn
@@ -499,7 +499,7 @@ au BufNewFile,BufRead *.prg
\ endif
" Clojure
au BufNewFile,BufRead *.clj,*.cljs setf clojure
au BufNewFile,BufRead *.clj,*.cljs,*.cljx,*.cljc setf clojure
" Cmake
au BufNewFile,BufRead CMakeLists.txt,*.cmake,*.cmake.in setf cmake
@@ -776,10 +776,9 @@ 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/MERGE_MSG setf gitcommit
au BufNewFile,BufRead COMMIT_EDITMSG setf gitcommit
au BufNewFile,BufRead 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 */.config/git/config setf gitconfig
if !empty($XDG_CONFIG_HOME)
@@ -827,7 +826,7 @@ au BufNewFile,BufRead *.gs setf grads
au BufNewFile,BufRead *.gretl setf gretl
" Groovy
au BufNewFile,BufRead *.groovy setf groovy
au BufNewFile,BufRead *.gradle,*.groovy setf groovy
" GNU Server Pages
au BufNewFile,BufRead *.gsp setf gsp
@@ -873,7 +872,7 @@ func! s:FThtml()
setf xhtml
return
endif
if getline(n) =~ '{%\s*\(extends\|block\|load\)\>'
if getline(n) =~ '{%\s*\(extends\|block\|load\)\>\|{#\s\+'
setf htmldjango
return
endif
@@ -1169,7 +1168,7 @@ func! s:FTm()
let n = 1
while n < 10
let line = getline(n)
if line =~ '^\s*\(#\s*\(include\|import\)\>\|/\*\|//\)'
if line =~ '^\s*\(#\s*\(include\|import\)\>\|@import\>\|/\*\|//\)'
setf objc
return
endif
@@ -1267,8 +1266,8 @@ au BufNewFile,BufRead */etc/modules.conf,*/etc/modules,*/etc/conf.modules setf m
" Mplayer config
au BufNewFile,BufRead mplayer.conf,*/.mplayer/config setf mplayerconf
" Moterola S record
au BufNewFile,BufRead *.s19,*.s28,*.s37 setf srec
" Motorola S record
au BufNewFile,BufRead *.s19,*.s28,*.s37,*.mot,*.srec setf srec
" Mrxvtrc
au BufNewFile,BufRead mrxvtrc,.mrxvtrc setf mrxvtrc
@@ -1295,7 +1294,7 @@ au BufNewFile,BufRead *.mush setf mush
au BufNewFile,BufRead Mutt{ng,}rc setf muttrc
" Nano
au BufNewFile,BufRead */etc/nanorc,.nanorc setf nanorc
au BufNewFile,BufRead */etc/nanorc,*.nanorc setf nanorc
" Nastran input/DMAP
"au BufNewFile,BufRead *.dat setf nastran
@@ -1337,7 +1336,7 @@ func! s:FTmm()
let n = 1
while n < 10
let line = getline(n)
if line =~ '^\s*\(#\s*\(include\|import\)\>\|/\*\)'
if line =~ '^\s*\(#\s*\(include\|import\)\>\|@import\>\|/\*\)'
setf objcpp
return
endif
@@ -1859,7 +1858,7 @@ au BufNewFile,BufRead sgml.catalog* call s:StarSetf('catalog')
" Shell scripts (sh, ksh, bash, bash2, csh); Allow .profile_foo etc.
" Gentoo ebuilds are actually bash scripts
au BufNewFile,BufRead .bashrc*,bashrc,bash.bashrc,.bash_profile*,.bash_logout*,.bash_aliases*,*.bash,*.ebuild call SetFileTypeSH("bash")
au BufNewFile,BufRead .bashrc*,bashrc,bash.bashrc,.bash[_-]profile*,.bash[_-]logout*,.bash[_-]aliases*,*.bash,*/{,.}bash[_-]completion{,.d,.sh}{,/*},*.ebuild,*.eclass call SetFileTypeSH("bash")
au BufNewFile,BufRead .kshrc*,*.ksh call SetFileTypeSH("ksh")
au BufNewFile,BufRead */etc/profile,.profile*,*.sh,*.env call SetFileTypeSH(getline(1))
@@ -2170,6 +2169,9 @@ au BufNewFile,BufRead *.tli setf tli
" Telix Salt
au BufNewFile,BufRead *.slt setf tsalt
" Tera Term Language
au BufRead,BufNewFile *.ttl setf teraterm
" Terminfo
au BufNewFile,BufRead *.ti setf terminfo

View File

@@ -2,7 +2,7 @@
" Language: J
" Maintainer: David Bürgin <676c7473@gmail.com>
" URL: https://github.com/glts/vim-j
" Last Change: 2015-01-11
" Last Change: 2015-03-27
if exists('b:did_ftplugin')
finish
@@ -16,12 +16,9 @@ setlocal iskeyword=48-57,A-Z,_,a-z
setlocal comments=:NB.
setlocal commentstring=NB.\ %s
setlocal formatoptions-=t
setlocal shiftwidth=2
setlocal softtabstop=2
setlocal expandtab
setlocal matchpairs=(:)
let b:undo_ftplugin = 'setlocal matchpairs< expandtab< softtabstop< shiftwidth< formatoptions< commentstring< comments< iskeyword<'
let b:undo_ftplugin = 'setlocal matchpairs< formatoptions< commentstring< comments< iskeyword<'
" Section movement with ]] ][ [[ []. The start/end patterns below are amended
" inside the function in order to avoid matching on the current cursor line.

View File

@@ -1,6 +1,10 @@
" Vim filetype plugin file
" Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2008-07-09
" Vim syntax file
" Maintainer: Christian Brabandt <cb@256bit.org>
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2015-05-29
" License: Vim (see :h license)
" Repository: https://github.com/chrisbra/vim-kconfig
if exists("b:did_ftplugin")
finish
@@ -14,5 +18,10 @@ let b:undo_ftplugin = "setl com< cms< fo<"
setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
" For matchit.vim
if exists("loaded_matchit")
let b:match_words = '^\<menu\>:\<endmenu\>,^\<if\>:\<endif\>,^\<choice\>:\<endchoice\>'
endif
let &cpo = s:cpo_save
unlet s:cpo_save

View File

@@ -2,7 +2,7 @@
" Filename: spec.vim
" Maintainer: Igor Gnatenko i.gnatenko.brain@gmail.com
" Former Maintainer: Gustavo Niemeyer <niemeyer@conectiva.com> (until March 2014)
" Last Change: Sun Mar 2 11:24 MSK 2014 Igor Gnatenko
" Last Change: Mon Jun 01 21:15 MSK 2015 Igor Gnatenko
if exists("b:did_ftplugin")
finish
@@ -18,13 +18,40 @@ if !exists("no_plugin_maps") && !exists("no_spec_maps")
endif
endif
noremap <buffer> <unique> <script> <Plug>SpecChangelog :call <SID>SpecChangelog("")<CR>
if !hasmapto("call <SID>SpecChangelog(\"\")<CR>")
noremap <buffer> <unique> <script> <Plug>SpecChangelog :call <SID>SpecChangelog("")<CR>
endif
if !exists("*s:GetRelVer")
function! s:GetRelVer()
if has('python')
python << PYEND
import sys, datetime, shutil, tempfile
import vim
try:
import rpm
except ImportError:
pass
else:
specfile = vim.current.buffer.name
if specfile:
spec = rpm.spec(specfile)
headers = spec.packages[0].header
version = headers['Version']
release = ".".join(headers['Release'].split(".")[:-1])
vim.command("let ver = " + version)
vim.command("let rel = " + release)
PYEND
endif
endfunction
endif
if !exists("*s:SpecChangelog")
function s:SpecChangelog(format)
if strlen(a:format) == 0
if !exists("g:spec_chglog_format")
let email = input("Email address: ")
let email = input("Name <email address>: ")
let g:spec_chglog_format = "%a %b %d %Y " . l:email
echo "\r"
endif
@@ -69,6 +96,9 @@ if !exists("*s:SpecChangelog")
else
let include_release_info = 0
endif
call s:GetRelVer()
if (chgline == -1)
let option = confirm("Can't find %changelog. Create one? ","&End of file\n&Here\n&Cancel",3)
if (option == 1)
@@ -83,7 +113,7 @@ if !exists("*s:SpecChangelog")
endif
endif
if (chgline != -1)
let parsed_format = "* ".strftime(format)
let parsed_format = "* ".strftime(format)." - ".ver."-".rel
let release_info = "+ ".name."-".ver."-".rel
let wrong_format = 0
let wrong_release = 0

View File

@@ -1,7 +1,10 @@
" Vim filetype plugin file
" Language: Zsh shell script
" Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2011-01-23
" Language: Zsh shell script
" Maintainer: Christian Brabandt <cb@256bit.org>
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2015-05-29
" License: Vim (see :h license)
" Repository: https://github.com/chrisbra/vim-zsh
if exists("b:did_ftplugin")
finish

View File

@@ -2,7 +2,7 @@
" Header: "{{{
" Maintainer: Bram Moolenaar
" Original Author: Andy Wokula <anwoku@yahoo.de>
" Last Change: 2015 Jan 11
" Last Change: 2015 Sep 25
" Version: 1.0
" Description: HTML indent script with cached state for faster indenting on a
" range of lines.
@@ -94,7 +94,7 @@ func! HtmlIndent_CheckUserSettings()
let autotags = g:html_indent_autotags
endif
let b:hi_removed_tags = {}
if autotags
if len(autotags) > 0
call s:RemoveITags(b:hi_removed_tags, split(autotags, ","))
endif
@@ -178,13 +178,15 @@ let s:countonly = 0
" 3 "script"
" 4 "style"
" 5 comment start
" 6 conditional comment start
" -1 closing tag
" -2 "/pre"
" -3 "/script"
" -4 "/style"
" -5 comment end
" -6 conditional comment end
let s:indent_tags = {}
let s:endtags = [0,0,0,0,0,0] " long enough for the highest index
let s:endtags = [0,0,0,0,0,0,0] " long enough for the highest index
"}}}
" Add a list of tag names for a pair of <tag> </tag> to "tags".
@@ -245,6 +247,10 @@ call s:AddITags(s:indent_tags, [
\ 'header', 'group', 'keygen', 'mark', 'math', 'meter', 'nav', 'output',
\ 'progress', 'ruby', 'section', 'svg', 'texture', 'time', 'video',
\ 'wbr', 'text'])
" Tags added for web components:
call s:AddITags(s:indent_tags, [
\ 'content', 'shadow', 'template'])
"}}}
" Add Block Tags: these contain alien content
@@ -253,6 +259,7 @@ call s:AddBlockTag('pre', 2)
call s:AddBlockTag('script', 3)
call s:AddBlockTag('style', 4)
call s:AddBlockTag('<!--', 5, '-->')
call s:AddBlockTag('<!--[', 6, '![endif]-->')
"}}}
" Return non-zero when "tagname" is an opening tag, not being a block tag, for
@@ -287,7 +294,7 @@ func! s:CountITags(text)
let s:nextrel = 0 " relative indent steps for next line [unit &sw]:
let s:block = 0 " assume starting outside of a block
let s:countonly = 1 " don't change state
call substitute(a:text, '<\zs/\=\w\+\>\|<!--\|-->', '\=s:CheckTag(submatch(0))', 'g')
call substitute(a:text, '<\zs/\=\w\+\(-\w\+\)*\>\|<!--\[\|\[endif\]-->\|<!--\|-->', '\=s:CheckTag(submatch(0))', 'g')
let s:countonly = 0
endfunc "}}}
@@ -299,7 +306,7 @@ func! s:CountTagsAndState(text)
let s:nextrel = 0 " relative indent steps for next line [unit &sw]:
let s:block = b:hi_newstate.block
let tmp = substitute(a:text, '<\zs/\=\w\+\>\|<!--\|-->', '\=s:CheckTag(submatch(0))', 'g')
let tmp = substitute(a:text, '<\zs/\=\w\+\(-\w\+\)*\>\|<!--\[\|\[endif\]-->\|<!--\|-->', '\=s:CheckTag(submatch(0))', 'g')
if s:block == 3
let b:hi_newstate.scripttype = s:GetScriptType(matchstr(tmp, '\C.*<SCRIPT\>\zs[^>]*'))
endif
@@ -311,6 +318,9 @@ func! s:CheckTag(itag)
"{{{
" Returns an empty string or "SCRIPT".
" a:itag can be "tag" or "/tag" or "<!--" or "-->"
if (s:CheckCustomTag(a:itag))
return ""
endif
let ind = s:get_tag(a:itag)
if ind == -1
" closing tag
@@ -365,6 +375,36 @@ func! s:CheckBlockTag(blocktag, ind)
return ""
endfunc "}}}
" Used by s:CheckTag().
func! s:CheckCustomTag(ctag)
"{{{
" Returns 1 if ctag is the tag for a custom element, 0 otherwise.
" a:ctag can be "tag" or "/tag" or "<!--" or "-->"
let pattern = '\%\(\w\+-\)\+\w\+'
if match(a:ctag, pattern) == -1
return 0
endif
if matchstr(a:ctag, '\/\ze.\+') == "/"
" closing tag
if s:block != 0
" ignore ctag within a block
return 1
endif
if s:nextrel == 0
let s:curind -= 1
else
let s:nextrel -= 1
endif
else
" opening tag
if s:block != 0
return 1
endif
let s:nextrel += 1
endif
return 1
endfunc "}}}
" Return the <script> type: either "javascript" or ""
func! s:GetScriptType(str)
"{{{
@@ -388,7 +428,7 @@ func! s:FreshState(lnum)
" State:
" lnum last indented line == prevnonblank(a:lnum - 1)
" block = 0 a:lnum located within special tag: 0:none, 2:<pre>,
" 3:<script>, 4:<style>, 5:<!--
" 3:<script>, 4:<style>, 5:<!--, 6:<!--[
" baseindent use this indent for line a:lnum as a start - kind of
" autoindent (if block==0)
" scripttype = '' type attribute of a script tag (if block==3)
@@ -427,10 +467,13 @@ func! s:FreshState(lnum)
" FI
" look back for a blocktag
call cursor(a:lnum, 1)
let [stopline, stopcol] = searchpos('\c<\zs\/\=\%(pre\>\|script\>\|style\>\)', "bW")
if stopline > 0
" fugly ... why isn't there searchstr()
let stopline2 = v:lnum + 1
if has_key(b:hi_indent, 'block') && b:hi_indent.block > 5
let [stopline2, stopcol2] = searchpos('<!--', 'bnW')
endif
let [stopline, stopcol] = searchpos('\c<\zs\/\=\%(pre\>\|script\>\|style\>\)', "bnW")
if stopline > 0 && stopline < stopline2
" ugly ... why isn't there searchstr()
let tagline = tolower(getline(stopline))
let blocktag = matchstr(tagline, '\/\=\%(pre\>\|script\>\|style\>\)', stopcol - 1)
if blocktag[0] != "/"
@@ -450,23 +493,29 @@ func! s:FreshState(lnum)
" blocktag == "/..."
let swendtag = match(tagline, '^\s*</') >= 0
if !swendtag
let [bline, bcol] = searchpos('<'.blocktag[1:].'\>', "bW")
let [bline, bcol] = searchpos('<'.blocktag[1:].'\>', "bnW")
call s:CountITags(tolower(getline(bline)[: bcol-2]))
let state.baseindent = indent(bline) + (s:curind + s:nextrel) * s:ShiftWidth()
return state
endif
endif
endif
if stopline > stopline2
let stopline = stopline2
let stopcol = stopcol2
endif
" else look back for comment
call cursor(a:lnum, 1)
let [comlnum, comcol, found] = searchpos('\(<!--\)\|-->', 'bpW', stopline)
if found == 2
let [comlnum, comcol, found] = searchpos('\(<!--\[\)\|\(<!--\)\|-->', 'bpnW', stopline)
if found == 2 || found == 3
" comment opener found, assume a:lnum within comment
let state.block = 5
let state.block = (found == 3 ? 5 : 6)
let state.blocklnr = comlnum
" check preceding tags in the line:
call s:CountITags(tolower(getline(comlnum)[: comcol-2]))
if found == 2
let state.baseindent = b:hi_indent.baseindent
endif
let state.blocktagind = indent(comlnum) + (s:curind + s:nextrel) * s:ShiftWidth()
return state
endif
@@ -782,6 +831,20 @@ func! s:Alien5()
return indent(prevlnum)
endfunc "}}}
" Return the indent for conditional comment: <!--[ ![endif]-->
func! s:Alien6()
"{{{
let curtext = getline(v:lnum)
if curtext =~ '\s*\zs<!\[endif\]-->'
" current line starts with end of comment, line up with comment start.
let lnum = search('<!--', 'bn')
if lnum > 0
return indent(lnum)
endif
endif
return b:hi_indent.baseindent + s:ShiftWidth()
endfunc "}}}
" When the "lnum" line ends in ">" find the line containing the matching "<".
func! HtmlIndent_FindTagStart(lnum)
"{{{

View File

@@ -1,7 +1,7 @@
" Vim indent file
" Language: Javascript
" Maintainer: None! Wanna improve this?
" Last Change: 2007 Jan 22
" Maintainer: Going to be Darrick Wiebe
" Last Change: 2015 Jun 09
" Only load this indent file when no other was loaded.
if exists("b:did_indent")
@@ -12,5 +12,7 @@ let b:did_indent = 1
" C indenting is not too bad.
setlocal cindent
setlocal cinoptions+=j1,J1
setlocal cinkeys-=0#
setlocal cinkeys+=0]
let b:undo_indent = "setl cin<"

View File

@@ -1,12 +1,12 @@
" Vim indent file
" Language: R
" Author: Jakson Alves de Aquino <jalvesaq@gmail.com>
" Last Change: Fri Feb 15, 2013 08:11PM
" Last Change: Thu Mar 26, 2015 05:36PM
" Only load this indent file when no other was loaded.
if exists("b:did_indent")
finish
finish
endif
let b:did_indent = 1
@@ -15,478 +15,501 @@ setlocal indentexpr=GetRIndent()
" Only define the function once.
if exists("*GetRIndent")
finish
finish
endif
" Options to make the indentation more similar to Emacs/ESS:
if !exists("g:r_indent_align_args")
let g:r_indent_align_args = 1
let g:r_indent_align_args = 1
endif
if !exists("g:r_indent_ess_comments")
let g:r_indent_ess_comments = 0
let g:r_indent_ess_comments = 0
endif
if !exists("g:r_indent_comment_column")
let g:r_indent_comment_column = 40
let g:r_indent_comment_column = 40
endif
if ! exists("g:r_indent_ess_compatible")
let g:r_indent_ess_compatible = 0
let g:r_indent_ess_compatible = 0
endif
if ! exists("g:r_indent_op_pattern")
let g:r_indent_op_pattern = '\(+\|-\|\*\|/\|=\|\~\|%\)$'
endif
function s:RDelete_quotes(line)
let i = 0
let j = 0
let line1 = ""
let llen = strlen(a:line)
while i < llen
if a:line[i] == '"'
let i += 1
let line1 = line1 . 's'
while !(a:line[i] == '"' && ((i > 1 && a:line[i-1] == '\' && a:line[i-2] == '\') || a:line[i-1] != '\')) && i < llen
let i += 1
endwhile
if a:line[i] == '"'
let i += 1
endif
else
if a:line[i] == "'"
let i += 1
let line1 = line1 . 's'
while !(a:line[i] == "'" && ((i > 1 && a:line[i-1] == '\' && a:line[i-2] == '\') || a:line[i-1] != '\')) && i < llen
let i += 1
endwhile
if a:line[i] == "'"
let i += 1
endif
else
if a:line[i] == "`"
let i += 1
let line1 = line1 . 's'
while a:line[i] != "`" && i < llen
let i += 1
endwhile
if a:line[i] == "`"
let i += 1
endif
endif
endif
endif
if i == llen
break
endif
let line1 = line1 . a:line[i]
let j += 1
let i = 0
let j = 0
let line1 = ""
let llen = strlen(a:line)
while i < llen
if a:line[i] == '"'
let i += 1
let line1 = line1 . 's'
while !(a:line[i] == '"' && ((i > 1 && a:line[i-1] == '\' && a:line[i-2] == '\') || a:line[i-1] != '\')) && i < llen
let i += 1
endwhile
return line1
endwhile
if a:line[i] == '"'
let i += 1
endif
else
if a:line[i] == "'"
let i += 1
let line1 = line1 . 's'
while !(a:line[i] == "'" && ((i > 1 && a:line[i-1] == '\' && a:line[i-2] == '\') || a:line[i-1] != '\')) && i < llen
let i += 1
endwhile
if a:line[i] == "'"
let i += 1
endif
else
if a:line[i] == "`"
let i += 1
let line1 = line1 . 's'
while a:line[i] != "`" && i < llen
let i += 1
endwhile
if a:line[i] == "`"
let i += 1
endif
endif
endif
endif
if i == llen
break
endif
let line1 = line1 . a:line[i]
let j += 1
let i += 1
endwhile
return line1
endfunction
" Convert foo(bar()) int foo()
function s:RDelete_parens(line)
if s:Get_paren_balance(a:line, "(", ")") != 0
return a:line
endif
let i = 0
let j = 0
let line1 = ""
let llen = strlen(a:line)
while i < llen
let line1 = line1 . a:line[i]
if a:line[i] == '('
let nop = 1
while nop > 0 && i < llen
let i += 1
if a:line[i] == ')'
let nop -= 1
else
if a:line[i] == '('
let nop += 1
endif
endif
endwhile
let line1 = line1 . a:line[i]
endif
if s:Get_paren_balance(a:line, "(", ")") != 0
return a:line
endif
let i = 0
let j = 0
let line1 = ""
let llen = strlen(a:line)
while i < llen
let line1 = line1 . a:line[i]
if a:line[i] == '('
let nop = 1
while nop > 0 && i < llen
let i += 1
endwhile
return line1
if a:line[i] == ')'
let nop -= 1
else
if a:line[i] == '('
let nop += 1
endif
endif
endwhile
let line1 = line1 . a:line[i]
endif
let i += 1
endwhile
return line1
endfunction
function! s:Get_paren_balance(line, o, c)
let line2 = substitute(a:line, a:o, "", "g")
let openp = strlen(a:line) - strlen(line2)
let line3 = substitute(line2, a:c, "", "g")
let closep = strlen(line2) - strlen(line3)
return openp - closep
let line2 = substitute(a:line, a:o, "", "g")
let openp = strlen(a:line) - strlen(line2)
let line3 = substitute(line2, a:c, "", "g")
let closep = strlen(line2) - strlen(line3)
return openp - closep
endfunction
function! s:Get_matching_brace(linenr, o, c, delbrace)
let line = SanitizeRLine(getline(a:linenr))
if a:delbrace == 1
let line = substitute(line, '{$', "", "")
endif
let pb = s:Get_paren_balance(line, a:o, a:c)
let i = a:linenr
while pb != 0 && i > 1
let i -= 1
let pb += s:Get_paren_balance(SanitizeRLine(getline(i)), a:o, a:c)
endwhile
return i
let line = SanitizeRLine(getline(a:linenr))
if a:delbrace == 1
let line = substitute(line, '{$', "", "")
endif
let pb = s:Get_paren_balance(line, a:o, a:c)
let i = a:linenr
while pb != 0 && i > 1
let i -= 1
let pb += s:Get_paren_balance(SanitizeRLine(getline(i)), a:o, a:c)
endwhile
return i
endfunction
" This function is buggy because there 'if's without 'else'
" It must be rewritten relying more on indentation
function! s:Get_matching_if(linenr, delif)
" let filenm = expand("%")
" call writefile([filenm], "/tmp/matching_if_" . a:linenr)
let line = SanitizeRLine(getline(a:linenr))
if a:delif
let line = substitute(line, "if", "", "g")
endif
let elsenr = 0
let i = a:linenr
let ifhere = 0
while i > 0
let line2 = substitute(line, '\<else\>', "xxx", "g")
let elsenr += strlen(line) - strlen(line2)
if line =~ '.*\s*if\s*()' || line =~ '.*\s*if\s*()'
let elsenr -= 1
if elsenr == 0
let ifhere = i
break
endif
endif
let i -= 1
let line = SanitizeRLine(getline(i))
endwhile
if ifhere
return ifhere
else
return a:linenr
let line = SanitizeRLine(getline(a:linenr))
if a:delif
let line = substitute(line, "if", "", "g")
endif
let elsenr = 0
let i = a:linenr
let ifhere = 0
while i > 0
let line2 = substitute(line, '\<else\>', "xxx", "g")
let elsenr += strlen(line) - strlen(line2)
if line =~ '.*\s*if\s*()' || line =~ '.*\s*if\s*()'
let elsenr -= 1
if elsenr == 0
let ifhere = i
break
endif
endif
let i -= 1
let line = SanitizeRLine(getline(i))
endwhile
if ifhere
return ifhere
else
return a:linenr
endif
endfunction
function! s:Get_last_paren_idx(line, o, c, pb)
let blc = a:pb
let line = substitute(a:line, '\t', s:curtabstop, "g")
let theidx = -1
let llen = strlen(line)
let idx = 0
while idx < llen
if line[idx] == a:o
let blc -= 1
if blc == 0
let theidx = idx
endif
else
if line[idx] == a:c
let blc += 1
endif
endif
let idx += 1
endwhile
return theidx + 1
let blc = a:pb
let line = substitute(a:line, '\t', s:curtabstop, "g")
let theidx = -1
let llen = strlen(line)
let idx = 0
while idx < llen
if line[idx] == a:o
let blc -= 1
if blc == 0
let theidx = idx
endif
else
if line[idx] == a:c
let blc += 1
endif
endif
let idx += 1
endwhile
return theidx + 1
endfunction
" Get previous relevant line. Search back until getting a line that isn't
" comment or blank
function s:Get_prev_line(lineno)
let lnum = a:lineno - 1
let lnum = a:lineno - 1
let data = getline( lnum )
while lnum > 0 && (data =~ '^\s*#' || data =~ '^\s*$')
let lnum = lnum - 1
let data = getline( lnum )
while lnum > 0 && (data =~ '^\s*#' || data =~ '^\s*$')
let lnum = lnum - 1
let data = getline( lnum )
endwhile
return lnum
endwhile
return lnum
endfunction
" This function is also used by r-plugin/common_global.vim
" Delete from '#' to the end of the line, unless the '#' is inside a string.
function SanitizeRLine(line)
let newline = s:RDelete_quotes(a:line)
let newline = s:RDelete_parens(newline)
let newline = substitute(newline, '#.*', "", "")
let newline = substitute(newline, '\s*$', "", "")
return newline
let newline = s:RDelete_quotes(a:line)
let newline = s:RDelete_parens(newline)
let newline = substitute(newline, '#.*', "", "")
let newline = substitute(newline, '\s*$', "", "")
if &filetype == "rhelp" && newline =~ '^\\method{.*}{.*}(.*'
let newline = substitute(newline, '^\\method{\(.*\)}{.*}', '\1', "")
endif
return newline
endfunction
function GetRIndent()
let clnum = line(".") " current line
let clnum = line(".") " current line
let cline = getline(clnum)
if cline =~ '^\s*#'
if g:r_indent_ess_comments == 1
if cline =~ '^\s*###'
return 0
endif
if cline !~ '^\s*##'
return g:r_indent_comment_column
endif
endif
endif
let cline = SanitizeRLine(cline)
if cline =~ '^\s*}' || cline =~ '^\s*}\s*)$'
let indline = s:Get_matching_brace(clnum, '{', '}', 1)
if indline > 0 && indline != clnum
let iline = SanitizeRLine(getline(indline))
if s:Get_paren_balance(iline, "(", ")") == 0 || iline =~ '(\s*{$'
return indent(indline)
else
let indline = s:Get_matching_brace(indline, '(', ')', 1)
return indent(indline)
endif
endif
endif
" Find the first non blank line above the current line
let lnum = s:Get_prev_line(clnum)
" Hit the start of the file, use zero indent.
if lnum == 0
let cline = getline(clnum)
if cline =~ '^\s*#'
if g:r_indent_ess_comments == 1
if cline =~ '^\s*###'
return 0
endif
if cline !~ '^\s*##'
return g:r_indent_comment_column
endif
endif
endif
let line = SanitizeRLine(getline(lnum))
let cline = SanitizeRLine(cline)
if &filetype == "rhelp"
if cline =~ '^\\dontshow{' || cline =~ '^\\dontrun{' || cline =~ '^\\donttest{' || cline =~ '^\\testonly{'
return 0
endif
if line =~ '^\\examples{' || line =~ '^\\usage{' || line =~ '^\\dontshow{' || line =~ '^\\dontrun{' || line =~ '^\\donttest{' || line =~ '^\\testonly{'
return 0
endif
if line =~ '^\\method{.*}{.*}(.*'
let line = substitute(line, '^\\method{\(.*\)}{.*}', '\1', "")
endif
if cline =~ '^\s*}' || cline =~ '^\s*}\s*)$'
let indline = s:Get_matching_brace(clnum, '{', '}', 1)
if indline > 0 && indline != clnum
let iline = SanitizeRLine(getline(indline))
if s:Get_paren_balance(iline, "(", ")") == 0 || iline =~ '(\s*{$'
return indent(indline)
else
let indline = s:Get_matching_brace(indline, '(', ')', 1)
return indent(indline)
endif
endif
endif
if cline =~ '^\s*{'
if g:r_indent_ess_compatible && line =~ ')$'
let nlnum = lnum
let nline = line
while s:Get_paren_balance(nline, '(', ')') < 0
let nlnum = s:Get_prev_line(nlnum)
let nline = SanitizeRLine(getline(nlnum)) . nline
endwhile
if nline =~ '^\s*function\s*(' && indent(nlnum) == &sw
return 0
endif
endif
if s:Get_paren_balance(line, "(", ")") == 0
return indent(lnum)
endif
" Find the first non blank line above the current line
let lnum = s:Get_prev_line(clnum)
" Hit the start of the file, use zero indent.
if lnum == 0
return 0
endif
let line = SanitizeRLine(getline(lnum))
if &filetype == "rhelp"
if cline =~ '^\\dontshow{' || cline =~ '^\\dontrun{' || cline =~ '^\\donttest{' || cline =~ '^\\testonly{'
return 0
endif
" line is an incomplete command:
if line =~ '\<\(if\|while\|for\|function\)\s*()$' || line =~ '\<else$' || line =~ '<-$'
return indent(lnum) + &sw
if line =~ '^\\examples{' || line =~ '^\\usage{' || line =~ '^\\dontshow{' || line =~ '^\\dontrun{' || line =~ '^\\donttest{' || line =~ '^\\testonly{'
return 0
endif
endif
" Deal with () and []
if &filetype == "rnoweb" && line =~ "^<<.*>>="
return 0
endif
let pb = s:Get_paren_balance(line, '(', ')')
if cline =~ '^\s*{'
if g:r_indent_ess_compatible && line =~ ')$'
let nlnum = lnum
let nline = line
while s:Get_paren_balance(nline, '(', ')') < 0
let nlnum = s:Get_prev_line(nlnum)
let nline = SanitizeRLine(getline(nlnum)) . nline
endwhile
if nline =~ '^\s*function\s*(' && indent(nlnum) == &sw
return 0
endif
endif
if s:Get_paren_balance(line, "(", ")") == 0
return indent(lnum)
endif
endif
if line =~ '^\s*{$' || line =~ '(\s*{' || (pb == 0 && (line =~ '{$' || line =~ '(\s*{$'))
return indent(lnum) + &sw
" line is an incomplete command:
if line =~ '\<\(if\|while\|for\|function\)\s*()$' || line =~ '\<else$' || line =~ '<-$'
return indent(lnum) + &sw
endif
" Deal with () and []
let pb = s:Get_paren_balance(line, '(', ')')
if line =~ '^\s*{$' || line =~ '(\s*{' || (pb == 0 && (line =~ '{$' || line =~ '(\s*{$'))
return indent(lnum) + &sw
endif
let s:curtabstop = repeat(' ', &tabstop)
if g:r_indent_align_args == 1
if pb > 0 && line =~ '{$'
return s:Get_last_paren_idx(line, '(', ')', pb) + &sw
endif
let bb = s:Get_paren_balance(line, '[', ']')
let s:curtabstop = repeat(' ', &tabstop)
if g:r_indent_align_args == 1
if pb == 0 && bb == 0 && (line =~ '.*[,&|\-\*+<>]$' || cline =~ '^\s*[,&|\-\*+<>]')
return indent(lnum)
endif
if pb > 0
if &filetype == "rhelp"
let ind = s:Get_last_paren_idx(line, '(', ')', pb)
else
let ind = s:Get_last_paren_idx(getline(lnum), '(', ')', pb)
endif
return ind
endif
if pb < 0 && line =~ '.*[,&|\-\*+<>]$'
let lnum = s:Get_prev_line(lnum)
while pb < 1 && lnum > 0
let line = SanitizeRLine(getline(lnum))
let line = substitute(line, '\t', s:curtabstop, "g")
let ind = strlen(line)
while ind > 0
if line[ind] == ')'
let pb -= 1
else
if line[ind] == '('
let pb += 1
endif
endif
if pb == 1
return ind + 1
endif
let ind -= 1
endwhile
let lnum -= 1
endwhile
return 0
endif
if bb > 0
let ind = s:Get_last_paren_idx(getline(lnum), '[', ']', bb)
return ind
endif
if pb > 0
if &filetype == "rhelp"
let ind = s:Get_last_paren_idx(line, '(', ')', pb)
else
let ind = s:Get_last_paren_idx(getline(lnum), '(', ')', pb)
endif
return ind
endif
let post_block = 0
if line =~ '}$'
let lnum = s:Get_matching_brace(lnum, '{', '}', 0)
if pb < 0 && line =~ '.*[,&|\-\*+<>]$'
let lnum = s:Get_prev_line(lnum)
while pb < 1 && lnum > 0
let line = SanitizeRLine(getline(lnum))
if lnum > 0 && line =~ '^\s*{'
let lnum = s:Get_prev_line(lnum)
let line = SanitizeRLine(getline(lnum))
endif
let pb = s:Get_paren_balance(line, '(', ')')
let post_block = 1
endif
let post_fun = 0
if pb < 0 && line !~ ')\s*[,&|\-\*+<>]$'
let post_fun = 1
while pb < 0 && lnum > 0
let lnum -= 1
let linepiece = SanitizeRLine(getline(lnum))
let pb += s:Get_paren_balance(linepiece, "(", ")")
let line = linepiece . line
endwhile
if line =~ '{$' && post_block == 0
return indent(lnum) + &sw
endif
" Now we can do some tests again
if cline =~ '^\s*{'
return indent(lnum)
endif
if post_block == 0
let newl = SanitizeRLine(line)
if newl =~ '\<\(if\|while\|for\|function\)\s*()$' || newl =~ '\<else$' || newl =~ '<-$'
return indent(lnum) + &sw
let line = substitute(line, '\t', s:curtabstop, "g")
let ind = strlen(line)
while ind > 0
if line[ind] == ')'
let pb -= 1
else
if line[ind] == '('
let pb += 1
endif
endif
endif
if cline =~ '^\s*else'
if line =~ '<-\s*if\s*()'
return indent(lnum) + &sw
else
if line =~ '\<if\s*()'
return indent(lnum)
else
return indent(lnum) - &sw
endif
endif
endif
if bb < 0 && line =~ '.*]'
while bb < 0 && lnum > 0
let lnum -= 1
let linepiece = SanitizeRLine(getline(lnum))
let bb += s:Get_paren_balance(linepiece, "[", "]")
let line = linepiece . line
endif
if pb == 1
return ind + 1
endif
let ind -= 1
endwhile
let line = s:RDelete_parens(line)
let lnum -= 1
endwhile
return 0
endif
let plnum = s:Get_prev_line(lnum)
let ppost_else = 0
if plnum > 0
let pline = SanitizeRLine(getline(plnum))
let ppost_block = 0
if pline =~ '}$'
let ppost_block = 1
let plnum = s:Get_matching_brace(plnum, '{', '}', 0)
let pline = SanitizeRLine(getline(plnum))
if pline =~ '^\s*{$' && plnum > 0
let plnum = s:Get_prev_line(plnum)
let pline = SanitizeRLine(getline(plnum))
endif
endif
if pline =~ 'else$'
let ppost_else = 1
let plnum = s:Get_matching_if(plnum, 0)
let pline = SanitizeRLine(getline(plnum))
endif
if pline =~ '^\s*else\s*if\s*('
let pplnum = s:Get_prev_line(plnum)
let ppline = SanitizeRLine(getline(pplnum))
while ppline =~ '^\s*else\s*if\s*(' || ppline =~ '^\s*if\s*()\s*\S$'
let plnum = pplnum
let pline = ppline
let pplnum = s:Get_prev_line(plnum)
let ppline = SanitizeRLine(getline(pplnum))
endwhile
while ppline =~ '\<\(if\|while\|for\|function\)\s*()$' || ppline =~ '\<else$' || ppline =~ '<-$'
let plnum = pplnum
let pline = ppline
let pplnum = s:Get_prev_line(plnum)
let ppline = SanitizeRLine(getline(pplnum))
endwhile
endif
let ppb = s:Get_paren_balance(pline, '(', ')')
if ppb < 0 && (pline =~ ')\s*{$' || pline =~ ')$')
while ppb < 0 && plnum > 0
let plnum -= 1
let linepiece = SanitizeRLine(getline(plnum))
let ppb += s:Get_paren_balance(linepiece, "(", ")")
let pline = linepiece . pline
endwhile
let pline = s:RDelete_parens(pline)
endif
if bb > 0
let ind = s:Get_last_paren_idx(getline(lnum), '[', ']', bb)
return ind
endif
endif
let ind = indent(lnum)
let pind = indent(plnum)
if g:r_indent_align_args == 0 && pb != 0
let ind += pb * &sw
return ind
let post_block = 0
if line =~ '}$'
let lnum = s:Get_matching_brace(lnum, '{', '}', 0)
let line = SanitizeRLine(getline(lnum))
if lnum > 0 && line =~ '^\s*{'
let lnum = s:Get_prev_line(lnum)
let line = SanitizeRLine(getline(lnum))
endif
let pb = s:Get_paren_balance(line, '(', ')')
let post_block = 1
endif
if g:r_indent_align_args == 0 && bb != 0
let ind += bb * &sw
return ind
" Indent after operator pattern
let olnum = s:Get_prev_line(lnum)
let oline = getline(olnum)
if olnum > 0
if line =~ g:r_indent_op_pattern
if oline =~ g:r_indent_op_pattern
return indent(lnum)
else
return indent(lnum) + &sw
endif
else
if oline =~ g:r_indent_op_pattern
return indent(lnum) - &sw
endif
endif
endif
if ind == pind || (ind == (pind + &sw) && pline =~ '{$' && ppost_else == 0)
return ind
endif
let pline = getline(plnum)
let pbb = s:Get_paren_balance(pline, '[', ']')
while pind < ind && plnum > 0 && ppb == 0 && pbb == 0
let ind = pind
let plnum = s:Get_prev_line(plnum)
let pline = getline(plnum)
let ppb = s:Get_paren_balance(pline, '(', ')')
let pbb = s:Get_paren_balance(pline, '[', ']')
while pline =~ '^\s*else'
let plnum = s:Get_matching_if(plnum, 1)
let pline = getline(plnum)
let ppb = s:Get_paren_balance(pline, '(', ')')
let pbb = s:Get_paren_balance(pline, '[', ']')
endwhile
let pind = indent(plnum)
if ind == (pind + &sw) && pline =~ '{$'
return ind
endif
let post_fun = 0
if pb < 0 && line !~ ')\s*[,&|\-\*+<>]$'
let post_fun = 1
while pb < 0 && lnum > 0
let lnum -= 1
let linepiece = SanitizeRLine(getline(lnum))
let pb += s:Get_paren_balance(linepiece, "(", ")")
let line = linepiece . line
endwhile
if line =~ '{$' && post_block == 0
return indent(lnum) + &sw
endif
" Now we can do some tests again
if cline =~ '^\s*{'
return indent(lnum)
endif
if post_block == 0
let newl = SanitizeRLine(line)
if newl =~ '\<\(if\|while\|for\|function\)\s*()$' || newl =~ '\<else$' || newl =~ '<-$'
return indent(lnum) + &sw
endif
endif
endif
if cline =~ '^\s*else'
if line =~ '<-\s*if\s*()'
return indent(lnum) + &sw
else
if line =~ '\<if\s*()'
return indent(lnum)
else
return indent(lnum) - &sw
endif
endif
endif
let bb = s:Get_paren_balance(line, '[', ']')
if bb < 0 && line =~ '.*]'
while bb < 0 && lnum > 0
let lnum -= 1
let linepiece = SanitizeRLine(getline(lnum))
let bb += s:Get_paren_balance(linepiece, "[", "]")
let line = linepiece . line
endwhile
let line = s:RDelete_parens(line)
endif
let plnum = s:Get_prev_line(lnum)
let ppost_else = 0
if plnum > 0
let pline = SanitizeRLine(getline(plnum))
let ppost_block = 0
if pline =~ '}$'
let ppost_block = 1
let plnum = s:Get_matching_brace(plnum, '{', '}', 0)
let pline = SanitizeRLine(getline(plnum))
if pline =~ '^\s*{$' && plnum > 0
let plnum = s:Get_prev_line(plnum)
let pline = SanitizeRLine(getline(plnum))
endif
endif
if pline =~ 'else$'
let ppost_else = 1
let plnum = s:Get_matching_if(plnum, 0)
let pline = SanitizeRLine(getline(plnum))
endif
if pline =~ '^\s*else\s*if\s*('
let pplnum = s:Get_prev_line(plnum)
let ppline = SanitizeRLine(getline(pplnum))
while ppline =~ '^\s*else\s*if\s*(' || ppline =~ '^\s*if\s*()\s*\S$'
let plnum = pplnum
let pline = ppline
let pplnum = s:Get_prev_line(plnum)
let ppline = SanitizeRLine(getline(pplnum))
endwhile
while ppline =~ '\<\(if\|while\|for\|function\)\s*()$' || ppline =~ '\<else$' || ppline =~ '<-$'
let plnum = pplnum
let pline = ppline
let pplnum = s:Get_prev_line(plnum)
let ppline = SanitizeRLine(getline(pplnum))
endwhile
endif
let ppb = s:Get_paren_balance(pline, '(', ')')
if ppb < 0 && (pline =~ ')\s*{$' || pline =~ ')$')
while ppb < 0 && plnum > 0
let plnum -= 1
let linepiece = SanitizeRLine(getline(plnum))
let ppb += s:Get_paren_balance(linepiece, "(", ")")
let pline = linepiece . pline
endwhile
let pline = s:RDelete_parens(pline)
endif
endif
let ind = indent(lnum)
let pind = indent(plnum)
if g:r_indent_align_args == 0 && pb != 0
let ind += pb * &sw
return ind
endif
if g:r_indent_align_args == 0 && bb != 0
let ind += bb * &sw
return ind
endif
if ind == pind || (ind == (pind + &sw) && pline =~ '{$' && ppost_else == 0)
return ind
endif
let pline = getline(plnum)
let pbb = s:Get_paren_balance(pline, '[', ']')
while pind < ind && plnum > 0 && ppb == 0 && pbb == 0
let ind = pind
let plnum = s:Get_prev_line(plnum)
let pline = getline(plnum)
let ppb = s:Get_paren_balance(pline, '(', ')')
let pbb = s:Get_paren_balance(pline, '[', ']')
while pline =~ '^\s*else'
let plnum = s:Get_matching_if(plnum, 1)
let pline = getline(plnum)
let ppb = s:Get_paren_balance(pline, '(', ')')
let pbb = s:Get_paren_balance(pline, '[', ']')
endwhile
let pind = indent(plnum)
if ind == (pind + &sw) && pline =~ '{$'
return ind
endif
endwhile
return ind
endfunction
" vim: sw=4
" vim: sw=2

View File

@@ -1,7 +1,7 @@
" Vim indent file
" Language: R Documentation (Help), *.Rd
" Author: Jakson Alves de Aquino <jalvesaq@gmail.com>
" Last Change: Wed Jul 09, 2014 07:34PM
" Last Change: Thu Oct 16, 2014 07:07AM
" Only load this indent file when no other was loaded.
@@ -12,22 +12,18 @@ runtime indent/r.vim
let s:RIndent = function(substitute(&indentexpr, "()", "", ""))
let b:did_indent = 1
setlocal indentkeys=0{,0},:,!^F,o,O,e
setlocal indentexpr=GetRHelpIndent()
" Only define the function once.
if exists("*GetRHelpIndent")
finish
endif
setlocal noautoindent
setlocal nocindent
setlocal nosmartindent
setlocal nolisp
setlocal indentkeys=0{,0},:,!^F,o,O,e
setlocal indentexpr=GetCorrectRHelpIndent()
" Only define the functions once.
if exists("*GetRHelpIndent")
finish
endif
function s:SanitizeRHelpLine(line)
let newline = substitute(a:line, '\\\\', "x", "g")
let newline = substitute(newline, '\\{', "x", "g")

View File

@@ -1,7 +1,7 @@
" Vim indent file
" Language: Rmd
" Author: Jakson Alves de Aquino <jalvesaq@gmail.com>
" Last Change: Wed Jul 09, 2014 07:33PM
" Last Change: Thu Jul 10, 2014 07:11PM
" Only load this indent file when no other was loaded.
@@ -33,10 +33,10 @@ function GetMdIndent()
endfunction
function GetRmdIndent()
if getline(".") =~ '^```{r .*}$' || getline(".") =~ '^```$'
if getline(".") =~ '^[ \t]*```{r .*}$' || getline(".") =~ '^[ \t]*```$'
return 0
endif
if search('^```{r', "bncW") > search('^```$', "bncW")
if search('^[ \t]*```{r', "bncW") > search('^[ \t]*```$', "bncW")
return s:RIndent()
else
return GetMdIndent()

View File

@@ -1,7 +1,7 @@
" Vim indent file
" Language: Rnoweb
" Author: Jakson Alves de Aquino <jalvesaq@gmail.com>
" Last Change: Wed Jul 09, 2014 07:28PM
" Last Change: Sun Mar 22, 2015 09:28AM
" Only load this indent file when no other was loaded.
@@ -23,7 +23,8 @@ if exists("*GetRnowebIndent")
endif
function GetRnowebIndent()
if getline(".") =~ "^<<.*>>=$"
let curline = getline(".")
if curline =~ '^<<.*>>=$' || curline =~ '^\s*@$'
return 0
endif
if search("^<<", "bncW") > search("^@", "bncW")

View File

@@ -1,8 +1,11 @@
" Vim indent file
" Language: Shell Script
" Maintainer: Peter Aronoff <telemachus@arpinum.org>
" Original Author: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2014-08-22
" Language: Shell Script
" Maintainer: Christian Brabandt <cb@256bit.org>
" Previous Maintainer: Peter Aronoff <telemachus@arpinum.org>
" Original Author: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2015-07-28
" License: Vim (see :h license)
" Repository: https://github.com/chrisbra/vim-sh-indent
if exists("b:did_indent")
finish
@@ -10,7 +13,7 @@ endif
let b:did_indent = 1
setlocal indentexpr=GetShIndent()
setlocal indentkeys+=0=then,0=do,0=else,0=elif,0=fi,0=esac,0=done,),0=;;,0=;&
setlocal indentkeys+=0=then,0=do,0=else,0=elif,0=fi,0=esac,0=done,0=end,),0=;;,0=;&
setlocal indentkeys+=0=fin,0=fil,0=fip,0=fir,0=fix
setlocal indentkeys-=:,0#
setlocal nosmartindent
@@ -54,8 +57,8 @@ function! GetShIndent()
let ind = indent(lnum)
let line = getline(lnum)
if line =~ '^\s*\%(if\|then\|do\|else\|elif\|case\|while\|until\|for\|select\)\>'
if line !~ '\<\%(fi\|esac\|done\)\>\s*\%(#.*\)\=$'
if line =~ '^\s*\%(if\|then\|do\|else\|elif\|case\|while\|until\|for\|select\|foreach\)\>'
if line !~ '\<\%(fi\|esac\|done\|end\)\>\s*\%(#.*\)\=$'
let ind += s:indent_value('default')
endif
elseif s:is_case_label(line, pnum)
@@ -76,7 +79,7 @@ function! GetShIndent()
let pine = line
let line = getline(v:lnum)
if line =~ '^\s*\%(then\|do\|else\|elif\|fi\|done\)\>' || line =~ '^\s*}'
if line =~ '^\s*\%(then\|do\|else\|elif\|fi\|done\|end\)\>' || line =~ '^\s*}'
let ind -= s:indent_value('default')
elseif line =~ '^\s*esac\>' && s:is_case_empty(getline(v:lnum - 1))
let ind -= s:indent_value('default')

View File

@@ -0,0 +1,67 @@
" Vim indent file
" Language: Tera Term Language (TTL)
" Based on Tera Term Version 4.86
" Maintainer: Ken Takata
" URL: https://github.com/k-takata/vim-teraterm
" Last Change: 2015 Jun 4
" Filenames: *.ttl
" License: VIM License
if exists("b:did_indent")
finish
endif
let b:did_indent = 1
setlocal nosmartindent
setlocal noautoindent
setlocal indentexpr=GetTeraTermIndent(v:lnum)
setlocal indentkeys=!^F,o,O,e
setlocal indentkeys+==elseif,=endif,=loop,=next,=enduntil,=endwhile
if exists("*GetTeraTermIndent")
finish
endif
" The shiftwidth() function is relatively new.
" Don't require it to exist.
if exists('*shiftwidth')
function s:sw() abort
return shiftwidth()
endfunction
else
function s:sw() abort
return &shiftwidth
endfunction
endif
function! GetTeraTermIndent(lnum)
let l:prevlnum = prevnonblank(a:lnum-1)
if l:prevlnum == 0
" top of file
return 0
endif
" grab the previous and current line, stripping comments.
let l:prevl = substitute(getline(l:prevlnum), ';.*$', '', '')
let l:thisl = substitute(getline(a:lnum), ';.*$', '', '')
let l:previ = indent(l:prevlnum)
let l:ind = l:previ
if l:prevl =~ '^\s*if\>.*\<then\s*$'
" previous line opened a block
let l:ind += s:sw()
endif
if l:prevl =~ '^\s*\%(elseif\|else\|do\|until\|while\|for\)\>'
" previous line opened a block
let l:ind += s:sw()
endif
if l:thisl =~ '^\s*\%(elseif\|else\|endif\|enduntil\|endwhile\|loop\|next\)\>'
" this line closed a block
let l:ind -= s:sw()
endif
return l:ind
endfunction
" vim: ts=8 sw=2 sts=2

View File

@@ -1,6 +1,7 @@
" Vim indent file
" Language: YAML
" Maintainer: Nikolai Pavlov <zyx.vim@gmail.com>
" Last Change: 2015 Sep 25
" Only load this indent file when no other was loaded.
if exists('b:did_indent')
@@ -115,8 +116,13 @@ function GetYAMLIndent(lnum)
\ s:liststartregex))
elseif line =~# s:mapkeyregex
" Same for line containing mapping key
return indent(s:FindPrevLEIndentedLineMatchingRegex(a:lnum,
\ s:mapkeyregex))
let prevmapline = s:FindPrevLEIndentedLineMatchingRegex(a:lnum,
\ s:mapkeyregex)
if getline(prevmapline) =~# '^\s*- '
return indent(prevmapline) + 2
else
return indent(prevmapline)
endif
elseif prevline =~# '^\s*- '
" - List with
" multiline scalar

View File

@@ -1,7 +1,10 @@
" Vim indent file
" Language: Zsh Shell Script
" Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2006-04-19
" Language: Zsh shell script
" Maintainer: Christian Brabandt <cb@256bit.org>
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2015-05-29
" License: Vim (see :h license)
" Repository: https://github.com/chrisbra/vim-zsh
if exists("b:did_indent")
finish

View File

@@ -0,0 +1,104 @@
" Vim Keymap file for russian characters, layout 'jcuken', MS Windows variant
" (slightly incompatible with XFree86 'ru' keymap - makes use of NUMERO SIGN)
" Useful mainly with utf-8 but may work with other encodings
" Derived from russian-jcuken.vim by Artem Chuprina <ran@ran.pp.ru>
" Typewriter variant of standart russian layout
" Maintainer: Denis Proskurin <danwerspb@gmail.com>
" Last Changed: 2015 May 15
" All characters are given literally, conversion to another encoding (e.g.,
" UTF-8) should work.
scriptencoding utf-8
let b:keymap_name = "ru"
loadkeymap
~ + CYRILLIC CAPITAL LETTER IO
` | CYRILLIC SMALL LETTER IO
F А CYRILLIC CAPITAL LETTER A
< Б CYRILLIC CAPITAL LETTER BE
D В CYRILLIC CAPITAL LETTER VE
U Г CYRILLIC CAPITAL LETTER GHE
L Д CYRILLIC CAPITAL LETTER DE
T Е CYRILLIC CAPITAL LETTER IE
: Ж CYRILLIC CAPITAL LETTER ZHE
P З CYRILLIC CAPITAL LETTER ZE
B И CYRILLIC CAPITAL LETTER I
Q Й CYRILLIC CAPITAL LETTER SHORT I
R К CYRILLIC CAPITAL LETTER KA
K Л CYRILLIC CAPITAL LETTER EL
V М CYRILLIC CAPITAL LETTER EM
Y Н CYRILLIC CAPITAL LETTER EN
J О CYRILLIC CAPITAL LETTER O
G П CYRILLIC CAPITAL LETTER PE
H Р CYRILLIC CAPITAL LETTER ER
C С CYRILLIC CAPITAL LETTER ES
N Т CYRILLIC CAPITAL LETTER TE
E У CYRILLIC CAPITAL LETTER U
A Ф CYRILLIC CAPITAL LETTER EF
{ Х CYRILLIC CAPITAL LETTER HA
W Ц CYRILLIC CAPITAL LETTER TSE
X Ч CYRILLIC CAPITAL LETTER CHE
I Ш CYRILLIC CAPITAL LETTER SHA
O Щ CYRILLIC CAPITAL LETTER SHCHA
} Ъ CYRILLIC CAPITAL LETTER HARD SIGN
S Ы CYRILLIC CAPITAL LETTER YERU
M Ь CYRILLIC CAPITAL LETTER SOFT SIGN
\" Э CYRILLIC CAPITAL LETTER E
> Ю CYRILLIC CAPITAL LETTER YU
Z Я CYRILLIC CAPITAL LETTER YA
f а CYRILLIC SMALL LETTER A
, б CYRILLIC SMALL LETTER BE
d в CYRILLIC SMALL LETTER VE
u г CYRILLIC SMALL LETTER GHE
l д CYRILLIC SMALL LETTER DE
t е CYRILLIC SMALL LETTER IE
; ж CYRILLIC SMALL LETTER ZHE
p з CYRILLIC SMALL LETTER ZE
b и CYRILLIC SMALL LETTER I
q й CYRILLIC SMALL LETTER SHORT I
r к CYRILLIC SMALL LETTER KA
k л CYRILLIC SMALL LETTER EL
v м CYRILLIC SMALL LETTER EM
y н CYRILLIC SMALL LETTER EN
j о CYRILLIC SMALL LETTER O
g п CYRILLIC SMALL LETTER PE
h р CYRILLIC SMALL LETTER ER
c с CYRILLIC SMALL LETTER ES
n т CYRILLIC SMALL LETTER TE
e у CYRILLIC SMALL LETTER U
a ф CYRILLIC SMALL LETTER EF
[ х CYRILLIC SMALL LETTER HA
w ц CYRILLIC SMALL LETTER TSE
x ч CYRILLIC SMALL LETTER CHE
i ш CYRILLIC SMALL LETTER SHA
o щ CYRILLIC SMALL LETTER SHCHA
] ъ CYRILLIC SMALL LETTER HARD SIGN
s ы CYRILLIC SMALL LETTER YERU
m ь CYRILLIC SMALL LETTER SOFT SIGN
' э CYRILLIC SMALL LETTER E
. ю CYRILLIC SMALL LETTER YU
z я CYRILLIC SMALL LETTER YA
@ "
# № NUMERO SIGN
$ ;
^ :
& ?
/ ё
? Ё
1
2 -
3 /
4 "
5 :
6 ,
7 .
8 _
9 ?
0 %
- !
= ;
\\ )
\| (

View File

@@ -303,7 +303,7 @@ fun! s:CleanUp(options, mode, startline, startcol, ...)
let regexp = s:Wholematch(matchline, a:1, currcol-1)
let endcol = matchend(matchline, regexp)
if endcol > currcol " This is NOT off by one!
execute "normal!" . (endcol - currcol) . "l"
call cursor(0, endcol)
endif
endif " a:0
endif " a:mode != "o" && etc.

View File

@@ -177,6 +177,7 @@ SynMenu DE.Doxygen.C\ with\ doxygen:c.doxygen
SynMenu DE.Doxygen.C++\ with\ doxygen:cpp.doxygen
SynMenu DE.Doxygen.IDL\ with\ doxygen:idl.doxygen
SynMenu DE.Doxygen.Java\ with\ doxygen:java.doxygen
SynMenu DE.Doxygen.DataScript\ with\ doxygen:datascript.doxygen
SynMenu DE.Dracula:dracula
SynMenu DE.DSSSL:dsl
SynMenu DE.DTD:dtd

View File

@@ -1,7 +1,7 @@
" These commands create the option window.
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2014 Nov 19
" Last Change: 2015 Jul 22
" If there already is an option window, jump to that one.
if bufwinnr("option-window") > 0
@@ -705,6 +705,8 @@ call append("$", "errorbells\tring the bell for error messages")
call <SID>BinOptionG("eb", &eb)
call append("$", "visualbell\tuse a visual bell instead of beeping")
call <SID>BinOptionG("vb", &vb)
call append("$", "belloff\tdo not ring the bell for these reasons")
call <SID>OptionG("belloff", &belloff)
if has("multi_lang")
call append("$", "helplang\tlist of preferred languages for finding help")
call <SID>OptionG("hlg", &hlg)
@@ -954,6 +956,9 @@ call <SID>BinOptionL("bin")
call append("$", "endofline\tlast line in the file has an end-of-line")
call append("$", "\t(local to buffer)")
call <SID>BinOptionL("eol")
call append("$", "fixendofline\tfixes missing end-of-line at end of text file")
call append("$", "\t(local to buffer)")
call <SID>BinOptionL("fixeol")
if has("multi_byte")
call append("$", "bomb\tprepend a Byte Order Mark to the file")
call append("$", "\t(local to buffer)")

View File

@@ -5,6 +5,7 @@ Look in the file for hints on how it can be disabled without deleting it.
getscriptPlugin.vim get latest version of Vim scripts
gzip.vim edit compressed files
logiPat.vim logical operators on patterns
matchparen.vim highlight paren matching the one under the cursor
netrwPlugin.vim edit files over a network and browse (remote) directories
rrhelper.vim used for --remote-wait editing

335
runtime/plugin/logiPat.vim Normal file
View File

@@ -0,0 +1,335 @@
" LogiPat:
" Author: Charles E. Campbell
" Date: Mar 13, 2013
" Version: 3
" Purpose: to do Boolean-logic based regular expression pattern matching
" Copyright: Copyright (C) 1999-2011 Charles E. Campbell {{{1
" Permission is hereby granted to use and distribute this code,
" with or without modifications, provided that this copyright
" notice is copied with it. Like most anything else that's free,
" LogiPat.vim is provided *as is* and comes with no warranty
" of any kind, either expressed or implied. By using this
" plugin, you agree that in no event will the copyright
" holder be liable for any damages resulting from the use
" of this software.
"
" Usage: {{{1
" :LogiPat ...
"
" Boolean logic supported:
" () grouping operators
" ! not the following pattern
" | logical or
" & logical and
" "..pattern.."
" Example: {{{1
" :LogiPat !("january"|"february")
" would match all strings not containing the strings january
" or february
" GetLatestVimScripts: 1290 1 :AutoInstall: LogiPat.vim
"
" Behold, you will conceive in your womb, and bring forth a son, {{{1
" and will call his name Jesus. He will be great, and will be
" called the Son of the Most High. The Lord God will give him the
" throne of his father, David, and he will reign over the house of
" Jacob forever. There will be no end to his kingdom. (Luke 1:31-33 WEB)
" ---------------------------------------------------------------------
" Load Once: {{{1
if &cp || exists("loaded_logipat")
finish
endif
let g:loaded_LogiPat = "v3"
let s:keepcpo = &cpo
set cpo&vim
"DechoRemOn
" ---------------------------------------------------------------------
" Public Interface: {{{1
com! -nargs=* LogiPat call LogiPat(<q-args>,1)
silent! com -nargs=* LP call LogiPat(<q-args>,1)
com! -nargs=+ ELP echomsg LogiPat(<q-args>)
com! -nargs=+ LogiPatFlags let s:LogiPatFlags="<args>"
silent! com -nargs=+ LPF let s:LogiPatFlags="<args>"
" =====================================================================
" Functions: {{{1
" ---------------------------------------------------------------------
" LogiPat: this function interprets the boolean-logic pattern {{{2
fun! LogiPat(pat,...)
" call Dfunc("LogiPat(pat<".a:pat.">)")
" LogiPat(pat,dosearch)
if a:0 > 0
let dosearch= a:1
else
let dosearch= 0
endif
let s:npatstack = 0
let s:nopstack = 0
let s:preclvl = 0
let expr = a:pat
" Lexer/Parser
while expr != ""
" call Decho("expr<".expr.">")
if expr =~ '^"'
" push a Pattern; accept "" as a single " in the pattern
let expr = substitute(expr,'^\s*"','','')
let pat = substitute(expr,'^\(\%([^"]\|\"\"\)\{-}\)"\([^"].*$\|$\)','\1','')
let pat = substitute(pat,'""','"','g')
let expr = substitute(expr,'^\(\%([^"]\|\"\"\)\{-}\)"\([^"].*$\|$\)','\2','')
let expr = substitute(expr,'^\s*','','')
" call Decho("pat<".pat."> expr<".expr.">")
call s:LP_PatPush('.*'.pat.'.*')
elseif expr =~ '^[!()|&]'
" push an operator
let op = strpart(expr,0,1)
let expr = strpart(expr,strlen(op))
" allow for those who can't resist doubling their and/or operators
if op =~ '[|&]' && expr[0] == op
let expr = strpart(expr,strlen(op))
endif
call s:LP_OpPush(op)
elseif expr =~ '^\s'
" skip whitespace
let expr= strpart(expr,1)
else
echoerr "operator<".strpart(expr,0,1)."> not supported (yet)"
let expr= strpart(expr,1)
endif
endwhile
" Final Execution
call s:LP_OpPush('Z')
let result= s:LP_PatPop(1)
" call Decho("result=".result)
" sanity checks and cleanup
if s:npatstack > 0
echoerr s:npatstack." patterns left on stack!"
let s:npatstack= 0
endif
if s:nopstack > 0
echoerr s:nopstack." operators left on stack!"
let s:nopstack= 0
endif
" perform the indicated search
if dosearch
if exists("s:LogiPatFlags")
" call Decho("search(result<".result."> LogiPatFlags<".s:LogiPatFlags.">)")
call search(result,s:LogiPatFlags)
else
" call Decho("search(result<".result.">)")
call search(result)
endif
let @/= result
endif
" call Dret("LogiPat ".result)
return result
endfun
" ---------------------------------------------------------------------
" s:String: Vim6.4 doesn't have string() {{{2
func! s:String(str)
return "'".escape(a:str, '"')."'"
endfunc
" ---------------------------------------------------------------------
" LP_PatPush: {{{2
fun! s:LP_PatPush(pat)
" call Dfunc("LP_PatPush(pat<".a:pat.">)")
let s:npatstack = s:npatstack + 1
let s:patstack_{s:npatstack} = a:pat
" call s:StackLook("patpush") "Decho
" call Dret("LP_PatPush : npatstack=".s:npatstack)
endfun
" ---------------------------------------------------------------------
" LP_PatPop: pop a number/variable from LogiPat's pattern stack {{{2
fun! s:LP_PatPop(lookup)
" call Dfunc("LP_PatPop(lookup=".a:lookup.")")
if s:npatstack > 0
let ret = s:patstack_{s:npatstack}
let s:npatstack = s:npatstack - 1
else
let ret= "---error---"
echoerr "(LogiPat) invalid expression"
endif
" call s:StackLook("patpop") "Decho
" call Dret("LP_PatPop ".ret)
return ret
endfun
" ---------------------------------------------------------------------
" LP_OpPush: {{{2
fun! s:LP_OpPush(op)
" call Dfunc("LP_OpPush(op<".a:op.">)")
" determine new operator's precedence level
if a:op == '('
let s:preclvl= s:preclvl + 10
let preclvl = s:preclvl
elseif a:op == ')'
let s:preclvl= s:preclvl - 10
if s:preclvl < 0
let s:preclvl= 0
echoerr "too many )s"
endif
let preclvl= s:preclvl
elseif a:op =~ '|'
let preclvl= s:preclvl + 2
elseif a:op =~ '&'
let preclvl= s:preclvl + 4
elseif a:op == '!'
let preclvl= s:preclvl + 6
elseif a:op == 'Z'
let preclvl= -1
else
echoerr "expr<".expr."> not supported (yet)"
let preclvl= s:preclvl
endif
" call Decho("new operator<".a:op."> preclvl=".preclvl)
" execute higher-precdence operators
" call Decho("execute higher-precedence operators")
call s:LP_Execute(preclvl)
" push new operator onto operator-stack
" call Decho("push new operator<".a:op."> onto stack with preclvl=".preclvl." at nopstack=".(s:nopstack+1))
if a:op =~ '!'
let s:nopstack = s:nopstack + 1
let s:opprec_{s:nopstack} = preclvl
let s:opstack_{s:nopstack} = a:op
elseif a:op =~ '|'
let s:nopstack = s:nopstack + 1
let s:opprec_{s:nopstack} = preclvl
let s:opstack_{s:nopstack} = a:op
elseif a:op == '&'
let s:nopstack = s:nopstack + 1
let s:opprec_{s:nopstack} = preclvl
let s:opstack_{s:nopstack} = a:op
endif
" call s:StackLook("oppush") "Decho
" call Dret("LP_OpPush : s:preclvl=".s:preclvl)
endfun
" ---------------------------------------------------------------------
" LP_Execute: execute operators from opstack using pattern stack {{{2
fun! s:LP_Execute(preclvl)
" call Dfunc("LP_Execute(preclvl=".a:preclvl.") npatstack=".s:npatstack." nopstack=".s:nopstack)
" execute all higher precedence operators
while s:nopstack > 0 && a:preclvl < s:opprec_{s:nopstack}
let op= s:opstack_{s:nopstack}
" call Decho("op<".op."> nop=".s:nopstack." [preclvl=".a:preclvl."] < [opprec_".s:nopstack."=".s:opprec_{s:nopstack}."]")
let s:nopstack = s:nopstack - 1
if op == '!'
let n1= s:LP_PatPop(1)
call s:LP_PatPush(s:LP_Not(n1))
elseif op == '|'
let n1= s:LP_PatPop(1)
let n2= s:LP_PatPop(1)
call s:LP_PatPush(s:LP_Or(n2,n1))
elseif op =~ '&'
let n1= s:LP_PatPop(1)
let n2= s:LP_PatPop(1)
call s:LP_PatPush(s:LP_And(n2,n1))
endif
" call s:StackLook("execute") "Decho
endwhile
" call Dret("LP_Execute")
endfun
" ---------------------------------------------------------------------
" LP_Not: writes a logical-not for a pattern {{{2
fun! s:LP_Not(pat)
" call Dfunc("LP_Not(pat<".a:pat.">)")
if a:pat =~ '^\.\*' && a:pat =~ '\.\*$'
let pat= substitute(a:pat,'^\.\*\(.*\)\.\*$','\1','')
let ret= '^\%(\%('.pat.'\)\@!.\)*$'
else
let ret= '^\%(\%('.a:pat.'\)\@!.\)*$'
endif
" call Dret("LP_Not ".ret)
return ret
endfun
" ---------------------------------------------------------------------
" LP_Or: writes a logical-or branch using two patterns {{{2
fun! s:LP_Or(pat1,pat2)
" call Dfunc("LP_Or(pat1<".a:pat1."> pat2<".a:pat2.">)")
let ret= '\%('.a:pat1.'\|'.a:pat2.'\)'
" call Dret("LP_Or ".ret)
return ret
endfun
" ---------------------------------------------------------------------
" LP_And: writes a logical-and concat using two patterns {{{2
fun! s:LP_And(pat1,pat2)
" call Dfunc("LP_And(pat1<".a:pat1."> pat2<".a:pat2.">)")
let ret= '\%('.a:pat1.'\&'.a:pat2.'\)'
" call Dret("LP_And ".ret)
return ret
endfun
" ---------------------------------------------------------------------
" StackLook: {{{2
fun! s:StackLook(description)
" call Dfunc("StackLook(description<".a:description.">)")
let iop = 1
let ifp = 1
" call Decho("Pattern Operator")
" print both pattern and operator
while ifp <= s:npatstack && iop <= s:nopstack
let fp = s:patstack_{ifp}
let op = s:opstack_{iop}." (P".s:opprec_{s:nopstack}.')'
let fplen= strlen(fp)
if fplen < 30
let fp= fp.strpart(" ",1,30-fplen)
endif
" call Decho(fp.op)
let ifp = ifp + 1
let iop = iop + 1
endwhile
" print just pattern
while ifp <= s:npatstack
let fp = s:patstack_{ifp}
" call Decho(fp)
let ifp = ifp + 1
endwhile
" print just operator
while iop <= s:nopstack
let op = s:opstack_{iop}." (P".s:opprec_{s:nopstack}.')'
" call Decho(" ".op)
let iop = iop + 1
endwhile
" call Dret("StackLook")
endfun
" ---------------------------------------------------------------------
" Cleanup And Modeline: {{{1
let &cpo= s:keepcpo
unlet s:keepcpo
" vim: ts=4 fdm=marker

View File

@@ -25,16 +25,16 @@ $SPELLDIR/br.utf-8.spl : $FILES
#
# Fetching the files from OpenOffice.org.
#
OODIR = http://extensions.libreoffice.org/extension-center/an-drouizig-breton-spellchecker/releases/0.11/
:attr {fetch = $OODIR/%file%} dict-br-0.11.oxt
OODIR = http://extensions.libreoffice.org/extension-center/an-drouizig-breton-spellchecker/releases/0.13/
:attr {fetch = $OODIR/%file%} difazier-an-drouizig-0_13.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.11.oxt
:sys $UNZIP dict-br-0.11.oxt
:delete dict-br-0.11.oxt
:fetch difazier-an-drouizig-0_13.oxt
:sys $UNZIP difazier-an-drouizig-0_13.oxt
:delete difazier-an-drouizig-0_13.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.11.oxt
:fetch difazier-an-drouizig-0_13.oxt
:mkdir tmp
:cd tmp
@try:
@import stat
:sys $UNZIP ../dict-br-0.11.oxt
:sys $UNZIP ../difazier-an-drouizig-0_13.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.11.oxt
:delete difazier-an-drouizig-0_13.oxt
# vim: set sts=4 sw=4 :

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -161,6 +161,7 @@ an 50.30.290 &Syntax.DE.Doxygen.C\ with\ doxygen :cal SetSyn("c.doxygen")<CR>
an 50.30.300 &Syntax.DE.Doxygen.C++\ with\ doxygen :cal SetSyn("cpp.doxygen")<CR>
an 50.30.310 &Syntax.DE.Doxygen.IDL\ with\ doxygen :cal SetSyn("idl.doxygen")<CR>
an 50.30.320 &Syntax.DE.Doxygen.Java\ with\ doxygen :cal SetSyn("java.doxygen")<CR>
an 50.30.320 &Syntax.DE.Doxygen.DataScript\ with\ doxygen :cal SetSyn("datascript.doxygen")<CR>
an 50.30.330 &Syntax.DE.Dracula :cal SetSyn("dracula")<CR>
an 50.30.340 &Syntax.DE.DSSSL :cal SetSyn("dsl")<CR>
an 50.30.350 &Syntax.DE.DTD :cal SetSyn("dtd")<CR>

View File

@@ -1,8 +1,9 @@
" Vim syntax file
" Language: Asterisk config file
" Maintainer: brc007
" Maintainer: Jean Aunis <jean.aunis@yahoo.fr>
" Previous Maintainer: brc007
" Updated for 1.2 by Tilghman Lesher (Corydon76)
" Last Change: 2006 Mar 20
" Last Change: 2015 Feb 27
" version 0.4
"
if version < 600
@@ -17,18 +18,19 @@ syn sync fromstart
syn keyword asteriskTodo TODO contained
syn match asteriskComment ";.*" contains=asteriskTodo
syn match asteriskContext "\[.\{-}\]"
syn match asteriskExten "^\s*exten\s*=>\?\s*[^,]\+" contains=asteriskPattern
syn match asteriskExten "^\s*\zsexten\s*=>\?\s*[^,]\+\ze," contains=asteriskPattern nextgroup=asteriskPriority
syn match asteriskExten "^\s*\zssame\s*=>\?\s*\ze" nextgroup=asteriskPriority
syn match asteriskExten "^\s*\(register\|channel\|ignorepat\|include\|\(no\)\?load\)\s*=>\?"
syn match asteriskPattern "_\(\[[[:alnum:]#*\-]\+\]\|[[:alnum:]#*]\)*\.\?" contained
syn match asteriskPattern "[^A-Za-z0-9,]\zs[[:alnum:]#*]\+\ze" contained
syn match asteriskApp ",\zs[a-zA-Z]\+\ze$"
syn match asteriskApp ",\zs[a-zA-Z]\+\ze("
" Digits plus oldlabel (newlabel)
syn match asteriskPriority ",\zs[[:digit:]]\+\(+[[:alpha:]][[:alnum:]_]*\)\?\(([[:alpha:]][[:alnum:]_]*)\)\?\ze," contains=asteriskLabel
syn match asteriskPriority "\zs[[:digit:]]\+\(+[[:alpha:]][[:alnum:]_]*\)\?\(([[:alpha:]][[:alnum:]_]*)\)\?\ze," contains=asteriskLabel
" oldlabel plus digits (newlabel)
syn match asteriskPriority ",\zs[[:alpha:]][[:alnum:]_]*+[[:digit:]]\+\(([[:alpha:]][[:alnum:]_]*)\)\?\ze," contains=asteriskLabel
syn match asteriskPriority "\zs[[:alpha:]][[:alnum:]_]*+[[:digit:]]\+\(([[:alpha:]][[:alnum:]_]*)\)\?\ze," contains=asteriskLabel
" s or n plus digits (newlabel)
syn match asteriskPriority ",\zs[sn]\(+[[:digit:]]\+\)\?\(([[:alpha:]][[:alnum:]_]*)\)\?\ze," contains=asteriskLabel
syn match asteriskPriority "\zs[sn]\(+[[:digit:]]\+\)\?\(([[:alpha:]][[:alnum:]_]*)\)\?\ze," contains=asteriskLabel
syn match asteriskLabel "(\zs[[:alpha:]][[:alnum:]]*\ze)" contained
syn match asteriskError "^\s*#\s*[[:alnum:]]*"
syn match asteriskInclude "^\s*#\s*\(include\|exec\)\s.*"

View File

@@ -1,7 +1,7 @@
" Vim syntax file
" Language: C
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2014 Nov 13
" Last Change: 2015 Mar 05
" Quit when a (custom) syntax file was already loaded
if exists("b:current_syntax")
@@ -47,16 +47,17 @@ if !exists("c_no_cformat")
endif
" cCppString: same as cString, but ends at end of line
if s:ft ==# "cpp" && !exists("cpp_no_cpp11")
if s:ft ==# "cpp" && !exists("cpp_no_cpp11") && !exists("c_no_cformat")
" ISO C++11
syn region cString start=+\(L\|u\|u8\|U\|R\|LR\|u8R\|uR\|UR\)\="+ skip=+\\\\\|\\"+ end=+"+ contains=cSpecial,cFormat,@Spell extend
syn region cCppString start=+\(L\|u\|u8\|U\|R\|LR\|u8R\|uR\|UR\)\="+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=cSpecial,cFormat,@Spell
elseif s:ft ==# "c" && !exists("c_no_c11")
elseif s:ft ==# "c" && !exists("c_no_c11") && !exists("c_no_cformat")
" ISO C99
syn region cString start=+\%(L\|U\|u8\)\="+ skip=+\\\\\|\\"+ end=+"+ contains=cSpecial,cFormat,@Spell extend
syn region cCppString start=+\%(L\|U\|u8\)\="+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=cSpecial,cFormat,@Spell
else
" older C or C++
syn match cFormat display "%%" contained
syn region cString start=+L\="+ skip=+\\\\\|\\"+ end=+"+ contains=cSpecial,cFormat,@Spell extend
syn region cCppString start=+L\="+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=cSpecial,cFormat,@Spell
endif
@@ -80,7 +81,11 @@ syn match cSpecialCharacter display "L'\\x\x\+'"
if (s:ft ==# "c" && !exists("c_no_c11")) || (s:ft ==# "cpp" && !exists("cpp_no_cpp11"))
" ISO C11 or ISO C++ 11
syn region cString start=+\%(U\|u8\=\)"+ skip=+\\\\\|\\"+ end=+"+ contains=cSpecial,cFormat,@Spell extend
if exists("c_no_cformat")
syn region cString start=+\%(U\|u8\=\)"+ skip=+\\\\\|\\"+ end=+"+ contains=cSpecial,@Spell extend
else
syn region cString start=+\%(U\|u8\=\)"+ skip=+\\\\\|\\"+ end=+"+ contains=cSpecial,cFormat,@Spell extend
endif
syn match cCharacter "[Uu]'[^\\]'"
syn match cCharacter "[Uu]'[^']*'" contains=cSpecial
if exists("c_gnu")
@@ -330,6 +335,8 @@ if !exists("c_no_ansi") || exists("c_ansi_constants") || exists("c_gnu")
" POSIX 2001
syn keyword cConstant SIGBUS SIGPOLL SIGPROF SIGSYS SIGURG
syn keyword cConstant SIGVTALRM SIGXCPU SIGXFSZ
" non-POSIX signals
syn keyword cConstant SIGWINCH SIGINFO
" Add POSIX errors as well
syn keyword cConstant E2BIG EACCES EAGAIN EBADF EBADMSG EBUSY
syn keyword cConstant ECANCELED ECHILD EDEADLK EDOM EEXIST EFAULT
@@ -387,8 +394,13 @@ endif
syn cluster cLabelGroup contains=cUserLabel
syn match cUserCont display "^\s*\I\i*\s*:$" contains=@cLabelGroup
syn match cUserCont display ";\s*\I\i*\s*:$" contains=@cLabelGroup
syn match cUserCont display "^\s*\I\i*\s*:[^:]"me=e-1 contains=@cLabelGroup
syn match cUserCont display ";\s*\I\i*\s*:[^:]"me=e-1 contains=@cLabelGroup
if s:ft ==# 'cpp'
syn match cUserCont display "^\s*\%(class\|struct\|enum\)\@!\I\i*\s*:[^:]"me=e-1 contains=@cLabelGroup
syn match cUserCont display ";\s*\%(class\|struct\|enum\)\@!\I\i*\s*:[^:]"me=e-1 contains=@cLabelGroup
else
syn match cUserCont display "^\s*\I\i*\s*:[^:]"me=e-1 contains=@cLabelGroup
syn match cUserCont display ";\s*\I\i*\s*:[^:]"me=e-1 contains=@cLabelGroup
endif
syn match cUserLabel display "\I\i*" contained

View File

@@ -4,7 +4,7 @@
" Language: CMake
" Author: Andy Cedilnik <andy.cedilnik@kitware.com>
" Maintainer: Karthik Krishnan <karthik.krishnan@kitware.com>
" Last Change: 2012 Jun 01
" Last Change: 2015 Sep 25
" (Dominique Pelle added @Spell)
" Version: $Revision: 1.10 $
"
@@ -31,9 +31,9 @@ syn region cmakeVariableValue start=/\${/ end=/}/
\ contained oneline contains=CONTAINED,cmakeTodo
syn region cmakeEnvironment start=/\$ENV{/ end=/}/
\ contained oneline contains=CONTAINED,cmakeTodo
syn region cmakeString start=/"/ end=/"/
syn region cmakeString start=/"/ end=/"/
\ contains=CONTAINED,cmakeTodo,cmakeOperators
syn region cmakeArguments start=/(/ end=/)/
syn region cmakeArguments start=/(/ end=/)/
\ contains=ALLBUT,cmakeArguments,cmakeTodo
syn keyword cmakeSystemVariables
\ WIN32 UNIX APPLE CYGWIN BORLAND MINGW MSVC MSVC_IDE MSVC60 MSVC70 MSVC71 MSVC80 MSVC90
@@ -44,11 +44,11 @@ syn keyword cmakeDeprecated ABSTRACT_FILES BUILD_NAME SOURCE_FILES SOURCE_FILES_
\ nextgroup=cmakeArguments
" The keywords are generated as: cmake --help-command-list | tr "\n" " "
syn keyword cmakeStatement
syn keyword cmakeStatement
\ ADD_CUSTOM_COMMAND ADD_CUSTOM_TARGET ADD_DEFINITIONS ADD_DEPENDENCIES ADD_EXECUTABLE ADD_LIBRARY ADD_SUBDIRECTORY ADD_TEST AUX_SOURCE_DIRECTORY BUILD_COMMAND BUILD_NAME CMAKE_MINIMUM_REQUIRED CONFIGURE_FILE CREATE_TEST_SOURCELIST ELSE ELSEIF ENABLE_LANGUAGE ENABLE_TESTING ENDFOREACH ENDFUNCTION ENDIF ENDMACRO ENDWHILE EXEC_PROGRAM EXECUTE_PROCESS EXPORT_LIBRARY_DEPENDENCIES FILE FIND_FILE FIND_LIBRARY FIND_PACKAGE FIND_PATH FIND_PROGRAM FLTK_WRAP_UI FOREACH FUNCTION GET_CMAKE_PROPERTY GET_DIRECTORY_PROPERTY GET_FILENAME_COMPONENT GET_SOURCE_FILE_PROPERTY GET_TARGET_PROPERTY GET_TEST_PROPERTY IF INCLUDE INCLUDE_DIRECTORIES INCLUDE_EXTERNAL_MSPROJECT INCLUDE_REGULAR_EXPRESSION INSTALL INSTALL_FILES INSTALL_PROGRAMS INSTALL_TARGETS LINK_DIRECTORIES LINK_LIBRARIES LIST LOAD_CACHE LOAD_COMMAND MACRO MAKE_DIRECTORY MARK_AS_ADVANCED MATH MESSAGE OPTION OUTPUT_REQUIRED_FILES PROJECT QT_WRAP_CPP QT_WRAP_UI REMOVE REMOVE_DEFINITIONS SEPARATE_ARGUMENTS SET SET_DIRECTORY_PROPERTIES SET_SOURCE_FILES_PROPERTIES SET_TARGET_PROPERTIES SET_TESTS_PROPERTIES SITE_NAME SOURCE_GROUP STRING SUBDIR_DEPENDS SUBDIRS TARGET_LINK_LIBRARIES TRY_COMPILE TRY_RUN UNSET USE_MANGLED_MESA UTILITY_SOURCE VARIABLE_REQUIRES VTK_MAKE_INSTANTIATOR VTK_WRAP_JAVA VTK_WRAP_PYTHON VTK_WRAP_TCL WHILE WRITE_FILE
\ nextgroup=cmakeArguments
syn keyword cmakeTodo
\ TODO FIXME XXX
syn keyword cmakeTodo
\ TODO FIXME XXX
\ contained
" Define the default highlighting.

View File

@@ -1,10 +1,10 @@
" Vim syntax file
" Language: COBOL
" Maintainer: Tim Pope <vimNOSPAM@tpope.info>
" Language: COBOL
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" (formerly Davyd Ondrejko <vondraco@columbus.rr.com>)
" (formerly Sitaram Chamarty <sitaram@diac.com> and
" James Mitchell <james_mitchell@acm.org>)
" $Id: cobol.vim,v 1.2 2007/05/05 18:23:43 vimboss Exp $
" James Mitchell <james_mitchell@acm.org>)
" Last Change: 2015 Feb 13
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
@@ -145,7 +145,7 @@ syn match cobolString /'[^']*\('\|$\)/
syn match cobolIndicator "\%7c[D-]" contained
if exists("cobol_legacy_code")
syn region cobolCondFlow contains=ALLBUT,cobolLine start="\<\(IF\|INVALID\|END\|EOP\)\>" skip=/\('\|"\)[^"]\{-}\("\|'\|$\)/ end="\." keepend
syn region cobolCondFlow contains=ALLBUT,cobolLine,cobolBadLine start="\<\(IF\|INVALID\|END\|EOP\)\>" skip=/\('\|"\)[^"]\{-}\("\|'\|$\)/ end="\." keepend
endif
" many legacy sources have junk in columns 1-6: must be before others

View File

@@ -1,8 +1,8 @@
" Vim syntax file
" Language: C++
" Current Maintainer: vim-jp (https://github.com/vim-jp/cpp-vim)
" Current Maintainer: vim-jp (https://github.com/vim-jp/vim-cpp)
" Previous Maintainer: Ken Shan <ccshan@post.harvard.edu>
" Last Change: 2014 May 14
" Last Change: 2015 May 04
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
@@ -32,14 +32,21 @@ syn match cppCast "\<\(const\|static\|dynamic\|reinterpret\)_cast\s*$"
syn keyword cppStorageClass mutable
syn keyword cppStructure class typename template namespace
syn keyword cppBoolean true false
syn keyword cppConstant __cplusplus
" C++ 11 extensions
if !exists("cpp_no_cpp11")
syn keyword cppType override final
syn keyword cppExceptions noexcept
syn keyword cppStorageClass constexpr decltype
syn keyword cppStorageClass constexpr decltype thread_local
syn keyword cppConstant nullptr
syn region cppRawString matchgroup=cppRawDelimiter start=+\%(u8\|[uLU]\)\=R"\z([[:alnum:]_{}[\]#<>%:;.?*\+\-/\^&|~!=,"']\{,16}\)(+ end=+)\z1"+ contains=@Spell
syn keyword cppConstant ATOMIC_FLAG_INIT ATOMIC_VAR_INIT
syn keyword cppConstant ATOMIC_BOOL_LOCK_FREE ATOMIC_CHAR_LOCK_FREE
syn keyword cppConstant ATOMIC_CHAR16_T_LOCK_FREE ATOMIC_CHAR32_T_LOCK_FREE
syn keyword cppConstant ATOMIC_WCHAR_T_LOCK_FREE ATOMIC_SHORT_LOCK_FREE
syn keyword cppConstant ATOMIC_INT_LOCK_FREE ATOMIC_LONG_LOCK_FREE
syn keyword cppConstant ATOMIC_LLONG_LOCK_FREE ATOMIC_POINTER_LOCK_FREE
syn region cppRawString matchgroup=cppRawStringDelimiter start=+\%(u8\|[uLU]\)\=R"\z([[:alnum:]_{}[\]#<>%:;.?*\+\-/\^&|~!=,"']\{,16}\)(+ end=+)\z1"+ contains=@Spell
endif
" The minimum and maximum operators in GNU C++
@@ -63,7 +70,7 @@ if version >= 508 || !exists("did_cpp_syntax_inits")
HiLink cppStructure Structure
HiLink cppBoolean Boolean
HiLink cppConstant Constant
HiLink cppRawDelimiter Delimiter
HiLink cppRawStringDelimiter Delimiter
HiLink cppRawString String
delcommand HiLink
endif

View File

@@ -1,8 +1,8 @@
" Vim syntax file
" Language: C-shell (csh)
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
" Version: 11
" Last Change: Oct 23, 2014
" Version: 11
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_CSH
" For version 5.x: Clear all syntax items

View File

@@ -6,7 +6,7 @@
" Nikolai Weibull (Add CSS2 support)
" Maintainer: Jules Wang <w.jq0722@gmail.com>
" URL: https://github.com/JulesWang/css.vim
" Last Change: 2013 Nov.27
" Last Change: 2015 Apr.17
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
@@ -26,18 +26,19 @@ set cpo&vim
syn case ignore
" All HTML4 tags
syn keyword cssTagName abbr acronym address applet area a b base
syn keyword cssTagName basefont bdo big blockquote body br button
syn keyword cssTagName caption center cite code col colgroup dd del
syn keyword cssTagName dfn dir div dl dt em fieldset font form frame
syn keyword cssTagName frameset h1 h2 h3 h4 h5 h6 head hr html img i
syn keyword cssTagName iframe img input ins isindex kbd label legend li
syn keyword cssTagName link map menu meta noframes noscript ol optgroup
syn keyword cssTagName option p param pre q s samp script select small
syn keyword cssTagName span strike strong style sub sup table tbody td
syn keyword cssTagName textarea tfoot th thead title tr tt ul u var
" HTML4 tags
syn keyword cssTagName abbr address area a b base
syn keyword cssTagName bdo blockquote body br button
syn keyword cssTagName caption cite code col colgroup dd del
syn keyword cssTagName dfn div dl dt em fieldset form
syn keyword cssTagName h1 h2 h3 h4 h5 h6 head hr html img i
syn keyword cssTagName iframe input ins isindex kbd label legend li
syn keyword cssTagName link map menu meta noscript ol optgroup
syn keyword cssTagName option p param pre q s samp script small
syn keyword cssTagName span strong sub sup tbody td
syn keyword cssTagName textarea tfoot th thead title tr ul u var
syn keyword cssTagName object svg
syn match cssTagName /\<select\>\|\<style\>\|\<table\>/
" 34 HTML5 tags
syn keyword cssTagName article aside audio bdi canvas command data
@@ -47,8 +48,8 @@ syn keyword cssTagName output progress rt rp ruby section
syn keyword cssTagName source summary time track video wbr
" Tags not supported in HTML5
syn keyword cssDeprecated acronym applet basefont big center dir
syn keyword cssDeprecated font frame frameset noframes strike tt
" acronym applet basefont big center dir
" font frame frameset noframes strike tt
syn match cssTagName "\*"
@@ -70,13 +71,13 @@ endtry
" digits
syn match cssValueInteger contained "[-+]\=\d\+" contains=cssUnitDecorators
syn match cssValueNumber contained "[-+]\=\d\+\(\.\d*\)\=" contains=cssUnitDecorators
syn match cssValueLength contained "[-+]\=\d\+\(\.\d*\)\=\(%\|mm\|cm\|in\|pt\|pc\|em\|ex\|px\|rem\|dpi\|dppx\|dpcm\)" contains=cssUnitDecorators
syn match cssValueAngle contained "[-+]\=\d\+\(\.\d*\)\=\(deg\|grad\|rad\)" contains=cssUnitDecorators
syn match cssValueTime contained "+\=\d\+\(\.\d*\)\=\(ms\|s\)" contains=cssUnitDecorators
syn match cssValueFrequency contained "+\=\d\+\(\.\d*\)\=\(Hz\|kHz\)" contains=cssUnitDecorators
syn match cssValueLength contained "[-+]\=\d\+\(\.\d*\)\=\(%\|mm\|cm\|in\|pt\|pc\|em\|ex\|px\|rem\|dpi\|dppx\|dpcm\)\>" contains=cssUnitDecorators
syn match cssValueAngle contained "[-+]\=\d\+\(\.\d*\)\=\(deg\|grad\|rad\)\>" contains=cssUnitDecorators
syn match cssValueTime contained "+\=\d\+\(\.\d*\)\=\(ms\|s\)\>" contains=cssUnitDecorators
syn match cssValueFrequency contained "+\=\d\+\(\.\d*\)\=\(Hz\|kHz\)\>" contains=cssUnitDecorators
syn match cssIncludeKeyword /@\(-[a-z]+-\)\=\(media\|keyframes\|import\|charset\|namespace\|page\)/ contained
syn match cssIncludeKeyword /@\(-[a-z]\+-\)\=\(media\|keyframes\|import\|charset\|namespace\|page\)/ contained
" @media
syn region cssInclude start=/@media\>/ end=/\ze{/ skipwhite skipnl contains=cssMediaProp,cssValueLength,cssMediaKeyword,cssValueInteger,cssMediaAttr,cssVendor,cssMediaType,cssIncludeKeyword,cssMediaComma,cssComment nextgroup=cssMediaBlock
syn keyword cssMediaType contained screen print aural braille embossed handheld projection tty tv speech all contained skipwhite skipnl
@@ -86,7 +87,7 @@ syn match cssMediaComma "," skipwhite skipnl contained
" Reference: http://www.w3.org/TR/css3-mediaqueries/
syn keyword cssMediaProp contained width height orientation scan grid
syn match cssMediaProp contained /\(\(device\)-\)\=aspect-ratio/
syn match cssMediaProp contained /\(\(max\|min\)-\)\=\(\(device\)-\)\=aspect-ratio/
syn match cssMediaProp contained /\(\(max\|min\)-\)\=device-pixel-ratio/
syn match cssMediaProp contained /\(\(max\|min\)-\)\=device-\(height\|width\)/
syn match cssMediaProp contained /\(\(max\|min\)-\)\=\(height\|width\|resolution\|monochrome\|color\(-index\)\=\)/
@@ -104,7 +105,7 @@ syn keyword cssPageProp contained orphans widows
" @keyframe
" http://www.w3.org/TR/css3-animations/#keyframes
syn match cssKeyFrame "@\(-[a-z]+-\)\=keyframes\>[^{]*{\@=" nextgroup=cssKeyFrameWrap contains=cssVendor,cssIncludeKeyword skipwhite skipnl transparent
syn match cssKeyFrame "@\(-[a-z]\+-\)\=keyframes\>[^{]*{\@=" nextgroup=cssKeyFrameWrap contains=cssVendor,cssIncludeKeyword skipwhite skipnl transparent
syn region cssKeyFrameWrap contained transparent matchgroup=cssBraces start="{" end="}" contains=cssKeyFrameSelector
syn match cssKeyFrameSelector /\(\d*%\|from\|to\)\=/ contained skipwhite skipnl nextgroup=cssDefinition
@@ -116,15 +117,27 @@ syn region cssInclude start=/@namespace\>/ end=/\ze;/ transparent contains=cssSt
" @font-face
" http://www.w3.org/TR/css3-fonts/#at-font-face-rule
syn match cssFontDescriptor "@font-face\>" nextgroup=cssFontDescriptorBlock skipwhite skipnl
syn region cssFontDescriptorBlock contained transparent matchgroup=cssBraces start="{" end="}" contains=cssComment,cssError,cssUnicodeEscape,cssFontProp,cssFontAttr,cssCommonAttr,cssStringQ,cssStringQQ,cssFontDescriptorProp,cssValue.*,cssFontDescriptorFunction,cssUnicodeRange,cssFontDescriptorAttr
"syn match cssFontDescriptorProp contained "\<\(unicode-range\|unit-per-em\|panose-1\|cap-height\|x-height\|definition-src\)\>"
"syn keyword cssFontDescriptorProp contained src stemv stemh slope ascent descent widths bbox baseline centerline mathline topline
syn region cssFontDescriptorBlock contained transparent matchgroup=cssBraces start="{" end="}" contains=cssComment,cssError,cssUnicodeEscape,cssCommonAttr,cssFontDescriptorProp,cssValue.*,cssFontDescriptorFunction,cssFontDescriptorAttr,cssNoise
syn match cssFontDescriptorProp contained "\<font-family\>"
syn keyword cssFontDescriptorProp contained src
syn match cssFontDescriptorProp contained "\<font-\(style\|weight\|stretch\)\>"
syn match cssFontDescriptorProp contained "\<unicode-range\>"
syn keyword cssFontDescriptorAttr contained all
syn match cssFontDescriptorProp contained "\<font-\(variant\|feature-settings\)\>"
" src functions
syn region cssFontDescriptorFunction contained matchgroup=cssFunctionName start="\<\(uri\|url\|local\|format\)\s*(" end=")" contains=cssStringQ,cssStringQQ oneline keepend
syn match cssUnicodeRange contained "U+[0-9A-Fa-f?]\+"
syn match cssUnicodeRange contained "U+\x\+-\x\+"
" font-sytle and font-weight attributes
syn keyword cssFontDescriptorAttr contained normal italic oblique bold
" font-stretch attributes
syn match cssFontDescriptorAttr contained "\<\(\(ultra\|extra\|semi\)-\)\=\(condensed\|expanded\)\>"
" unicode-range attributes
syn match cssFontDescriptorAttr contained "U+[0-9A-Fa-f?]\+"
syn match cssFontDescriptorAttr contained "U+\x\+-\x\+"
" font-feature-settings attributes
syn keyword cssFontDescriptorAttr contained on off
" The 16 basic color names
syn keyword cssColor contained aqua black blue fuchsia gray green lime maroon navy olive purple red silver teal yellow
@@ -133,23 +146,23 @@ syn keyword cssColor contained aqua black blue fuchsia gray green lime maroon na
syn keyword cssColor contained aliceblue antiquewhite aquamarine azure
syn keyword cssColor contained beige bisque blanchedalmond blueviolet brown burlywood
syn keyword cssColor contained cadetblue chartreuse chocolate coral cornflowerblue cornsilk crimson cyan
syn match cssColor contained /dark\(blue\|cyan\|goldenrod\|gray\|green\|grey\|khaki\)/
syn match cssColor contained /dark\(magenta\|olivegreen\|orange\|orchid\|red\|salmon\|seagreen\)/
syn match cssColor contained /darkslate\(blue\|gray\|grey\)/
syn match cssColor contained /dark\(turquoise\|violet\)/
syn match cssColor contained /\<dark\(blue\|cyan\|goldenrod\|gray\|green\|grey\|khaki\)\>/
syn match cssColor contained /\<dark\(magenta\|olivegreen\|orange\|orchid\|red\|salmon\|seagreen\)\>/
syn match cssColor contained /\<darkslate\(blue\|gray\|grey\)\>/
syn match cssColor contained /\<dark\(turquoise\|violet\)\>/
syn keyword cssColor contained deeppink deepskyblue dimgray dimgrey dodgerblue firebrick
syn keyword cssColor contained floralwhite forestgreen gainsboro ghostwhite gold
syn keyword cssColor contained goldenrod greenyellow grey honeydew hotpink
syn keyword cssColor contained indianred indigo ivory khaki lavender lavenderblush lawngreen
syn keyword cssColor contained lemonchiffon limegreen linen magenta
syn match cssColor contained /light\(blue\|coral\|cyan\|goldenrodyellow\|gray\|green\)/
syn match cssColor contained /light\(grey\|pink\|salmon\|seagreen\|skyblue\|yellow\)/
syn match cssColor contained /light\(slategray\|slategrey\|steelblue\)/
syn match cssColor contained /medium\(aquamarine\|blue\|orchid\|purple\|seagreen\)/
syn match cssColor contained /medium\(slateblue\|springgreen\|turquoise\|violetred\)/
syn match cssColor contained /\<light\(blue\|coral\|cyan\|goldenrodyellow\|gray\|green\)\>/
syn match cssColor contained /\<light\(grey\|pink\|salmon\|seagreen\|skyblue\|yellow\)\>/
syn match cssColor contained /\<light\(slategray\|slategrey\|steelblue\)\>/
syn match cssColor contained /\<medium\(aquamarine\|blue\|orchid\|purple\|seagreen\)\>/
syn match cssColor contained /\<medium\(slateblue\|springgreen\|turquoise\|violetred\)\>/
syn keyword cssColor contained midnightblue mintcream mistyrose moccasin navajowhite
syn keyword cssColor contained oldlace olivedrab orange orangered orchid
syn match cssColor contained /pale\(goldenrod\|green\|turquoise\|violetred\)/
syn match cssColor contained /\<pale\(goldenrod\|green\|turquoise\|violetred\)\>/
syn keyword cssColor contained papayawhip peachpuff peru pink plum powderblue
syn keyword cssColor contained rosybrown royalblue saddlebrown salmon sandybrown
syn keyword cssColor contained seagreen seashell sienna skyblue slateblue
@@ -167,11 +180,12 @@ syn case ignore
syn match cssImportant contained "!\s*important\>"
syn match cssColor contained "\<transparent\>"
syn match cssColor contained "\<currentColor\>"
syn match cssColor contained "\<white\>"
syn match cssColor contained "#[0-9A-Fa-f]\{3\}\>" contains=cssUnitDecorators
syn match cssColor contained "#[0-9A-Fa-f]\{6\}\>" contains=cssUnitDecorators
syn region cssURL contained matchgroup=cssFunctionName start="\<url\s*(" end=")" oneline extend
syn region cssURL contained matchgroup=cssFunctionName start="\<url\s*(" end=")" contains=cssStringQ,cssStringQQ oneline
syn region cssFunction contained matchgroup=cssFunctionName start="\<\(rgb\|clip\|attr\|counter\|rect\|cubic-bezier\|steps\)\s*(" end=")" oneline contains=cssValueInteger,cssValueNumber,cssValueLength,cssFunctionComma
syn region cssFunction contained matchgroup=cssFunctionName start="\<\(rgba\|hsl\|hsla\|color-stop\|from\|to\)\s*(" end=")" oneline contains=cssColor,cssValueInteger,cssValueNumber,cssValueLength,cssFunctionComma,cssFunction
syn region cssFunction contained matchgroup=cssFunctionName start="\<\(linear-\|radial-\)\=\gradient\s*(" end=")" oneline contains=cssColor,cssValueInteger,cssValueNumber,cssValueLength,cssFunction,cssGradientAttr,cssFunctionComma
@@ -196,6 +210,9 @@ syn keyword cssAnimationAttr contained forwards backwards both
" animation-play-state attributes
syn keyword cssAnimationAttr contained running paused
" animation-iteration-count attributes
syn keyword cssAnimationAttr contained infinite
"------------------------------------------------
" CSS Backgrounds and Borders Module Level 3
" http://www.w3.org/TR/css3-background/
@@ -253,7 +270,7 @@ syn keyword cssDimensionProp contained width
syn match cssFlexibleBoxProp contained "\<box-\(align\|direction\|flex\|ordinal-group\|orient\|pack\|shadow\|sizing\)\>"
syn keyword cssFlexibleBoxAttr contained start end baseline
syn keyword cssFlexibleBoxAttr contained reverse
syn keyword cssFlexibleBoxAttr contained single mulitple
syn keyword cssFlexibleBoxAttr contained single multiple
syn keyword cssFlexibleBoxAttr contained horizontal
syn match cssFlexibleBoxAttr contained "\<vertical\(-align\)\@!\>" "escape vertical-align
syn match cssFlexibleBoxAttr contained "\<\(inline\|block\)-axis\>"
@@ -261,6 +278,7 @@ syn match cssFlexibleBoxAttr contained "\<\(inline\|block\)-axis\>"
" CSS Fonts Module Level 3
" http://www.w3.org/TR/css-fonts-3/
syn match cssFontProp contained "\<font\(-\(family\|\|feature-settings\|kerning\|language-override\|size\(-adjust\)\=\|stretch\|style\|synthesis\|variant\(-\(alternates\|caps\|east-asian\|ligatures\|numeric\|position\)\)\=\|weight\)\)\=\>"
" font attributes
syn keyword cssFontAttr contained icon menu caption
syn match cssFontAttr contained "\<small-\(caps\|caption\)\>"
@@ -268,27 +286,21 @@ syn match cssFontAttr contained "\<message-box\>"
syn match cssFontAttr contained "\<status-bar\>"
syn keyword cssFontAttr contained larger smaller
syn match cssFontAttr contained "\<\(x\{1,2\}-\)\=\(large\|small\)\>"
" font-family attributes
syn match cssFontAttr contained "\<\(sans-\)\=serif\>"
syn keyword cssFontAttr contained Antiqua Arial Black Book Charcoal Comic Courier Dingbats Gadget Geneva Georgia Grande Helvetica Impact Linotype Lucida MS Monaco Neue New Palatino Roboto Roman Symbol Tahoma Times Trebuchet Unicode Verdana Webdings Wingdings York Zapf
syn keyword cssFontAttr contained Antiqua Arial Black Book Charcoal Comic Courier Dingbats Gadget Geneva Georgia Grande Helvetica Impact Linotype Lucida MS Monaco Neue New Palatino Roboto Roman Symbol Tahoma Times Trebuchet Verdana Webdings Wingdings York Zapf
syn keyword cssFontAttr contained cursive fantasy monospace
" font-feature-settings attributes
syn keyword cssFontAttr contained on off
" font-stretch attributes
syn match cssFontAttr contained "\<\(\(ultra\|extra\|semi\)-\)\=\(condensed\|expanded\)\>"
" font-style attributes
syn keyword cssFontAttr contained italic oblique
" font-variant-caps attributes
syn match cssFontAttr contained "\<\(all-\)\=\(small-\|petite-\|titling-\)caps\>"
syn keyword cssFontAttr contained unicase
" font-synthesis attributes
syn keyword cssFontAttr contained weight style
" font-weight attributes
syn keyword cssFontAttr contained bold bolder lighter
" TODO: font-variant-* attributes
"------------------------------------------------
" Webkit specific property/attributes
@@ -448,7 +460,7 @@ syn match cssMobileTextProp contained "\<text-size-adjust\>"
syn match cssBraces contained "[{}]"
syn match cssError contained "{@<>"
syn region cssDefinition transparent matchgroup=cssBraces start='{' end='}' contains=cssAttrRegion,css.*Prop,cssComment,cssValue.*,cssColor,cssURL,cssImportant,cssError,cssStringQ,cssStringQQ,cssFunction,cssUnicodeEscape,cssVendor,cssDefinition,cssHacks keepend fold
syn region cssDefinition transparent matchgroup=cssBraces start='{' end='}' contains=cssAttrRegion,css.*Prop,cssComment,cssValue.*,cssColor,cssURL,cssImportant,cssError,cssStringQ,cssStringQQ,cssFunction,cssUnicodeEscape,cssVendor,cssDefinition,cssHacks,cssNoise fold
syn match cssBraceError "}"
syn match cssAttrComma ","
@@ -466,6 +478,9 @@ syn match cssPseudoClassId contained "\<selection\>"
syn match cssPseudoClassId contained "\<focus\(-inner\)\=\>"
syn match cssPseudoClassId contained "\<\(input-\)\=placeholder\>"
" Misc highlight groups
syntax match cssUnitDecorators /\(#\|-\|%\|mm\|cm\|in\|pt\|pc\|em\|ex\|px\|ch\|rem\|vh\|vw\|vmin\|vmax\|dpi\|dppx\|dpcm\|Hz\|kHz\|s\|ms\|deg\|grad\|rad\)/ contained
syntax match cssNoise contained /\(:\|;\|\/\)/
" Comment
syn region cssComment start="/\*" end="\*/" contains=@Spell fold
@@ -487,17 +502,13 @@ syn match cssVendor contained "\(-\(webkit\|moz\|o\|ms\)-\)"
" http://www.paulirish.com/2009/browser-specific-css-hacks/
syn match cssHacks contained /\(_\|*\)/
" Misc highlight groups
syntax match cssUnitDecorators /\(#\|-\|%\|mm\|cm\|in\|pt\|pc\|em\|ex\|px\|rem\|dpi\|dppx\|dpcm\|Hz\|kHz\|s\|ms\|deg\|grad\|rad\)/ contained
syntax match cssNoise contained /\(:\|;\|\/\)/
" Attr Enhance
" Some keywords are both Prop and Attr, so we have to handle them
syn region cssAttrRegion start=/:/ end=/;/ contained keepend contains=css.*Attr,cssColor,cssImportant,cssValue.*,cssFunction,cssString.*,cssURL,cssComment,cssUnicodeEscape,cssVendor,cssError,cssAttrComma,cssNoise
syn region cssAttrRegion start=/:/ end=/\ze\(;\|)\|}\)/ contained contains=css.*Attr,cssColor,cssImportant,cssValue.*,cssFunction,cssString.*,cssURL,cssComment,cssUnicodeEscape,cssVendor,cssError,cssAttrComma,cssNoise
" Hack for transition
" The 'transition' Prop has Props after ':'.
syn region cssAttrRegion start=/transition\s*:/ end=/;/ contained keepend contains=css.*Prop,css.*Attr,cssColor,cssImportant,cssValue.*,cssFunction,cssString.*,cssURL,cssComment,cssUnicodeEscape,cssVendor,cssError,cssAttrComma,cssNoise
" 'transition' has Props after ':'.
syn region cssAttrRegion start=/transition\s*:/ end=/\ze\(;\|)\|}\)/ contained contains=css.*Prop,css.*Attr,cssColor,cssImportant,cssValue.*,cssFunction,cssString.*,cssURL,cssComment,cssUnicodeEscape,cssVendor,cssError,cssAttrComma,cssNoise
if main_syntax == "css"
@@ -635,7 +646,7 @@ if version >= 508 || !exists("did_css_syn_inits")
HiLink cssAttr Constant
HiLink cssUnitDecorators Number
HiLink cssNoise Noise
HiLink atKeyword Comment
HiLink atKeyword PreProc
delcommand HiLink
endif

View File

@@ -1,11 +1,12 @@
" Vim syntax file
" Language: Datascript
" Language: DataScript
" Maintainer: Dominique Pelle <dominique.pelle@gmail.com>
" Last Change: 2014 Feb 26
" Last Change: 2015 Jul 30
"
" DataScript is a formal language for modelling binary datatypes,
" bitstreams or file formats. For more information, see:
" http://datascript.berlios.de/DataScriptLanguageOverview.html
"
" http://dstools.sourceforge.net/DataScriptLanguageOverview.html
if version < 600
syntax clear
@@ -19,6 +20,8 @@ syn keyword dsPackage import package
syn keyword dsType bit bool string
syn keyword dsType int int8 int16 int32 int64
syn keyword dsType uint8 uint16 uint32 uint64
syn keyword dsType varint16 varint32 varint64
syn keyword dsType varuint16 varuint32 varuint64
syn keyword dsType leint16 leint32 leint64
syn keyword dsType leuint16 leuint32 leuint64
syn keyword dsEndian little big
@@ -32,7 +35,8 @@ syn keyword dsOperator sizeof bitsizeof lengthof is sum forall in
syn keyword dsStorageClass const
syn keyword dsTodo contained TODO FIXME XXX
syn keyword dsSql sql sql_table sql_database sql_pragma sql_index
syn keyword dsSql sql_integer sql_metadata sql_key foreign_key
syn keyword dsSql sql_integer sql_metadata sql_key sql_virtual
syn keyword dsSql using reference_key foreign_key to
" dsCommentGroup allows adding matches for special things in comments.
syn cluster dsCommentGroup contains=dsTodo
@@ -61,6 +65,8 @@ syn region dsComment
syn region dsString
\ start=+L\="+ skip=+\\\\\|\\"+ end=+"+ contains=@Spell
syn sync ccomment dsComment
" Define the default highlighting.
hi def link dsType Type
hi def link dsEndian StorageClass

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: 2014 Jul 11
" Last Change: 2015 Apr 30
" URL: http://anonscm.debian.org/hg/pkg-vim/vim/raw-file/unstable/runtime/syntax/debchangelog.vim
" Standard syntax initialization
@@ -16,10 +16,14 @@ endif
" Case doesn't matter for us
syn case ignore
let urgency='urgency=\(low\|medium\|high\|critical\)\( [^[:space:],][^,]*\)\='
let binNMU='binary-only=yes'
" 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)|wheezy-backports|%(devel|lucid|precise|trusty|utopic)%(-%(security|proposed|updates|backports|commercial|partner))=)+"
exe 'syn match debchangelogFirstKV contained "; \('.urgency.'\|'.binNMU.'\)"'
exe 'syn match debchangelogOtherKV contained ", \('.urgency.'\|'.binNMU.'\)"'
syn match debchangelogTarget contained "\v %(frozen|unstable|sid|%(testing|%(old)=stable)%(-proposed-updates|-security)=|experimental|squeeze-%(backports%(-sloppy)=|volatile|lts|security)|wheezy-%(backports%(-sloppy)=|security)|jessie%(-backports|-security)=|stretch|%(devel|lucid|precise|trusty|utopic)%(-%(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\+\)*"
@@ -27,7 +31,7 @@ syn match debchangelogEmail contained "[_=[:alnum:].+-]\+@[[:alnum:]./\-]\+"
syn match debchangelogEmail contained "<.\{-}>"
" Define the entries that make up the changelog
syn region debchangelogHeader start="^[^ ]" end="$" contains=debchangelogName,debchangelogUrgency,debchangelogTarget,debchangelogVersion oneline
syn region debchangelogHeader start="^[^ ]" end="$" contains=debchangelogName,debchangelogFirstKV,debchangelogOtherKV,debchangelogTarget,debchangelogVersion,debchangelogBinNMU oneline
syn region debchangelogFooter start="^ [^ ]" end="$" contains=debchangelogEmail oneline
syn region debchangelogEntry start="^ " end="$" contains=debchangelogCloses,debchangelogLP oneline
@@ -45,7 +49,8 @@ if version >= 508 || !exists("did_debchangelog_syn_inits")
HiLink debchangelogEntry Normal
HiLink debchangelogCloses Statement
HiLink debchangelogLP Statement
HiLink debchangelogUrgency Identifier
HiLink debchangelogFirstKV Identifier
HiLink debchangelogOtherKV Identifier
HiLink debchangelogName Comment
HiLink debchangelogVersion Identifier
HiLink debchangelogTarget Identifier

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: 2014 May 01
" Last Change: 2014 Oct 08
" URL: http://anonscm.debian.org/hg/pkg-vim/vim/raw-file/unstable/runtime/syntax/debcontrol.vim
" Standard syntax initialization
@@ -50,7 +50,7 @@ syn match debcontrolDmUpload contained "\cyes"
syn match debcontrolHTTPUrl contained "\vhttps?://[[:alnum:]][-[:alnum:]]*[[:alnum:]]?(\.[[:alnum:]][-[:alnum:]]*[[:alnum:]]?)*\.[[:alpha:]][-[:alnum:]]*[[:alpha:]]?(:\d+)?(/[^[:space:]]*)?$"
syn match debcontrolVcsSvn contained "\vsvn%(\+ssh)?://[[:alnum:]][-[:alnum:]]*[[:alnum:]]?(\.[[:alnum:]][-[:alnum:]]*[[:alnum:]]?)*\.[[:alpha:]][-[:alnum:]]*[[:alpha:]]?(:\d+)?(/[^[:space:]]*)?$"
syn match debcontrolVcsCvs contained "\v%(\-d *)?:pserver:[^@]+\@[[:alnum:]][-[:alnum:]]*[[:alnum:]]?(\.[[:alnum:]][-[:alnum:]]*[[:alnum:]]?)*\.[[:alpha:]][-[:alnum:]]*[[:alpha:]]?:/[^[:space:]]*%( [^[:space:]]+)?$"
syn match debcontrolVcsGit contained "\v%(git|http)://[[:alnum:]][-[:alnum:]]*[[:alnum:]]?(\.[[:alnum:]][-[:alnum:]]*[[:alnum:]]?)*\.[[:alpha:]][-[:alnum:]]*[[:alpha:]]?(:\d+)?(/[^[:space:]]*)?%(\s+-b\s+[^ ~^:?*[\\]+)?$"
syn match debcontrolVcsGit contained "\v%(git|https?)://[[:alnum:]][-[:alnum:]]*[[:alnum:]]?(\.[[:alnum:]][-[:alnum:]]*[[:alnum:]]?)*\.[[:alpha:]][-[:alnum:]]*[[:alpha:]]?(:\d+)?(/[^[:space:]]*)?%(\s+-b\s+[^ ~^:?*[\\]+)?$"
" An email address
syn match debcontrolEmail "[_=[:alnum:]\.+-]\+@[[:alnum:]\./\-]\+"

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: 2014 Jul 11
" Last Change: 2015 May 25
" URL: http://anonscm.debian.org/hg/pkg-vim/vim/raw-file/unstable/runtime/syntax/debsources.vim
" Standard syntax initialization
@@ -21,15 +21,35 @@ syn match debsourcesKeyword /\(deb-src\|deb\|main\|contrib\|non-free\|res
" Match comments
syn match debsourcesComment /#.*/ contains=@Spell
let s:cpo = &cpo
set cpo-=C
let s:supported = [
\ 'oldstable', 'stable', 'testing', 'unstable', 'experimental',
\ 'squeeze', 'wheezy', 'jessie', 'stretch', 'sid', 'rc-buggy',
\
\ 'precise', 'trusty', 'utopic', 'vivid', 'wily', 'devel'
\ ]
let s:unsupported = [
\ 'buzz', 'rex', 'bo', 'hamm', 'slink', 'potato',
\ 'woody', 'sarge', 'etch', 'lenny',
\
\ 'warty', 'hoary', 'breezy', 'dapper', 'edgy', 'feisty',
\ 'gutsy', 'hardy', 'intrepid', 'jaunty', 'karmic', 'lucid',
\ 'maverick', 'natty', 'oneiric', 'quantal', 'raring', 'saucy'
\ ]
let &cpo=s:cpo
" Match uri's
syn match debsourcesUri +\(http://\|ftp://\|[rs]sh://\|debtorrent://\|\(cdrom\|copy\|file\):\)[^' <>"]\++
syn match debsourcesDistrKeyword +\([[:alnum:]_./]*\)\(squeeze\|wheezy\|jessie\|\(old\)\=stable\|testing\|unstable\|sid\|rc-buggy\|experimental\|devel\|lucid\|precise\|trusty\|utopic\)\([-[:alnum:]_./]*\)+
exe 'syn match debsourcesDistrKeyword +\([[:alnum:]_./]*\)\('. join(s:supported, '\|'). '\)\([-[:alnum:]_./]*\)+'
exe 'syn match debsourcesUnsupportedDistrKeyword +\([[:alnum:]_./]*\)\('. join(s:unsupported, '\|') .'\)\([-[:alnum:]_./]*\)+'
" Associate our matches and regions with pretty colours
hi def link debsourcesLine Error
hi def link debsourcesKeyword Statement
hi def link debsourcesDistrKeyword Type
hi def link debsourcesComment Comment
hi def link debsourcesUri Constant
hi def link debsourcesLine Error
hi def link debsourcesKeyword Statement
hi def link debsourcesDistrKeyword Type
hi def link debsourcesUnsupportedDistrKeyword WarningMsg
hi def link debsourcesComment Comment
hi def link debsourcesUri Constant
let b:current_syntax = "debsources"

View File

@@ -2,7 +2,7 @@
" Language: Diff (context or unified)
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Translations by Jakson Alves de Aquino.
" Last Change: 2015 Jan 07
" Last Change: 2015 Feb 03
" Quit when a (custom) syntax file was already loaded
if exists("b:current_syntax")
@@ -123,13 +123,17 @@ syn match diffNoEOL "^\\ Non hai un salto de liña na fin da liña"
syn match diffCommon "^Subdirectorios comúns: .* e .*"
" he
syn match diffOnly "^.*-ב קר אצמנ .*"
syn match diffIdentical "^םיהז םניה .*-ו .* םיצבקה$"
syn match diffDiffer "^הזמ הז םינוש `.*'-ו `.*' םיצבקה$"
syn match diffBDiffer "^הזמ הז םינוש `.*'-ו `.*' םיירניב םיצבק$"
syn match diffIsA "^.* .*-ל .* .* תוושהל ןתינ אל$"
syn match diffNoEOL "^\\ ץבוקה ףוסב השד.-הרוש ות רס."
syn match diffCommon "^.*-ו .* :תוהז תויקית-תת$"
" ^.* are expansive patterns for long lines, so disabled unless we can match
" some specific hebrew chars
if search('\%u05d5\|\%u05d1', 'nw', '', 100)
syn match diffOnly "^.*-ב קר אצמנ .*"
syn match diffIdentical "^םיהז םניה .*-ו .* םיצבקה$"
syn match diffDiffer "^הזמ הז םינוש `.*'-ו `.*' םיצבקה$"
syn match diffBDiffer "^הזמ הז םינוש `.*'-ו `.*' םיירניב םיצבק$"
syn match diffIsA "^.* .*-ל .* .* תוושהל ןתינ אל$"
syn match diffNoEOL "^\\ ץבוקה ףוסב השד.-הרוש ות רס."
syn match diffCommon "^.*-ו .* :תוהז תויקית-תת$"
endif
" hr
syn match diffOnly "^Samo u .*"

View File

@@ -1,8 +1,9 @@
" Vim syntax file
" Language: gnuplot 4.7.0
" Maintainer: Andrew Rasmussen andyras@users.sourceforge.net
" Maintainer: Josh Wainwright <wainwright DOT ja AT gmail DOT com>
" Last Maintainer: Andrew Rasmussen andyras@users.sourceforge.net
" Original Maintainer: John Hoelzel johnh51@users.sourceforge.net
" Last Change: 2014-02-24
" Last Change: 2015-08-25
" Filenames: *.gnu *.plt *.gpi *.gih *.gp *.gnuplot scripts: #!*gnuplot
" URL: http://www.vim.org/scripts/script.php?script_id=4873
" Original URL: http://johnh51.get.to/vim/syntax/gnuplot.vim
@@ -364,18 +365,18 @@ syn keyword gnuplotKeyword samples
" set size
syn keyword gnuplotKeyword size square nosquare ratio noratio
" set style
syn keyword gnuplotKeyword style function data noborder rectangle arrow
syn keyword gnuplotKeyword default nohead head heads size filled empty
syn keyword gnuplotKeyword nofilled front back boxplot range fraction
syn keyword gnuplotKeyword outliers nooutliers pointtype candlesticks
syn keyword gnuplotKeyword separation labels off auto x x2 sorted unsorted
syn keyword gnuplotKeyword fill empty transparent solid pattern border
syn keyword gnuplotKeyword increment userstyles financebars line default
syn keyword gnuplotKeyword linetype lt linecolor lc linewidth lw pointtype
syn keyword gnuplotKeyword pt pointsize ps pointinterval pi palette circle
syn keyword gnuplotKeyword radius graph screen wedge nowedge ellipse size
syn keyword gnuplotKeyword units xx xy yy histogram line textbox opaque
syn keyword gnuplotKeyword border noborder
syn keyword gnuplotKeyword style arrow auto back border boxplot
syn keyword gnuplotKeyword candlesticks circle clustered columnstacked data
syn keyword gnuplotKeyword default ellipse empty fill[ed] financebars
syn keyword gnuplotKeyword fraction front function gap graph head[s]
syn keyword gnuplotKeyword histogram increment labels lc line linecolor
syn keyword gnuplotKeyword linetype linewidth lt lw noborder nofilled
syn keyword gnuplotKeyword nohead nooutliers nowedge off opaque outliers
syn keyword gnuplotKeyword palette pattern pi pointinterval pointsize
syn keyword gnuplotKeyword pointtype ps pt radius range rectangle
syn keyword gnuplotKeyword rowstacked screen separation size solid sorted
syn keyword gnuplotKeyword textbox transparent units unsorted userstyles
syn keyword gnuplotKeyword wedge x x2 xx xy yy
" set surface
syn keyword gnuplotKeyword surface implicit explicit
" set table
@@ -496,8 +497,8 @@ syn keyword gnuplotTodo contained TODO FIXME XXX
syn keyword gnuplotStatement cd call clear evaluate exit fit help history
syn keyword gnuplotStatement load lower pause plot p print pwd quit raise
syn keyword gnuplotStatement refresh replot rep reread reset save set show
syn keyword gnuplotStatement shell splot spstats system test undefine unset
syn keyword gnuplotStatement update
syn keyword gnuplotStatement shell splot spstats stats system test undefine
syn keyword gnuplotStatement unset update
" ---- Define the default highlighting ---- "
" For version 5.7 and earlier: only when not done already

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.13
" Version: 0.1.14
" URL: http://www.vim.org/scripts/script.php?script_id=945
" Last Change: 2013 Apr 24
" Last Change: 2015 Apr 21
" THE ORIGINAL AUTHOR'S NOTES:
"
@@ -157,7 +157,7 @@ syn match groovyOperator "\.\."
syn match groovyOperator "<\{2,3}"
syn match groovyOperator ">\{2,3}"
syn match groovyOperator "->"
syn match groovyExternal '^#!.*[/\\]groovy\>'
syn match groovyLineComment '^\%1l#!.*' " Shebang line
syn match groovyExceptions "\<Exception\>\|\<[A-Z]\{1,}[a-zA-Z0-9]*Exception\>"
" Groovy JDK stuff
@@ -220,7 +220,6 @@ syn region groovyComment start="/\*" end="\*/" contains=@groovyCommen
syn match groovyCommentStar contained "^\s*\*[^/]"me=e-1
syn match groovyCommentStar contained "^\s*\*$"
syn match groovyLineComment "//.*" contains=@groovyCommentSpecial2,groovyTodo,@Spell
syn match groovyLineComment "#.*" contains=@groovyCommentSpecial2,groovyTodo,@Spell
GroovyHiLink groovyCommentString groovyString
GroovyHiLink groovyComment2String groovyString
GroovyHiLink groovyCommentCharacter groovyCharacter

View File

@@ -1,7 +1,29 @@
" Vim syntax file
" Language: Intel hex MCS51
" Maintainer: Sams Ricahrd <sams@ping.at>
" Last Change: 2003 Apr 25
" Language: Intel HEX
" Maintainer: Markus Heidelberg <markus.heidelberg@web.de>
" Previous version: Sams Ricahrd <sams@ping.at>
" Last Change: 2015 Feb 24
" Each record (line) is built as follows:
"
" field digits states
"
" +----------+
" | start | 1 (':') hexRecStart
" +----------+
" | count | 2 hexDataByteCount
" +----------+
" | address | 4 hexNoAddress, hexDataAddress, (hexAddressFieldUnknown)
" +----------+
" | type | 2 hexRecType, (hexRecTypeUnknown)
" +----------+
" | data | 0..510 hexDataOdd, hexDataEven, hexExtendedAddress, hexStartAddress, (hexDataFieldUnknown, hexDataUnexpected)
" +----------+
" | checksum | 2 hexChecksum
" +----------+
"
" States in parentheses in the upper format description indicate that they
" should not appear in a valid file.
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
@@ -11,21 +33,39 @@ elseif exists("b:current_syntax")
finish
endif
syn case ignore
syn match hexRecStart "^:"
" storage types
syn match hexDataByteCount "^:[0-9a-fA-F]\{2}" contains=hexRecStart nextgroup=hexAddress
syn match hexChecksum "[0-9a-fA-F]\{2}$"
syn match hexAdress "^:[0-9a-fA-F]\{6}" contains=hexDataByteCount
syn match hexRecType "^:[0-9a-fA-F]\{8}" contains=hexAdress
syn match hexDataByteCount contained "^:[0-9a-fA-F]\{2}" contains=hexStart
syn match hexStart contained "^:"
syn match hexExtAdrRec "^:02000002[0-9a-fA-F]\{4}" contains=hexSpecRec
syn match hexExtLinAdrRec "^:02000004[0-9a-fA-F]\{4}" contains=hexSpecRec
syn match hexSpecRec contained "^:0[02]00000[124]" contains=hexStart
syn match hexEOF "^:00000001" contains=hexStart
syn match hexAddress "[0-9a-fA-F]\{4}" transparent contained nextgroup=hexRecTypeUnknown,hexRecType
" The address field groups include the record type field in the last 2
" characters, the proper match for highlighting follows below.
syn match hexAddressFieldUnknown "^:[0-9a-fA-F]\{8}" contains=hexDataByteCount nextgroup=hexDataFieldUnknown,hexChecksum
syn match hexDataAddress "^:[0-9a-fA-F]\{6}00" contains=hexDataByteCount nextgroup=hexDataOdd,hexChecksum
syn match hexNoAddress "^:[0-9a-fA-F]\{6}01" contains=hexDataByteCount nextgroup=hexDataUnexpected,hexChecksum
syn match hexNoAddress "^:[0-9a-fA-F]\{6}0[24]" contains=hexDataByteCount nextgroup=hexExtendedAddress
syn match hexNoAddress "^:[0-9a-fA-F]\{6}0[35]" contains=hexDataByteCount nextgroup=hexStartAddress
syn case match
syn match hexRecTypeUnknown "[0-9a-fA-F]\{2}" contained
syn match hexRecType "0[0-5]" contained
syn match hexDataFieldUnknown "[0-9a-fA-F]\{2}" contained nextgroup=hexDataFieldUnknown,hexChecksum
" alternating highlight per byte for easier reading
syn match hexDataOdd "[0-9a-fA-F]\{2}" contained nextgroup=hexDataEven,hexChecksum
syn match hexDataEven "[0-9a-fA-F]\{2}" contained nextgroup=hexDataOdd,hexChecksum
" data bytes which should not exist
syn match hexDataUnexpected "[0-9a-fA-F]\{2}" contained nextgroup=hexDataUnexpected,hexChecksum
" Data digit pair regex usage also results in only highlighting the checksum
" if the number of data characters is even.
" special data fields
syn match hexExtendedAddress "[0-9a-fA-F]\{4}" contained nextgroup=hexDataUnexpected,hexChecksum
syn match hexStartAddress "[0-9a-fA-F]\{8}" contained nextgroup=hexDataUnexpected,hexChecksum
syn match hexChecksum "[0-9a-fA-F]\{2}$" contained
" Folding Data Records below an Extended Segment/Linear Address Record
syn region hexExtAdrBlock start="^:[0-9a-fA-F]\{7}[24]" skip="^:[0-9a-fA-F]\{7}0" end="^:"me=s-1 fold transparent
" Define the default highlighting.
" For version 5.7 and earlier: only when not done already
@@ -38,16 +78,21 @@ if version >= 508 || !exists("did_hex_syntax_inits")
command -nargs=+ HiLink hi def link <args>
endif
" The default methods for highlighting. Can be overridden later
HiLink hexStart SpecialKey
HiLink hexDataByteCount Constant
HiLink hexAdress Comment
HiLink hexRecType WarningMsg
HiLink hexChecksum Search
HiLink hexExtAdrRec hexAdress
HiLink hexEOF hexSpecRec
HiLink hexExtLinAdrRec hexAdress
HiLink hexSpecRec DiffAdd
" The default methods for highlighting. Can be overridden later
HiLink hexRecStart hexRecType
HiLink hexDataByteCount Constant
hi def hexAddressFieldUnknown term=italic cterm=italic gui=italic
HiLink hexDataAddress Comment
HiLink hexNoAddress DiffAdd
HiLink hexRecTypeUnknown hexRecType
HiLink hexRecType WarningMsg
hi def hexDataFieldUnknown term=italic cterm=italic gui=italic
hi def hexDataOdd term=bold cterm=bold gui=bold
hi def hexDataEven term=NONE cterm=NONE gui=NONE
HiLink hexDataUnexpected Error
HiLink hexExtendedAddress hexDataAddress
HiLink hexStartAddress hexDataAddress
HiLink hexChecksum DiffChange
delcommand HiLink
endif

View File

@@ -2,7 +2,7 @@
" Language: Java
" Maintainer: Claudio Fleiner <claudio@fleiner.com>
" URL: http://www.fleiner.com/vim/syntax/java.vim
" Last Change: 2012 Oct 05
" Last Change: 2015 March 01
" Please check :help java.vim for comments on some of the options available.
@@ -30,7 +30,7 @@ endif
" some characters that cannot be in a java program (outside a string)
syn match javaError "[\\@`]"
syn match javaError "<<<\|\.\.\|=>\|||=\|&&=\|[^-]->\|\*\/"
syn match javaError "<<<\|\.\.\|=>\|||=\|&&=\|\*\/"
syn match javaOK "\.\.\."
@@ -63,7 +63,7 @@ syn match javaTypedef "\.\s*\<class\>"ms=s+1
syn keyword javaClassDecl enum
syn match javaClassDecl "^class\>"
syn match javaClassDecl "[^.]\s*\<class\>"ms=s+1
syn match javaAnnotation "@\([_$a-zA-Z][_$a-zA-Z0-9]*\.\)*[_$a-zA-Z][_$a-zA-Z0-9]*\>"
syn match javaAnnotation "@\([_$a-zA-Z][_$a-zA-Z0-9]*\.\)*[_$a-zA-Z][_$a-zA-Z0-9]*\>\(([^)]*)\)\=" contains=javaString
syn match javaClassDecl "@interface\>"
syn keyword javaBranch break continue nextgroup=javaUserLabelRef skipwhite
syn match javaUserLabelRef "\k\+" contained
@@ -121,7 +121,7 @@ if exists("java_space_errors")
endif
endif
syn region javaLabelRegion transparent matchgroup=javaLabel start="\<case\>" matchgroup=NONE end=":" contains=javaNumber,javaCharacter
syn region javaLabelRegion transparent matchgroup=javaLabel start="\<case\>" matchgroup=NONE end=":" contains=javaNumber,javaCharacter,javaString
syn match javaUserLabel "^\s*[_$a-zA-Z][_$a-zA-Z0-9_]*\s*:"he=e-1 contains=javaLabel
syn keyword javaLabel default
@@ -188,10 +188,10 @@ syn region javaString start=+"+ end=+"+ end=+$+ contains=javaSpecialChar,javaS
syn match javaCharacter "'[^']*'" contains=javaSpecialChar,javaSpecialCharError
syn match javaCharacter "'\\''" contains=javaSpecialChar
syn match javaCharacter "'[^\\]'"
syn match javaNumber "\<\(0[0-7]*\|0[xX]\x\+\|\d\+\)[lL]\=\>"
syn match javaNumber "\(\<\d\+\.\d*\|\.\d\+\)\([eE][-+]\=\d\+\)\=[fFdD]\="
syn match javaNumber "\<\d\+[eE][-+]\=\d\+[fFdD]\=\>"
syn match javaNumber "\<\d\+\([eE][-+]\=\d\+\)\=[fFdD]\>"
syn match javaNumber "\<\(0[bB][0-1]\+\|0[0-7]*\|0[xX]\x\+\|\d\(\d\|_\d\)*\)[lL]\=\>"
syn match javaNumber "\(\<\d\(\d\|_\d\)*\.\(\d\(\d\|_\d\)*\)\=\|\.\d\(\d\|_\d\)*\)\([eE][-+]\=\d\(\d\|_\d\)*\)\=[fFdD]\="
syn match javaNumber "\<\d\(\d\|_\d\)*[eE][-+]\=\d\(\d\|_\d\)*[fFdD]\=\>"
syn match javaNumber "\<\d\(\d\|_\d\)*\([eE][-+]\=\d\(\d\|_\d\)*\)\=[fFdD]\>"
" unicode characters
syn match javaSpecial "\\u\d\{4\}"
@@ -200,19 +200,21 @@ syn cluster javaTop add=javaString,javaCharacter,javaNumber,javaSpecial,javaStri
if exists("java_highlight_functions")
if java_highlight_functions == "indent"
syn match javaFuncDef "^\(\t\| \{8\}\)[_$a-zA-Z][_$a-zA-Z0-9_. \[\]]*([^-+*/()]*)" contains=javaScopeDecl,javaType,javaStorageClass,@javaClasses
syn region javaFuncDef start=+^\(\t\| \{8\}\)[$_a-zA-Z][$_a-zA-Z0-9_. \[\]]*([^-+*/()]*,\s*+ end=+)+ contains=javaScopeDecl,javaType,javaStorageClass,@javaClasses
syn match javaFuncDef "^ [$_a-zA-Z][$_a-zA-Z0-9_. \[\]]*([^-+*/()]*)" contains=javaScopeDecl,javaType,javaStorageClass,@javaClasses
syn region javaFuncDef start=+^ [$_a-zA-Z][$_a-zA-Z0-9_. \[\]]*([^-+*/()]*,\s*+ end=+)+ contains=javaScopeDecl,javaType,javaStorageClass,@javaClasses
syn match javaFuncDef "^\(\t\| \{8\}\)[_$a-zA-Z][_$a-zA-Z0-9_. \[\]<>]*([^-+*/]*)" contains=javaScopeDecl,javaType,javaStorageClass,@javaClasses,javaAnnotation
syn region javaFuncDef start=+^\(\t\| \{8\}\)[$_a-zA-Z][$_a-zA-Z0-9_. \[\]<>]*([^-+*/]*,\s*+ end=+)+ contains=javaScopeDecl,javaType,javaStorageClass,@javaClasses,javaAnnotation
syn match javaFuncDef "^ [$_a-zA-Z][$_a-zA-Z0-9_. \[\]<>]*([^-+*/]*)" contains=javaScopeDecl,javaType,javaStorageClass,@javaClasses,javaAnnotation
syn region javaFuncDef start=+^ [$_a-zA-Z][$_a-zA-Z0-9_. \[\]<>]*([^-+*/]*,\s*+ end=+)+ contains=javaScopeDecl,javaType,javaStorageClass,@javaClasses,javaAnnotation
else
" This line catches method declarations at any indentation>0, but it assumes
" two things:
" 1. class names are always capitalized (ie: Button)
" 2. method names are never capitalized (except constructors, of course)
syn region javaFuncDef start=+^\s\+\(\(public\|protected\|private\|static\|abstract\|final\|native\|synchronized\)\s\+\)*\(\(void\|boolean\|char\|byte\|short\|int\|long\|float\|double\|\([A-Za-z_][A-Za-z0-9_$]*\.\)*[A-Z][A-Za-z0-9_$]*\)\(<[^>]*>\)\=\(\[\]\)*\s\+[a-z][A-Za-z0-9_$]*\|[A-Z][A-Za-z0-9_$]*\)\s*([^0-9]+ end=+)+ contains=javaScopeDecl,javaType,javaStorageClass,javaComment,javaLineComment,@javaClasses
"syn region javaFuncDef start=+^\s\+\(\(public\|protected\|private\|static\|abstract\|final\|native\|synchronized\)\s\+\)*\(\(void\|boolean\|char\|byte\|short\|int\|long\|float\|double\|\([A-Za-z_][A-Za-z0-9_$]*\.\)*[A-Z][A-Za-z0-9_$]*\)\(<[^>]*>\)\=\(\[\]\)*\s\+[a-z][A-Za-z0-9_$]*\|[A-Z][A-Za-z0-9_$]*\)\s*([^0-9]+ end=+)+ contains=javaScopeDecl,javaType,javaStorageClass,javaComment,javaLineComment,@javaClasses
syn region javaFuncDef start=+^\s\+\(\(public\|protected\|private\|static\|abstract\|final\|native\|synchronized\)\s\+\)*\(<.*>\s\+\)\?\(\(void\|boolean\|char\|byte\|short\|int\|long\|float\|double\|\([A-Za-z_][A-Za-z0-9_$]*\.\)*[A-Z][A-Za-z0-9_$]*\)\(<[^(){}]*>\)\=\(\[\]\)*\s\+[a-z][A-Za-z0-9_$]*\|[A-Z][A-Za-z0-9_$]*\)\s*(+ end=+)+ contains=javaScopeDecl,javaType,javaStorageClass,javaComment,javaLineComment,@javaClasses,javaAnnotation
endif
syn match javaLambdaDef "[a-zA-Z_][a-zA-Z0-9_]*\s*->"
syn match javaBraces "[{}]"
syn cluster javaTop add=javaFuncDef,javaBraces
syn cluster javaTop add=javaFuncDef,javaBraces,javaLambdaDef
endif
if exists("java_highlight_debug")
@@ -266,18 +268,23 @@ if exists("java_mark_braces_in_parens_as_errors")
endif
" catch errors caused by wrong parenthesis
syn region javaParenT transparent matchgroup=javaParen start="(" end=")" contains=@javaTop,javaParenT1
syn region javaParenT transparent matchgroup=javaParen start="(" end=")" contains=@javaTop,javaParenT1
syn region javaParenT1 transparent matchgroup=javaParen1 start="(" end=")" contains=@javaTop,javaParenT2 contained
syn region javaParenT2 transparent matchgroup=javaParen2 start="(" end=")" contains=@javaTop,javaParenT contained
syn match javaParenError ")"
" catch errors caused by wrong square parenthesis
syn region javaParenT transparent matchgroup=javaParen start="\[" end="\]" contains=@javaTop,javaParenT1
syn region javaParenT transparent matchgroup=javaParen start="\[" end="\]" contains=@javaTop,javaParenT1
syn region javaParenT1 transparent matchgroup=javaParen1 start="\[" end="\]" contains=@javaTop,javaParenT2 contained
syn region javaParenT2 transparent matchgroup=javaParen2 start="\[" end="\]" contains=@javaTop,javaParenT contained
syn match javaParenError "\]"
JavaHiLink javaParenError javaError
if exists("java_highlight_functions")
syn match javaLambdaDef "([a-zA-Z0-9_<>\[\], \t]*)\s*->"
" needs to be defined after the parenthesis error catcher to work
endif
if !exists("java_minlines")
let java_minlines = 10
endif
@@ -288,6 +295,7 @@ if version >= 508 || !exists("did_java_syn_inits")
if version < 508
let did_java_syn_inits = 1
endif
JavaHiLink javaLambdaDef Function
JavaHiLink javaFuncDef Function
JavaHiLink javaVarArg Function
JavaHiLink javaBraces Function

View File

@@ -1,6 +1,9 @@
" Vim syntax file
" Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2009-05-25
" Maintainer: Christian Brabandt <cb@256bit.org>
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2015-05-29
" License: Vim (see :h license)
" Repository: https://github.com/chrisbra/vim-kconfig
if exists("b:current_syntax")
finish

View File

@@ -2,7 +2,7 @@
" Language: Makefile
" Maintainer: Claudio Fleiner <claudio@fleiner.com>
" URL: http://www.fleiner.com/vim/syntax/make.vim
" Last Change: 2012 Oct 05
" Last Change: 2015 Feb 28
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
@@ -43,8 +43,8 @@ syn region makeIdent start="\$(" skip="\\)\|\\\\" end=")" contains=makeStatement
syn region makeIdent start="\${" skip="\\}\|\\\\" end="}" contains=makeStatement,makeIdent,makeSString,makeDString
syn match makeIdent "\$\$\w*"
syn match makeIdent "\$[^({]"
syn match makeIdent "^ *\a\w*\s*[:+?!*]="me=e-2
syn match makeIdent "^ *\a\w*\s*="me=e-1
syn match makeIdent "^ *[^:#= \t]*\s*[:+?!*]="me=e-2
syn match makeIdent "^ *[^:#= \t]*\s*="me=e-1
syn match makeIdent "%"
" Makefile.in variables
@@ -55,11 +55,11 @@ syn match makeConfig "@[A-Za-z0-9_]\+@"
syn match makeImplicit "^\.[A-Za-z0-9_./\t -]\+\s*:$"me=e-1 nextgroup=makeSource
syn match makeImplicit "^\.[A-Za-z0-9_./\t -]\+\s*:[^=]"me=e-2 nextgroup=makeSource
syn region makeTarget transparent matchgroup=makeTarget start="^[A-Za-z0-9_./$()%-][A-Za-z0-9_./\t $()%-]*:\{1,2}[^:=]"rs=e-1 end=";"re=e-1,me=e-1 end="[^\\]$" keepend contains=makeIdent,makeSpecTarget,makeNextLine skipnl nextGroup=makeCommands
syn match makeTarget "^[A-Za-z0-9_./$()%*@-][A-Za-z0-9_./\t $()%*@-]*::\=\s*$" contains=makeIdent,makeSpecTarget skipnl nextgroup=makeCommands,makeCommandError
syn region makeTarget transparent matchgroup=makeTarget start="^[~A-Za-z0-9_./$()%-][A-Za-z0-9_./\t $()%-]*:\{1,2}[^:=]"rs=e-1 end=";"re=e-1,me=e-1 end="[^\\]$" keepend contains=makeIdent,makeSpecTarget,makeNextLine,makeComment skipnl nextGroup=makeCommands
syn match makeTarget "^[~A-Za-z0-9_./$()%*@-][A-Za-z0-9_./\t $()%*@-]*::\=\s*$" contains=makeIdent,makeSpecTarget,makeComment skipnl nextgroup=makeCommands,makeCommandError
syn region makeSpecTarget transparent matchgroup=makeSpecTarget start="^\.\(SUFFIXES\|PHONY\|DEFAULT\|PRECIOUS\|IGNORE\|SILENT\|EXPORT_ALL_VARIABLES\|KEEP_STATE\|LIBPATTERNS\|NOTPARALLEL\|DELETE_ON_ERROR\|INTERMEDIATE\|POSIX\|SECONDARY\)\>\s*:\{1,2}[^:=]"rs=e-1 end="[^\\]$" keepend contains=makeIdent,makeSpecTarget,makeNextLine skipnl nextGroup=makeCommands
syn match makeSpecTarget "^\.\(SUFFIXES\|PHONY\|DEFAULT\|PRECIOUS\|IGNORE\|SILENT\|EXPORT_ALL_VARIABLES\|KEEP_STATE\|LIBPATTERNS\|NOTPARALLEL\|DELETE_ON_ERROR\|INTERMEDIATE\|POSIX\|SECONDARY\)\>\s*::\=\s*$" contains=makeIdent skipnl nextgroup=makeCommands,makeCommandError
syn region makeSpecTarget transparent matchgroup=makeSpecTarget start="^\.\(SUFFIXES\|PHONY\|DEFAULT\|PRECIOUS\|IGNORE\|SILENT\|EXPORT_ALL_VARIABLES\|KEEP_STATE\|LIBPATTERNS\|NOTPARALLEL\|DELETE_ON_ERROR\|INTERMEDIATE\|POSIX\|SECONDARY\)\>\s*:\{1,2}[^:=]"rs=e-1 end="[^\\]$" keepend contains=makeIdent,makeSpecTarget,makeNextLine,makeComment skipnl nextGroup=makeCommands
syn match makeSpecTarget "^\.\(SUFFIXES\|PHONY\|DEFAULT\|PRECIOUS\|IGNORE\|SILENT\|EXPORT_ALL_VARIABLES\|KEEP_STATE\|LIBPATTERNS\|NOTPARALLEL\|DELETE_ON_ERROR\|INTERMEDIATE\|POSIX\|SECONDARY\)\>\s*::\=\s*$" contains=makeIdent,makeComment skipnl nextgroup=makeCommands,makeCommandError
syn match makeCommandError "^\s\+\S.*" contained
syn region makeCommands start=";"hs=s+1 start="^\t" end="^[^\t#]"me=e-1,re=e-1 end="^$" contained contains=makeCmdNextLine,makeSpecial,makeComment,makeIdent,makePreCondit,makeDefine,makeDString,makeSString nextgroup=makeCommandError

View File

@@ -1,11 +1,11 @@
" Vim syntax file
" Language: Postfix main.cf configuration
" Maintainer: KELEMEN Peter <Peter dot Kelemen at cern dot ch>
" Last Update: Hong Xu
" Last Change: 2011 May 14
" Last Updates: Anton Shestakov, Hong Xu
" Last Change: 2015 Feb 10
" Version: 0.40
" URL: http://cern.ch/fuji/vim/syntax/pfmain.vim
" Comment: Based on Postfix 2.9 defaults.
" Comment: Based on Postfix 2.12/3.0 postconf.5.html.
if version < 600
syntax clear
@@ -41,6 +41,7 @@ syntax keyword pfmainConf address_verify_relayhost
syntax keyword pfmainConf address_verify_sender
syntax keyword pfmainConf address_verify_sender_dependent_default_transport_maps
syntax keyword pfmainConf address_verify_sender_dependent_relayhost_maps
syntax keyword pfmainConf address_verify_sender_ttl
syntax keyword pfmainConf address_verify_service_name
syntax keyword pfmainConf address_verify_transport_maps
syntax keyword pfmainConf address_verify_virtual_transport
@@ -52,6 +53,7 @@ syntax keyword pfmainConf allow_min_user
syntax keyword pfmainConf allow_percent_hack
syntax keyword pfmainConf allow_untrusted_routing
syntax keyword pfmainConf alternate_config_directories
syntax keyword pfmainConf always_add_missing_headers
syntax keyword pfmainConf always_bcc
syntax keyword pfmainConf anvil_rate_time_unit
syntax keyword pfmainConf anvil_status_update_time
@@ -61,6 +63,7 @@ syntax keyword pfmainConf application_event_drain_time
syntax keyword pfmainConf authorized_flush_users
syntax keyword pfmainConf authorized_mailq_users
syntax keyword pfmainConf authorized_submit_users
syntax keyword pfmainConf authorized_verp_clients
syntax keyword pfmainConf backwards_bounce_logfile_compatibility
syntax keyword pfmainConf berkeley_db_create_buffer_size
syntax keyword pfmainConf berkeley_db_read_buffer_size
@@ -81,7 +84,9 @@ syntax keyword pfmainConf command_directory
syntax keyword pfmainConf command_execution_directory
syntax keyword pfmainConf command_expansion_filter
syntax keyword pfmainConf command_time_limit
syntax keyword pfmainConf compatibility_level
syntax keyword pfmainConf config_directory
syntax keyword pfmainConf confirm_delay_cleared
syntax keyword pfmainConf connection_cache_protocol_timeout
syntax keyword pfmainConf connection_cache_service_name
syntax keyword pfmainConf connection_cache_status_update_time
@@ -89,14 +94,17 @@ syntax keyword pfmainConf connection_cache_ttl_limit
syntax keyword pfmainConf content_filter
syntax keyword pfmainConf cyrus_sasl_config_path
syntax keyword pfmainConf daemon_directory
syntax keyword pfmainConf daemon_table_open_error_is_fatal
syntax keyword pfmainConf daemon_timeout
syntax keyword pfmainConf data_directory
syntax keyword pfmainConf debug_peer_level
syntax keyword pfmainConf debug_peer_list
syntax keyword pfmainConf debugger_command
syntax keyword pfmainConf default_database_type
syntax keyword pfmainConf default_delivery_slot_cost
syntax keyword pfmainConf default_delivery_slot_discount
syntax keyword pfmainConf default_delivery_slot_loan
syntax keyword pfmainConf default_delivery_status_filter
syntax keyword pfmainConf default_destination_concurrency_failed_cohort_limit
syntax keyword pfmainConf default_destination_concurrency_limit
syntax keyword pfmainConf default_destination_concurrency_negative_feedback
@@ -137,6 +145,7 @@ syntax keyword pfmainConf duplicate_filter_limit
syntax keyword pfmainConf empty_address_default_transport_maps_lookup_key
syntax keyword pfmainConf empty_address_recipient
syntax keyword pfmainConf empty_address_relayhost_maps_lookup_key
syntax keyword pfmainConf enable_errors_to
syntax keyword pfmainConf enable_long_queue_ids
syntax keyword pfmainConf enable_original_recipient
syntax keyword pfmainConf error_notice_recipient
@@ -144,6 +153,8 @@ syntax keyword pfmainConf error_service_name
syntax keyword pfmainConf execution_directory_expansion_filter
syntax keyword pfmainConf expand_owner_alias
syntax keyword pfmainConf export_environment
syntax keyword pfmainConf extract_recipient_limit
syntax keyword pfmainConf fallback_relay
syntax keyword pfmainConf fallback_transport
syntax keyword pfmainConf fallback_transport_maps
syntax keyword pfmainConf fast_flush_domains
@@ -177,25 +188,33 @@ syntax keyword pfmainConf ipc_idle
syntax keyword pfmainConf ipc_timeout
syntax keyword pfmainConf ipc_ttl
syntax keyword pfmainConf line_length_limit
syntax keyword pfmainConf lmdb_map_size
syntax keyword pfmainConf lmtp_address_preference
syntax keyword pfmainConf lmtp_address_verify_target
syntax keyword pfmainConf lmtp_assume_final
syntax keyword pfmainConf lmtp_bind_address
syntax keyword pfmainConf lmtp_bind_address6
syntax keyword pfmainConf lmtp_body_checks
syntax keyword pfmainConf lmtp_cache_connection
syntax keyword pfmainConf lmtp_cname_overrides_servername
syntax keyword pfmainConf lmtp_connect_timeout
syntax keyword pfmainConf lmtp_connection_cache_destinations
syntax keyword pfmainConf lmtp_connection_cache_on_demand
syntax keyword pfmainConf lmtp_connection_cache_time_limit
syntax keyword pfmainConf lmtp_connection_reuse_count_limit
syntax keyword pfmainConf lmtp_connection_reuse_time_limit
syntax keyword pfmainConf lmtp_data_done_timeout
syntax keyword pfmainConf lmtp_data_init_timeout
syntax keyword pfmainConf lmtp_data_xfer_timeout
syntax keyword pfmainConf lmtp_defer_if_no_mx_address_found
syntax keyword pfmainConf lmtp_delivery_status_filter
syntax keyword pfmainConf lmtp_destination_concurrency_limit
syntax keyword pfmainConf lmtp_destination_recipient_limit
syntax keyword pfmainConf lmtp_discard_lhlo_keyword_address_maps
syntax keyword pfmainConf lmtp_discard_lhlo_keywords
syntax keyword pfmainConf lmtp_dns_reply_filter
syntax keyword pfmainConf lmtp_dns_resolver_options
syntax keyword pfmainConf lmtp_dns_support_level
syntax keyword pfmainConf lmtp_enforce_tls
syntax keyword pfmainConf lmtp_generic_maps
syntax keyword pfmainConf lmtp_header_checks
@@ -230,9 +249,11 @@ syntax keyword pfmainConf lmtp_sasl_security_options
syntax keyword pfmainConf lmtp_sasl_tls_security_options
syntax keyword pfmainConf lmtp_sasl_tls_verified_security_options
syntax keyword pfmainConf lmtp_sasl_type
syntax keyword pfmainConf lmtp_send_dummy_mail_auth
syntax keyword pfmainConf lmtp_send_xforward_command
syntax keyword pfmainConf lmtp_sender_dependent_authentication
syntax keyword pfmainConf lmtp_skip_5xx_greeting
syntax keyword pfmainConf lmtp_skip_quit_response
syntax keyword pfmainConf lmtp_starttls_timeout
syntax keyword pfmainConf lmtp_tcp_port
syntax keyword pfmainConf lmtp_tls_CAfile
@@ -248,6 +269,7 @@ syntax keyword pfmainConf lmtp_tls_enforce_peername
syntax keyword pfmainConf lmtp_tls_exclude_ciphers
syntax keyword pfmainConf lmtp_tls_fingerprint_cert_match
syntax keyword pfmainConf lmtp_tls_fingerprint_digest
syntax keyword pfmainConf lmtp_tls_force_insecure_host_tlsa_lookup
syntax keyword pfmainConf lmtp_tls_key_file
syntax keyword pfmainConf lmtp_tls_loglevel
syntax keyword pfmainConf lmtp_tls_mandatory_ciphers
@@ -262,10 +284,12 @@ syntax keyword pfmainConf lmtp_tls_secure_cert_match
syntax keyword pfmainConf lmtp_tls_security_level
syntax keyword pfmainConf lmtp_tls_session_cache_database
syntax keyword pfmainConf lmtp_tls_session_cache_timeout
syntax keyword pfmainConf lmtp_tls_trust_anchor_file
syntax keyword pfmainConf lmtp_tls_verify_cert_match
syntax keyword pfmainConf lmtp_use_tls
syntax keyword pfmainConf lmtp_xforward_timeout
syntax keyword pfmainConf local_command_shell
syntax keyword pfmainConf local_delivery_status_filter
syntax keyword pfmainConf local_destination_concurrency_limit
syntax keyword pfmainConf local_destination_recipient_limit
syntax keyword pfmainConf local_header_rewrite_clients
@@ -287,17 +311,19 @@ syntax keyword pfmainConf mailq_path
syntax keyword pfmainConf manpage_directory
syntax keyword pfmainConf maps_rbl_domains
syntax keyword pfmainConf maps_rbl_reject_code
syntax keyword pfmainConf master_service_disable
syntax keyword pfmainConf masquerade_classes
syntax keyword pfmainConf masquerade_domains
syntax keyword pfmainConf masquerade_exceptions
syntax keyword pfmainConf master_service_disable
syntax keyword pfmainConf max_idle
syntax keyword pfmainConf max_use
syntax keyword pfmainConf maximal_backoff_time
syntax keyword pfmainConf maximal_queue_lifetime
syntax keyword pfmainConf message_drop_headers
syntax keyword pfmainConf message_reject_characters
syntax keyword pfmainConf message_size_limit
syntax keyword pfmainConf message_strip_characters
syntax keyword pfmainConf meta_directory
syntax keyword pfmainConf milter_command_timeout
syntax keyword pfmainConf milter_connect_macros
syntax keyword pfmainConf milter_connect_timeout
@@ -335,10 +361,12 @@ syntax keyword pfmainConf newaliases_path
syntax keyword pfmainConf non_fqdn_reject_code
syntax keyword pfmainConf non_smtpd_milters
syntax keyword pfmainConf notify_classes
syntax keyword pfmainConf nullmx_reject_code
syntax keyword pfmainConf owner_request_special
syntax keyword pfmainConf parent_domain_matches_subdomains
syntax keyword pfmainConf permit_mx_backup_networks
syntax keyword pfmainConf pickup_service_name
syntax keyword pfmainConf pipe_delivery_status_filter
syntax keyword pfmainConf plaintext_reject_code
syntax keyword pfmainConf postmulti_control_commands
syntax keyword pfmainConf postmulti_start_commands
@@ -362,7 +390,9 @@ syntax keyword pfmainConf postscreen_dnsbl_action
syntax keyword pfmainConf postscreen_dnsbl_reply_map
syntax keyword pfmainConf postscreen_dnsbl_sites
syntax keyword pfmainConf postscreen_dnsbl_threshold
syntax keyword pfmainConf postscreen_dnsbl_timeout
syntax keyword pfmainConf postscreen_dnsbl_ttl
syntax keyword pfmainConf postscreen_dnsbl_whitelist_threshold
syntax keyword pfmainConf postscreen_enforce_tls
syntax keyword pfmainConf postscreen_expansion_filter
syntax keyword pfmainConf postscreen_forbidden_commands
@@ -381,6 +411,8 @@ syntax keyword pfmainConf postscreen_post_queue_limit
syntax keyword pfmainConf postscreen_pre_queue_limit
syntax keyword pfmainConf postscreen_reject_footer
syntax keyword pfmainConf postscreen_tls_security_level
syntax keyword pfmainConf postscreen_upstream_proxy_protocol
syntax keyword pfmainConf postscreen_upstream_proxy_timeout
syntax keyword pfmainConf postscreen_use_tls
syntax keyword pfmainConf postscreen_watchdog_timeout
syntax keyword pfmainConf postscreen_whitelist_interfaces
@@ -395,7 +427,9 @@ syntax keyword pfmainConf proxy_write_maps
syntax keyword pfmainConf proxymap_service_name
syntax keyword pfmainConf proxywrite_service_name
syntax keyword pfmainConf qmgr_clog_warn_time
syntax keyword pfmainConf qmgr_daemon_timeout
syntax keyword pfmainConf qmgr_fudge_factor
syntax keyword pfmainConf qmgr_ipc_timeout
syntax keyword pfmainConf qmgr_message_active_limit
syntax keyword pfmainConf qmgr_message_recipient_limit
syntax keyword pfmainConf qmgr_message_recipient_minimum
@@ -435,17 +469,21 @@ syntax keyword pfmainConf resolve_numeric_domain
syntax keyword pfmainConf rewrite_service_name
syntax keyword pfmainConf sample_directory
syntax keyword pfmainConf send_cyrus_sasl_authzid
syntax keyword pfmainConf sender_based_routing
syntax keyword pfmainConf sender_bcc_maps
syntax keyword pfmainConf sender_canonical_classes
syntax keyword pfmainConf sender_canonical_maps
syntax keyword pfmainConf sender_dependent_default_transport_maps
syntax keyword pfmainConf sender_dependent_relayhost_maps
syntax keyword pfmainConf sendmail_fix_line_endings
syntax keyword pfmainConf sendmail_path
syntax keyword pfmainConf service_throttle_time
syntax keyword pfmainConf setgid_group
syntax keyword pfmainConf shlib_directory
syntax keyword pfmainConf show_user_unknown_table_name
syntax keyword pfmainConf showq_service_name
syntax keyword pfmainConf smtp_address_preference
syntax keyword pfmainConf smtp_address_verify_target
syntax keyword pfmainConf smtp_always_send_ehlo
syntax keyword pfmainConf smtp_bind_address
syntax keyword pfmainConf smtp_bind_address6
@@ -455,16 +493,20 @@ syntax keyword pfmainConf smtp_connect_timeout
syntax keyword pfmainConf smtp_connection_cache_destinations
syntax keyword pfmainConf smtp_connection_cache_on_demand
syntax keyword pfmainConf smtp_connection_cache_time_limit
syntax keyword pfmainConf smtp_connection_reuse_count_limit
syntax keyword pfmainConf smtp_connection_reuse_time_limit
syntax keyword pfmainConf smtp_data_done_timeout
syntax keyword pfmainConf smtp_data_init_timeout
syntax keyword pfmainConf smtp_data_xfer_timeout
syntax keyword pfmainConf smtp_defer_if_no_mx_address_found
syntax keyword pfmainConf smtp_delivery_status_filter
syntax keyword pfmainConf smtp_destination_concurrency_limit
syntax keyword pfmainConf smtp_destination_recipient_limit
syntax keyword pfmainConf smtp_discard_ehlo_keyword_address_maps
syntax keyword pfmainConf smtp_discard_ehlo_keywords
syntax keyword pfmainConf smtp_dns_reply_filter
syntax keyword pfmainConf smtp_dns_resolver_options
syntax keyword pfmainConf smtp_dns_support_level
syntax keyword pfmainConf smtp_enforce_tls
syntax keyword pfmainConf smtp_fallback_relay
syntax keyword pfmainConf smtp_generic_maps
@@ -479,6 +521,7 @@ syntax keyword pfmainConf smtp_mx_address_limit
syntax keyword pfmainConf smtp_mx_session_limit
syntax keyword pfmainConf smtp_nested_header_checks
syntax keyword pfmainConf smtp_never_send_ehlo
syntax keyword pfmainConf smtp_per_record_deadline
syntax keyword pfmainConf smtp_pix_workaround_delay_time
syntax keyword pfmainConf smtp_pix_workaround_maps
syntax keyword pfmainConf smtp_pix_workaround_threshold_time
@@ -500,8 +543,10 @@ syntax keyword pfmainConf smtp_sasl_security_options
syntax keyword pfmainConf smtp_sasl_tls_security_options
syntax keyword pfmainConf smtp_sasl_tls_verified_security_options
syntax keyword pfmainConf smtp_sasl_type
syntax keyword pfmainConf smtp_send_dummy_mail_auth
syntax keyword pfmainConf smtp_send_xforward_command
syntax keyword pfmainConf smtp_sender_dependent_authentication
syntax keyword pfmainConf smtp_skip_4xx_greeting
syntax keyword pfmainConf smtp_skip_5xx_greeting
syntax keyword pfmainConf smtp_skip_quit_response
syntax keyword pfmainConf smtp_starttls_timeout
@@ -519,6 +564,7 @@ syntax keyword pfmainConf smtp_tls_enforce_peername
syntax keyword pfmainConf smtp_tls_exclude_ciphers
syntax keyword pfmainConf smtp_tls_fingerprint_cert_match
syntax keyword pfmainConf smtp_tls_fingerprint_digest
syntax keyword pfmainConf smtp_tls_force_insecure_host_tlsa_lookup
syntax keyword pfmainConf smtp_tls_key_file
syntax keyword pfmainConf smtp_tls_loglevel
syntax keyword pfmainConf smtp_tls_mandatory_ciphers
@@ -533,7 +579,9 @@ syntax keyword pfmainConf smtp_tls_secure_cert_match
syntax keyword pfmainConf smtp_tls_security_level
syntax keyword pfmainConf smtp_tls_session_cache_database
syntax keyword pfmainConf smtp_tls_session_cache_timeout
syntax keyword pfmainConf smtp_tls_trust_anchor_file
syntax keyword pfmainConf smtp_tls_verify_cert_match
syntax keyword pfmainConf smtp_tls_wrappermode
syntax keyword pfmainConf smtp_use_tls
syntax keyword pfmainConf smtp_xforward_timeout
syntax keyword pfmainConf smtpd_authorized_verp_clients
@@ -554,6 +602,7 @@ syntax keyword pfmainConf smtpd_delay_open_until_valid_rcpt
syntax keyword pfmainConf smtpd_delay_reject
syntax keyword pfmainConf smtpd_discard_ehlo_keyword_address_maps
syntax keyword pfmainConf smtpd_discard_ehlo_keywords
syntax keyword pfmainConf smtpd_dns_reply_filter
syntax keyword pfmainConf smtpd_end_of_data_restrictions
syntax keyword pfmainConf smtpd_enforce_tls
syntax keyword pfmainConf smtpd_error_sleep_time
@@ -565,14 +614,19 @@ syntax keyword pfmainConf smtpd_helo_required
syntax keyword pfmainConf smtpd_helo_restrictions
syntax keyword pfmainConf smtpd_history_flush_threshold
syntax keyword pfmainConf smtpd_junk_command_limit
syntax keyword pfmainConf smtpd_log_access_permit_actions
syntax keyword pfmainConf smtpd_milters
syntax keyword pfmainConf smtpd_noop_commands
syntax keyword pfmainConf smtpd_null_access_lookup_key
syntax keyword pfmainConf smtpd_peername_lookup
syntax keyword pfmainConf smtpd_per_record_deadline
syntax keyword pfmainConf smtpd_policy_service_default_action
syntax keyword pfmainConf smtpd_policy_service_max_idle
syntax keyword pfmainConf smtpd_policy_service_max_ttl
syntax keyword pfmainConf smtpd_policy_service_request_limit
syntax keyword pfmainConf smtpd_policy_service_retry_delay
syntax keyword pfmainConf smtpd_policy_service_timeout
syntax keyword pfmainConf smtpd_policy_service_try_limit
syntax keyword pfmainConf smtpd_proxy_ehlo
syntax keyword pfmainConf smtpd_proxy_filter
syntax keyword pfmainConf smtpd_proxy_options
@@ -583,13 +637,16 @@ syntax keyword pfmainConf smtpd_recipient_restrictions
syntax keyword pfmainConf smtpd_reject_footer
syntax keyword pfmainConf smtpd_reject_unlisted_recipient
syntax keyword pfmainConf smtpd_reject_unlisted_sender
syntax keyword pfmainConf smtpd_relay_restrictions
syntax keyword pfmainConf smtpd_restriction_classes
syntax keyword pfmainConf smtpd_sasl_application_name
syntax keyword pfmainConf smtpd_sasl_auth_enable
syntax keyword pfmainConf smtpd_sasl_authenticated_header
syntax keyword pfmainConf smtpd_sasl_exceptions_networks
syntax keyword pfmainConf smtpd_sasl_local_domain
syntax keyword pfmainConf smtpd_sasl_path
syntax keyword pfmainConf smtpd_sasl_security_options
syntax keyword pfmainConf smtpd_sasl_service
syntax keyword pfmainConf smtpd_sasl_tls_security_options
syntax keyword pfmainConf smtpd_sasl_type
syntax keyword pfmainConf smtpd_sender_login_maps
@@ -628,21 +685,21 @@ syntax keyword pfmainConf smtpd_tls_security_level
syntax keyword pfmainConf smtpd_tls_session_cache_database
syntax keyword pfmainConf smtpd_tls_session_cache_timeout
syntax keyword pfmainConf smtpd_tls_wrappermode
syntax keyword pfmainConf smtpd_upstream_proxy_protocol
syntax keyword pfmainConf smtpd_upstream_proxy_timeout
syntax keyword pfmainConf smtpd_use_tls
syntax keyword pfmainConf smtputf8_autodetect_classes
syntax keyword pfmainConf smtputf8_enable
syntax keyword pfmainConf soft_bounce
syntax keyword pfmainConf stale_lock_time
syntax keyword pfmainConf stress
syntax keyword pfmainConf strict_7bit_headers
syntax keyword pfmainConf strict_8bitmime
syntax keyword pfmainConf strict_8bitmime_body
syntax keyword pfmainConf strict_mime_encoding_domain
syntax keyword pfmainConf strict_rfc821_envelopes
syntax keyword pfmainConf strict_7bit_headers
syntax keyword pfmainConf strict_8bitmime
syntax keyword pfmainConf strict_8bitmime_body
syntax keyword pfmainConf strict_mailbox_ownership
syntax keyword pfmainConf strict_mime_encoding_domain
syntax keyword pfmainConf strict_rfc821_envelopes
syntax keyword pfmainConf strict_smtputf8
syntax keyword pfmainConf sun_mailtool_compatibility
syntax keyword pfmainConf swap_bangpath
syntax keyword pfmainConf syslog_facility
@@ -650,11 +707,15 @@ syntax keyword pfmainConf syslog_name
syntax keyword pfmainConf tcp_windowsize
syntax keyword pfmainConf tls_append_default_CA
syntax keyword pfmainConf tls_daemon_random_bytes
syntax keyword pfmainConf tls_dane_digest_agility
syntax keyword pfmainConf tls_dane_digests
syntax keyword pfmainConf tls_dane_trust_anchor_digest_enable
syntax keyword pfmainConf tls_disable_workarounds
syntax keyword pfmainConf tls_eecdh_strong_curve
syntax keyword pfmainConf tls_eecdh_ultra_curve
syntax keyword pfmainConf tls_export_cipherlist
syntax keyword pfmainConf tls_high_cipherlist
syntax keyword pfmainConf tls_legacy_public_key_fingerprints
syntax keyword pfmainConf tls_low_cipherlist
syntax keyword pfmainConf tls_medium_cipherlist
syntax keyword pfmainConf tls_null_cipherlist
@@ -664,6 +725,10 @@ syntax keyword pfmainConf tls_random_exchange_name
syntax keyword pfmainConf tls_random_prng_update_period
syntax keyword pfmainConf tls_random_reseed_period
syntax keyword pfmainConf tls_random_source
syntax keyword pfmainConf tls_session_ticket_cipher
syntax keyword pfmainConf tls_ssl_options
syntax keyword pfmainConf tls_wildcard_matches_multiple_labels
syntax keyword pfmainConf tlsmgr_service_name
syntax keyword pfmainConf tlsproxy_enforce_tls
syntax keyword pfmainConf tlsproxy_service_name
syntax keyword pfmainConf tlsproxy_tls_CAfile
@@ -711,6 +776,7 @@ syntax keyword pfmainConf transport_recipient_limit
syntax keyword pfmainConf transport_recipient_refill_delay
syntax keyword pfmainConf transport_recipient_refill_limit
syntax keyword pfmainConf transport_retry_time
syntax keyword pfmainConf transport_time_limit
syntax keyword pfmainConf trigger_timeout
syntax keyword pfmainConf undisclosed_recipients_header
syntax keyword pfmainConf unknown_address_reject_code
@@ -731,10 +797,12 @@ syntax keyword pfmainConf unverified_sender_reject_code
syntax keyword pfmainConf unverified_sender_reject_reason
syntax keyword pfmainConf unverified_sender_tempfail_action
syntax keyword pfmainConf verp_delimiter_filter
syntax keyword pfmainConf virtual_alias_address_length_limit
syntax keyword pfmainConf virtual_alias_domains
syntax keyword pfmainConf virtual_alias_expansion_limit
syntax keyword pfmainConf virtual_alias_maps
syntax keyword pfmainConf virtual_alias_recursion_limit
syntax keyword pfmainConf virtual_delivery_status_filter
syntax keyword pfmainConf virtual_destination_concurrency_limit
syntax keyword pfmainConf virtual_destination_recipient_limit
syntax keyword pfmainConf virtual_gid_maps
@@ -743,6 +811,7 @@ syntax keyword pfmainConf virtual_mailbox_domains
syntax keyword pfmainConf virtual_mailbox_limit
syntax keyword pfmainConf virtual_mailbox_lock
syntax keyword pfmainConf virtual_mailbox_maps
syntax keyword pfmainConf virtual_maps
syntax keyword pfmainConf virtual_minimum_uid
syntax keyword pfmainConf virtual_transport
syntax keyword pfmainConf virtual_uid_maps
@@ -765,6 +834,7 @@ syntax match pfmainRef "$\<address_verify_relayhost\>"
syntax match pfmainRef "$\<address_verify_sender\>"
syntax match pfmainRef "$\<address_verify_sender_dependent_default_transport_maps\>"
syntax match pfmainRef "$\<address_verify_sender_dependent_relayhost_maps\>"
syntax match pfmainRef "$\<address_verify_sender_ttl\>"
syntax match pfmainRef "$\<address_verify_service_name\>"
syntax match pfmainRef "$\<address_verify_transport_maps\>"
syntax match pfmainRef "$\<address_verify_virtual_transport\>"
@@ -776,6 +846,7 @@ syntax match pfmainRef "$\<allow_min_user\>"
syntax match pfmainRef "$\<allow_percent_hack\>"
syntax match pfmainRef "$\<allow_untrusted_routing\>"
syntax match pfmainRef "$\<alternate_config_directories\>"
syntax match pfmainRef "$\<always_add_missing_headers\>"
syntax match pfmainRef "$\<always_bcc\>"
syntax match pfmainRef "$\<anvil_rate_time_unit\>"
syntax match pfmainRef "$\<anvil_status_update_time\>"
@@ -785,6 +856,7 @@ syntax match pfmainRef "$\<application_event_drain_time\>"
syntax match pfmainRef "$\<authorized_flush_users\>"
syntax match pfmainRef "$\<authorized_mailq_users\>"
syntax match pfmainRef "$\<authorized_submit_users\>"
syntax match pfmainRef "$\<authorized_verp_clients\>"
syntax match pfmainRef "$\<backwards_bounce_logfile_compatibility\>"
syntax match pfmainRef "$\<berkeley_db_create_buffer_size\>"
syntax match pfmainRef "$\<berkeley_db_read_buffer_size\>"
@@ -805,7 +877,9 @@ syntax match pfmainRef "$\<command_directory\>"
syntax match pfmainRef "$\<command_execution_directory\>"
syntax match pfmainRef "$\<command_expansion_filter\>"
syntax match pfmainRef "$\<command_time_limit\>"
syntax match pfmainRef "$\<compatibility_level\>"
syntax match pfmainRef "$\<config_directory\>"
syntax match pfmainRef "$\<confirm_delay_cleared\>"
syntax match pfmainRef "$\<connection_cache_protocol_timeout\>"
syntax match pfmainRef "$\<connection_cache_service_name\>"
syntax match pfmainRef "$\<connection_cache_status_update_time\>"
@@ -813,14 +887,17 @@ syntax match pfmainRef "$\<connection_cache_ttl_limit\>"
syntax match pfmainRef "$\<content_filter\>"
syntax match pfmainRef "$\<cyrus_sasl_config_path\>"
syntax match pfmainRef "$\<daemon_directory\>"
syntax match pfmainRef "$\<daemon_table_open_error_is_fatal\>"
syntax match pfmainRef "$\<daemon_timeout\>"
syntax match pfmainRef "$\<data_directory\>"
syntax match pfmainRef "$\<debug_peer_level\>"
syntax match pfmainRef "$\<debug_peer_list\>"
syntax match pfmainRef "$\<debugger_command\>"
syntax match pfmainRef "$\<default_database_type\>"
syntax match pfmainRef "$\<default_delivery_slot_cost\>"
syntax match pfmainRef "$\<default_delivery_slot_discount\>"
syntax match pfmainRef "$\<default_delivery_slot_loan\>"
syntax match pfmainRef "$\<default_delivery_status_filter\>"
syntax match pfmainRef "$\<default_destination_concurrency_failed_cohort_limit\>"
syntax match pfmainRef "$\<default_destination_concurrency_limit\>"
syntax match pfmainRef "$\<default_destination_concurrency_negative_feedback\>"
@@ -861,6 +938,7 @@ syntax match pfmainRef "$\<duplicate_filter_limit\>"
syntax match pfmainRef "$\<empty_address_default_transport_maps_lookup_key\>"
syntax match pfmainRef "$\<empty_address_recipient\>"
syntax match pfmainRef "$\<empty_address_relayhost_maps_lookup_key\>"
syntax match pfmainRef "$\<enable_errors_to\>"
syntax match pfmainRef "$\<enable_long_queue_ids\>"
syntax match pfmainRef "$\<enable_original_recipient\>"
syntax match pfmainRef "$\<error_notice_recipient\>"
@@ -868,6 +946,8 @@ syntax match pfmainRef "$\<error_service_name\>"
syntax match pfmainRef "$\<execution_directory_expansion_filter\>"
syntax match pfmainRef "$\<expand_owner_alias\>"
syntax match pfmainRef "$\<export_environment\>"
syntax match pfmainRef "$\<extract_recipient_limit\>"
syntax match pfmainRef "$\<fallback_relay\>"
syntax match pfmainRef "$\<fallback_transport\>"
syntax match pfmainRef "$\<fallback_transport_maps\>"
syntax match pfmainRef "$\<fast_flush_domains\>"
@@ -901,25 +981,33 @@ syntax match pfmainRef "$\<ipc_idle\>"
syntax match pfmainRef "$\<ipc_timeout\>"
syntax match pfmainRef "$\<ipc_ttl\>"
syntax match pfmainRef "$\<line_length_limit\>"
syntax match pfmainRef "$\<lmdb_map_size\>"
syntax match pfmainRef "$\<lmtp_address_preference\>"
syntax match pfmainRef "$\<lmtp_address_verify_target\>"
syntax match pfmainRef "$\<lmtp_assume_final\>"
syntax match pfmainRef "$\<lmtp_bind_address\>"
syntax match pfmainRef "$\<lmtp_bind_address6\>"
syntax match pfmainRef "$\<lmtp_body_checks\>"
syntax match pfmainRef "$\<lmtp_cache_connection\>"
syntax match pfmainRef "$\<lmtp_cname_overrides_servername\>"
syntax match pfmainRef "$\<lmtp_connect_timeout\>"
syntax match pfmainRef "$\<lmtp_connection_cache_destinations\>"
syntax match pfmainRef "$\<lmtp_connection_cache_on_demand\>"
syntax match pfmainRef "$\<lmtp_connection_cache_time_limit\>"
syntax match pfmainRef "$\<lmtp_connection_reuse_count_limit\>"
syntax match pfmainRef "$\<lmtp_connection_reuse_time_limit\>"
syntax match pfmainRef "$\<lmtp_data_done_timeout\>"
syntax match pfmainRef "$\<lmtp_data_init_timeout\>"
syntax match pfmainRef "$\<lmtp_data_xfer_timeout\>"
syntax match pfmainRef "$\<lmtp_defer_if_no_mx_address_found\>"
syntax match pfmainRef "$\<lmtp_delivery_status_filter\>"
syntax match pfmainRef "$\<lmtp_destination_concurrency_limit\>"
syntax match pfmainRef "$\<lmtp_destination_recipient_limit\>"
syntax match pfmainRef "$\<lmtp_discard_lhlo_keyword_address_maps\>"
syntax match pfmainRef "$\<lmtp_discard_lhlo_keywords\>"
syntax match pfmainRef "$\<lmtp_dns_reply_filter\>"
syntax match pfmainRef "$\<lmtp_dns_resolver_options\>"
syntax match pfmainRef "$\<lmtp_dns_support_level\>"
syntax match pfmainRef "$\<lmtp_enforce_tls\>"
syntax match pfmainRef "$\<lmtp_generic_maps\>"
syntax match pfmainRef "$\<lmtp_header_checks\>"
@@ -954,9 +1042,11 @@ syntax match pfmainRef "$\<lmtp_sasl_security_options\>"
syntax match pfmainRef "$\<lmtp_sasl_tls_security_options\>"
syntax match pfmainRef "$\<lmtp_sasl_tls_verified_security_options\>"
syntax match pfmainRef "$\<lmtp_sasl_type\>"
syntax match pfmainRef "$\<lmtp_send_dummy_mail_auth\>"
syntax match pfmainRef "$\<lmtp_send_xforward_command\>"
syntax match pfmainRef "$\<lmtp_sender_dependent_authentication\>"
syntax match pfmainRef "$\<lmtp_skip_5xx_greeting\>"
syntax match pfmainRef "$\<lmtp_skip_quit_response\>"
syntax match pfmainRef "$\<lmtp_starttls_timeout\>"
syntax match pfmainRef "$\<lmtp_tcp_port\>"
syntax match pfmainRef "$\<lmtp_tls_CAfile\>"
@@ -972,6 +1062,7 @@ syntax match pfmainRef "$\<lmtp_tls_enforce_peername\>"
syntax match pfmainRef "$\<lmtp_tls_exclude_ciphers\>"
syntax match pfmainRef "$\<lmtp_tls_fingerprint_cert_match\>"
syntax match pfmainRef "$\<lmtp_tls_fingerprint_digest\>"
syntax match pfmainRef "$\<lmtp_tls_force_insecure_host_tlsa_lookup\>"
syntax match pfmainRef "$\<lmtp_tls_key_file\>"
syntax match pfmainRef "$\<lmtp_tls_loglevel\>"
syntax match pfmainRef "$\<lmtp_tls_mandatory_ciphers\>"
@@ -982,11 +1073,16 @@ syntax match pfmainRef "$\<lmtp_tls_per_site\>"
syntax match pfmainRef "$\<lmtp_tls_policy_maps\>"
syntax match pfmainRef "$\<lmtp_tls_protocols\>"
syntax match pfmainRef "$\<lmtp_tls_scert_verifydepth\>"
syntax match pfmainRef "$\<lmtp_tls_secure_cert_match\>"
syntax match pfmainRef "$\<lmtp_tls_security_level\>"
syntax match pfmainRef "$\<lmtp_tls_session_cache_database\>"
syntax match pfmainRef "$\<lmtp_tls_session_cache_timeout\>"
syntax match pfmainRef "$\<lmtp_tls_trust_anchor_file\>"
syntax match pfmainRef "$\<lmtp_tls_verify_cert_match\>"
syntax match pfmainRef "$\<lmtp_use_tls\>"
syntax match pfmainRef "$\<lmtp_xforward_timeout\>"
syntax match pfmainRef "$\<local_command_shell\>"
syntax match pfmainRef "$\<local_delivery_status_filter\>"
syntax match pfmainRef "$\<local_destination_concurrency_limit\>"
syntax match pfmainRef "$\<local_destination_recipient_limit\>"
syntax match pfmainRef "$\<local_header_rewrite_clients\>"
@@ -1008,17 +1104,19 @@ syntax match pfmainRef "$\<mailq_path\>"
syntax match pfmainRef "$\<manpage_directory\>"
syntax match pfmainRef "$\<maps_rbl_domains\>"
syntax match pfmainRef "$\<maps_rbl_reject_code\>"
syntax match pfmainRef "$\<master_service_disable\>"
syntax match pfmainRef "$\<masquerade_classes\>"
syntax match pfmainRef "$\<masquerade_domains\>"
syntax match pfmainRef "$\<masquerade_exceptions\>"
syntax match pfmainRef "$\<master_service_disable\>"
syntax match pfmainRef "$\<max_idle\>"
syntax match pfmainRef "$\<max_use\>"
syntax match pfmainRef "$\<maximal_backoff_time\>"
syntax match pfmainRef "$\<maximal_queue_lifetime\>"
syntax match pfmainRef "$\<message_drop_headers\>"
syntax match pfmainRef "$\<message_reject_characters\>"
syntax match pfmainRef "$\<message_size_limit\>"
syntax match pfmainRef "$\<message_strip_characters\>"
syntax match pfmainRef "$\<meta_directory\>"
syntax match pfmainRef "$\<milter_command_timeout\>"
syntax match pfmainRef "$\<milter_connect_macros\>"
syntax match pfmainRef "$\<milter_connect_timeout\>"
@@ -1056,10 +1154,12 @@ syntax match pfmainRef "$\<newaliases_path\>"
syntax match pfmainRef "$\<non_fqdn_reject_code\>"
syntax match pfmainRef "$\<non_smtpd_milters\>"
syntax match pfmainRef "$\<notify_classes\>"
syntax match pfmainRef "$\<nullmx_reject_code\>"
syntax match pfmainRef "$\<owner_request_special\>"
syntax match pfmainRef "$\<parent_domain_matches_subdomains\>"
syntax match pfmainRef "$\<permit_mx_backup_networks\>"
syntax match pfmainRef "$\<pickup_service_name\>"
syntax match pfmainRef "$\<pipe_delivery_status_filter\>"
syntax match pfmainRef "$\<plaintext_reject_code\>"
syntax match pfmainRef "$\<postmulti_control_commands\>"
syntax match pfmainRef "$\<postmulti_start_commands\>"
@@ -1083,7 +1183,9 @@ syntax match pfmainRef "$\<postscreen_dnsbl_action\>"
syntax match pfmainRef "$\<postscreen_dnsbl_reply_map\>"
syntax match pfmainRef "$\<postscreen_dnsbl_sites\>"
syntax match pfmainRef "$\<postscreen_dnsbl_threshold\>"
syntax match pfmainRef "$\<postscreen_dnsbl_timeout\>"
syntax match pfmainRef "$\<postscreen_dnsbl_ttl\>"
syntax match pfmainRef "$\<postscreen_dnsbl_whitelist_threshold\>"
syntax match pfmainRef "$\<postscreen_enforce_tls\>"
syntax match pfmainRef "$\<postscreen_expansion_filter\>"
syntax match pfmainRef "$\<postscreen_forbidden_commands\>"
@@ -1102,9 +1204,8 @@ syntax match pfmainRef "$\<postscreen_post_queue_limit\>"
syntax match pfmainRef "$\<postscreen_pre_queue_limit\>"
syntax match pfmainRef "$\<postscreen_reject_footer\>"
syntax match pfmainRef "$\<postscreen_tls_security_level\>"
syntax match pfmainRef "$\<lmtp_tls_secure_cert_match\>"
syntax match pfmainRef "$\<lmtp_tls_security_level\>"
syntax match pfmainRef "$\<lmtp_tls_session_cache_database\>"
syntax match pfmainRef "$\<postscreen_upstream_proxy_protocol\>"
syntax match pfmainRef "$\<postscreen_upstream_proxy_timeout\>"
syntax match pfmainRef "$\<postscreen_use_tls\>"
syntax match pfmainRef "$\<postscreen_watchdog_timeout\>"
syntax match pfmainRef "$\<postscreen_whitelist_interfaces\>"
@@ -1119,7 +1220,9 @@ syntax match pfmainRef "$\<proxy_write_maps\>"
syntax match pfmainRef "$\<proxymap_service_name\>"
syntax match pfmainRef "$\<proxywrite_service_name\>"
syntax match pfmainRef "$\<qmgr_clog_warn_time\>"
syntax match pfmainRef "$\<qmgr_daemon_timeout\>"
syntax match pfmainRef "$\<qmgr_fudge_factor\>"
syntax match pfmainRef "$\<qmgr_ipc_timeout\>"
syntax match pfmainRef "$\<qmgr_message_active_limit\>"
syntax match pfmainRef "$\<qmgr_message_recipient_limit\>"
syntax match pfmainRef "$\<qmgr_message_recipient_minimum\>"
@@ -1159,17 +1262,21 @@ syntax match pfmainRef "$\<resolve_numeric_domain\>"
syntax match pfmainRef "$\<rewrite_service_name\>"
syntax match pfmainRef "$\<sample_directory\>"
syntax match pfmainRef "$\<send_cyrus_sasl_authzid\>"
syntax match pfmainRef "$\<sender_based_routing\>"
syntax match pfmainRef "$\<sender_bcc_maps\>"
syntax match pfmainRef "$\<sender_canonical_classes\>"
syntax match pfmainRef "$\<sender_canonical_maps\>"
syntax match pfmainRef "$\<sender_dependent_default_transport_maps\>"
syntax match pfmainRef "$\<sender_dependent_relayhost_maps\>"
syntax match pfmainRef "$\<sendmail_fix_line_endings\>"
syntax match pfmainRef "$\<sendmail_path\>"
syntax match pfmainRef "$\<service_throttle_time\>"
syntax match pfmainRef "$\<setgid_group\>"
syntax match pfmainRef "$\<shlib_directory\>"
syntax match pfmainRef "$\<show_user_unknown_table_name\>"
syntax match pfmainRef "$\<showq_service_name\>"
syntax match pfmainRef "$\<smtp_address_preference\>"
syntax match pfmainRef "$\<smtp_address_verify_target\>"
syntax match pfmainRef "$\<smtp_always_send_ehlo\>"
syntax match pfmainRef "$\<smtp_bind_address\>"
syntax match pfmainRef "$\<smtp_bind_address6\>"
@@ -1179,16 +1286,20 @@ syntax match pfmainRef "$\<smtp_connect_timeout\>"
syntax match pfmainRef "$\<smtp_connection_cache_destinations\>"
syntax match pfmainRef "$\<smtp_connection_cache_on_demand\>"
syntax match pfmainRef "$\<smtp_connection_cache_time_limit\>"
syntax match pfmainRef "$\<smtp_connection_reuse_count_limit\>"
syntax match pfmainRef "$\<smtp_connection_reuse_time_limit\>"
syntax match pfmainRef "$\<smtp_data_done_timeout\>"
syntax match pfmainRef "$\<smtp_data_init_timeout\>"
syntax match pfmainRef "$\<smtp_data_xfer_timeout\>"
syntax match pfmainRef "$\<smtp_defer_if_no_mx_address_found\>"
syntax match pfmainRef "$\<smtp_delivery_status_filter\>"
syntax match pfmainRef "$\<smtp_destination_concurrency_limit\>"
syntax match pfmainRef "$\<smtp_destination_recipient_limit\>"
syntax match pfmainRef "$\<smtp_discard_ehlo_keyword_address_maps\>"
syntax match pfmainRef "$\<smtp_discard_ehlo_keywords\>"
syntax match pfmainRef "$\<smtp_dns_reply_filter\>"
syntax match pfmainRef "$\<smtp_dns_resolver_options\>"
syntax match pfmainRef "$\<smtp_dns_support_level\>"
syntax match pfmainRef "$\<smtp_enforce_tls\>"
syntax match pfmainRef "$\<smtp_fallback_relay\>"
syntax match pfmainRef "$\<smtp_generic_maps\>"
@@ -1203,6 +1314,7 @@ syntax match pfmainRef "$\<smtp_mx_address_limit\>"
syntax match pfmainRef "$\<smtp_mx_session_limit\>"
syntax match pfmainRef "$\<smtp_nested_header_checks\>"
syntax match pfmainRef "$\<smtp_never_send_ehlo\>"
syntax match pfmainRef "$\<smtp_per_record_deadline\>"
syntax match pfmainRef "$\<smtp_pix_workaround_delay_time\>"
syntax match pfmainRef "$\<smtp_pix_workaround_maps\>"
syntax match pfmainRef "$\<smtp_pix_workaround_threshold_time\>"
@@ -1224,8 +1336,10 @@ syntax match pfmainRef "$\<smtp_sasl_security_options\>"
syntax match pfmainRef "$\<smtp_sasl_tls_security_options\>"
syntax match pfmainRef "$\<smtp_sasl_tls_verified_security_options\>"
syntax match pfmainRef "$\<smtp_sasl_type\>"
syntax match pfmainRef "$\<smtp_send_dummy_mail_auth\>"
syntax match pfmainRef "$\<smtp_send_xforward_command\>"
syntax match pfmainRef "$\<smtp_sender_dependent_authentication\>"
syntax match pfmainRef "$\<smtp_skip_4xx_greeting\>"
syntax match pfmainRef "$\<smtp_skip_5xx_greeting\>"
syntax match pfmainRef "$\<smtp_skip_quit_response\>"
syntax match pfmainRef "$\<smtp_starttls_timeout\>"
@@ -1243,6 +1357,7 @@ syntax match pfmainRef "$\<smtp_tls_enforce_peername\>"
syntax match pfmainRef "$\<smtp_tls_exclude_ciphers\>"
syntax match pfmainRef "$\<smtp_tls_fingerprint_cert_match\>"
syntax match pfmainRef "$\<smtp_tls_fingerprint_digest\>"
syntax match pfmainRef "$\<smtp_tls_force_insecure_host_tlsa_lookup\>"
syntax match pfmainRef "$\<smtp_tls_key_file\>"
syntax match pfmainRef "$\<smtp_tls_loglevel\>"
syntax match pfmainRef "$\<smtp_tls_mandatory_ciphers\>"
@@ -1257,7 +1372,9 @@ syntax match pfmainRef "$\<smtp_tls_secure_cert_match\>"
syntax match pfmainRef "$\<smtp_tls_security_level\>"
syntax match pfmainRef "$\<smtp_tls_session_cache_database\>"
syntax match pfmainRef "$\<smtp_tls_session_cache_timeout\>"
syntax match pfmainRef "$\<smtp_tls_trust_anchor_file\>"
syntax match pfmainRef "$\<smtp_tls_verify_cert_match\>"
syntax match pfmainRef "$\<smtp_tls_wrappermode\>"
syntax match pfmainRef "$\<smtp_use_tls\>"
syntax match pfmainRef "$\<smtp_xforward_timeout\>"
syntax match pfmainRef "$\<smtpd_authorized_verp_clients\>"
@@ -1278,6 +1395,7 @@ syntax match pfmainRef "$\<smtpd_delay_open_until_valid_rcpt\>"
syntax match pfmainRef "$\<smtpd_delay_reject\>"
syntax match pfmainRef "$\<smtpd_discard_ehlo_keyword_address_maps\>"
syntax match pfmainRef "$\<smtpd_discard_ehlo_keywords\>"
syntax match pfmainRef "$\<smtpd_dns_reply_filter\>"
syntax match pfmainRef "$\<smtpd_end_of_data_restrictions\>"
syntax match pfmainRef "$\<smtpd_enforce_tls\>"
syntax match pfmainRef "$\<smtpd_error_sleep_time\>"
@@ -1289,14 +1407,19 @@ syntax match pfmainRef "$\<smtpd_helo_required\>"
syntax match pfmainRef "$\<smtpd_helo_restrictions\>"
syntax match pfmainRef "$\<smtpd_history_flush_threshold\>"
syntax match pfmainRef "$\<smtpd_junk_command_limit\>"
syntax match pfmainRef "$\<smtpd_log_access_permit_actions\>"
syntax match pfmainRef "$\<smtpd_milters\>"
syntax match pfmainRef "$\<smtpd_noop_commands\>"
syntax match pfmainRef "$\<smtpd_null_access_lookup_key\>"
syntax match pfmainRef "$\<smtpd_peername_lookup\>"
syntax match pfmainRef "$\<smtpd_per_record_deadline\>"
syntax match pfmainRef "$\<smtpd_policy_service_default_action\>"
syntax match pfmainRef "$\<smtpd_policy_service_max_idle\>"
syntax match pfmainRef "$\<smtpd_policy_service_max_ttl\>"
syntax match pfmainRef "$\<smtpd_policy_service_request_limit\>"
syntax match pfmainRef "$\<smtpd_policy_service_retry_delay\>"
syntax match pfmainRef "$\<smtpd_policy_service_timeout\>"
syntax match pfmainRef "$\<smtpd_policy_service_try_limit\>"
syntax match pfmainRef "$\<smtpd_proxy_ehlo\>"
syntax match pfmainRef "$\<smtpd_proxy_filter\>"
syntax match pfmainRef "$\<smtpd_proxy_options\>"
@@ -1307,13 +1430,16 @@ syntax match pfmainRef "$\<smtpd_recipient_restrictions\>"
syntax match pfmainRef "$\<smtpd_reject_footer\>"
syntax match pfmainRef "$\<smtpd_reject_unlisted_recipient\>"
syntax match pfmainRef "$\<smtpd_reject_unlisted_sender\>"
syntax match pfmainRef "$\<smtpd_relay_restrictions\>"
syntax match pfmainRef "$\<smtpd_restriction_classes\>"
syntax match pfmainRef "$\<smtpd_sasl_application_name\>"
syntax match pfmainRef "$\<smtpd_sasl_auth_enable\>"
syntax match pfmainRef "$\<smtpd_sasl_authenticated_header\>"
syntax match pfmainRef "$\<smtpd_sasl_exceptions_networks\>"
syntax match pfmainRef "$\<smtpd_sasl_local_domain\>"
syntax match pfmainRef "$\<smtpd_sasl_path\>"
syntax match pfmainRef "$\<smtpd_sasl_security_options\>"
syntax match pfmainRef "$\<smtpd_sasl_service\>"
syntax match pfmainRef "$\<smtpd_sasl_tls_security_options\>"
syntax match pfmainRef "$\<smtpd_sasl_type\>"
syntax match pfmainRef "$\<smtpd_sender_login_maps\>"
@@ -1352,21 +1478,21 @@ syntax match pfmainRef "$\<smtpd_tls_security_level\>"
syntax match pfmainRef "$\<smtpd_tls_session_cache_database\>"
syntax match pfmainRef "$\<smtpd_tls_session_cache_timeout\>"
syntax match pfmainRef "$\<smtpd_tls_wrappermode\>"
syntax match pfmainRef "$\<smtpd_upstream_proxy_protocol\>"
syntax match pfmainRef "$\<smtpd_upstream_proxy_timeout\>"
syntax match pfmainRef "$\<smtpd_use_tls\>"
syntax match pfmainRef "$\<smtputf8_autodetect_classes\>"
syntax match pfmainRef "$\<smtputf8_enable\>"
syntax match pfmainRef "$\<soft_bounce\>"
syntax match pfmainRef "$\<stale_lock_time\>"
syntax match pfmainRef "$\<stress\>"
syntax match pfmainRef "$\<strict_7bit_headers\>"
syntax match pfmainRef "$\<strict_8bitmime\>"
syntax match pfmainRef "$\<strict_8bitmime_body\>"
syntax match pfmainRef "$\<strict_mime_encoding_domain\>"
syntax match pfmainRef "$\<strict_rfc821_envelopes\>"
syntax match pfmainRef "$\<strict_7bit_headers\>"
syntax match pfmainRef "$\<strict_8bitmime\>"
syntax match pfmainRef "$\<strict_8bitmime_body\>"
syntax match pfmainRef "$\<strict_mailbox_ownership\>"
syntax match pfmainRef "$\<strict_mime_encoding_domain\>"
syntax match pfmainRef "$\<strict_rfc821_envelopes\>"
syntax match pfmainRef "$\<strict_smtputf8\>"
syntax match pfmainRef "$\<sun_mailtool_compatibility\>"
syntax match pfmainRef "$\<swap_bangpath\>"
syntax match pfmainRef "$\<syslog_facility\>"
@@ -1374,11 +1500,15 @@ syntax match pfmainRef "$\<syslog_name\>"
syntax match pfmainRef "$\<tcp_windowsize\>"
syntax match pfmainRef "$\<tls_append_default_CA\>"
syntax match pfmainRef "$\<tls_daemon_random_bytes\>"
syntax match pfmainRef "$\<tls_dane_digest_agility\>"
syntax match pfmainRef "$\<tls_dane_digests\>"
syntax match pfmainRef "$\<tls_dane_trust_anchor_digest_enable\>"
syntax match pfmainRef "$\<tls_disable_workarounds\>"
syntax match pfmainRef "$\<tls_eecdh_strong_curve\>"
syntax match pfmainRef "$\<tls_eecdh_ultra_curve\>"
syntax match pfmainRef "$\<tls_export_cipherlist\>"
syntax match pfmainRef "$\<tls_high_cipherlist\>"
syntax match pfmainRef "$\<tls_legacy_public_key_fingerprints\>"
syntax match pfmainRef "$\<tls_low_cipherlist\>"
syntax match pfmainRef "$\<tls_medium_cipherlist\>"
syntax match pfmainRef "$\<tls_null_cipherlist\>"
@@ -1388,6 +1518,10 @@ syntax match pfmainRef "$\<tls_random_exchange_name\>"
syntax match pfmainRef "$\<tls_random_prng_update_period\>"
syntax match pfmainRef "$\<tls_random_reseed_period\>"
syntax match pfmainRef "$\<tls_random_source\>"
syntax match pfmainRef "$\<tls_session_ticket_cipher\>"
syntax match pfmainRef "$\<tls_ssl_options\>"
syntax match pfmainRef "$\<tls_wildcard_matches_multiple_labels\>"
syntax match pfmainRef "$\<tlsmgr_service_name\>"
syntax match pfmainRef "$\<tlsproxy_enforce_tls\>"
syntax match pfmainRef "$\<tlsproxy_service_name\>"
syntax match pfmainRef "$\<tlsproxy_tls_CAfile\>"
@@ -1435,6 +1569,7 @@ syntax match pfmainRef "$\<transport_recipient_limit\>"
syntax match pfmainRef "$\<transport_recipient_refill_delay\>"
syntax match pfmainRef "$\<transport_recipient_refill_limit\>"
syntax match pfmainRef "$\<transport_retry_time\>"
syntax match pfmainRef "$\<transport_time_limit\>"
syntax match pfmainRef "$\<trigger_timeout\>"
syntax match pfmainRef "$\<undisclosed_recipients_header\>"
syntax match pfmainRef "$\<unknown_address_reject_code\>"
@@ -1455,10 +1590,12 @@ syntax match pfmainRef "$\<unverified_sender_reject_code\>"
syntax match pfmainRef "$\<unverified_sender_reject_reason\>"
syntax match pfmainRef "$\<unverified_sender_tempfail_action\>"
syntax match pfmainRef "$\<verp_delimiter_filter\>"
syntax match pfmainRef "$\<virtual_alias_address_length_limit\>"
syntax match pfmainRef "$\<virtual_alias_domains\>"
syntax match pfmainRef "$\<virtual_alias_expansion_limit\>"
syntax match pfmainRef "$\<virtual_alias_maps\>"
syntax match pfmainRef "$\<virtual_alias_recursion_limit\>"
syntax match pfmainRef "$\<virtual_delivery_status_filter\>"
syntax match pfmainRef "$\<virtual_destination_concurrency_limit\>"
syntax match pfmainRef "$\<virtual_destination_recipient_limit\>"
syntax match pfmainRef "$\<virtual_gid_maps\>"
@@ -1467,39 +1604,62 @@ syntax match pfmainRef "$\<virtual_mailbox_domains\>"
syntax match pfmainRef "$\<virtual_mailbox_limit\>"
syntax match pfmainRef "$\<virtual_mailbox_lock\>"
syntax match pfmainRef "$\<virtual_mailbox_maps\>"
syntax match pfmainRef "$\<virtual_maps\>"
syntax match pfmainRef "$\<virtual_minimum_uid\>"
syntax match pfmainRef "$\<virtual_transport\>"
syntax match pfmainRef "$\<virtual_uid_maps\>"
syntax keyword pfmainWord accept
syntax keyword pfmainWord all
syntax keyword pfmainWord always
syntax keyword pfmainWord check_address_map
syntax keyword pfmainWord check_ccert_access
syntax keyword pfmainWord check_client_a_access
syntax keyword pfmainWord check_client_access
syntax keyword pfmainWord check_client_mx_access
syntax keyword pfmainWord check_client_ns_access
syntax keyword pfmainWord check_etrn_access
syntax keyword pfmainWord check_helo_a_access
syntax keyword pfmainWord check_helo_access
syntax keyword pfmainWord check_helo_mx_access
syntax keyword pfmainWord check_helo_ns_access
syntax keyword pfmainWord check_policy_service
syntax keyword pfmainWord check_recipient_a_access
syntax keyword pfmainWord check_recipient_access
syntax keyword pfmainWord check_recipient_maps
syntax keyword pfmainWord check_recipient_mx_access
syntax keyword pfmainWord check_recipient_ns_access
syntax keyword pfmainWord check_relay_domains
syntax keyword pfmainWord check_reverse_client_hostname_a_access
syntax keyword pfmainWord check_reverse_client_hostname_access
syntax keyword pfmainWord check_reverse_client_hostname_mx_access
syntax keyword pfmainWord check_reverse_client_hostname_ns_access
syntax keyword pfmainWord check_sasl_access
syntax keyword pfmainWord check_sender_a_access
syntax keyword pfmainWord check_sender_access
syntax keyword pfmainWord check_sender_mx_access
syntax keyword pfmainWord check_sender_ns_access
syntax keyword pfmainWord class
syntax keyword pfmainWord client_address
syntax keyword pfmainWord client_port
syntax keyword pfmainWord dane
syntax keyword pfmainWord dane-only
syntax keyword pfmainWord defer
syntax keyword pfmainWord defer_if_permit
syntax keyword pfmainWord defer_if_reject
syntax keyword pfmainWord defer_unauth_destination
syntax keyword pfmainWord disabled
syntax keyword pfmainWord dns
syntax keyword pfmainWord dnssec
syntax keyword pfmainWord drop
syntax keyword pfmainWord dunno
syntax keyword pfmainWord enabled
syntax keyword pfmainWord encrypt
syntax keyword pfmainWord enforce
syntax keyword pfmainWord envelope_recipient
syntax keyword pfmainWord envelope_sender
syntax keyword pfmainWord export
syntax keyword pfmainWord fingerprint
syntax keyword pfmainWord header_recipient
syntax keyword pfmainWord header_sender
syntax keyword pfmainWord high
@@ -1509,22 +1669,37 @@ syntax keyword pfmainWord ipv4
syntax keyword pfmainWord ipv6
syntax keyword pfmainWord localtime
syntax keyword pfmainWord low
syntax keyword pfmainWord may
syntax keyword pfmainWord maybe
syntax keyword pfmainWord medium
syntax keyword pfmainWord native
syntax keyword pfmainWord never
syntax keyword pfmainWord no_address_mappings
syntax keyword pfmainWord no_header_body_checks
syntax keyword pfmainWord no_header_reply
syntax keyword pfmainWord no_milters
syntax keyword pfmainWord no_unknown_recipient_checks
syntax keyword pfmainWord none
syntax keyword pfmainWord null
syntax keyword pfmainWord off
syntax keyword pfmainWord on
syntax keyword pfmainWord permit
syntax keyword pfmainWord permit_auth_destination
syntax keyword pfmainWord permit_dnswl_client
syntax keyword pfmainWord permit_inet_interfaces
syntax keyword pfmainWord permit_mx_backup
syntax keyword pfmainWord permit_mynetworks
syntax keyword pfmainWord permit_naked_ip_address
syntax keyword pfmainWord permit_rhswl_client
syntax keyword pfmainWord permit_sasl_authenticated
syntax keyword pfmainWord permit_tls_all_clientcerts
syntax keyword pfmainWord permit_tls_clientcerts
syntax keyword pfmainWord quarantine
syntax keyword pfmainWord reject
syntax keyword pfmainWord reject_authenticated_sender_login_mismatch
syntax keyword pfmainWord reject_invalid_helo_hostname
syntax keyword pfmainWord reject_invalid_hostname
syntax keyword pfmainWord reject_known_sender_login_mismatch
syntax keyword pfmainWord reject_maps_rbl
syntax keyword pfmainWord reject_multi_recipient_bounce
syntax keyword pfmainWord reject_non_fqdn_helo_hostname
@@ -1537,10 +1712,12 @@ syntax keyword pfmainWord reject_rbl_client
syntax keyword pfmainWord reject_rhsbl_client
syntax keyword pfmainWord reject_rhsbl_helo
syntax keyword pfmainWord reject_rhsbl_recipient
syntax keyword pfmainWord reject_rhsbl_reverse_client
syntax keyword pfmainWord reject_rhsbl_sender
syntax keyword pfmainWord reject_sender_login_mismatch
syntax keyword pfmainWord reject_unauth_destination
syntax keyword pfmainWord reject_unauth_pipelining
syntax keyword pfmainWord reject_unauthenticated_sender_login_mismatch
syntax keyword pfmainWord reject_unknown_address
syntax keyword pfmainWord reject_unknown_client
syntax keyword pfmainWord reject_unknown_client_hostname
@@ -1554,11 +1731,15 @@ syntax keyword pfmainWord reject_unlisted_recipient
syntax keyword pfmainWord reject_unlisted_sender
syntax keyword pfmainWord reject_unverified_recipient
syntax keyword pfmainWord reject_unverified_sender
syntax keyword pfmainWord secure
syntax keyword pfmainWord server_name
syntax keyword pfmainWord sleep
syntax keyword pfmainWord smtpd_access_maps
syntax keyword pfmainWord server_name
syntax keyword pfmainWord speed_adjust
syntax keyword pfmainWord strong
syntax keyword pfmainWord subnet
syntax keyword pfmainWord tempfail
syntax keyword pfmainWord ultra
syntax keyword pfmainWord warn_if_reject
syntax keyword pfmainWord CRYPTOPRO_TLSEXT_BUG
syntax keyword pfmainWord DONT_INSERT_EMPTY_FRAGMENTS
@@ -1574,7 +1755,7 @@ syntax keyword pfmainWord TLS_BLOCK_PADDING_BUG
syntax keyword pfmainWord TLS_D5_BUG
syntax keyword pfmainWord TLS_ROLLBACK_BUG
syntax keyword pfmainDict btree cidr environ hash nis pcre proxy regexp sdbm sdbm static tcp unix
syntax keyword pfmainDict btree cidr environ hash nis pcre proxy regexp sdbm static tcp unix
syntax keyword pfmainQueueDir incoming active deferred corrupt hold
syntax keyword pfmainTransport smtp lmtp unix local relay uucp virtual
syntax keyword pfmainLock fcntl flock dotlock
@@ -1588,26 +1769,50 @@ syntax match pfmainVariable "\$\w\+" contains=pfmainRef
syntax match pfmainSpecial "\<alias\>"
syntax match pfmainSpecial "\<canonical\>"
syntax match pfmainSpecial "\<forward\>"
syntax match pfmainSpecial "\<generic\>"
syntax match pfmainSpecial "\<include\>"
syntax match pfmainSpecial "\<virtual\>"
syntax match pfmainSpecial "\<delay_dotcrlf\>"
syntax match pfmainSpecial "\<disable_esmtp\>"
syntax match pfmainSpecial "\<res_defnames\>"
syntax match pfmainSpecial "\<res_dnsrch\>"
syntax match pfmainSpecial "\<command\>"
syntax match pfmainSpecial "\<file\>"
syntax match pfmainSpecial "\<forward\>"
syntax match pfmainSpecial "\<forward_secrecy\>"
syntax match pfmainSpecial "\<mutual_auth\>"
syntax match pfmainSpecial "\<noactive\>"
syntax match pfmainSpecial "\<noanonymous\>"
syntax match pfmainSpecial "\<nodictionary\>"
syntax match pfmainSpecial "\<noplaintext\>"
syntax match pfmainSpecial "\<bounce\>"
syntax match pfmainSpecial "\<2bounce\>"
syntax match pfmainSpecial "\<data\>"
syntax match pfmainSpecial "\<delay\>"
syntax match pfmainSpecial "\<policy\>"
syntax match pfmainSpecial "\<protocol\>"
syntax match pfmainSpecial "\<resource\>"
syntax match pfmainSpecial "\<software\>"
syntax match pfmainSpecial "\<bounce\>"
syntax match pfmainSpecial "\<cleanup\>"
syntax match pfmainSpecial "\<cyrus\>"
syntax match pfmainSpecial "\<defer\>"
syntax match pfmainSpecial "\<error\>"
syntax match pfmainSpecial "\<flush\>"
syntax match pfmainSpecial "\<notify\>"
syntax match pfmainSpecial "\<pickup\>"
syntax match pfmainSpecial "\<postdrop\>"
syntax match pfmainSpecial "\<qmgr\>"
syntax match pfmainSpecial "\<qmqpd\>"
syntax match pfmainSpecial "\<rewrite\>"
syntax match pfmainSpecial "\<scache\>"
syntax match pfmainSpecial "\<sendmail\>"
syntax match pfmainSpecial "\<showq\>"
syntax match pfmainSpecial "\<smtpd\>"
syntax match pfmainSpecial "\<trace\>"
syntax match pfmainSpecial "\<verify\>"

View File

@@ -1,8 +1,8 @@
" Vim syntax file
" Language: php PHP 3/4/5
" Maintainer: Jason Woofenden <jason@jasonwoof.com>
" Last Change: Sep 18, 2014
" URL: https://gitorious.org/jasonwoof/vim-syntax/blobs/master/php.vim
" Last Change: Mar 24, 2015
" URL: https://jasonwoof.com/gitweb/?p=vim-syntax.git;a=blob;f=php.vim;hb=HEAD
" Former Maintainers: Peter Hodge <toomuchphp-vim@yahoo.com>
" Debian VIM Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
"

View File

@@ -1,7 +1,7 @@
" Vim syntax file
" Language: po (gettext)
" Maintainer: Dwayne Bailey <dwayne@translate.org.za>
" Last Change: 2012 Apr 30
" Last Change: 2015 Jun 07
" Contributors: Dwayne Bailey (Most advanced syntax highlighting)
" Leonardo Fontenelle (Spell checking)
" Nam SungHyun <namsh@kldp.org> (Original maintainer)
@@ -52,6 +52,9 @@ syn match poCommentTranslator "^# .*$" contains=poCopyrightUnset
syn match poCommentAutomatic "^#\..*$"
syn match poCommentSources "^#:.*$"
syn match poCommentFlags "^#,.*$" contains=poFlagFuzzy
syn match poDiffOld '\(^#| "[^{]*+}\|{+[^}]*+}\|{+[^}]*\|"$\)' contained
syn match poDiffNew '\(^#| "[^{]*-}\|{-[^}]*-}\|{-[^}]*\|"$\)' contained
syn match poCommentDiff "^#|.*$" contains=poDiffOld,poDiffNew
" Translations (also includes header fields as they appear in a translation msgstr)
syn region poCommentKDE start=+"_: +ms=s+1 end="\\n" end="\"\n^msgstr"me=s-1 contained
@@ -94,8 +97,11 @@ if version >= 508 || !exists("did_po_syn_inits")
HiLink poCommentAutomatic Comment
HiLink poCommentTranslator Comment
HiLink poCommentFlags Special
HiLink poCommentDiff Comment
HiLink poCopyrightUnset Todo
HiLink poFlagFuzzy Todo
HiLink poDiffOld Todo
HiLink poDiffNew Special
HiLink poObsolete Comment
HiLink poStatementMsgid Statement

View File

@@ -1,9 +1,8 @@
" Vim syntax file
" Language: Python
" Maintainer: Neil Schemenauer <nas@python.ca>
" Last Change: 2014 Jul 16
" Credits: Zvezdan Petkovic <zpetkovic@acm.org>
" Neil Schemenauer <nas@python.ca>
" Maintainer: Zvezdan Petkovic <zpetkovic@acm.org>
" Last Change: 2015 Sep 15
" Credits: Neil Schemenauer <nas@python.ca>
" Dmitry Vasiliev
"
" This version is a major rewrite by Zvezdan Petkovic.
@@ -52,24 +51,26 @@ set cpo&vim
" Keep Python keywords in alphabetical order inside groups for easy
" comparison with the table in the 'Python Language Reference'
" http://docs.python.org/reference/lexical_analysis.html#keywords.
" https://docs.python.org/2/reference/lexical_analysis.html#keywords,
" https://docs.python.org/3/reference/lexical_analysis.html#keywords.
" Groups are in the order presented in NAMING CONVENTIONS in syntax.txt.
" Exceptions come last at the end of each group (class and def below).
"
" Keywords 'with' and 'as' are new in Python 2.6
" (use 'from __future__ import with_statement' in Python 2.5).
"
" Some compromises had to be made to support both Python 3.0 and 2.6.
" We include Python 3.0 features, but when a definition is duplicated,
" Some compromises had to be made to support both Python 3 and 2.
" We include Python 3 features, but when a definition is duplicated,
" the last definition takes precedence.
"
" - 'False', 'None', and 'True' are keywords in Python 3.0 but they are
" built-ins in 2.6 and will be highlighted as built-ins below.
" - 'exec' is a built-in in Python 3.0 and will be highlighted as
" - 'False', 'None', and 'True' are keywords in Python 3 but they are
" built-ins in 2 and will be highlighted as built-ins below.
" - 'exec' is a built-in in Python 3 and will be highlighted as
" built-in below.
" - 'nonlocal' is a keyword in Python 3.0 and will be highlighted.
" - 'print' is a built-in in Python 3.0 and will be highlighted as
" built-in below (use 'from __future__ import print_function' in 2.6)
" - 'nonlocal' is a keyword in Python 3 and will be highlighted.
" - 'print' is a built-in in Python 3 and will be highlighted as
" built-in below (use 'from __future__ import print_function' in 2)
" - async and await were added in Python 3.5 and are soft keywords.
"
syn keyword pythonStatement False, None, True
syn keyword pythonStatement as assert break continue del exec global
@@ -80,6 +81,7 @@ syn keyword pythonRepeat for while
syn keyword pythonOperator and in is not or
syn keyword pythonException except finally raise try
syn keyword pythonInclude from import
syn keyword pythonAsync async await
" Decorators (new in Python 2.4)
syn match pythonDecorator "@" display nextgroup=pythonFunction skipwhite
@@ -95,16 +97,16 @@ syn match pythonComment "#.*$" contains=pythonTodo,@Spell
syn keyword pythonTodo FIXME NOTE NOTES TODO XXX contained
" Triple-quoted strings can contain doctests.
syn region pythonString
syn region pythonString matchgroup=pythonQuotes
\ start=+[uU]\=\z(['"]\)+ end="\z1" skip="\\\\\|\\\z1"
\ contains=pythonEscape,@Spell
syn region pythonString
syn region pythonString matchgroup=pythonTripleQuotes
\ start=+[uU]\=\z('''\|"""\)+ end="\z1" keepend
\ contains=pythonEscape,pythonSpaceError,pythonDoctest,@Spell
syn region pythonRawString
syn region pythonRawString matchgroup=pythonQuotes
\ start=+[uU]\=[rR]\z(['"]\)+ end="\z1" skip="\\\\\|\\\z1"
\ contains=@Spell
syn region pythonRawString
syn region pythonRawString matchgroup=pythonTripleQuotes
\ start=+[uU]\=[rR]\z('''\|"""\)+ end="\z1" keepend
\ contains=pythonSpaceError,pythonDoctest,@Spell
@@ -113,7 +115,7 @@ syn match pythonEscape "\\\o\{1,3}" contained
syn match pythonEscape "\\x\x\{2}" contained
syn match pythonEscape "\%(\\u\x\{4}\|\\U\x\{8}\)" contained
" Python allows case-insensitive Unicode IDs: http://www.unicode.org/charts/
syn match pythonEscape "\\N{.\{-}}" contained
syn match pythonEscape "\\N{\a\+\%(\s\a\+\)*}" contained
syn match pythonEscape "\\$"
if exists("python_highlight_all")
@@ -148,7 +150,8 @@ endif
" - 08e0 or 08j are highlighted,
"
" and so on, as specified in the 'Python Language Reference'.
" http://docs.python.org/reference/lexical_analysis.html#numeric-literals
" https://docs.python.org/2/reference/lexical_analysis.html#numeric-literals
" https://docs.python.org/3/reference/lexical_analysis.html#numeric-literals
if !exists("python_no_number_highlight")
" numbers (including longs and complex)
syn match pythonNumber "\<0[oO]\=\o\+[Ll]\=\>"
@@ -160,54 +163,58 @@ if !exists("python_no_number_highlight")
syn match pythonNumber
\ "\<\d\+\.\%([eE][+-]\=\d\+\)\=[jJ]\=\%(\W\|$\)\@="
syn match pythonNumber
\ "\%(^\|\W\)\@<=\d*\.\d\+\%([eE][+-]\=\d\+\)\=[jJ]\=\>"
\ "\%(^\|\W\)\zs\d*\.\d\+\%([eE][+-]\=\d\+\)\=[jJ]\=\>"
endif
" Group the built-ins in the order in the 'Python Library Reference' for
" easier comparison.
" http://docs.python.org/library/constants.html
" http://docs.python.org/library/functions.html
" http://docs.python.org/library/functions.html#non-essential-built-in-functions
" https://docs.python.org/2/library/constants.html
" https://docs.python.org/3/library/constants.html
" http://docs.python.org/2/library/functions.html
" http://docs.python.org/3/library/functions.html
" http://docs.python.org/2/library/functions.html#non-essential-built-in-functions
" http://docs.python.org/3/library/functions.html#non-essential-built-in-functions
" Python built-in functions are in alphabetical order.
if !exists("python_no_builtin_highlight")
" built-in constants
" 'False', 'True', and 'None' are also reserved words in Python 3.0
" 'False', 'True', and 'None' are also reserved words in Python 3
syn keyword pythonBuiltin False True None
syn keyword pythonBuiltin NotImplemented Ellipsis __debug__
" built-in functions
syn keyword pythonBuiltin abs all any bin bool chr classmethod
syn keyword pythonBuiltin compile complex delattr dict dir divmod
syn keyword pythonBuiltin enumerate eval filter float format
syn keyword pythonBuiltin abs all any bin bool bytearray callable chr
syn keyword pythonBuiltin classmethod compile complex delattr dict dir
syn keyword pythonBuiltin divmod enumerate eval filter float format
syn keyword pythonBuiltin frozenset getattr globals hasattr hash
syn keyword pythonBuiltin help hex id input int isinstance
syn keyword pythonBuiltin issubclass iter len list locals map max
syn keyword pythonBuiltin min next object oct open ord pow print
syn keyword pythonBuiltin property range repr reversed round set
syn keyword pythonBuiltin memoryview min next object oct open ord pow
syn keyword pythonBuiltin print property range repr reversed round set
syn keyword pythonBuiltin setattr slice sorted staticmethod str
syn keyword pythonBuiltin sum super tuple type vars zip __import__
" Python 2.6 only
syn keyword pythonBuiltin basestring callable cmp execfile file
" Python 2 only
syn keyword pythonBuiltin basestring cmp execfile file
syn keyword pythonBuiltin long raw_input reduce reload unichr
syn keyword pythonBuiltin unicode xrange
" Python 3.0 only
syn keyword pythonBuiltin ascii bytearray bytes exec memoryview
" non-essential built-in functions; Python 2.6 only
" Python 3 only
syn keyword pythonBuiltin ascii bytes exec
" non-essential built-in functions; Python 2 only
syn keyword pythonBuiltin apply buffer coerce intern
endif
" From the 'Python Library Reference' class hierarchy at the bottom.
" http://docs.python.org/library/exceptions.html
" http://docs.python.org/2/library/exceptions.html
" http://docs.python.org/3/library/exceptions.html
if !exists("python_no_exception_highlight")
" builtin base exceptions (only used as base classes for other exceptions)
" builtin base exceptions (used mostly as base classes for other exceptions)
syn keyword pythonExceptions BaseException Exception
syn keyword pythonExceptions ArithmeticError EnvironmentError
syn keyword pythonExceptions ArithmeticError BufferError
syn keyword pythonExceptions LookupError
" builtin base exception removed in Python 3.0
syn keyword pythonExceptions StandardError
" builtin base exceptions removed in Python 3
syn keyword pythonExceptions EnvironmentError StandardError
" builtin exceptions (actually raised)
syn keyword pythonExceptions AssertionError AttributeError BufferError
syn keyword pythonExceptions AssertionError AttributeError
syn keyword pythonExceptions EOFError FloatingPointError GeneratorExit
syn keyword pythonExceptions IOError ImportError IndentationError
syn keyword pythonExceptions ImportError IndentationError
syn keyword pythonExceptions IndexError KeyError KeyboardInterrupt
syn keyword pythonExceptions MemoryError NameError NotImplementedError
syn keyword pythonExceptions OSError OverflowError ReferenceError
@@ -215,13 +222,27 @@ if !exists("python_no_exception_highlight")
syn keyword pythonExceptions SystemError SystemExit TabError TypeError
syn keyword pythonExceptions UnboundLocalError UnicodeError
syn keyword pythonExceptions UnicodeDecodeError UnicodeEncodeError
syn keyword pythonExceptions UnicodeTranslateError ValueError VMSError
syn keyword pythonExceptions WindowsError ZeroDivisionError
syn keyword pythonExceptions UnicodeTranslateError ValueError
syn keyword pythonExceptions ZeroDivisionError
" builtin OS exceptions in Python 3
syn keyword pythonExceptions BlockingIOError BrokenPipeError
syn keyword pythonExceptions ChildProcessError ConnectionAbortedError
syn keyword pythonExceptions ConnectionError ConnectionRefusedError
syn keyword pythonExceptions ConnectionResetError FileExistsError
syn keyword pythonExceptions FileNotFoundError InterruptedError
syn keyword pythonExceptions IsADirectoryError NotADirectoryError
syn keyword pythonExceptions PermissionError ProcessLookupError
syn keyword pythonExceptions RecursionError StopAsyncIteration
syn keyword pythonExceptions TimeoutError
" builtin exceptions deprecated/removed in Python 3
syn keyword pythonExceptions IOError VMSError WindowsError
" builtin warnings
syn keyword pythonExceptions BytesWarning DeprecationWarning FutureWarning
syn keyword pythonExceptions ImportWarning PendingDeprecationWarning
syn keyword pythonExceptions RuntimeWarning SyntaxWarning UnicodeWarning
syn keyword pythonExceptions UserWarning Warning
" builtin warnings in Python 3
syn keyword pythonExceptions ResourceWarning
endif
if exists("python_space_error_highlight")
@@ -268,12 +289,15 @@ if version >= 508 || !exists("did_python_syn_inits")
HiLink pythonOperator Operator
HiLink pythonException Exception
HiLink pythonInclude Include
HiLink pythonAsync Statement
HiLink pythonDecorator Define
HiLink pythonFunction Function
HiLink pythonComment Comment
HiLink pythonTodo Todo
HiLink pythonString String
HiLink pythonRawString String
HiLink pythonQuotes String
HiLink pythonTripleQuotes pythonQuotes
HiLink pythonEscape Special
if !exists("python_no_number_highlight")
HiLink pythonNumber Number

View File

@@ -1,7 +1,10 @@
" Vim syntax file
" Language: M$ Resource files (*.rc)
" Maintainer: Heiko Erhardt <Heiko.Erhardt@munich.netsurf.de>
" Last Change: 2001 May 09
" Maintainer: Christian Brabandt
" Last Change: 2015-05-29
" Repository: https://github.com/chrisbra/vim-rc-syntax
" License: Vim (see :h license)
" Previous Maintainer: Heiko Erhardt <Heiko.Erhardt@munich.netsurf.de>
" This file is based on the c.vim
@@ -21,7 +24,7 @@ syn keyword rcMainObject MENU ACCELERATORS TOOLBAR DIALOG
syn keyword rcMainObject STRINGTABLE MESSAGETABLE RCDATA DLGINIT DESIGNINFO
syn keyword rcSubObject POPUP MENUITEM SEPARATOR
syn keyword rcSubObject CONTROL LTEXT CTEXT EDITTEXT
syn keyword rcSubObject CONTROL LTEXT CTEXT RTEXT EDITTEXT
syn keyword rcSubObject BUTTON PUSHBUTTON DEFPUSHBUTTON GROUPBOX LISTBOX COMBOBOX
syn keyword rcSubObject FILEVERSION PRODUCTVERSION FILEFLAGSMASK FILEFLAGS FILEOS
syn keyword rcSubObject FILETYPE FILESUBTYPE

View File

@@ -2,7 +2,7 @@
" Language: reStructuredText documentation format
" Maintainer: Marshall Ward <marshall.ward@gmail.com>
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2014-10-03
" Latest Revision: 2015-09-07
if exists("b:current_syntax")
finish
@@ -81,7 +81,7 @@ syn region rstHyperlinkTarget matchgroup=rstDirective
execute 'syn region rstExDirective contained matchgroup=rstDirective' .
\ ' start=+' . s:ReferenceName . '::\_s+' .
\ ' skip=+^$+' .
\ ' end=+^\s\@!+ contains=@rstCruft'
\ ' end=+^\s\@!+ contains=@rstCruft,rstLiteralBlock'
execute 'syn match rstSubstitutionDefinition contained' .
\ ' /|' . s:ReferenceName . '|\_s\+/ nextgroup=@rstDirectives'

View File

@@ -1,7 +1,8 @@
" Vim syntax file
" Language: screen(1) configuration file
" Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2010-01-03
" Language: screen(1) configuration file
" Maintainer: Dmitri Vereshchagin <dmitri.vereshchagin@gmail.com>
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2015-09-24
if exists("b:current_syntax")
finish
@@ -76,12 +77,16 @@ syn keyword screenCommands
\ break
\ breaktype
\ bufferfile
\ bumpleft
\ bumpright
\ c1
\ caption
\ chacl
\ charset
\ chdir
\ cjkwidth
\ clear
\ collapse
\ colon
\ command
\ compacthist
@@ -104,6 +109,7 @@ syn keyword screenCommands
\ deflogin
\ defmode
\ defmonitor
\ defmousetrack
\ defnonblock
\ defobuflimit
\ defscrollback
@@ -113,6 +119,7 @@ syn keyword screenCommands
\ defutf8
\ defwrap
\ defwritelock
\ defzombie
\ detach
\ digraph
\ dinfo
@@ -126,7 +133,9 @@ syn keyword screenCommands
\ fit
\ flow
\ focus
\ focusminsize
\ gr
\ group
\ hardcopy
\ hardcopy_append
\ hardcopydir
@@ -155,6 +164,7 @@ syn keyword screenCommands
\ maxwin
\ meta
\ monitor
\ mousetrack
\ msgminwait
\ msgwait
\ multiuser
@@ -182,6 +192,7 @@ syn keyword screenCommands
\ register
\ remove
\ removebuf
\ rendition
\ reset
\ resize
\ screen
@@ -197,6 +208,7 @@ syn keyword screenCommands
\ sleep
\ slowpaste
\ sorendition
\ sort
\ source
\ split
\ startup_message
@@ -210,6 +222,7 @@ syn keyword screenCommands
\ time
\ title
\ umask
\ unbindall
\ unsetenv
\ utf8
\ vbell
@@ -228,6 +241,7 @@ syn keyword screenCommands
\ xon
\ zmodem
\ zombie
\ zombie_timeout
hi def link screenEscape Special
hi def link screenComment Comment

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: Jan 08, 2015
" Version: 134
" Last Change: May 29, 2015
" Version: 137
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_SH
" For options and settings, please use: :help ft-sh-syntax
" This file includes many ideas from ?ric Brunet (eric.brunet@ens.fr)
@@ -17,7 +17,7 @@ elseif exists("b:current_syntax")
endif
" AFAICT "." should be considered part of the iskeyword. Using iskeywords in
" syntax is dicey, so the following code permits the user to prevent/override
" syntax is dicey, so the following code permits the user to
" g:sh_isk set to a string : specify iskeyword.
" g:sh_noisk exists : don't change iskeyword
" g:sh_noisk does not exist : (default) append "." to iskeyword
@@ -104,12 +104,11 @@ syn cluster shErrorList contains=shDoError,shIfError,shInError,shCaseError,shEsa
if exists("b:is_kornshell")
syn cluster ErrorList add=shDTestError
endif
syn cluster shArithParenList contains=shArithmetic,shCaseEsac,shComment,shDeref,shDerefSimple,shDo,shEcho,shEscape,shIf,shFor,shNumber,shOperator,shPosnParm,shExSingleQuote,shExDoubleQuote,shRedir,shSingleQuote,shDoubleQuote,shStatement,shVariable,shAlias,shTest,shCtrlSeq,shSpecial,shParen,bashSpecialVariables,bashStatement
syn cluster shArithParenList contains=shArithmetic,shCaseEsac,shComment,shDeref,shDo,shDerefSimple,shEcho,shEscape,shNumber,shOperator,shPosnParm,shExSingleQuote,shExDoubleQuote,shRedir,shSingleQuote,shDoubleQuote,shStatement,shVariable,shAlias,shTest,shCtrlSeq,shSpecial,shParen,bashSpecialVariables,bashStatement,shIf,shFor
syn cluster shArithList contains=@shArithParenList,shParenError
syn cluster shCaseEsacList contains=shCaseStart,shCase,shCaseBar,shCaseIn,shComment,shDeref,shDerefSimple,shCaseCommandSub,shCaseExSingleQuote,shCaseSingleQuote,shCaseDoubleQuote,shCtrlSeq,@shErrorList,shStringSpecial,shCaseRange
syn cluster shCaseList contains=@shCommandSubList,shCaseEsac,shColon,shCommandSub,shComment,shDo,shEcho,shExpr,shFor,shHereDoc,shIf,shRedir,shSetList,shSource,shStatement,shVariable,shCtrlSeq
"syn cluster shColonList contains=@shCaseList
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 shCommandSubList contains=shAlias,shArithmetic,shCmdParenRegion,shCtrlSeq,shDeref,shDerefSimple,shDoubleQuote,shEcho,shEscape,shExDoubleQuote,shExpr,shExSingleQuote,shNumber,shOperator,shOption,shPosnParm,shSingleQuote,shSpecial,shStatement,shSubSh,shTest,shVariable
syn cluster shCurlyList contains=shNumber,shComma,shDeref,shDerefSimple,shDerefSpecial
syn cluster shDblQuoteList contains=shCommandSub,shDeref,shDerefSimple,shEscape,shPosnParm,shCtrlSeq,shSpecial
syn cluster shDerefList contains=shDeref,shDerefSimple,shDerefVar,shDerefSpecial,shDerefWordError,shDerefPPS
@@ -127,9 +126,9 @@ syn cluster shHereList contains=shBeginHere,shHerePayload
syn cluster shHereListDQ contains=shBeginHere,@shDblQuoteList,shHerePayload
syn cluster shIdList contains=shCommandSub,shWrapLineOperator,shSetOption,shDeref,shDerefSimple,shRedir,shExSingleQuote,shExDoubleQuote,shSingleQuote,shDoubleQuote,shExpr,shCtrlSeq,shStringSpecial,shAtExpr
syn cluster shIfList contains=@shLoopList,shDblBrace,shDblParen,shFunctionKey,shFunctionOne,shFunctionTwo
syn cluster shLoopList contains=@shCaseList,shIf,shFor,shForPP,shTestOpr,shExpr,shDblBrace,shConditional,shCaseEsac,shTest,@shErrorList,shSet,shOption
syn cluster shLoopList contains=@shCaseList,@shErrorList,shCaseEsac,shConditional,shDblBrace,shExpr,shFor,shForPP,shIf,shOption,shSet,shTest,shTestOpr
syn cluster shSubShList contains=@shCommandSubList,shCaseEsac,shColon,shCommandSub,shComment,shDo,shEcho,shExpr,shFor,shIf,shRedir,shSetList,shSource,shStatement,shVariable,shCtrlSeq,shOperator
syn cluster shTestList contains=shCharClass,shComment,shCommandSub,shDeref,shDerefSimple,shExDoubleQuote,shDoubleQuote,shExpr,shNumber,shOperator,shExSingleQuote,shSingleQuote,shTestOpr,shTest,shCtrlSeq
syn cluster shTestList contains=shCharClass,shCommandSub,shComment,shCtrlSeq,shDeref,shDerefSimple,shDoubleQuote,shExDoubleQuote,shExpr,shExSingleQuote,shNumber,shOperator,shSingleQuote,shTest,shTestOpr
" Echo: {{{1
" ====
" This one is needed INSIDE a CommandSub, so that `echo bla` be correct
@@ -182,7 +181,7 @@ syn match shRedir "\d<<-\="
syn match shOperator "<<\|>>" contained
syn match shOperator "[!&;|]" contained
syn match shOperator "\[[[^:]\|\]]" contained
syn match shOperator "!\==" skipwhite nextgroup=shPattern
syn match shOperator "[-=/*+%]\==" skipwhite nextgroup=shPattern
syn match shPattern "\<\S\+\())\)\@=" contained contains=shExSingleQuote,shSingleQuote,shExDoubleQuote,shDoubleQuote,shDeref
" Subshells: {{{1
@@ -194,16 +193,15 @@ syn region shSubSh transparent matchgroup=shSubShRegion start="[^(]\zs(" end=")"
"=======
syn region shExpr matchgroup=shRange start="\[" skip=+\\\\\|\\$\|\[+ end="\]" contains=@shTestList,shSpecial
syn region shTest transparent matchgroup=shStatement start="\<test\s" skip=+\\\\\|\\$+ matchgroup=NONE end="[;&|]"me=e-1 end="$" contains=@shExprList1
syn match shTestOpr contained '[^-+/%]\zs=' skipwhite nextgroup=shTestDoubleQuote,shTestSingleQuote,shTestPattern
syn match shTestOpr contained "<=\|>=\|!=\|==\|-.\>\|-\(nt\|ot\|ef\|eq\|ne\|lt\|le\|gt\|ge\)\>\|[!<>]"
syn match shTestOpr contained '=' skipwhite nextgroup=shTestDoubleQuote,shTestSingleQuote,shTestPattern
syn match shTestPattern contained '\w\+'
syn region shTestDoubleQuote contained start='"' skip='\\"' end='"' contains=shBQpairs
syn region shTestDoubleQuote contained start='\%(\%(\\\\\)*\\\)\@<!"' skip=+\\\\\|\\"+ end='"'
syn match shTestSingleQuote contained '\\.'
syn match shTestSingleQuote contained "'[^']*'"
syn match shBQpairs contained '\\\\'
if exists("b:is_kornshell") || exists("b:is_bash")
syn region shDblBrace matchgroup=Delimiter start="\[\[" skip=+\\\\\|\\$+ end="\]\]" contains=@shTestList
syn region shDblParen matchgroup=Delimiter start="((" skip=+\\\\\|\\$+ end="))" contains=@shTestList
syn region shDblBrace matchgroup=Delimiter start="\[\[" skip=+\\\\\|\\$+ end="\]\]" contains=@shTestList,shComment
syn region shDblParen matchgroup=Delimiter start="((" skip=+\\\\\|\\$+ end="))" contains=@shTestList,shComment
endif
" Character Class In Range: {{{1
@@ -213,15 +211,16 @@ syn match shCharClass contained "\[:\(backspace\|escape\|return\|xdigit\|alnum
" Loops: do, if, while, until {{{1
" ======
if s:sh_fold_ifdofor
syn region shDo fold transparent matchgroup=shConditional start="\<do\>" matchgroup=shConditional end="\<done\>" contains=@shLoopList
syn region shIf fold transparent matchgroup=shConditional start="\<if\_s" matchgroup=shConditional skip=+-fi\>+ end="\<;\_s*then\>" end="\<fi\>" contains=@shIfList
syn region shFor fold matchgroup=shLoop start="\<for\ze\_s\s*\%(((\)\@!" end="\<in\_s" end="\<do\>"me=e-2 contains=@shLoopList,shDblParen skipwhite nextgroup=shCurlyIn
syn region shDo fold transparent matchgroup=shConditional start="\<do\>" matchgroup=shConditional end="\<done\>" contains=@shLoopList
syn region shIf fold transparent matchgroup=shConditional start="\<if\_s" matchgroup=shConditional skip=+-fi\>+ end="\<;\_s*then\>" end="\<fi\>" contains=@shIfList
syn region shFor fold matchgroup=shLoop start="\<for\ze\_s\s*\%(((\)\@!" end="\<in\_s" end="\<do\>"me=e-2 contains=@shLoopList,shDblParen skipwhite nextgroup=shCurlyIn
syn region shForPP fold matchgroup=shLoop start='\<for\>\_s*((' end='))' contains=shTestOpr
else
syn region shDo transparent matchgroup=shConditional start="\<do\>" matchgroup=shConditional end="\<done\>" contains=@shLoopList
syn region shIf transparent matchgroup=shConditional start="\<if\_s" matchgroup=shConditional skip=+-fi\>+ end="\<;\_s*then\>" end="\<fi\>" contains=@shIfList
syn region shFor matchgroup=shLoop start="\<for\ze\_s\s*\%(((\)\@!" end="\<in\>" end="\<do\>"me=e-2 contains=@shLoopList,shDblParen skipwhite nextgroup=shCurlyIn
syn region shDo transparent matchgroup=shConditional start="\<do\>" matchgroup=shConditional end="\<done\>" contains=@shLoopList
syn region shIf transparent matchgroup=shConditional start="\<if\_s" matchgroup=shConditional skip=+-fi\>+ end="\<;\_s*then\>" end="\<fi\>" contains=@shIfList
syn region shFor matchgroup=shLoop start="\<for\ze\_s\s*\%(((\)\@!" end="\<in\>" end="\<do\>"me=e-2 contains=@shLoopList,shDblParen skipwhite nextgroup=shCurlyIn
syn region shForPP matchgroup=shLoop start='\<for\>\_s*((' end='))' contains=shTestOpr
endif
syn region shForPP matchgroup=shLoop start='\<for\>\_s*((' end='))' contains=shTestOpr
if exists("b:is_kornshell") || exists("b:is_bash")
syn cluster shCaseList add=shRepeat
syn cluster shFunctionList add=shRepeat
@@ -322,12 +321,13 @@ elseif !exists("g:sh_no_error")
endif
syn region shSingleQuote matchgroup=shQuote start=+'+ end=+'+ contains=@Spell
syn region shDoubleQuote matchgroup=shQuote start=+\%(\%(\\\\\)*\\\)\@<!"+ skip=+\\"+ end=+"+ contains=@shDblQuoteList,shStringSpecial,@Spell
"syn region shDoubleQuote matchgroup=shQuote start=+"+ skip=+\\"+ end=+"+ contains=@shDblQuoteList,shStringSpecial,@Spell
syn match shStringSpecial "[^[:print:] \t]" contained
syn region shDoubleQuote matchgroup=shQuote start=+"+ skip=+\\"+ end=+"+ contains=@shDblQuoteList,shStringSpecial,@Spell
syn match shStringSpecial "[^[:print:] \t]" contained
syn match shStringSpecial "\%(\\\\\)*\\[\\"'`$()#]"
syn match shSpecial "[^\\]\zs\%(\\\\\)*\\[\\"'`$()#]" nextgroup=shMoreSpecial,shComment
syn match shSpecial "^\%(\\\\\)*\\[\\"'`$()#]" nextgroup=shComment
syn match shMoreSpecial "\%(\\\\\)*\\[\\"'`$()#]" nextgroup=shMoreSpecial contained
" COMBAK: why is ,shComment on next line???
syn match shSpecial "[^\\]\zs\%(\\\\\)*\\[\\"'`$()#]" nextgroup=shMoreSpecial,shComment
syn match shSpecial "^\%(\\\\\)*\\[\\"'`$()#]" nextgroup=shComment
syn match shMoreSpecial "\%(\\\\\)*\\[\\"'`$()#]" nextgroup=shMoreSpecial contained
" Comments: {{{1
"==========
@@ -341,42 +341,42 @@ syn match shQuickComment contained "#.*$"
" Here Documents: {{{1
" =========================================
if version < 600
syn region shHereDoc matchgroup=shRedir01 start="<<\s*\**END[a-zA-Z_0-9]*\**" matchgroup=shRedir01 end="^END[a-zA-Z_0-9]*$" contains=@shDblQuoteList
syn region shHereDoc matchgroup=shRedir02 start="<<-\s*\**END[a-zA-Z_0-9]*\**" matchgroup=shRedir02 end="^\s*END[a-zA-Z_0-9]*$" contains=@shDblQuoteList
syn region shHereDoc matchgroup=shRedir03 start="<<\s*\**EOF\**" matchgroup=shRedir03 end="^EOF$" contains=@shDblQuoteList
syn region shHereDoc matchgroup=shRedir04 start="<<-\s*\**EOF\**" matchgroup=shRedir04 end="^\s*EOF$" contains=@shDblQuoteList
syn region shHereDoc matchgroup=shRedir05 start="<<\s*\**\.\**" matchgroup=shRedir05 end="^\.$" contains=@shDblQuoteList
syn region shHereDoc matchgroup=shRedir06 start="<<-\s*\**\.\**" matchgroup=shRedir06 end="^\s*\.$" contains=@shDblQuoteList
syn region shHereDoc matchgroup=shHereDoc01 start="<<\s*\**END[a-zA-Z_0-9]*\**" matchgroup=shHereDoc01 end="^END[a-zA-Z_0-9]*$" contains=@shDblQuoteList
syn region shHereDoc matchgroup=shHereDoc02 start="<<-\s*\**END[a-zA-Z_0-9]*\**" matchgroup=shHereDoc02 end="^\s*END[a-zA-Z_0-9]*$" contains=@shDblQuoteList
syn region shHereDoc matchgroup=shHereDoc03 start="<<\s*\**EOF\**" matchgroup=shHereDoc03 end="^EOF$" contains=@shDblQuoteList
syn region shHereDoc matchgroup=shHereDoc04 start="<<-\s*\**EOF\**" matchgroup=shHereDoc04 end="^\s*EOF$" contains=@shDblQuoteList
syn region shHereDoc matchgroup=shHereDoc05 start="<<\s*\**\.\**" matchgroup=shHereDoc05 end="^\.$" contains=@shDblQuoteList
syn region shHereDoc matchgroup=shHereDoc06 start="<<-\s*\**\.\**" matchgroup=shHereDoc06 end="^\s*\.$" contains=@shDblQuoteList
elseif s:sh_fold_heredoc
syn region shHereDoc matchgroup=shRedir07 fold start="<<\s*\z([^ \t|]*\)" matchgroup=shRedir07 end="^\z1\s*$" contains=@shDblQuoteList
syn region shHereDoc matchgroup=shRedir08 fold start="<<\s*\"\z([^ \t|]*\)\"" matchgroup=shRedir08 end="^\z1\s*$"
syn region shHereDoc matchgroup=shRedir09 fold start="<<\s*'\z([^ \t|]*\)'" matchgroup=shRedir09 end="^\z1\s*$"
syn region shHereDoc matchgroup=shRedir10 fold start="<<-\s*\z([^ \t|]*\)" matchgroup=shRedir10 end="^\s*\z1\s*$" contains=@shDblQuoteList
syn region shHereDoc matchgroup=shRedir11 fold start="<<-\s*\"\z([^ \t|]*\)\"" matchgroup=shRedir11 end="^\s*\z1\s*$"
syn region shHereDoc matchgroup=shRedir12 fold start="<<-\s*'\z([^ \t|]*\)'" matchgroup=shRedir12 end="^\s*\z1\s*$"
syn region shHereDoc matchgroup=shRedir13 fold start="<<\s*\\\_$\_s*\z([^ \t|]*\)" matchgroup=shRedir13 end="^\z1\s*$"
syn region shHereDoc matchgroup=shRedir14 fold start="<<\s*\\\_$\_s*\"\z([^ \t|]*\)\"" matchgroup=shRedir14 end="^\z1\s*$"
syn region shHereDoc matchgroup=shRedir15 fold start="<<-\s*\\\_$\_s*'\z([^ \t|]*\)'" matchgroup=shRedir15 end="^\s*\z1\s*$"
syn region shHereDoc matchgroup=shRedir16 fold start="<<-\s*\\\_$\_s*\z([^ \t|]*\)" matchgroup=shRedir16 end="^\s*\z1\s*$"
syn region shHereDoc matchgroup=shRedir17 fold start="<<-\s*\\\_$\_s*\"\z([^ \t|]*\)\"" matchgroup=shRedir17 end="^\s*\z1\s*$"
syn region shHereDoc matchgroup=shRedir18 fold start="<<\s*\\\_$\_s*'\z([^ \t|]*\)'" matchgroup=shRedir18 end="^\z1\s*$"
syn region shHereDoc matchgroup=shRedir19 fold start="<<\\\z([^ \t|]*\)" matchgroup=shRedir19 end="^\z1\s*$"
syn region shHereDoc matchgroup=shHereDoc07 fold start="<<\s*\z([^ \t|]*\)" matchgroup=shHereDoc07 end="^\z1\s*$" contains=@shDblQuoteList
syn region shHereDoc matchgroup=shHereDoc08 fold start="<<\s*\"\z([^ \t|]*\)\"" matchgroup=shHereDoc08 end="^\z1\s*$"
syn region shHereDoc matchgroup=shHereDoc09 fold start="<<\s*'\z([^ \t|]*\)'" matchgroup=shHereDoc09 end="^\z1\s*$"
syn region shHereDoc matchgroup=shHereDoc10 fold start="<<-\s*\z([^ \t|]*\)" matchgroup=shHereDoc10 end="^\s*\z1\s*$" contains=@shDblQuoteList
syn region shHereDoc matchgroup=shHereDoc11 fold start="<<-\s*\"\z([^ \t|]*\)\"" matchgroup=shHereDoc11 end="^\s*\z1\s*$"
syn region shHereDoc matchgroup=shHereDoc12 fold start="<<-\s*'\z([^ \t|]*\)'" matchgroup=shHereDoc12 end="^\s*\z1\s*$"
syn region shHereDoc matchgroup=shHereDoc13 fold start="<<\s*\\\_$\_s*\z([^ \t|]*\)" matchgroup=shHereDoc13 end="^\z1\s*$"
syn region shHereDoc matchgroup=shHereDoc14 fold start="<<\s*\\\_$\_s*\"\z([^ \t|]*\)\"" matchgroup=shHereDoc14 end="^\z1\s*$"
syn region shHereDoc matchgroup=shHereDoc15 fold start="<<-\s*\\\_$\_s*'\z([^ \t|]*\)'" matchgroup=shHereDoc15 end="^\s*\z1\s*$"
syn region shHereDoc matchgroup=shHereDoc16 fold start="<<-\s*\\\_$\_s*\z([^ \t|]*\)" matchgroup=shHereDoc16 end="^\s*\z1\s*$"
syn region shHereDoc matchgroup=shHereDoc17 fold start="<<-\s*\\\_$\_s*\"\z([^ \t|]*\)\"" matchgroup=shHereDoc17 end="^\s*\z1\s*$"
syn region shHereDoc matchgroup=shHereDoc18 fold start="<<\s*\\\_$\_s*'\z([^ \t|]*\)'" matchgroup=shHereDoc18 end="^\z1\s*$"
syn region shHereDoc matchgroup=shHereDoc19 fold start="<<\\\z([^ \t|]*\)" matchgroup=shHereDoc19 end="^\z1\s*$"
else
syn region shHereDoc matchgroup=shRedir20 start="<<\s*\\\=\z([^ \t|]*\)" matchgroup=shRedir20 end="^\z1\s*$" contains=@shDblQuoteList
syn region shHereDoc matchgroup=shRedir21 start="<<\s*\"\z([^ \t|]*\)\"" matchgroup=shRedir21 end="^\z1\s*$"
syn region shHereDoc matchgroup=shRedir22 start="<<-\s*\z([^ \t|]*\)" matchgroup=shRedir22 end="^\s*\z1\s*$" contains=@shDblQuoteList
syn region shHereDoc matchgroup=shRedir23 start="<<-\s*'\z([^ \t|]*\)'" matchgroup=shRedir23 end="^\s*\z1\s*$"
syn region shHereDoc matchgroup=shRedir24 start="<<\s*'\z([^ \t|]*\)'" matchgroup=shRedir24 end="^\z1\s*$"
syn region shHereDoc matchgroup=shRedir25 start="<<-\s*\"\z([^ \t|]*\)\"" matchgroup=shRedir25 end="^\s*\z1\s*$"
syn region shHereDoc matchgroup=shRedir26 start="<<\s*\\\_$\_s*\z([^ \t|]*\)" matchgroup=shRedir26 end="^\z1\s*$"
syn region shHereDoc matchgroup=shRedir27 start="<<-\s*\\\_$\_s*\z([^ \t|]*\)" matchgroup=shRedir27 end="^\s*\z1\s*$"
syn region shHereDoc matchgroup=shRedir28 start="<<-\s*\\\_$\_s*'\z([^ \t|]*\)'" matchgroup=shRedir28 end="^\s*\z1\s*$"
syn region shHereDoc matchgroup=shRedir29 start="<<\s*\\\_$\_s*'\z([^ \t|]*\)'" matchgroup=shRedir29 end="^\z1\s*$"
syn region shHereDoc matchgroup=shRedir30 start="<<\s*\\\_$\_s*\"\z([^ \t|]*\)\"" matchgroup=shRedir30 end="^\z1\s*$"
syn region shHereDoc matchgroup=shRedir31 start="<<-\s*\\\_$\_s*\"\z([^ \t|]*\)\"" matchgroup=shRedir31 end="^\s*\z1\s*$"
syn region shHereDoc matchgroup=shRedir32 start="<<\\\z([^ \t|]*\)" matchgroup=shRedir32 end="^\z1\s*$"
syn region shHereDoc matchgroup=shHereDoc20 start="<<\s*\\\=\z([^ \t|]*\)" matchgroup=shHereDoc20 end="^\z1\s*$" contains=@shDblQuoteList
syn region shHereDoc matchgroup=shHereDoc21 start="<<\s*\"\z([^ \t|]*\)\"" matchgroup=shHereDoc21 end="^\z1\s*$"
syn region shHereDoc matchgroup=shHereDoc22 start="<<-\s*\z([^ \t|]*\)" matchgroup=shHereDoc22 end="^\s*\z1\s*$" contains=@shDblQuoteList
syn region shHereDoc matchgroup=shHereDoc23 start="<<-\s*'\z([^ \t|]*\)'" matchgroup=shHereDoc23 end="^\s*\z1\s*$"
syn region shHereDoc matchgroup=shHereDoc24 start="<<\s*'\z([^ \t|]*\)'" matchgroup=shHereDoc24 end="^\z1\s*$"
syn region shHereDoc matchgroup=shHereDoc25 start="<<-\s*\"\z([^ \t|]*\)\"" matchgroup=shHereDoc25 end="^\s*\z1\s*$"
syn region shHereDoc matchgroup=shHereDoc26 start="<<\s*\\\_$\_s*\z([^ \t|]*\)" matchgroup=shHereDoc26 end="^\z1\s*$"
syn region shHereDoc matchgroup=shHereDoc27 start="<<-\s*\\\_$\_s*\z([^ \t|]*\)" matchgroup=shHereDoc27 end="^\s*\z1\s*$"
syn region shHereDoc matchgroup=shHereDoc28 start="<<-\s*\\\_$\_s*'\z([^ \t|]*\)'" matchgroup=shHereDoc28 end="^\s*\z1\s*$"
syn region shHereDoc matchgroup=shHereDoc29 start="<<\s*\\\_$\_s*'\z([^ \t|]*\)'" matchgroup=shHereDoc29 end="^\z1\s*$"
syn region shHereDoc matchgroup=shHereDoc30 start="<<\s*\\\_$\_s*\"\z([^ \t|]*\)\"" matchgroup=shHereDoc30 end="^\z1\s*$"
syn region shHereDoc matchgroup=shHereDoc31 start="<<-\s*\\\_$\_s*\"\z([^ \t|]*\)\"" matchgroup=shHereDoc31 end="^\s*\z1\s*$"
syn region shHereDoc matchgroup=shHereDoc32 start="<<\\\z([^ \t|]*\)" matchgroup=shHereDoc32 end="^\z1\s*$"
endif
" Here Strings: {{{1
@@ -389,8 +389,8 @@ endif
" Identifiers: {{{1
"=============
syn match shSetOption "\s\zs[-+][a-zA-Z0-9]\+\>" contained
syn match shVariable "\<\([bwglsav]:\)\=[a-zA-Z0-9.!@_%+,]*\ze=" nextgroup=shSetIdentifier
syn match shSetIdentifier "=" contained nextgroup=shCmdParenRegion,shPattern,shDeref,shDerefSimple,shDoubleQuote,shExDoubleQuote,shSingleQuote,shExSingleQuote
syn match shVariable "\<\([bwglsav]:\)\=[a-zA-Z0-9.!@_%+,]*\ze=" nextgroup=shVarAssign
syn match shVarAssign "=" contained nextgroup=shCmdParenRegion,shPattern,shDeref,shDerefSimple,shDoubleQuote,shExDoubleQuote,shSingleQuote,shExSingleQuote
syn region shAtExpr contained start="@(" end=")" contains=@shIdList
if exists("b:is_bash")
syn region shSetList oneline matchgroup=shSet start="\<\(declare\|typeset\|local\|export\|unset\)\>\ze[^/]" end="$" matchgroup=shSetListDelim end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+#\|=" contains=@shIdList
@@ -409,19 +409,27 @@ endif
if exists("b:is_bash")
if s:sh_fold_functions
syn region shFunctionOne fold matchgroup=shFunction start="^\s*\h[-a-zA-Z_0-9]*\s*()\_s*{" end="}" contains=@shFunctionList skipwhite skipnl nextgroup=shFunctionStart,shQuickComment
syn region shFunctionTwo fold matchgroup=shFunction start="\h[-a-zA-Z_0-9]*\s*\%(()\)\=\_s*{" end="}" contains=shFunctionKey,@shFunctionList contained skipwhite skipnl nextgroup=shFunctionStart,shQuickComment
syn region shFunctionOne fold matchgroup=shFunction start="^\s*\h[-a-zA-Z_0-9]*\s*()\_s*{" end="}" contains=@shFunctionList skipwhite skipnl nextgroup=shFunctionStart,shQuickComment
syn region shFunctionTwo fold matchgroup=shFunction start="\h[-a-zA-Z_0-9]*\s*\%(()\)\=\_s*{" end="}" contains=shFunctionKey,@shFunctionList contained skipwhite skipnl nextgroup=shFunctionStart,shQuickComment
syn region shFunctionThree fold matchgroup=shFunction start="^\s*\h[-a-zA-Z_0-9]*\s*()\_s*(" end=")" contains=@shFunctionList skipwhite skipnl nextgroup=shFunctionStart,shQuickComment
syn region shFunctionFour fold matchgroup=shFunction start="\h[-a-zA-Z_0-9]*\s*\%(()\)\=\_s*)" end=")" contains=shFunctionKey,@shFunctionList contained skipwhite skipnl nextgroup=shFunctionStart,shQuickComment
else
syn region shFunctionOne matchgroup=shFunction start="^\s*\h[-a-zA-Z_0-9]*\s*()\_s*{" end="}" contains=@shFunctionList
syn region shFunctionTwo matchgroup=shFunction start="\h[-a-zA-Z_0-9]*\s*\%(()\)\=\_s*{" end="}" contains=shFunctionKey,@shFunctionList contained
syn region shFunctionOne matchgroup=shFunction start="^\s*\h[-a-zA-Z_0-9]*\s*()\_s*{" end="}" contains=@shFunctionList
syn region shFunctionTwo matchgroup=shFunction start="\h[-a-zA-Z_0-9]*\s*\%(()\)\=\_s*{" end="}" contains=shFunctionKey,@shFunctionList contained
syn region shFunctionThree matchgroup=shFunction start="^\s*\h[-a-zA-Z_0-9]*\s*()\_s*(" end=")" contains=@shFunctionList
syn region shFunctionFour matchgroup=shFunction start="\h[-a-zA-Z_0-9]*\s*\%(()\)\=\_s*(" end=")" contains=shFunctionKey,@shFunctionList contained
endif
else
if s:sh_fold_functions
syn region shFunctionOne fold matchgroup=shFunction start="^\s*\h\w*\s*()\_s*{" end="}" contains=@shFunctionList skipwhite skipnl nextgroup=shFunctionStart,shQuickComment
syn region shFunctionTwo fold matchgroup=shFunction start="\h\w*\s*\%(()\)\=\_s*{" end="}" contains=shFunctionKey,@shFunctionList contained skipwhite skipnl nextgroup=shFunctionStart,shQuickComment
syn region shFunctionOne fold matchgroup=shFunction start="^\s*\h\w*\s*()\_s*{" end="}" contains=@shFunctionList skipwhite skipnl nextgroup=shFunctionStart,shQuickComment
syn region shFunctionTwo fold matchgroup=shFunction start="\h\w*\s*\%(()\)\=\_s*{" end="}" contains=shFunctionKey,@shFunctionList contained skipwhite skipnl nextgroup=shFunctionStart,shQuickComment
syn region shFunctionThree fold matchgroup=shFunction start="^\s*\h\w*\s*()\_s*(" end=")" contains=@shFunctionList skipwhite skipnl nextgroup=shFunctionStart,shQuickComment
syn region shFunctionFour fold matchgroup=shFunction start="\h\w*\s*\%(()\)\=\_s*(" end=")" contains=shFunctionKey,@shFunctionList contained skipwhite skipnl nextgroup=shFunctionStart,shQuickComment
else
syn region shFunctionOne matchgroup=shFunction start="^\s*\h\w*\s*()\_s*{" end="}" contains=@shFunctionList
syn region shFunctionTwo matchgroup=shFunction start="\h\w*\s*\%(()\)\=\_s*{" end="}" contains=shFunctionKey,@shFunctionList contained
syn region shFunctionOne matchgroup=shFunction start="^\s*\h\w*\s*()\_s*{" end="}" contains=@shFunctionList
syn region shFunctionTwo matchgroup=shFunction start="\h\w*\s*\%(()\)\=\_s*{" end="}" contains=shFunctionKey,@shFunctionList contained
syn region shFunctionThree matchgroup=shFunction start="^\s*\h\w*\s*()\_s*(" end=")" contains=@shFunctionList
syn region shFunctionFour matchgroup=shFunction start="\h\w*\s*\%(()\)\=\_s*(" end=")" contains=shFunctionKey,@shFunctionList contained
endif
endif
@@ -577,7 +585,7 @@ hi def link shDoubleQuote shString
hi def link shEcho shString
hi def link shEchoDelim shOperator
hi def link shEchoQuote shString
"hi def link shForPP shLoop
hi def link shForPP shLoop
hi def link shEmbeddedEcho shString
hi def link shEscape shCommandSub
hi def link shExDoubleQuote shDoubleQuote
@@ -604,7 +612,6 @@ hi def link shTestOpr shConditional
hi def link shTestPattern shString
hi def link shTestDoubleQuote shString
hi def link shTestSingleQuote shString
hi def link shBQpairs shString
hi def link shVariable shSetList
hi def link shWrapLineOperator shOperator
@@ -661,38 +668,38 @@ hi def link shStatement Statement
hi def link shString String
hi def link shTodo Todo
hi def link shAlias Identifier
hi def link shRedir01 shRedir
hi def link shRedir02 shRedir
hi def link shRedir03 shRedir
hi def link shRedir04 shRedir
hi def link shRedir05 shRedir
hi def link shRedir06 shRedir
hi def link shRedir07 shRedir
hi def link shRedir08 shRedir
hi def link shRedir09 shRedir
hi def link shRedir10 shRedir
hi def link shRedir11 shRedir
hi def link shRedir12 shRedir
hi def link shRedir13 shRedir
hi def link shRedir14 shRedir
hi def link shRedir15 shRedir
hi def link shRedir16 shRedir
hi def link shRedir17 shRedir
hi def link shRedir18 shRedir
hi def link shRedir19 shRedir
hi def link shRedir20 shRedir
hi def link shRedir21 shRedir
hi def link shRedir22 shRedir
hi def link shRedir23 shRedir
hi def link shRedir24 shRedir
hi def link shRedir25 shRedir
hi def link shRedir26 shRedir
hi def link shRedir27 shRedir
hi def link shRedir28 shRedir
hi def link shRedir29 shRedir
hi def link shRedir30 shRedir
hi def link shRedir31 shRedir
hi def link shRedir32 shRedir
hi def link shHereDoc01 shRedir
hi def link shHereDoc02 shRedir
hi def link shHereDoc03 shRedir
hi def link shHereDoc04 shRedir
hi def link shHereDoc05 shRedir
hi def link shHereDoc06 shRedir
hi def link shHereDoc07 shRedir
hi def link shHereDoc08 shRedir
hi def link shHereDoc09 shRedir
hi def link shHereDoc10 shRedir
hi def link shHereDoc11 shRedir
hi def link shHereDoc12 shRedir
hi def link shHereDoc13 shRedir
hi def link shHereDoc14 shRedir
hi def link shHereDoc15 shRedir
hi def link shHereDoc16 shRedir
hi def link shHereDoc17 shRedir
hi def link shHereDoc18 shRedir
hi def link shHereDoc19 shRedir
hi def link shHereDoc20 shRedir
hi def link shHereDoc21 shRedir
hi def link shHereDoc22 shRedir
hi def link shHereDoc23 shRedir
hi def link shHereDoc24 shRedir
hi def link shHereDoc25 shRedir
hi def link shHereDoc26 shRedir
hi def link shHereDoc27 shRedir
hi def link shHereDoc28 shRedir
hi def link shHereDoc29 shRedir
hi def link shHereDoc30 shRedir
hi def link shHereDoc31 shRedir
hi def link shHereDoc32 shRedir
" Set Current Syntax: {{{1
" ===================

View File

@@ -1,8 +1,8 @@
" Vim syntax file
" Language: sendmail
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
" Last Change: Jan 13, 2015
" Version: 6
" Last Change: Oct 23, 2014
" Version: 7
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_SM
if exists("b:current_syntax")

96
runtime/syntax/srec.vim Normal file
View File

@@ -0,0 +1,96 @@
" Vim syntax file
" Language: Motorola S-Record
" Maintainer: Markus Heidelberg <markus.heidelberg@web.de>
" Last Change: 2015 Feb 24
" Each record (line) is built as follows:
"
" field digits states
"
" +----------+
" | start | 1 ('S') srecRecStart
" +----------+
" | type | 1 srecRecType, (srecRecTypeUnknown)
" +----------+
" | count | 2 srecByteCount
" +----------+
" | address | 4/6/8 srecNoAddress, srecDataAddress, srecRecCount, srecStartAddress, (srecAddressFieldUnknown)
" +----------+
" | data | 0..504/502/500 srecDataOdd, srecDataEven, (srecDataUnexpected)
" +----------+
" | checksum | 2 srecChecksum
" +----------+
"
" States in parentheses in the upper format description indicate that they
" should not appear in a valid file.
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
if version < 600
syntax clear
elseif exists("b:current_syntax")
finish
endif
syn match srecRecStart "^S"
syn match srecRecTypeUnknown "^S." contains=srecRecStart
syn match srecRecType "^S[0-35-9]" contains=srecRecStart
syn match srecByteCount "^S.[0-9a-fA-F]\{2}" contains=srecRecTypeUnknown nextgroup=srecAddressFieldUnknown,srecChecksum
syn match srecByteCount "^S[0-35-9][0-9a-fA-F]\{2}" contains=srecRecType
syn match srecAddressFieldUnknown "[0-9a-fA-F]\{2}" contained nextgroup=srecAddressFieldUnknown,srecChecksum
syn match srecNoAddress "^S0[0-9a-fA-F]\{6}" contains=srecByteCount nextgroup=srecDataOdd,srecChecksum
syn match srecDataAddress "^S1[0-9a-fA-F]\{6}" contains=srecByteCount nextgroup=srecDataOdd,srecChecksum
syn match srecDataAddress "^S2[0-9a-fA-F]\{8}" contains=srecByteCount nextgroup=srecDataOdd,srecChecksum
syn match srecDataAddress "^S3[0-9a-fA-F]\{10}" contains=srecByteCount nextgroup=srecDataOdd,srecChecksum
syn match srecRecCount "^S5[0-9a-fA-F]\{6}" contains=srecByteCount nextgroup=srecDataUnexpected,srecChecksum
syn match srecRecCount "^S6[0-9a-fA-F]\{8}" contains=srecByteCount nextgroup=srecDataUnexpected,srecChecksum
syn match srecStartAddress "^S7[0-9a-fA-F]\{10}" contains=srecByteCount nextgroup=srecDataUnexpected,srecChecksum
syn match srecStartAddress "^S8[0-9a-fA-F]\{8}" contains=srecByteCount nextgroup=srecDataUnexpected,srecChecksum
syn match srecStartAddress "^S9[0-9a-fA-F]\{6}" contains=srecByteCount nextgroup=srecDataUnexpected,srecChecksum
" alternating highlight per byte for easier reading
syn match srecDataOdd "[0-9a-fA-F]\{2}" contained nextgroup=srecDataEven,srecChecksum
syn match srecDataEven "[0-9a-fA-F]\{2}" contained nextgroup=srecDataOdd,srecChecksum
" data bytes which should not exist
syn match srecDataUnexpected "[0-9a-fA-F]\{2}" contained nextgroup=srecDataUnexpected,srecChecksum
" Data digit pair regex usage also results in only highlighting the checksum
" if the number of data characters is even.
syn match srecChecksum "[0-9a-fA-F]\{2}$" contained
" Define the default highlighting.
" For version 5.7 and earlier: only when not done already
" For version 5.8 and later: only when an item doesn't have highlighting yet
if version >= 508 || !exists("did_srec_syntax_inits")
if version < 508
let did_srec_syntax_inits = 1
command -nargs=+ HiLink hi link <args>
else
command -nargs=+ HiLink hi def link <args>
endif
" The default methods for highlighting. Can be overridden later
HiLink srecRecStart srecRecType
HiLink srecRecTypeUnknown srecRecType
HiLink srecRecType WarningMsg
HiLink srecByteCount Constant
hi def srecAddressFieldUnknown term=italic cterm=italic gui=italic
HiLink srecNoAddress DiffAdd
HiLink srecDataAddress Comment
HiLink srecRecCount srecNoAddress
HiLink srecStartAddress srecDataAddress
hi def srecDataOdd term=bold cterm=bold gui=bold
hi def srecDataEven term=NONE cterm=NONE gui=NONE
HiLink srecDataUnexpected Error
HiLink srecChecksum DiffChange
delcommand HiLink
endif
let b:current_syntax = "srec"
" vim: ts=8

View File

@@ -60,8 +60,8 @@ fun! s:SynSet()
endfun
" Handle adding doxygen to other languages (C, C++, C#, IDL)
au Syntax c,cpp,cs,idl,php
" Handle adding doxygen to other languages (C, C++, C#, IDL, java, php, DataScript)
au Syntax c,cpp,cs,idl,java,php,datascript
\ if (exists('b:load_doxygen_syntax') && b:load_doxygen_syntax)
\ || (exists('g:load_doxygen_syntax') && g:load_doxygen_syntax)
\ | runtime! syntax/doxygen.vim

139
runtime/syntax/teraterm.vim Normal file
View File

@@ -0,0 +1,139 @@
" Vim syntax file
" Language: Tera Term Language (TTL)
" Based on Tera Term Version 4.86
" Maintainer: Ken Takata
" URL: https://github.com/k-takata/vim-teraterm
" Last Change: 2015 Jun 24
" Filenames: *.ttl
" License: VIM License
if exists("b:current_syntax")
finish
endif
let s:save_cpo = &cpo
set cpo&vim
syn case ignore
syn region ttlComment start=";" end="$" contains=@Spell
syn region ttlComment start="/\*" end="\*/" contains=@Spell
syn region ttlFirstComment start="/\*" end="\*/" contained contains=@Spell
\ nextgroup=ttlStatement,ttlFirstComment
syn match ttlCharacter "#\%(\d\+\|\$\x\+\)\>"
syn match ttlNumber "\%(\<\d\+\|\$\x\+\)\>"
syn match ttlString "'[^']*'" contains=@Spell
syn match ttlString '"[^"]*"' contains=@Spell
syn cluster ttlConstant contains=ttlCharacter,ttlNumber,ttlString
syn match ttlLabel ":\s*\w\{1,32}\>"
syn keyword ttlOperator and or xor not
syn match ttlVar "\<groupmatchstr\d\>"
syn match ttlVar "\<param\d\>"
syn keyword ttlVar inputstr matchstr paramcnt result timeout mtimeout
syn match ttlLine nextgroup=ttlStatement "^"
syn match ttlStatement contained "\s*"
\ nextgroup=ttlIf,ttlElseIf,ttlConditional,ttlRepeat,
\ ttlFirstComment,ttlComment,ttlLabel,@ttlCommand
syn cluster ttlCommand contains=ttlControlCommand,ttlCommunicationCommand,
\ ttlStringCommand,ttlFileCommand,ttlPasswordCommand,
\ ttlMiscCommand
syn keyword ttlIf contained nextgroup=ttlIfExpression if
syn keyword ttlElseIf contained nextgroup=ttlElseIfExpression elseif
syn match ttlIfExpression contained "\s.*"
\ contains=@ttlConstant,ttlVar,ttlOperator,ttlComment,ttlThen,
\ @ttlCommand
syn match ttlElseIfExpression contained "\s.*"
\ contains=@ttlConstant,ttlVar,ttlOperator,ttlComment,ttlThen
syn keyword ttlThen contained then
syn keyword ttlConditional contained else endif
syn keyword ttlRepeat contained for next until enduntil while endwhile
syn match ttlRepeat contained
\ "\<\%(do\|loop\)\%(\s\+\%(while\|until\)\)\?\>"
syn keyword ttlControlCommand contained
\ break call continue end execcmnd exit goto include
\ mpause pause return
syn keyword ttlCommunicationCommand contained
\ bplusrecv bplussend callmenu changedir clearscreen
\ closett connect cygconnect disconnect dispstr
\ enablekeyb flushrecv gethostname getmodemstatus
\ gettitle kmtfinish kmtget kmtrecv kmtsend loadkeymap
\ logautoclosemode logclose loginfo logopen logpause
\ logrotate logstart logwrite quickvanrecv
\ quickvansend recvln restoresetup scprecv scpsend
\ send sendbreak sendbroadcast sendfile sendkcode
\ sendln sendlnbroadcast sendmulticast setbaud
\ setdebug setdtr setecho setmulticastname setrts
\ setsync settitle showtt testlink unlink wait
\ wait4all waitevent waitln waitn waitrecv waitregex
\ xmodemrecv xmodemsend ymodemrecv ymodemsend
\ zmodemrecv zmodemsend
syn keyword ttlStringCommand contained
\ code2str expandenv int2str regexoption sprintf
\ sprintf2 str2code str2int strcompare strconcat
\ strcopy strinsert strjoin strlen strmatch strremove
\ strreplace strscan strspecial strsplit strtrim
\ tolower toupper
syn keyword ttlFileCommand contained
\ basename dirname fileclose fileconcat filecopy
\ filecreate filedelete filelock filemarkptr fileopen
\ filereadln fileread filerename filesearch fileseek
\ fileseekback filestat filestrseek filestrseek2
\ filetruncate fileunlock filewrite filewriteln
\ findfirst findnext findclose foldercreate
\ folderdelete foldersearch getdir getfileattr makepath
\ setdir setfileattr
syn keyword ttlPasswordCommand contained
\ delpassword getpassword ispassword passwordbox
\ setpassword
syn keyword ttlMiscCommand contained
\ beep bringupbox checksum8 checksum8file checksum16
\ checksum16file checksum32 checksum32file closesbox
\ clipb2var crc16 crc16file crc32 crc32file exec
\ dirnamebox filenamebox getdate getenv getipv4addr
\ getipv6addr getspecialfolder gettime getttdir getver
\ ifdefined inputbox intdim listbox messagebox random
\ rotateleft rotateright setdate setdlgpos setenv
\ setexitcode settime show statusbox strdim uptime
\ var2clipb yesnobox
hi def link ttlCharacter Character
hi def link ttlNumber Number
hi def link ttlComment Comment
hi def link ttlFirstComment Comment
hi def link ttlString String
hi def link ttlLabel Label
hi def link ttlIf Conditional
hi def link ttlElseIf Conditional
hi def link ttlThen Conditional
hi def link ttlConditional Conditional
hi def link ttlRepeat Repeat
hi def link ttlControlCommand Keyword
hi def link ttlVar Identifier
hi def link ttlOperator Operator
hi def link ttlCommunicationCommand Keyword
hi def link ttlStringCommand Keyword
hi def link ttlFileCommand Keyword
hi def link ttlPasswordCommand Keyword
hi def link ttlMiscCommand Keyword
let b:current_syntax = "teraterm"
let &cpo = s:save_cpo
unlet s:save_cpo
" vim: ts=8 sw=2 sts=2

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