Compare commits

...

230 Commits

Author SHA1 Message Date
Bram Moolenaar
d47d83745f patch 7.4.2358
Problem:    Compiler warnings with Solaris Studio when using GTK3.
Solution:   Define FUNC2GENERIC depending on the system. (Kazunobu Kuriyama)
2016-09-09 22:13:24 +02:00
Bram Moolenaar
46643713dc patch 7.4.2357
Problem:    Attempt to read history entry while not initialized.
Solution:   Skip when the index is negative.
2016-09-09 21:42:36 +02:00
Bram Moolenaar
ea683da58c patch 7.4.2356
Problem:    Reading past end of line when using previous substitute pattern.
            (Dominique Pelle)
Solution:   Don't set "pat" only set "searchstr".
2016-09-09 21:41:34 +02:00
Bram Moolenaar
16b3578f35 patch 7.4.2355
Problem:    Regexp fails to match when using "\>\)\?". (Ramel)
Solution:   When a state is already in the list, but addstate_here() is used
            and the existing state comes later, add the new state anyway.
2016-09-09 20:29:50 +02:00
Bram Moolenaar
d563883a1f patch 7.4.2354
Problem:    The example that explains nested backreferences does not work
            properly with the new regexp engine. (Harm te Hennepe)
Solution:   Also save the end position when adding a state. (closes #990)
2016-09-09 17:59:50 +02:00
Bram Moolenaar
2931f2a5df patch 7.4.2353
Problem:    Not enough test coverage for Normal mode commands.
Solution:   Add more tests. (Christian Brabandt)
2016-09-09 16:59:08 +02:00
Bram Moolenaar
922a443cfd patch 7.4.2352
Problem:    Netbeans test fails in shadow directory.
Solution:   Also copy README.txt to the shadow directory.
2016-09-09 16:03:48 +02:00
Bram Moolenaar
ff330ff2c4 patch 7.4.2351
Problem:    Netbeans test fails when run from unpacked MS-Windows sources.
Solution:   Open README.txt instead of Makefile.
2016-09-09 15:31:34 +02:00
Bram Moolenaar
cf703fe9d6 patch 7.4.2350
Problem:    Test 86 and 87 fail with some version of Python.
Solution:   Unify "can't" and "cannot".  Unify quotes.
2016-09-09 14:59:39 +02:00
Bram Moolenaar
2321ca2a78 patch 7.4.2349
Problem:    Valgrind reports using uninitialzed memory. (Dominique Pelle)
Solution:   Check the length before checking for a NUL.
2016-09-09 14:17:18 +02:00
Bram Moolenaar
9a27c7fde6 patch 7.4.2348
Problem:    Crash on exit when EXITFREE is defined. (Dominique Pelle)
Solution:   Don't access curwin when exiting.
2016-09-09 12:57:09 +02:00
Bram Moolenaar
c4a908e836 patch 7.4.2347
Problem:    Crash when closing a buffer while Visual mode is active.
            (Dominique Pelle)
Solution:   Adjust the position before computing the number of lines.
            When closing the current buffer stop Visual mode.
2016-09-08 23:35:30 +02:00
Bram Moolenaar
abd468ed0f Updated runtime files 2016-09-08 22:22:43 +02:00
Bram Moolenaar
f18c4dbbe5 patch 7.4.2346
Problem:    Autocommand test fails when run directly, passes when run as part
            of test_alot.
Solution:   Add command to make the cursor move.  Close a tab page.
2016-09-08 22:10:06 +02:00
Bram Moolenaar
0eaadec6b2 patch 7.4.2345
Problem:    For MinGW RUBY_API_VER_LONG isn't set correctly.  Many default
            version numbers are outdated.
Solution:   Set RUBY_API_VER_LONG to RUBY_VER_LONG. Use latest stable releases
            for defaults. (Ken Takata)
2016-09-08 20:28:45 +02:00
Bram Moolenaar
169ebb0804 patch 7.4.2344
Problem:    The "Reading from channel output..." message can be unwanted.
            Appending to a buffer leaves an empty first line behind.
Solution:   Add the "out_msg" and "err_msg" options. Writing the first line
            overwrites the first, empty line.
2016-09-07 23:32:23 +02:00
Bram Moolenaar
53f1673cd9 patch 7.4.2343
Problem:    Too many old file tests.
Solution:   Turn several into new style tests. (Yegappan Lakshmanan)
2016-09-07 20:46:39 +02:00
Bram Moolenaar
1b0c1d050e patch 7.4.2342
Problem:    Typo in MS-Windows build script.
Solution:   change "w2" to "22".
2016-09-06 23:23:52 +02:00
Bram Moolenaar
aeac9006d5 patch 7.4.2341
Problem:    Tiny things.  Test doesn't clean up properly.
Solution:   Adjust comment and white space. Restore option value.
2016-09-06 22:15:08 +02:00
Bram Moolenaar
64d8e25bf6 Updated runtime files. 2016-09-06 22:12:34 +02:00
Bram Moolenaar
6384c5db8d patch 7.4.2340
Problem:    MS-Windows: Building with Ruby uses old version.
Solution:   Update to 2.2.X. Use clearer name for the API version. (Ken
            Takata)
2016-09-06 22:06:35 +02:00
Bram Moolenaar
100f5c90f4 patch 7.4.2339
Problem:    Tab page test fails when run as fake root.
Solution:   Check 'buftype' instead of 'filetype'. (James McCoy, closes #1042)
2016-09-06 21:33:52 +02:00
Bram Moolenaar
7947312871 patch 7.4.2338
Problem:    Can't build with small features. (John Marriott)
Solution:   Nearly always define FEAT_TAG_BINS.
2016-09-06 21:32:11 +02:00
Bram Moolenaar
77b642501a patch 7.4.2337
Problem:    taglist() is still slow. (Luc Hermitte)
Solution:   Check for CTRL-C less often when finding duplicates.
2016-09-06 21:14:27 +02:00
Bram Moolenaar
df0db16cf7 patch 7.4.2336
Problem:    Running normal mode tests leave a couple of files behind.
            (Yegappan Lakshmanan)
Solution:   Delete the files. (Christian Brabandt)
2016-09-06 20:37:41 +02:00
Bram Moolenaar
72b4b870fc patch 7.4.2335
Problem:    taglist() is slow. (Luc Hermitte)
Solution:   Check for CTRL-C less often when doing a linear search. (closes
            #1044)
2016-09-06 20:24:50 +02:00
Bram Moolenaar
1b0c2fcf6e patch 7.4.2334
Problem:    On MS-Windows test_getcwd leaves Xtopdir behind.
Solution:   Set 'noswapfile'. (Michael Soyka)
2016-09-05 23:29:26 +02:00
Bram Moolenaar
31845093b7 patch 7.4.2333
Problem:    Outdated comments in test.
Solution:   Cleanup normal mode test. (Christian Brabandt)
2016-09-05 22:58:31 +02:00
Bram Moolenaar
75537a93e9 patch 7.4.2332
Problem:    Crash when stop_timer() is called in a callback of a callback.
            Vim hangs when the timer callback uses too much time.
Solution:   Set tr_id to -1 when a timer is to be deleted. Don't keep calling
            callbacks forever. (Ozaki Kiichi)
2016-09-05 22:45:28 +02:00
Bram Moolenaar
33a80eeb85 patch 7.4.2331
Problem:    Using CTRL-X CTRL-V to complete a command line from Insert mode
            does not work after entering an expression on the command line.
Solution:   Don't use "ccline" when not actually using a command line. (test
            by Hirohito Higashi)
2016-09-05 21:51:14 +02:00
Bram Moolenaar
030cddc7ec patch 7.4.2330
Problem:    Coverity complains about not checking curwin to be NULL.
Solution:   Use firstwin to avoid the warning.
2016-09-04 23:41:42 +02:00
Bram Moolenaar
26b84339fd patch 7.4.2329
Problem:    Error for min() and max() contains %s. (Nikolay Pavlov)
Solution:   Pass the function name. (closes #1040)
2016-09-04 21:42:36 +02:00
Bram Moolenaar
f9e687e068 patch 7.4.2328
Problem:    Crash when BufWinLeave autocmd goes to another tab page. (Hirohito
            Higashi)
Solution:   Make close_buffer() go back to the right window.
2016-09-04 21:33:09 +02:00
Bram Moolenaar
c8fe338d64 patch 7.4.2327
Problem:    Freeing a variable that is on the stack.
Solution:   Don't free res_tv or err_tv. (Ozaki Kiichi)
2016-09-04 20:44:42 +02:00
Bram Moolenaar
d5824ce1b5 patch 7.4.2326
Problem:    Illegal memory access when Visual selection starts in invalid
            position. (Dominique Pelle)
Solution:   Correct position when needed.
2016-09-04 20:35:01 +02:00
Bram Moolenaar
30180b8dad patch 7.4.2325
Problem:    Tiny build fails.
Solution:   Add #ifdef.
2016-09-04 19:57:56 +02:00
Bram Moolenaar
e0ab94e712 patch 7.4.2324
Problem:    Crash when editing a new buffer and BufUnload autocommand wipes
            out the new buffer. (Norio Takagi)
Solution:   Don't allow wiping out this buffer. (partly by Hirohito Higashi)
            Move old style test13 into test_autocmd. Avoid ml_get error when
            editing a file.
2016-09-04 19:50:54 +02:00
Bram Moolenaar
d77f9d595e patch 7.4.2323
Problem:    Using freed memory when using 'formatexpr'. (Dominique Pelle)
Solution:   Make a copy of 'formatexpr' before evaluating it.
2016-09-04 15:13:39 +02:00
Bram Moolenaar
bc54f3f3fe patch 7.4.2322
Problem:    Access memory beyond the end of the line. (Dominique Pelle)
Solution:   Adjust the cursor column.
2016-09-04 14:34:28 +02:00
Bram Moolenaar
dac1947bb3 patch 7.4.2321
Problem:    When a test is commented out we forget about it.
Solution:   Let a test throw an exception with "Skipped" and list skipped test
            functions. (Christian Brabandt)
2016-09-03 22:35:40 +02:00
Bram Moolenaar
dda933d06c patch 7.4.2320
Problem:    Redraw problem when using 'incsearch'.
Solution:   Save the current view when deleting characters. (Christian
            Brabandt) Fix that the '" mark is set in the wrong position. Don't
            change the search start when using BS.
2016-09-03 21:04:58 +02:00
Bram Moolenaar
b07a82b6d5 patch 7.4.2319
Problem:    No way for a system wide vimrc to stop loading defaults.vim.
            (Christian Hesse)
Solution:   Bail out of defaults.vim if skip_defaults_vim was set.
2016-09-03 20:08:56 +02:00
Bram Moolenaar
349e7d94e6 patch 7.4.2318
Problem:    When 'incsearch' is not set CTRL-T and CTRL-G are not inserted as
            before.
Solution:   Move #ifdef and don't use goto.
2016-09-03 20:04:34 +02:00
Bram Moolenaar
0913a1089a patch 7.4.2317
Problem:    Normal mode tests fail on MS-Windows.
Solution:   Do some tests only on Unix.  Set 'fileformat' to "unix".
2016-09-03 19:11:59 +02:00
Bram Moolenaar
f7f3e32fcc patch 7.4.2316
Problem:    Channel sort test is flaky.
Solution:   Add a check the output has been read.
2016-09-03 18:47:24 +02:00
Bram Moolenaar
87bc3f7459 patch 7.4.2315
Problem:    Insufficient testing for Normal mode commands.
Solution:   Add a big test. (Christian Brabandt, closes #1029)
2016-09-03 17:33:54 +02:00
Bram Moolenaar
de653f0880 patch 7.4.2314
Problem:    No error when deleting an augroup while it's the current one.
Solution:   Disallow deleting an augroup when it's the current one.
2016-09-03 16:59:06 +02:00
Bram Moolenaar
b62cc36a60 patch 7.4.2313
Problem:    Crash when deleting an augroup and listing an autocommand.
            (Dominique Pelle)
Solution:   Make sure deleted_augroup is valid.
2016-09-03 16:43:53 +02:00
Bram Moolenaar
5a49789a9b patch 7.4.2312
Problem:    Crash when autocommand moves to another tab. (Dominique Pelle)
Solution:   When navigating to another window halfway the :edit command go
            back to the right window.
2016-09-03 16:29:04 +02:00
Bram Moolenaar
dd905a2ae1 patch 7.4.2311
Problem:    Appveyor 64 bit build still using Python 3.4
Solution:   Switch to Python 3.5. (Ken Takata, closes #1032)
2016-09-02 22:26:04 +02:00
Bram Moolenaar
a5d4121eed patch 7.4.2310
Problem:    Accessing freed memory when a timer does not repeat.
Solution:   Free after removing it. (Dominique Pelle)
2016-09-02 22:18:49 +02:00
Bram Moolenaar
11fbc2866c patch 7.4.2309
Problem:    Crash when doing tabnext in a BufUnload autocmd. (Dominique Pelle)
Solution:   When detecting that the tab page changed, don't just abort but
            delete the window where w_buffer is NULL.
2016-09-02 21:48:32 +02:00
Bram Moolenaar
44f660c421 patch 7.4.2308
Problem:    Old charsearch test still listed in Makefile.
Solution:   Remove the line.
2016-09-02 20:03:20 +02:00
Bram Moolenaar
cd055da370 patch 7.4.2307
Problem:    Several tests are old style.
Solution:   Turn them into new style tests. (Yegappan Lakshmanan)
2016-09-02 19:50:48 +02:00
Bram Moolenaar
da9ce2cde1 patch 7.4.2306
Problem:    Default value for 'langremap' is wrong.
Solution:   Set the right value. (Jürgen Krämer)  Add a test.
2016-09-02 19:34:10 +02:00
Bram Moolenaar
19a1669ffc patch 7.4.2305
Problem:    Marks, writefile and nested function tests are old style.
Solution:   Turn them into new style tests. (Yegappan Lakshmanan)
2016-09-01 22:19:47 +02:00
Bram Moolenaar
417ccd7138 patch 7.4.2304
Problem:    In a timer callback the timer itself can't be found or stopped.
            (Thinca)
Solution:   Do not remove the timer from the list, remember whether it was
            freed.
2016-09-01 21:26:20 +02:00
Bram Moolenaar
779f2fc3a7 patch 7.4.2303
Problem:    When using "is" the mode isn't always updated.
Solution:   Redraw the command line. (Christian Brabandt)
2016-09-01 20:58:24 +02:00
Bram Moolenaar
f1b512a0b6 patch 7.4.2302
Problem:    Default interface versions for MS-Windows are outdated.
Solution:   Use Active Perl 5.24, Python 3.5.2.  Could only make it work with
            Ruby 1.9.2.
2016-09-01 20:50:54 +02:00
Bram Moolenaar
641ad6c7ac patch 7.4.2301
Problem:    MS-Windows: some files remain after testing.
Solution:   Close the channel output file.  Wait for the file handle to be
            closed before deleting the file.
2016-09-01 18:32:11 +02:00
Bram Moolenaar
5c80908ced patch 7.4.2300
Problem:    Get warning for deleting autocommand group when the autocommand
            using the group is scheduled for deletion. (Pavol Juhas)
Solution:   Check for deleted autocommand.
2016-09-01 16:21:48 +02:00
Bram Moolenaar
04c4ce650f patch 7.4.2299
Problem:    QuickFixCmdPre and QuickFixCmdPost autocommands are not always
            triggered.
Solution:   Also trigger on ":expr", ":cbuffer", etc. (Yegappan Lakshmanan)
2016-09-01 15:45:58 +02:00
Bram Moolenaar
0874a83e9b patch 7.4.2298
Problem:    It is not possible to close the "in" part of a channel.
Solution:   Add ch_close_in().
2016-09-01 15:11:51 +02:00
Bram Moolenaar
d8b554904d patch 7.4.2297
Problem:    When starting a job that reads from a buffer and reaching the end,
            the job hangs.
Solution:   Close the pipe or socket when all lines were read.
2016-09-01 14:35:22 +02:00
Bram Moolenaar
f37506f60f Updated runtime files. Remove HiLink commands. 2016-08-31 22:22:10 +02:00
Bram Moolenaar
c628fdcd46 patch 7.4.2296
Problem:    No tests for :undolist and "U" command.
Solution:   Add tests. (Dominique Pelle)
2016-08-31 20:33:27 +02:00
Bram Moolenaar
89bcfda683 Updated runtime files. Remove version checks for Vim older than 6.0. 2016-08-30 23:26:57 +02:00
Bram Moolenaar
4792255eff patch 7.4.2295
Problem:    Cscope test fails.
Solution:   Avoid checking for specific line and column numbers.
2016-08-30 10:56:50 +02:00
Bram Moolenaar
64cefedfc8 patch 7.4.2294
Problem:    Sign test fails on MS-Windows when using the distributed zip
            archives.
Solution:   Create dummy files instead of relying on files in the pixmaps
            directory.
2016-08-29 23:06:28 +02:00
Bram Moolenaar
edf3f97ae2 patch 7.4.2293
Problem:    Modelines in source code are inconsistant.
Solution:   Use the same line in most files.  Add 'noet'.  (Naruhiko Nishino)
2016-08-29 22:49:24 +02:00
Bram Moolenaar
965ed14973 patch 7.4.2292
Problem:    Not all systems understand %F in printf().
Solution:   Use %f.
2016-08-29 22:31:24 +02:00
Bram Moolenaar
0418609534 patch 7.4.2291
Problem:    printf() handles floats wrong when there is a sign.
Solution:   Fix placing the sign.  Add tests. (Dominique Pelle)
2016-08-29 21:55:35 +02:00
Bram Moolenaar
7f7bd297d6 patch 7.4.2290
Problem:    Compiler warning in tiny build. (Tony Mechelynck)
Solution:   Add #ifdef around infinity_str().
2016-08-28 21:21:31 +02:00
Bram Moolenaar
7683aaa506 patch 7.4.2289
Problem:    When installing and $DESTDIR is set the icons probably won't be
            installed.
Solution:   Create the icon directories if $DESTDIR is not empty. (Danek
            Duvall)
2016-08-28 21:00:50 +02:00
Bram Moolenaar
cb03397aba patch 7.4.2288
Problem:    MS-Windows build instructions are clumsy. "dosbin" doesn't build.
Solution:   Add rename.bat. Fix building "dosbin".
2016-08-28 20:14:38 +02:00
Bram Moolenaar
6fc8227ebf patch 7.4.2287
Problem:    The callback passed to ch_sendraw() is not used.
Solution:   Pass the read part, not the send part. (haya14busa, closes #1019)
2016-08-28 19:26:43 +02:00
Bram Moolenaar
fec246d2c5 patch 7.4.2286
Problem:    The tee program isn't included.  Makefile contains build
            instructions that don't work.
Solution:   Update the Filelist and build instructions. Remove build
            instructions for DOS and old Windows.  Add the tee program.
2016-08-28 18:47:14 +02:00
Bram Moolenaar
36f44c21da Updated runtime files. 2016-08-28 18:17:20 +02:00
Bram Moolenaar
d90b6c02e2 patch 7.4.2285
Problem:    Generated files are outdated.
Solution:   Generate the files.  Avoid errors when generating prototypes.
2016-08-28 18:10:45 +02:00
Bram Moolenaar
f4145d8e99 patch 7.4.2284
Problem:    Comment in scope header file is outdated. (KillTheMule)
Solution:   Point to the help instead. (closes #1017)
2016-08-28 17:15:25 +02:00
Bram Moolenaar
885c00eabe patch 7.4.2283
Problem:    Part of ":oldfiles" command isn't cleared. (Lifepillar)
Solution:   Clear the rest of the line. (closes 1018)
2016-08-28 17:08:17 +02:00
Bram Moolenaar
0abe0522d0 patch 7.4.2282
Problem:    When a child process is very fast waiting 10 msec for it is
            noticeable. (Ramel Eshed)
Solution:   Start waiting for 1 msec and gradually increase.
2016-08-28 16:53:12 +02:00
Bram Moolenaar
0426bae2ab patch 7.4.2281
Problem:    Timer test fails sometimes.
Solution:   Reduce minimum time by 1 msec.
2016-08-28 16:06:05 +02:00
Bram Moolenaar
e999782e36 patch 7.4.2280
Problem:    printf() doesn't handle infinity float values correctly.
Solution:   Add a table with possible infinity values. (Dominique Pelle)
2016-08-28 16:03:38 +02:00
Bram Moolenaar
46328f9a1c patch 7.4.2279
Problem:    Starting diff mode with the cursor in the last line might end up
            only showing one closed fold. (John Beckett)
Solution:   Scroll the window to show the same relative cursor position.
2016-08-28 15:39:57 +02:00
Bram Moolenaar
4427db9bb2 patch 7.4.2278
Problem:    New users have no idea of the 'scrolloff' option.
Solution:   Set 'scrolloff' in defaults.vim.
2016-08-28 14:39:44 +02:00
Bram Moolenaar
6a402edbeb patch 7.4.2277
Problem:    Memory leak in getbufinfo() when there is a sign. (Dominique
            Pelle)
Solution:   Remove extra vim_strsave().
2016-08-28 14:11:24 +02:00
Bram Moolenaar
1773ddfdcd patch 7.4.2276
Problem:    Command line test fails on Windows when run twice.
Solution:   Wipe the buffer so that the directory can be deleted.
2016-08-28 13:38:54 +02:00
Bram Moolenaar
e67d546f3c patch 7.4.2275
Problem:    ":diffoff!" does not remove filler lines.
Solution:   Force a redraw and invalidate the cursor. (closes #1014)
2016-08-27 22:40:42 +02:00
Bram Moolenaar
818078ddfb Updated runtime files and translations. 2016-08-27 21:58:42 +02:00
Bram Moolenaar
73d4e4c892 patch 7.4.2274
Problem:    Command line completion on "find **/filename" drops sub-directory.
Solution:   Handle this case separately. (Harm te Hennepe, closes #932, closes
            #939)
2016-08-27 21:55:13 +02:00
Bram Moolenaar
3056735ae8 patch 7.4.2273
Problem:    getwininfo() and getbufinfo() are inefficient.
Solution:   Do not make a copy of all window/buffer-local options.  Make it
            possible to get them with gettabwinvar() or getbufvar().
2016-08-27 21:25:44 +02:00
Bram Moolenaar
9f8187c335 patch 7.4.2272
Problem:    getbufinfo(), getwininfo() and gettabinfo() are inefficient.
Solution:   Instead of making a copy of the variables dictionary, use a
            reference.
2016-08-27 20:34:01 +02:00
Bram Moolenaar
ffdf08c94e patch 7.4.2271
Problem:    Netbeans test doesn't read settings from file.
Solution:   Use "-Xnbauth".
2016-08-27 19:52:47 +02:00
Bram Moolenaar
821179809d patch 7.4.2270
Problem:    Insufficient testing for NUL bytes on a raw channel.
Solution:   Add a test for writing and reading.
2016-08-27 19:21:48 +02:00
Bram Moolenaar
e17bdffff7 patch 7.4.2269
Problem:    Using 'hlsearch' highlighting instead of matchpos if there is no
            search match.
Solution:   Pass NULL as last item to next_search_hl() when searching for
            'hlsearch' match. (Shane Harper, closes #1013)
2016-08-27 18:34:29 +02:00
Bram Moolenaar
1195669f9e patch 7.4.2268
Problem:    Using CTRL-N and CTRL-P for incsearch shadows completion keys.
Solution:   Use CTRL-T and CTRL-G instead.
2016-08-27 16:26:56 +02:00
Bram Moolenaar
44ca54aeb9 patch 7.4.2267
Problem:    Build fails on MS-Windows.
Solution:   Add define to get isinf().
2016-08-27 15:41:32 +02:00
Bram Moolenaar
9992237a3e patch 7.4.2266
Problem:    printf() test fails on Windows. "-inf" is not used.
Solution:   Check for Windows-specific values for "nan".  Add sign to "inf"
            when appropriate.
2016-08-27 15:26:35 +02:00
Bram Moolenaar
76efafba2a patch 7.4.2265
Problem:    printf() isn't tested much.
Solution:   Add more tests for printf(). (Dominique Pelle)
2016-08-27 14:21:21 +02:00
Bram Moolenaar
2b529bb626 patch 7.4.2264
Problem:    When adding entries to an empty quickfix list the title is reset.
Solution:   Improve handling of the title. (Yegappan Lakshmanan)
2016-08-27 13:35:35 +02:00
Bram Moolenaar
d29459baa6 patch 7.4.2263
Problem:    :filter does not work for many commands.  Can only get matching
            messages.
Solution:   Make :filter work for :command, :map, :list, :number and :print.
            Make ":filter!" show non-matching lines.
2016-08-26 22:29:11 +02:00
Bram Moolenaar
2570957607 patch 7.4.2262
Problem:    Fail to read register content from viminfo if it is 438 characters
            long. (John Chen)
Solution:   Adjust the check for line wrapping. (closes #1010)
2016-08-26 20:41:16 +02:00
Bram Moolenaar
7df0f6313a patch 7.4.2261
Problem:    Build fails with small features.
Solution:   Move "else" inside the #ifdef.
2016-08-26 19:56:00 +02:00
Bram Moolenaar
e4a3bcf28d Updated runtime files. Add Scala files. 2016-08-26 19:52:37 +02:00
Bram Moolenaar
dd74ab9b46 patch 7.4.2260
Problem:    Channel test is flaky.
Solution:   Add a newline to separate JSON messages.
2016-08-26 19:20:26 +02:00
Bram Moolenaar
4d6f32cbfb patch 7.4.2259
Problem:    With 'incsearch' can only see the next match.
Solution:   Make CTRL-N/CTRL-P move to the previous/next match. (Christian
            Brabandt)
2016-08-26 19:13:46 +02:00
Bram Moolenaar
f1f0792e55 patch 7.4.2258
Problem:    Two JSON messages are sent without a separator.
Solution:   Separate messages with a NL. (closes #1001)
2016-08-26 17:58:53 +02:00
Bram Moolenaar
9f28953f0c patch 7.4.2257
Problem:    Coverity complains about not checking for NULL.
Solution:   Check for out of memory.
2016-08-26 16:39:03 +02:00
Bram Moolenaar
db249f26ed patch 7.4.2256
Problem:    Coverity complains about null pointer check.
Solution:   Remove wrong and superfluous error check.
2016-08-26 16:29:47 +02:00
Bram Moolenaar
ec42059b78 patch 7.4.2255
Problem:    The script that checks translations can't handle plurals.
Solution:   Check for plural msgid and msgstr entries.  Leave the cursor on
            the first error.
2016-08-26 15:51:53 +02:00
Bram Moolenaar
54b6352c6f patch 7.4.2254
Problem:    Compiler warnings in MzScheme code.
Solution:   Add UNUSED.  Remove unreachable code.
2016-08-26 12:55:09 +02:00
Bram Moolenaar
78c7e274f2 patch 7.4.2253
Problem:    Check for Windows 3.1 will always return false.  (Christian
            Brabandt)
Solution:   Remove the dead code.
2016-08-25 23:19:29 +02:00
Bram Moolenaar
424d74bb20 patch 7.4.2252
Problem:    Compiler warnings for signed/unsigned in expression.
Solution:   Remove type cast. (Dominique Pelle)
2016-08-25 23:02:11 +02:00
Bram Moolenaar
015efc32c1 patch 7.4.2251
Problem:    In rare cases diffing 4 buffers is not enough.
Solution:   Raise the limit to 8. (closes #1000)
2016-08-24 22:34:33 +02:00
Bram Moolenaar
5b30291785 patch 7.4.2250
Problem:    Some error message cannot be translated.
Solution:   Enclose them in _() and N_(). (Dominique Pelle)
2016-08-24 22:11:55 +02:00
Bram Moolenaar
ba2099034f patch 7.4.2249
Problem:    Missing colon in error message.
Solution:   Add the colon. (Dominique Pelle)
2016-08-24 22:06:38 +02:00
Bram Moolenaar
358308dd99 patch 7.4.2248
Problem:    When cancelling the :ptjump prompt a preview window is opened for
            a following command.
Solution:   Reset g_do_tagpreview. (Hirohito Higashi)  Add a test.  Avoid that
            the test runner gets stuck in trying to close a window.
2016-08-24 21:21:26 +02:00
Bram Moolenaar
b58fe4588c patch 7.4.2247
Problem:    Tiny build fails. (Tony Mechelynck)
Solution:   Remove #ifdef.
2016-08-24 00:39:05 +02:00
Bram Moolenaar
d6f2ee32dc patch 7.4.2246
Problem:    Oldfiles test fails.
Solution:   Include missing changes.
2016-08-24 00:30:52 +02:00
Bram Moolenaar
77401add71 patch 7.4.2245
Problem:    Filter test fails.
Solution:   Include missing changes.
2016-08-24 00:12:12 +02:00
Bram Moolenaar
7b668e83d0 patch 7.4.2244
Problem:    Adding pattern to ":oldfiles" is not a generic solution.
Solution:   Add the ":filter /pat/ cmd" command modifier.  Only works for some
            commands right now.
2016-08-23 23:51:21 +02:00
Bram Moolenaar
1b58cdd160 patch 7.4.2243
Problem:    Warning for assigning negative value to unsigned. (Danek Duvall)
Solution:   Make cterm_normal_fg_gui_color and _bg_ guicolor_T, cast to long_u
            only when an unsigned is needed.
2016-08-22 23:04:33 +02:00
Bram Moolenaar
17f1347b86 patch 7.4.2242
Problem:    Timer test sometimes fails.
Solution:   Increase the maximum time for callback timer test.
2016-08-22 22:47:45 +02:00
Bram Moolenaar
973365dcc4 patch 7.4.2241
Problem:    Timer test sometimes fails.
Solution:   Increase the maximum time for repeating timer.
2016-08-22 22:02:56 +02:00
Bram Moolenaar
f267f8bdf7 patch 7.4.2240
Problem:    Tests using the sleep time can be flaky.
Solution:   Use reltime() if available. (Partly by Shane Harper)
2016-08-22 21:40:29 +02:00
Bram Moolenaar
9baf297c99 patch 7.4.2239
Problem:    Warning for missing declaration of skip_vimgrep_pat(). (John
            Marriott)
Solution:   Move it to another file.
2016-08-21 22:39:35 +02:00
Bram Moolenaar
de7762a2c1 patch 7.4.2238
Problem:    With SGR mouse reporting (suckless terminal) the mouse release and
            scroll up/down is confused.
Solution:   Don't see a release as a scroll up/down. (Ralph Eastwood)
2016-08-21 21:03:37 +02:00
Bram Moolenaar
9b7f8ce9eb patch 7.4.2237
Problem:    Can't use "." and "$" with ":tab".
Solution:   Support a range for ":tab". (Hirohito Higashi)
2016-08-21 19:07:17 +02:00
Bram Moolenaar
920694c1b6 patch 7.4.2236
Problem:    The 'langnoremap' option leads to double negatives.  And it does
            not work for the last character of a mapping.
Solution:   Add 'langremap' with the opposite value.  Keep 'langnoremap' for
            backwards compatibility.  Make it work for the last character of a
            mapping.  Make the test work.
2016-08-21 17:45:02 +02:00
Bram Moolenaar
989f592f7f patch 7.4.2235
Problem:    submatch() does not check for a valid argument.
Solution:   Give an error if the argument is out of range. (Dominique Pelle)
2016-08-21 15:26:54 +02:00
Bram Moolenaar
dd1248143e patch 7.4.2234
Problem:    Can't build with +eval but without +quickfix. (John Marriott)
Solution:   Move skip_vimgrep_pat() to separate #ifdef block.
2016-08-21 15:00:03 +02:00
Bram Moolenaar
843b884461 patch 7.4.2233
Problem:    Crash when using funcref() with invalid name. (Dominique Pelle)
Solution:   Check for NULL translated name.
2016-08-21 14:36:15 +02:00
Bram Moolenaar
e07e797db0 patch 7.4.2232
Problem:    The default ttimeoutlen is very long.
Solution:   Use "100". (Hirohito Higashi)
2016-08-20 19:22:16 +02:00
Bram Moolenaar
e11d61a3b1 patch 7.4.2231
Problem:    ":oldfiles" output is a very long list.
Solution:   Add a pattern argument. (Coot, closes #575)
2016-08-20 18:36:54 +02:00
Bram Moolenaar
66e29d7112 patch 7.4.2230
Problem:    There is no equivalent of 'smartcase' for a tag search.
Solution:   Add value "followscs" and "smart" to 'tagcase'. (Christian
            Brabandt, closes #712) Turn tagcase test into new style.
2016-08-20 16:57:02 +02:00
Bram Moolenaar
f04507d132 patch 7.4.2229
Problem:    Startup test fails on Solaris.
Solution:   Recognize a character device. (Danek Duvall)
2016-08-20 15:05:39 +02:00
Bram Moolenaar
9e4d8215d3 patch 7.4.2228
Problem:    Test files have inconsistant modelines.
Solution:   Don't set 'tabstop' to 2, use 'sts' and 'sw'.
2016-08-18 23:04:48 +02:00
Bram Moolenaar
7571d55f7d Updated runtime files. 2016-08-18 22:54:46 +02:00
Bram Moolenaar
1381d79147 patch 7.4.2227
Problem:    Tab page tests are old style.
Solution:   Change into new style tests. (Hirohito Higashi)
2016-08-18 22:11:42 +02:00
Bram Moolenaar
3392883770 patch 7.4.2226
Problem:    The field names used by getbufinfo(), gettabinfo() and
            getwininfo() are not consistent.
Solution:   Use bufnr, winnr and tabnr. (Yegappan Lakshmanan)
2016-08-18 21:22:04 +02:00
Bram Moolenaar
bfd096d020 patch 7.4.2225
Problem:    Crash when placing a sign in a deleted buffer.
Solution:   Check for missing buffer name. (Dominique Pelle). Add a test.
2016-08-17 22:29:09 +02:00
Bram Moolenaar
af9c4c9b57 patch 7.4.2224
Problem:    Compiler warnings with older compiler and 64 bit numbers.
Solution:   Add "LL" to large values. (Mike Williams)
2016-08-17 21:51:56 +02:00
Bram Moolenaar
d3c907b5d2 patch 7.4.2223
Problem:    Buffer overflow when using latin1 character with feedkeys().
Solution:   Check for an illegal character.  Add a test.
2016-08-17 21:32:09 +02:00
Bram Moolenaar
6bff02eb53 patch 7.4.2222
Problem:    Sourcing a script where a character has 0x80 as a second byte does
            not work. (Filipe L B Correia)
Solution:   Turn 0x80 into K_SPECIAL KS_SPECIAL KE_FILLER. (Christian
            Brabandt, closes #728)  Add a test case.
2016-08-16 22:50:55 +02:00
Bram Moolenaar
91984b9034 patch 7.4.2221
Problem:    printf() does not support binary format.
Solution:   Add %b and %B. (Ozaki Kiichi)
2016-08-16 21:58:41 +02:00
Bram Moolenaar
e5a8f35b42 patch 7.4.2220
Problem:    printf() gives an error when the argument for %s is not a string.
            (Ozaki Kiichi)
Solution:   Behave like invoking string() on the argument. (Ken Takata)
2016-08-16 21:30:54 +02:00
Bram Moolenaar
f5a39447a8 patch 7.4.2219
Problem:    Recursive call to substitute gets stuck in sandbox. (Nikolai
            Pavlov)
Solution:   Handle the recursive call. (Christian Brabandt, closes #950)
            Add a test.
2016-08-16 21:04:41 +02:00
Bram Moolenaar
13d216d302 patch 7.4.2218
Problem:    Can't build with +timers when +digraph is not included.
Solution:   Change #ifdef for e_number_exp. (Damien)
2016-08-16 19:21:11 +02:00
Bram Moolenaar
dc1f1645cb Updated runtime files. 2016-08-16 18:33:43 +02:00
Bram Moolenaar
4f416e4124 patch 7.4.2217
Problem:    When using matchaddpos() a character after the end of the line can
            be highlighted.
Solution:   Only highlight existing characters. (Hirohito Higashi)
2016-08-16 16:08:18 +02:00
Bram Moolenaar
22177f0c08 patch 7.4.2216
Problem:    Test fails without the +sign feature.
Solution:   Only check for signcolumn with the +sign feature.
2016-08-15 22:54:49 +02:00
Bram Moolenaar
386600f0cb patch 7.4.2215
Problem:    It's not easy to find out if a window is a quickfix or location
            list window.
Solution:   Add "loclist" and "quickfix" entries to the dict returnec by
            getwininfo(). (Yegappan Lakshmanan)
2016-08-15 22:16:25 +02:00
Bram Moolenaar
16350cb979 patch 7.4.2214
Problem:    A font that uses ligatures messes up the screen display.
Solution:   Put spaces between characters when building the glyph table.
            (based on a patch from Manuel Schiller)
2016-08-14 20:27:34 +02:00
Bram Moolenaar
58b853460a patch 7.4.2213
Problem:    Cannot highlight the "~" lines at the end of a window differently.
Solution:   Add the EndOfBuffer highlighting. (Marco Hinz, James McCoy)
2016-08-14 19:54:54 +02:00
Bram Moolenaar
e59215c7dc patch 7.4.2212
Problem:    Mark " is not set when closing a window in another tab. (Guraga)
Solution:   Check all tabs for the window to be valid. (based on patch by
            Hirohito Higashi, closes #974)
2016-08-14 19:08:45 +02:00
Bram Moolenaar
e56132bb41 patch 7.4.2211
Problem:    Mouse support is not automatically enabled with simple term.
Solution:   Recognize "st" and other names. (Manuel Schiller, closes #963)
2016-08-14 18:23:21 +02:00
Bram Moolenaar
cff50f5ec9 patch 7.4.2210
Problem:    On OSX configure mixes up a Python framework and the Unix layout.
Solution:   Make configure check properly. (Tim D. Smith, closes #980)
2016-08-14 17:32:52 +02:00
Bram Moolenaar
35a4cfa200 patch 7.4.2209
Problem:    Cannot map <M-">. (Stephen Riehm)
Solution:   Solve the memory access problem in another way. (Dominique Pelle)
            Allow for using <M-\"> in a string.
2016-08-14 16:07:48 +02:00
Bram Moolenaar
2d1a248762 patch 7.4.2208
Problem:    Test for mappings is old style.
Solution:   Convert the test to new style.
2016-08-14 15:32:11 +02:00
Bram Moolenaar
d58b0f982a patch 7.4.2207
Problem:    The +xpm feature is not sorted properly in :version output.
Solution:   Move it up. (Tony Mechelynck)
2016-08-13 16:39:56 +02:00
Bram Moolenaar
4ae209597c patch 7.4.2206
Problem:    Warning for unused function.
Solution:   Put the function inside #ifdef. (John Marriott)
2016-08-13 15:29:14 +02:00
Bram Moolenaar
e9d58a6459 patch 7.4.2205
Problem:    'wildignore' always applies to getcompletion().
Solution:   Add an option to use 'wildignore' or not. (Yegappan Lakshmanan)
2016-08-13 15:07:41 +02:00
Bram Moolenaar
0952131376 Updated runtime files. 2016-08-12 22:54:35 +02:00
Bram Moolenaar
b5ae48e9ff patch 7.4.2204
Problem:    It is not easy to get information about buffers, windows and
            tabpages.
Solution:   Add getbufinfo(), getwininfo() and gettabinfo(). (Yegappan
            Lakshmanan)
2016-08-12 22:23:25 +02:00
Bram Moolenaar
ebcccad573 patch 7.4.2203
Problem:    Test fails with normal features.
Solution:   Check is signs are supported.
2016-08-12 19:17:13 +02:00
Bram Moolenaar
b338483152 patch 7.4.2202
Problem:    Build fails with small features.
Solution:   Correct option initialization.
2016-08-12 18:51:58 +02:00
Bram Moolenaar
95ec9d6a6a patch 7.4.2201
Problem:    The sign column disappears when the last sign is deleted.
Solution:   Add the 'signcolumn' option. (Christian Brabandt)
2016-08-12 18:29:59 +02:00
Bram Moolenaar
d823fa910c patch 7.4.2200
Problem:    Cannot get all information about a quickfix list.
Solution:   Add an optional argument to get/set loc/qf list(). (Yegappan
            Lakshmanan)
2016-08-12 16:29:27 +02:00
Bram Moolenaar
107abd2ca5 patch 7.4.2199
Problem:    In the GUI the cursor is hidden when redrawing any window,
            causing flicker.
Solution:   Only undraw the cursor when updating the window it's in.
2016-08-12 14:08:25 +02:00
Bram Moolenaar
0e5d3a2940 patch 7.4.2198
Problem:    Test alot sometimes fails under valgrind. (Dominique Pelle)
Solution:   Avoid passing a callback with the wrong number of arguments.
2016-08-11 22:52:42 +02:00
Bram Moolenaar
c257487035 patch 7.4.2197
Problem:    All functions are freed on exit, which may hide leaks.
Solution:   Only free named functions, not reference counted ones.
2016-08-11 22:51:05 +02:00
Bram Moolenaar
91c5262b19 patch 7.4.2196
Problem:    glob2regpat test doesn't test everything on MS-Windows.
Solution:   Add patterns with backslash handling.
2016-08-10 23:02:45 +02:00
Bram Moolenaar
bcc1dcc981 patch 7.4.2195
Problem:    MS-Windows: The vimrun program does not support Unicode.
Solution:   Use GetCommandLineW().  Cleanup old #ifdefs. (Ken Takata)
2016-08-10 22:02:40 +02:00
Bram Moolenaar
446a973ce3 patch 7.4.2194
Problem:    Sign tests don't cover enough.
Solution:   Add more test cases. (Dominique Pelle)
2016-08-10 21:36:23 +02:00
Bram Moolenaar
717e196060 patch 7.4.2193
Problem:    With Gnome when the GUI can't start test_startup hangs.
Solution:   Call gui_mch_early_init_check(). (Hirohito Higashi)
2016-08-10 21:28:44 +02:00
Bram Moolenaar
a6b7a08ae0 patch 7.4.2192
Problem:    Generating prototypes with Cygwin doesn't work well.
Solution:   Change #ifdefs. (Ken Takata)
2016-08-10 20:53:05 +02:00
Bram Moolenaar
a357e44ccd patch 7.4.2191
Problem:    No automatic prototype for vim_main2().
Solution:   Move the #endif. (Ken Takata)
2016-08-10 20:45:07 +02:00
Bram Moolenaar
50fa8dd00c patch 7.4.2190
Problem:    When startup test fails it's not easy to find out why.
            GUI test fails with Gnome.
Solution:   Add the help entry matches to a list an assert that.
            Set $HOME for Gnome to create .gnome2 directory.
2016-08-09 22:58:21 +02:00
Bram Moolenaar
f71d7b9ee5 patch 7.4.2189
Problem:    Cannot detect encoding in a fifo.
Solution:   Extend the stdin way of detecting encoding to fifo.  Add a test
            for detecting encoding on stdin and fifo. (Ken Takata)
2016-08-09 22:14:05 +02:00
Bram Moolenaar
c9fb77c692 patch 7.4.2188
Problem:    Completion does not work properly with some plugins.
Solution:   Revert the part related to typing CTRL-E. (closes #972)
2016-08-09 21:51:40 +02:00
Bram Moolenaar
7547a78446 patch 7.4.2187
Problem:    glob2regpat test fails on Windows.
Solution:   Remove the checks that use backslashes.
2016-08-08 23:26:51 +02:00
Bram Moolenaar
36d1c0fef4 patch 7.4.2186
Problem:    Timers test is flaky.
Solution:   Relax the sleep time check.
2016-08-08 22:46:14 +02:00
Bram Moolenaar
71dd9744cf patch 7.4.2185
Problem:    Test glob2regpat does not test much.
Solution:   Add a few more test cases. (Dominique Pelle)
2016-08-08 22:42:04 +02:00
Bram Moolenaar
7a9a5f4019 patch 7.4.2184
Problem:    Tests that use RunVim() do not actually perform the test.
Solution:   Use "return" instead of "call". (Ken Takata)
2016-08-08 22:34:14 +02:00
Bram Moolenaar
09de17536d patch 7.4.2183
Problem:    Sign tests are old style.
Solution:   Turn them into new style tests. (Dominique Pelle)
2016-08-08 22:26:48 +02:00
Bram Moolenaar
2147746cf8 patch 7.4.2182
Problem:    Color Grey40 used in startup but not in the short list.
Solution:   Add Grey40 to the builtin colors.
2016-08-08 20:43:27 +02:00
Bram Moolenaar
a772ec5e91 patch 7.4.2181
Problem:    Compiler warning for unused variable.
Solution:   Remove it. (Dominique Pelle)
2016-08-07 20:20:50 +02:00
Bram Moolenaar
b73598e2f0 patch 7.4.2180
Problem:    There is no easy way to stop all timers.  There is no way to
            temporary pause a timer.
Solution:   Add timer_stopall() and timer_pause().
2016-08-07 18:22:53 +02:00
Bram Moolenaar
e4a76ad0e7 patch 7.4.2179
Problem:    Reading from stdin test fails on MS-Windows.
Solution:   Strip the extra space.
2016-08-07 16:50:10 +02:00
Bram Moolenaar
3a93838339 patch 7.4.2178
Problem:    No test for reading from stdin.
Solution:   Add a test.
2016-08-07 16:36:40 +02:00
Bram Moolenaar
ba98bef191 patch 7.4.2177
Problem:    No testing for -C and -N command line flags, file arguments,
            startuptime.
Solution:   Add tests.
2016-08-07 15:51:39 +02:00
Bram Moolenaar
a8e691d449 patch 7.4.2176
Problem:    #ifdefs in main() are complicated.
Solution:   Always define vim_main2().  Move params to the file level.
            (suggested by Ken Takata)
2016-08-07 15:19:26 +02:00
Bram Moolenaar
812ad4f3a2 patch 7.4.2175
Problem:    Insufficient testing of cscope.
Solution:   Add more tests. (Dominique Pelle)
2016-08-07 14:03:13 +02:00
Bram Moolenaar
c8ce615299 patch 7.4.2174
Problem:    Adding duplicate flags to 'whichwrap' leaves commas behind.
Solution:   Also remove the commas. (Naruhiko Nishino)
2016-08-07 13:48:20 +02:00
Bram Moolenaar
3321e9d8a3 patch 7.4.2173
Problem:    Can't test help on MS-Windows.
Solution:   Skip the test.
2016-08-06 23:03:59 +02:00
Bram Moolenaar
472a0a880a patch 7.4.2172
Problem:    No test for "vim --help".
Solution:   Add a test.
2016-08-06 22:31:42 +02:00
Bram Moolenaar
00ff380295 patch 7.4.2171
Problem:    MS-Windows build fails.
Solution:   Add QueryPerformanceCounter().
2016-08-06 22:27:28 +02:00
Bram Moolenaar
8e97bd74b5 patch 7.4.2170
Problem:    Cannot get information about timers.
Solution:   Add timer_info().
2016-08-06 22:05:07 +02:00
Bram Moolenaar
446cce6d53 patch 7.4.2169
Problem:    Startup test gets stuck on MS-Windows.
Solution:   Use double quotes.
2016-08-06 21:37:27 +02:00
Bram Moolenaar
5b4a3767f6 patch 7.4.2168
Problem:    Not running the startup test on MS-Windows.
Solution:   Write vimcmd.
2016-08-06 20:36:34 +02:00
Bram Moolenaar
c96a2f3b88 patch 7.4.2167
Problem:    Small build can't run tests.
Solution:   Don't try setting 'packpath'.
2016-08-06 19:45:31 +02:00
Bram Moolenaar
328604307b patch 7.4.2166
Problem:    Small build can't run startup test.
Solution:   Skip the test.
2016-08-06 19:24:23 +02:00
Bram Moolenaar
83b3c3d8a0 patch 7.4.2165
Problem:    Startup test fails on MS-Windows.
Solution:   Don't check output if RunVim() returns zero.
2016-08-06 19:16:43 +02:00
Bram Moolenaar
66459b7c98 patch 7.4.2164
Problem:    It is not possible to use plugins in an "after" directory to tune
            the behavior of a package.
Solution:   First load plugins from non-after directories, then packages and
            finally plugins in after directories.
            Reset 'loadplugins' before executing --cmd arguments.
2016-08-06 19:01:55 +02:00
Bram Moolenaar
d76a0c15f8 patch 7.4.2163
Problem:    match() and related functions tested with old style test.
Solution:   Convert to new style test. (Hirohito Higashi)
2016-08-06 15:29:22 +02:00
Bram Moolenaar
7522f69821 patch 7.4.2162
Problem:    Result of getcompletion('', 'sign') depends on previous
            completion.
Solution:   Call set_context_in_sign_cmd(). (Dominique Pelle)
2016-08-06 14:12:50 +02:00
Bram Moolenaar
7ab6defcaf patch 7.4.2161
Problem:    Expression test fails without conceal feature.
Solution:   Only check "conceal" with the conceal feature.
2016-08-05 22:51:13 +02:00
Bram Moolenaar
7dc5e2e486 patch 7.4.2160
Problem:    setmatches() mixes up values. (Nikolai Pavlov)
Solution:   Save the string instead of reusing a shared buffer.
2016-08-05 22:22:06 +02:00
Bram Moolenaar
5971dab112 patch 7.4.2159
Problem:    Insufficient testing for cscope.
Solution:   Add more tests. (Dominique Pelle)
2016-08-05 21:25:29 +02:00
Bram Moolenaar
b650b9878e patch 7.4.2158
Problem:    Result of getcompletion('', 'cscope') depends on previous
            completion. (Christian Brabandt)
Solution:   Call set_context_in_cscope_cmd().
2016-08-05 20:35:13 +02:00
Bram Moolenaar
46c4d4ac66 patch 7.4.2157
Problem:    Test_job_start_fails() is expected to report memory leaks, making
            it hard to see other leaks in test_partial.
Solution:   Move Test_job_start_fails() to a separate test file.
2016-08-05 19:31:57 +02:00
Bram Moolenaar
c90f2aedd0 patch 7.4.2156
Problem:    Compiler warning.
Solution:   Add type cast. (Ken Takata, Mike Williams)
2016-08-04 22:00:15 +02:00
Bram Moolenaar
9d5b876d45 patch 7.4.2155
Problem:    Quotes make GUI test fail on MS-Windows.
Solution:   Remove quotes, strip white space.
2016-08-04 21:21:13 +02:00
Bram Moolenaar
fe9489233c patch 7.4.2154
Problem:    Test_communicate() fails sometimes.
Solution:   Add it to the flaky tests.
2016-08-04 21:11:32 +02:00
Bram Moolenaar
877e957798 patch 7.4.2153
Problem:    GUI test isn't testing much.
Solution:   Turn into a new style test.  Execute a shell command.
2016-08-04 20:05:50 +02:00
Bram Moolenaar
ee695f787a patch 7.4.2152
Problem:    No proper translation of messages with a count.
Solution:   Use ngettext(). (Sergey Alyoshin)
2016-08-03 22:08:45 +02:00
Bram Moolenaar
cf25fdb8f1 patch 7.4.2151
Problem:    Quickfix test fails on MS-Windows.
Solution:   Close the help window. (Christian Brabandt)
2016-08-03 21:04:53 +02:00
Bram Moolenaar
4c38d66d25 patch 7.4.2150
Problem:    Warning with MinGW 64. (John Marriott)
Solution:   Change return type. (Ken Takata)
2016-08-03 20:54:57 +02:00
Bram Moolenaar
7cba71d7e3 patch 7.4.2149
Problem:    If a test leaves a window open a following test may fail.
Solution:   Always close extra windows after running a test.
2016-08-02 23:04:49 +02:00
Bram Moolenaar
edf634e0f1 patch 7.4.2148
Problem:    Not much testing for cscope.
Solution:   Add a test that uses the cscope program. (Christian Brabandt)
2016-08-02 23:01:40 +02:00
Bram Moolenaar
abb71fbd39 patch 7.4.2147
Problem:    test_alot fails.
Solution:   Close window.
2016-08-02 22:51:42 +02:00
Bram Moolenaar
472472898a patch 7.4.2146
Problem:    Not enough testing for popup menu.  CTRL-E does not always work
            properly.
Solution:   Add more tests.  When using CTRL-E check if the popup menu is
            visible. (Christian Brabandt)
2016-08-02 22:36:02 +02:00
Bram Moolenaar
86f2cd5bc5 patch 7.4.2145
Problem:    Win32: Using CreateThread/ExitThread is not safe.
Solution:   Use _beginthreadex and return from the thread. (Ken Takata)
2016-08-02 21:55:17 +02:00
Bram Moolenaar
796aa9c804 patch 7.4.2144
Problem:    On MS-Windows quickix does not handle a line with 1023 bytes
            ending in CR-LF properly.
Solution:   Don't consider CR a line break. (Ken Takata)
2016-08-02 21:41:28 +02:00
Bram Moolenaar
bc8801c931 Updated runtime files. 2016-08-02 21:04:33 +02:00
Bram Moolenaar
bc7ce675b2 patch 7.4.2143
Problem:    A funccal is garbage collected while it can still be used.
Solution:   Set copyID in all referenced functions.  Do not list lambda
            functions with ":function".
2016-08-01 22:49:22 +02:00
Bram Moolenaar
8dd3a43d75 patch 7.4.2142
Problem:    Leaking memory when redefining a function.
Solution:   Don't increment the function reference count when it's found by
            name. Don't remove the wrong function from the hashtab.  More
            reference counting fixes.
2016-08-01 20:46:25 +02:00
Bram Moolenaar
ba96e9af38 patch 7.4.2141
Problem:    Coverity reports bogus NULL check.
Solution:   When checking for a variable in the funccal scope don't pass the
            varname.
2016-08-01 17:10:20 +02:00
Bram Moolenaar
acadbeabe1 patch 7.4.2140
Problem:    Tiny build fails.
Solution:   Add dummy typedefs.
2016-08-01 16:35:59 +02:00
805 changed files with 29070 additions and 22129 deletions

View File

@@ -62,6 +62,7 @@ addons:
- python3-dev
- liblua5.1-0-dev
- lua5.1
- cscope
before_install:
- pip install --user cpp-coveralls

View File

@@ -93,6 +93,7 @@ SRC_ALL = \
src/vim.h \
src/winclip.c \
src/window.c \
src/tee/tee.c \
src/xxd/xxd.c \
src/main.aap \
src/testdir/main.aap \
@@ -263,6 +264,7 @@ SRC_UNIX = \
src/workshop.h \
src/wsdebug.c \
src/wsdebug.h \
src/tee/Makefile \
src/xxd/Makefile \
# source files for both DOS and Unix
@@ -314,6 +316,7 @@ SRC_DOS = \
src/Make_dvc.mak \
src/Make_ming.mak \
src/Make_mvc.mak \
tools/rename.bat \
src/bigvim.bat \
src/bigvim64.bat \
src/msvcsetup.bat \
@@ -357,6 +360,7 @@ SRC_DOS = \
src/vimrun.c \
src/xpm_w32.c \
src/xpm_w32.h \
src/tee/Make_mvc.mak \
src/xxd/Make_bc5.mak \
src/xxd/Make_ming.mak \
src/xxd/Make_mvc.mak \

111
Makefile
View File

@@ -51,12 +51,9 @@ all install uninstall tools config configure reconfig proto depend lint tags typ
#
# dossrc vim##src.zip sources for MS-DOS
# dosrt vim##rt.zip runtime for MS-DOS
# dosbin vim##d16.zip binary for MS-DOS 16 bits
# vim##d32.zip binary for MS-DOS 32 bits
# vim##w32.zip binary for Win32
# dosbin vim##w32.zip binary for Win32
# gvim##.zip binary for GUI Win32
# gvim##ole.zip OLE exe for Win32 GUI
# gvim##_s.zip exe for Win32s GUI
#
# OBSOLETE
# amisrc vim##src.tgz sources for Amiga
@@ -73,15 +70,6 @@ all install uninstall tools config configure reconfig proto depend lint tags typ
MAJOR = 7
MINOR = 4
# Uncomment this line if the Win32s version is to be included.
# DOSBIN_S = dosbin_s
# Uncomment this line if the 16 bit DOS version is to be included.
# DOSBIN_D16 = dosbin_d16
# Uncomment this line if the 32 bit DOS version is to be included.
# DOSBIN_D32 = dosbin_d32
# CHECKLIST for creating a new version:
#
# - Update Vim version number. For a test version in: src/version.h, Contents,
@@ -149,31 +137,35 @@ MINOR = 4
# - > cd src
# > nmake -f Make_mvc.mak
# - Run the tests:
# > rm testdir/*.out testdir/*.res
# > nmake -f Make_mvc.mak testclean
# > nmake -f Make_mvc.mak test
# - check the output.
# - Rename vim.exe to vimw32.exe, xxd/xxd.exe to xxdw32.exe.
# - Rename vim.pdb to vimw32.pdb.
# - Rename install.exe to installw32.exe and uninstal.exe to uninstalw32.exe.
# - Rename (using tools/rename.bat):
# vim.exe to vimw32.exe
# tee/tee.exe to teew32.exe
# xxd/xxd.exe to xxdw32.exe
# vim.pdb to vimw32.pdb
# install.exe to installw32.exe
# uninstal.exe to uninstalw32.exe
# Win32 GUI version build:
# - > cd src
# > nmake -f Make_mvc.mak GUI=yes
# - Run the tests:
# > rm testdir/*.out testdir/*.res
# > nmake -f Make_mvc.mak testclean
# > nmake -f Make_mvc.mak testgvim
# - check the output.
# - move "gvim.exe" to here (otherwise the OLE version will overwrite it).
# - Move gvim.pdb to here.
# - Copy "GvimExt/gvimext.dll" to here.
# - Delete vimrun.exe, install.exe and uninstal.exe.
# Win32 GUI version with OLE, PERL, TCL, PYTHON and dynamic IME:
# Win32 GUI version with OLE, PERL, Ruby, TCL, PYTHON and dynamic IME:
# - Install the interfaces you want, see src/INSTALLpc.txt
# - Build:
# > cd src
# Adjust bigvim.bat to match the version of each interface you want.
# > bigvim.bat
# - Run the tests:
# > rm testdir/*.out testdir/*.res
# > nmake -f Make_mvc.mak testclean
# > nmake -f Make_mvc.mak testgvim
# - check the output.
# - Rename "gvim.exe" to "gvim_ole.exe".
@@ -187,7 +179,8 @@ MINOR = 4
# NSIS self installing exe:
# - To get NSIS see http://nsis.sourceforge.net
# - Make sure gvim_ole.exe, vimw32.exe, installw32.exe,
# uninstalw32.exe and xxdw32.exe have been build as mentioned above.
# uninstalw32.exe, teew32.exe and xxdw32.exe have been build as mentioned
# above.
# - copy these files (get them from a binary archive or build them):
# gvimext.dll in src/GvimExt
# gvimext64.dll in src/GvimExt
@@ -221,15 +214,7 @@ MINOR = 4
# 32 bit DOS version: Support was removed in 7.4.1399. When syncing to before
# that it probably won't build.
#
# Win32s GUI version: (requires a very old compiler)
# - Set environment for Visual C++ 4.1 (requires a new console window):
# "vcvars32.bat" (use the path for VC 4.1 e:\msdev\bin)
# - "nmake -f Make_mvc.mak GUI=yes INTL=no clean" (use the path for VC 4.1)
# - "nmake -f Make_mvc.mak GUI=yes INTL=no" (use the path for VC 4.1)
# - Rename "gvim.exe" to "gvim_w32s.exe".
# - Rename "install.exe" to "installw32.exe"
# - Rename "uninstal.exe" to "uninstalw32.exe"
# - The produced uninstalw32.exe and vimrun.exe are used.
# Win32s GUI version: Support was removed in patch 7.4.1364.
#
# OS/2 support was removed in patch 7.4.1008. If you want to give it a try
# sync to before that and check the old version of this Makefile for
@@ -268,12 +253,9 @@ dist/comment:
mkdir dist/comment
COMMENT_RT = comment/$(VERSION)-rt
COMMENT_D16 = comment/$(VERSION)-bin-d16
COMMENT_D32 = comment/$(VERSION)-bin-d32
COMMENT_W32 = comment/$(VERSION)-bin-w32
COMMENT_GVIM = comment/$(VERSION)-bin-gvim
COMMENT_OLE = comment/$(VERSION)-bin-ole
COMMENT_W32S = comment/$(VERSION)-bin-w32s
COMMENT_SRC = comment/$(VERSION)-src
COMMENT_HTML = comment/$(VERSION)-html
COMMENT_FARSI = comment/$(VERSION)-farsi
@@ -281,12 +263,6 @@ COMMENT_FARSI = comment/$(VERSION)-farsi
dist/$(COMMENT_RT): dist/comment
echo "Vim - Vi IMproved - v$(VDOT) runtime files for MS-DOS and MS-Windows" > dist/$(COMMENT_RT)
dist/$(COMMENT_D16): dist/comment
echo "Vim - Vi IMproved - v$(VDOT) binaries for MS-DOS 16 bit real mode" > dist/$(COMMENT_D16)
dist/$(COMMENT_D32): dist/comment
echo "Vim - Vi IMproved - v$(VDOT) binaries for MS-DOS 32 bit protected mode" > dist/$(COMMENT_D32)
dist/$(COMMENT_W32): dist/comment
echo "Vim - Vi IMproved - v$(VDOT) binaries for MS-Windows NT/95" > dist/$(COMMENT_W32)
@@ -296,9 +272,6 @@ dist/$(COMMENT_GVIM): dist/comment
dist/$(COMMENT_OLE): dist/comment
echo "Vim - Vi IMproved - v$(VDOT) MS-Windows GUI binaries with OLE support" > dist/$(COMMENT_OLE)
dist/$(COMMENT_W32S): dist/comment
echo "Vim - Vi IMproved - v$(VDOT) GUI binaries for MS-Windows 3.1/3.11" > dist/$(COMMENT_W32S)
dist/$(COMMENT_SRC): dist/comment
echo "Vim - Vi IMproved - v$(VDOT) sources for MS-DOS and MS-Windows" > dist/$(COMMENT_SRC)
@@ -501,7 +474,8 @@ runtime_unix2dos: dosrt_files
cd dist/vim/$(VIMRTDIR); tar cf - * \
| (cd ../../../runtime/dos; tar xf -)
dosbin: prepare dosbin_gvim dosbin_w32 $(DOSBIN_D32) dosbin_ole $(DOSBIN_S) $(DOSBIN_D16)
dosbin: prepare dosbin_gvim dosbin_w32 dosbin_ole $(DOSBIN_S)
-rm $(IN_README_DIR)
# make Win32 gvim
dosbin_gvim: dist no_title.vim dist/$(COMMENT_GVIM)
@@ -512,8 +486,8 @@ dosbin_gvim: dist no_title.vim dist/$(COMMENT_GVIM)
tar cf - \
$(BIN_DOS) \
| (cd dist/vim/$(VIMRTDIR); tar xf -)
-rm $(IN_README_DIR)
cp gvim.exe dist/vim/$(VIMRTDIR)/gvim.exe
cp teew32.exe dist/vim/$(VIMRTDIR)/tee.exe
cp xxdw32.exe dist/vim/$(VIMRTDIR)/xxd.exe
cp vimrun.exe dist/vim/$(VIMRTDIR)/vimrun.exe
cp installw32.exe dist/vim/$(VIMRTDIR)/install.exe
@@ -532,43 +506,13 @@ dosbin_w32: dist no_title.vim dist/$(COMMENT_W32)
$(BIN_DOS) \
| (cd dist/vim/$(VIMRTDIR); tar xf -)
cp vimw32.exe dist/vim/$(VIMRTDIR)/vim.exe
cp teew32.exe dist/vim/$(VIMRTDIR)/tee.exe
cp xxdw32.exe dist/vim/$(VIMRTDIR)/xxd.exe
cp installw32.exe dist/vim/$(VIMRTDIR)/install.exe
cp uninstalw32.exe dist/vim/$(VIMRTDIR)/uninstal.exe
cd dist && zip -9 -rD -z vim$(VERSION)w32.zip vim <$(COMMENT_W32)
cp vimw32.pdb dist/vim$(VERSION)w32.pdb
# make 32bit DOS
dosbin_d32: dist no_title.vim dist/$(COMMENT_D32)
-rm -rf dist/vim$(VERSION)d32.zip
-rm -rf dist/vim
mkdir dist/vim
mkdir dist/vim/$(VIMRTDIR)
tar cf - \
$(BIN_DOS) \
| (cd dist/vim/$(VIMRTDIR); tar xf -)
cp vimd32.exe dist/vim/$(VIMRTDIR)/vim.exe
cp xxdd32.exe dist/vim/$(VIMRTDIR)/xxd.exe
cp installd32.exe dist/vim/$(VIMRTDIR)/install.exe
cp uninstald32.exe dist/vim/$(VIMRTDIR)/uninstal.exe
cp csdpmi4b.zip dist/vim/$(VIMRTDIR)
cd dist && zip -9 -rD -z vim$(VERSION)d32.zip vim <$(COMMENT_D32)
# make 16bit DOS
dosbin_d16: dist no_title.vim dist/$(COMMENT_D16)
-rm -rf dist/vim$(VERSION)d16.zip
-rm -rf dist/vim
mkdir dist/vim
mkdir dist/vim/$(VIMRTDIR)
tar cf - \
$(BIN_DOS) \
| (cd dist/vim/$(VIMRTDIR); tar xf -)
cp vimd16.exe dist/vim/$(VIMRTDIR)/vim.exe
cp xxdd16.exe dist/vim/$(VIMRTDIR)/xxd.exe
cp installd16.exe dist/vim/$(VIMRTDIR)/install.exe
cp uninstald16.exe dist/vim/$(VIMRTDIR)/uninstal.exe
cd dist && zip -9 -rD -z vim$(VERSION)d16.zip vim <$(COMMENT_D16)
# make Win32 gvim with OLE
dosbin_ole: dist no_title.vim dist/$(COMMENT_OLE)
-rm -rf dist/gvim$(VERSION)ole.zip
@@ -579,6 +523,7 @@ dosbin_ole: dist no_title.vim dist/$(COMMENT_OLE)
$(BIN_DOS) \
| (cd dist/vim/$(VIMRTDIR); tar xf -)
cp gvim_ole.exe dist/vim/$(VIMRTDIR)/gvim.exe
cp teew32.exe dist/vim/$(VIMRTDIR)/tee.exe
cp xxdw32.exe dist/vim/$(VIMRTDIR)/xxd.exe
cp vimrun.exe dist/vim/$(VIMRTDIR)/vimrun.exe
cp installw32.exe dist/vim/$(VIMRTDIR)/install.exe
@@ -590,22 +535,6 @@ dosbin_ole: dist no_title.vim dist/$(COMMENT_OLE)
cd dist && zip -9 -rD -z gvim$(VERSION)ole.zip vim <$(COMMENT_OLE)
cp gvim_ole.pdb dist/gvim$(VERSION)ole.pdb
# make Win32s gvim
dosbin_s: dist no_title.vim dist/$(COMMENT_W32S)
-rm -rf dist/gvim$(VERSION)_s.zip
-rm -rf dist/vim
mkdir dist/vim
mkdir dist/vim/$(VIMRTDIR)
tar cf - \
$(BIN_DOS) \
| (cd dist/vim/$(VIMRTDIR); tar xf -)
cp gvim_w32s.exe dist/vim/$(VIMRTDIR)/gvim.exe
cp xxdd32.exe dist/vim/$(VIMRTDIR)/xxd.exe
cp README_w32s.txt dist/vim/$(VIMRTDIR)
cp installw32.exe dist/vim/$(VIMRTDIR)/install.exe
cp uninstalw32.exe dist/vim/$(VIMRTDIR)/uninstal.exe
cd dist && zip -9 -rD -z gvim$(VERSION)_s.zip vim <$(COMMENT_W32S)
html: dist dist/$(COMMENT_HTML)
-rm -rf dist/vim$(VERSION)html.zip
cd runtime/doc && zip -9 -z ../../dist/vim$(VERSION)html.zip *.html <../../dist/$(COMMENT_HTML)

View File

@@ -26,9 +26,10 @@ build_script:
test_script:
- cd src/testdir
# Testing with MSVC gvim
- path C:\Python35-x64;%PATH%
- nmake -f Make_dos.mak VIMPROG=..\gvim
- nmake -f Make_dos.mak clean
# Testing with MingW console version
- nmake -f Make_dos.mak VIMPROG=..\vim
# vim: sw=2 sts=2 et ts=2 sr
# vim: sw=2 sts=2 et ts=8 sr

View File

@@ -188,6 +188,7 @@ Section "Vim executables and runtime files"
File /oname=install.exe ${VIMSRC}\installw32.exe
File /oname=uninstal.exe ${VIMSRC}\uninstalw32.exe
File ${VIMSRC}\vimrun.exe
File /oname=tee.exe ${VIMSRC}\teew32.exe
File /oname=xxd.exe ${VIMSRC}\xxdw32.exe
File ${VIMTOOLS}\diff.exe
File ${VIMRT}\vimtutor.bat

View File

@@ -93,7 +93,7 @@ function! s:GetBufferRubyEntity( name, type, ... )
let stopline = 1
let crex = '^\s*\<' . a:type . '\>\s*\<' . a:name . '\>\s*\(<\s*.*\s*\)\?'
let crex = '^\s*\<' . a:type . '\>\s*\<' . escape(a:name, '*') . '\>\s*\(<\s*.*\s*\)\?'
let [lnum,lcol] = searchpos( crex, 'w' )
"let [lnum,lcol] = searchpairpos( crex . '\zs', '', '\(end\|}\)', 'w' )
@@ -149,7 +149,7 @@ function! s:GetRubyVarType(v)
let ctors = ctors.'\)'
let fstr = '=\s*\([^ \t]\+.' . ctors .'\>\|[\[{"''/]\|%[xwQqr][(\[{@]\|[A-Za-z0-9@:\-()\.]\+...\?\|lambda\|&\)'
let sstr = ''.a:v.'\>\s*[+\-*/]*'.fstr
let sstr = ''.escape(a:v, '*').'\>\s*[+\-*/]*'.fstr
let [lnum,lcol] = searchpos(sstr,'nb',stopline)
if lnum != 0 && lcol != 0
let str = matchstr(getline(lnum),fstr,lcol)
@@ -266,6 +266,28 @@ class VimRubyCompletion
end
end
def load_gems
fpath = VIM::evaluate("get(g:, 'rubycomplete_gemfile_path', 'Gemfile')")
return unless File.file?(fpath) && File.readable?(fpath)
want_bundler = VIM::evaluate("get(g:, 'rubycomplete_use_bundler')")
parse_file = !want_bundler
begin
require 'bundler'
Bundler.setup
Bundler.require
rescue Exception
parse_file = true
end
if parse_file
File.new(fpath).each_line do |line|
begin
require $1 if /\s*gem\s*['"]([^'"]+)/.match(line)
rescue Exception
end
end
end
end
def load_buffer_class(name)
dprint "load_buffer_class(%s) START" % name
classdef = get_buffer_entity(name, 's:GetBufferRubyClass("%s")')
@@ -588,6 +610,10 @@ class VimRubyCompletion
load_rails
end
want_gems = VIM::evaluate("get(g:, 'rubycomplete_load_gemfile')")
load_gems unless want_gems.to_i.zero?
input = VIM::Buffer.current.line
cpos = VIM::Window.current.cursor[1] - 1
input = input[0..cpos]
@@ -678,7 +704,9 @@ class VimRubyCompletion
cv = eval("self.class.constants")
vartype = get_var_type( receiver )
dprint "vartype: %s" % vartype
if vartype != ''
invalid_vartype = ['', "gets"]
if !invalid_vartype.include?(vartype)
load_buffer_class( vartype )
begin
@@ -706,7 +734,7 @@ class VimRubyCompletion
methods.concat m.instance_methods(false)
}
end
variables += add_rails_columns( "#{vartype}" ) if vartype && vartype.length > 0
variables += add_rails_columns( "#{vartype}" ) if vartype && !invalid_vartype.include?(vartype)
when /^\(?\s*[A-Za-z0-9:^@.%\/+*\(\)]+\.\.\.?[A-Za-z0-9:^@.%\/+*\(\)]+\s*\)?\.([^.]*)/
message = $1

View File

@@ -2,7 +2,7 @@
" vim: tw=0 ts=4 sw=4
" Vim color file
" Maintainer: Ron Aaron <ron@ronware.org>
" Last Change: 2013 May 23
" Last Change: 2016 Sep 04
hi clear
set background=dark
@@ -45,6 +45,7 @@ hi TabLineFill term=bold,reverse cterm=bold ctermfg=lightblue ctermbg=white g
hi TabLineSel term=reverse ctermfg=white ctermbg=lightblue guifg=white guibg=blue
hi Underlined term=underline cterm=bold,underline ctermfg=lightblue guifg=lightblue gui=bold,underline
hi Ignore ctermfg=black ctermbg=black guifg=black guibg=black
hi EndOfBuffer term=bold cterm=bold ctermfg=darkred guifg=#cc0000 gui=bold
hi link IncSearch Visual
hi link String Constant
hi link Character Constant

View File

@@ -1,7 +1,7 @@
" Vim compiler file
" Compiler: Cucumber
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Last Change: 2010 Aug 09
" Last Change: 2016 Aug 29
if exists("current_compiler")
finish
@@ -19,7 +19,7 @@ CompilerSet makeprg=cucumber
CompilerSet errorformat=
\%W%m\ (Cucumber::Undefined),
\%E%m\ (%.%#),
\%E%m\ (%\\S%#),
\%Z%f:%l,
\%Z%f:%l:%.%#

View File

@@ -1,7 +1,7 @@
" Vim compiler file
" Compiler: Haml
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Last Change: 2013 May 30
" Last Change: 2016 Aug 29
if exists("current_compiler")
finish
@@ -15,7 +15,7 @@ endif
let s:cpo_save = &cpo
set cpo-=C
CompilerSet makeprg=haml\ -c
CompilerSet makeprg=haml
CompilerSet errorformat=
\Haml\ %trror\ on\ line\ %l:\ %m,

View File

@@ -27,7 +27,11 @@ CompilerSet errorformat=
\%\\s%#[%f:%l:\ %#%m,
\%\\s%#%f:%l:\ %#%m,
\%\\s%#%f:%l:,
\%m\ [%f:%l]:
\%m\ [%f:%l]:,
\%+Erake\ aborted!,
\%+EDon't\ know\ how\ to\ build\ task\ %.%#,
\%+Einvalid\ option:%.%#,
\%+Irake\ %\\S%\\+%\\s%\\+#\ %.%#
let &cpo = s:cpo_save
unlet s:cpo_save

View File

@@ -22,9 +22,10 @@ CompilerSet errorformat=
\%f:%l:\ %tarning:\ %m,
\%E%.%#:in\ `load':\ %f:%l:%m,
\%E%f:%l:in\ `%*[^']':\ %m,
\%-Z\ \ \ \ \ \#\ %f:%l:%.%#,
\%-Z\ \ \ \ \ %\\+\#\ %f:%l:%.%#,
\%E\ \ %\\d%\\+)%.%#,
\%C\ \ \ \ \ %m,
\%C%\\s%#,
\%-G%.%#
let &cpo = s:cpo_save

View File

@@ -17,6 +17,8 @@ let s:cpo_save = &cpo
set cpo-=C
CompilerSet makeprg=testrb
" CompilerSet makeprg=ruby\ -Itest
" CompilerSet makeprg=m
CompilerSet errorformat=\%W\ %\\+%\\d%\\+)\ Failure:,
\%C%m\ [%f:%l]:,

View File

@@ -1,7 +1,7 @@
" Vim compiler file
" Compiler: Sass
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Last Change: 2013 May 30
" Last Change: 2016 Aug 29
if exists("current_compiler")
finish
@@ -15,7 +15,7 @@ endif
let s:cpo_save = &cpo
set cpo-=C
CompilerSet makeprg=sass\ -c
CompilerSet makeprg=sass
CompilerSet errorformat=
\%f:%l:%m\ (Sass::Syntax%trror),

View File

@@ -1,7 +1,7 @@
" The default vimrc file.
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last change: 2016 Jul 29
" Last change: 2016 Sep 02
"
" This is loaded if no vimrc file was found.
" Except when Vim is run with "-u NONE" or "-C".
@@ -13,6 +13,12 @@ if v:progname =~? "evim"
finish
endif
" Bail out if something that ran earlier, e.g. a system wide vimrc, does not
" want Vim to use these default values.
if exists('skip_defaults_vim')
finish
endif
" Use Vim settings, rather than Vi settings (much better!).
" This must be first, because it changes other options as a side effect.
set nocompatible
@@ -25,9 +31,16 @@ set ruler " show the cursor position all the time
set showcmd " display incomplete commands
set wildmenu " display completion matches in a status line
set ttimeout " time out for key codes
set ttimeoutlen=100 " wait up to 100ms after Esc for special key
" Show @@@ in the last line if it is truncated.
set display=truncate
" Show a few lines of context around the cursor. Note that this makes the
" text scroll if you mouse-click near the start or end of the window.
set scrolloff=5
" Do incremental searching when it's possible to timeout.
if has('reltime')
set incsearch
@@ -104,9 +117,9 @@ if !exists(":DiffOrig")
\ | wincmd p | diffthis
endif
if has('langmap') && exists('+langnoremap')
if has('langmap') && exists('+langremap')
" Prevent that the langmap option applies to characters that result from a
" mapping. If unset (default), this may break plugins (but it's backward
" mapping. If set (default), this may break plugins (but it's backward
" compatible).
set langnoremap
set nolangremap
endif

View File

@@ -1,4 +1,4 @@
*autocmd.txt* For Vim version 7.4. Last change: 2016 Jul 19
*autocmd.txt* For Vim version 7.4. Last change: 2016 Sep 03
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -419,8 +419,8 @@ BufUnload Before unloading a buffer. This is when the
NOTE: When this autocommand is executed, the
current buffer "%" may be different from the
buffer being unloaded "<afile>".
Don't change to another buffer, it will cause
problems.
Don't change to another buffer or window, it
will cause problems!
When exiting and v:dying is 2 or more this
event is not triggered.
*BufWinEnter*
@@ -784,7 +784,9 @@ QuickFixCmdPre Before a quickfix command is run (|:make|,
|:vimgrepadd|, |:lvimgrepadd|, |:cscope|,
|:cfile|, |:cgetfile|, |:caddfile|, |:lfile|,
|:lgetfile|, |:laddfile|, |:helpgrep|,
|:lhelpgrep|).
|:lhelpgrep|, |:cexpr|, |:cgetexpr|,
|:caddexpr|, |:cbuffer|, |:cgetbuffer|,
|:caddbuffer|).
The pattern is matched against the command
being run. When |:grep| is used but 'grepprg'
is set to "internal" it still matches "grep".
@@ -1065,6 +1067,9 @@ Note that for all systems the '/' character is used for path separator (even
MS-DOS and OS/2). This was done because the backslash is difficult to use
in a pattern and to make the autocommands portable across different systems.
It is possible to use |pattern| items, but they may not work as expected,
because of the translation done for the above.
*autocmd-changes*
Matching with the pattern is done when an event is triggered. Changing the
buffer name in one of the autocommands, or even deleting the buffer, does not
@@ -1163,10 +1168,12 @@ name!
different from existing {event} names, as this
most likely will not do what you intended.
*:augroup-delete* *E367*
*:augroup-delete* *E367* *W19* *E936*
:aug[roup]! {name} Delete the autocmd group {name}. Don't use
this if there is still an autocommand using
this group! This is not checked.
this group! You will get a warning if doing
it anyway. when the group is the current group
you will get error E936.
To enter autocommands for a specific group, use this method:
1. Select the group with ":augroup {name}".

View File

@@ -1,4 +1,4 @@
*channel.txt* For Vim version 7.4. Last change: 2016 Jul 15
*channel.txt* For Vim version 7.4. Last change: 2016 Sep 07
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -25,7 +25,9 @@ The Netbeans interface also uses a channel. |netbeans|
{Vi does not have any of these features}
{only when compiled with the |+channel| feature for channel stuff}
You can check this with: `has('channel')`
{only when compiled with the |+job| feature for job stuff}
You can check this with: `has('job')`
==============================================================================
1. Overview *job-channel-overview*
@@ -54,7 +56,7 @@ Common combination are:
- Using a job connected through pipes in NL mode. E.g., to run a style
checker and receive errors and warnings.
- Using a deamon, connecting over a socket in JSON mode. E.g. to lookup
crosss-refrences in a database.
cross-references in a database.
==============================================================================
2. Channel demo *channel-demo* *demoserver.py*
@@ -247,9 +249,15 @@ In which {number} is different every time. It must be used in the response
This way Vim knows which sent message matches with which received message and
can call the right handler. Also when the messages arrive out of order.
A newline character is terminating the JSON text. This can be used to
separate the read text. For example, in Python:
splitidx = read_text.find('\n')
message = read_text[:splitidx]
rest = read_text[splitidx + 1:]
The sender must always send valid JSON to Vim. Vim can check for the end of
the message by parsing the JSON. It will only accept the message if the end
was received.
was received. A newline after the message is optional.
When the process wants to send a message to Vim without first receiving a
message, it must use the number zero:
@@ -389,6 +397,9 @@ This {string} can also be JSON, use |json_encode()| to create it and
It is not possible to use |ch_evalexpr()| or |ch_sendexpr()| on a raw channel.
A String in Vim cannot contain NUL bytes. To send or receive NUL bytes read
or write from a buffer. See |in_io-buffer| and |out_io-buffer|.
==============================================================================
7. More channel functions *channel-more*
@@ -474,7 +485,7 @@ For example, to start a job and write its output in buffer "dummy": >
Job input from a buffer ~
*in_io-buffer*
To run a job that reads from a buffer: >
let job = job_start({command},
\ {'in_io': 'buffer', 'in_name': 'mybuffer'})
@@ -490,6 +501,10 @@ A special mode is when "in_top" is set to zero and "in_bot" is not set: Every
time a line is added to the buffer, the last-but-one line will be send to the
job stdin. This allows for editing the last line and sending it when pressing
Enter.
*channel-close-in*
When not using the special mode the pipe or socket will be closed after the
last line has been written. This signals the reading end that the input
finished. You can also use |ch_close_in()| to close it sooner.
NUL bytes in the text will be passed to the job (internally Vim stores these
as NL bytes).
@@ -631,6 +646,8 @@ See |job_setoptions()| and |ch_setoptions()|.
"out_buf": number the number of the buffer to write to
"out_modifiable": 0 when writing to a buffer, 'modifiable' will be off
(see below)
"out_msg": 0 when writing to a new buffer, the first line will be
set to "Reading from channel output..."
*job-err_io* *err_name* *err_buf*
"err_io": "out" stderr messages to go to stdout
@@ -642,13 +659,15 @@ See |job_setoptions()| and |ch_setoptions()|.
"err_buf": number the number of the buffer to write to
"err_modifiable": 0 when writing to a buffer, 'modifiable' will be off
(see below)
"err_msg": 0 when writing to a new buffer, the first line will be
set to "Reading from channel error..."
"block_write": number only for testing: pretend every other write to stdin
will block
Writing to a buffer ~
*out_io-buffer*
When the out_io or err_io mode is "buffer" and there is a callback, the text
is appended to the buffer before invoking the callback.
@@ -671,8 +690,16 @@ buffer number.
For a new buffer 'buftype' is set to "nofile" and 'bufhidden' to "hide". If
you prefer other settings, create the buffer first and pass the buffer number.
*out_modifiable* *err_modifiable*
The "out_modifiable" and "err_modifiable" options can be used to set the
'modifiable' option off, or write to a buffer that has 'modifiable' off. That
means that lines will be appended to the buffer, but the user can't easily
change the buffer.
*out_msg* *err_msg*
The "out_msg" option can be used to specify whether a new buffer will have the
first line set to "Reading from channel output...". The default is to add the
message. "err_msg" does the same for channel error.
'modifiable' option off, or write to a buffer that has 'modifiable' off. That
means that lines will be appended to the buffer, but the user can't easily
change the buffer.

View File

@@ -1,4 +1,4 @@
*cmdline.txt* For Vim version 7.4. Last change: 2015 Dec 17
*cmdline.txt* For Vim version 7.4. Last change: 2016 Aug 27
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -423,12 +423,26 @@ CTRL-L A match is done on the pattern in front of the cursor. If
If there are multiple matches the longest common part is
inserted in place of the pattern. If the result is shorter
than the pattern, no completion is done.
*/_CTRL-L*
When 'incsearch' is set, entering a search pattern for "/" or
"?" and the current match is displayed then CTRL-L will add
one character from the end of the current match. If
'ignorecase' and 'smartcase' are set and the command line has
no uppercase characters, the added character is converted to
lowercase.
*c_CTRL-G* */_CTRL-G*
CTRL-G When 'incsearch' is set, entering a search pattern for "/" or
"?" and the current match is displayed then CTRL-G will move
to the next match (does not take |search-offset| into account)
Use CTRL-T to move to the previous match. Hint: on a regular
keyboard T is above G.
*c_CTRL-T* */_CTRL-T*
CTRL-T When 'incsearch' is set, entering a search pattern for "/" or
"?" and the current match is displayed then CTRL-T will move
to the previous match (does not take |search-offset| into
account).
Use CTRL-G to move to the next match. Hint: on a regular
keyboard T is above G.
The 'wildchar' option defaults to <Tab> (CTRL-E when in Vi compatible mode; in
a previous version <Esc> was used). In the pattern standard wildcards '*' and

View File

@@ -1,12 +1,12 @@
*diff.txt* For Vim version 7.4. Last change: 2015 Nov 01
*diff.txt* For Vim version 7.4. Last change: 2016 Aug 24
VIM REFERENCE MANUAL by Bram Moolenaar
*diff* *vimdiff* *gvimdiff* *diff-mode*
This file describes the |+diff| feature: Showing differences between two,
three or four versions of the same file.
This file describes the |+diff| feature: Showing differences between two to
eight versions of the same file.
The basics are explained in section |08.7| of the user manual.
@@ -117,7 +117,7 @@ To make these commands use a vertical split, prepend |:vertical|. Examples: >
If you always prefer a vertical split include "vertical" in 'diffopt'.
*E96*
There can be up to four buffers with 'diff' set.
There can be up to eight buffers with 'diff' set.
Since the option values are remembered with the buffer, you can edit another
file for a moment and come back to the same file and be in diff mode again.

View File

@@ -1,4 +1,4 @@
*editing.txt* For Vim version 7.4. Last change: 2016 Mar 28
*editing.txt* For Vim version 7.4. Last change: 2016 Aug 06
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1114,10 +1114,12 @@ The names can be in upper- or lowercase.
edited. See |:confirm| and 'confirm'. {not in Vi}
:q[uit]! Quit without writing, also when the current buffer has
changes. If this is the last window and there is a
modified hidden buffer, the current buffer is
abandoned and the first changed hidden buffer becomes
the current buffer.
changes. The buffer is unloaded, also when it has
'hidden' set.
If this is the last window and there is a modified
hidden buffer, the current buffer is abandoned and the
first changed hidden buffer becomes the current
buffer.
Use ":qall!" to exit always.
:cq[uit] Quit always, without writing, and return an error

File diff suppressed because it is too large Load Diff

View File

@@ -1,4 +1,4 @@
*gui_x11.txt* For Vim version 7.4. Last change: 2016 Apr 08
*gui_x11.txt* For Vim version 7.4. Last change: 2016 Aug 21
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -421,6 +421,9 @@ These are the different looks:
GNOME is compiled with if it was found by configure and the
--enable-gnome-check argument was used.
Note: Avoid use of --enable-gnome-check with GTK+ 3 GUI build. The
functionality mentioned above is consolidated in GTK+ 3.
GNOME session support *gui-gnome-session* *gnome-session*
@@ -457,20 +460,37 @@ continues on Yzis: https://github.com/chrizel/Yzis.
==============================================================================
8. Compiling *gui-x11-compiling*
If using X11, Vim's Makefile will by default first try to find the necessary
GTK+ files on your system. If the GTK+ files cannot be found, then the Motif
files will be searched for. Finally, if this fails, the Athena files will be
searched for. If all three fail, the GUI will be disabled.
If using X11, Vim's configure will by default first try to find the necessary
GTK+ files on your system. When both GTK+ 2 and GTK+ 3 are available, GTK+ 2
will be chosen unless --enable-gui=gtk3 is passed explicitly to configure.
For GTK+, Vim's configuration process requires that GTK+ be properly
installed. That is, the shell script 'gtk-config' must be in your PATH, and
you can already successful compile, build, and execute a GTK+ program. The
reason for this is that the compiler flags (CFLAGS) and link flags (LDFLAGS)
are obtained through the 'gtk-config' shell script.
If the GTK+ files cannot be found, then the Motif files will be searched for.
Finally, if this fails, the Athena files will be searched for. If all three
fail, the GUI will be disabled.
If you want to build with GTK+ 2 support pass the --enable-gtk2-check argument
to ./configure. Optionally, support for GNOME 2 will be compiled if the
--enable-gnome-check option is also given.
For GTK+, Vim's configuration process uses pkg-config(1) to check if the
GTK+ required for a specified build is properly installed and usable.
Accordingly, it is a good idea to make sure before running configure that
your system has a working pkg-config together with the .pc file of the
required GTK+. For that, say, run the following on the command line to see if
your pkg-config works with your GTK+ 2: >
$ pkgconfig --modversion gtk+-2.0
Replace gtk+-2.0 with gtk+-3.0 for GTK+ 3. If you get the correct version
number of your GTK+, you can proceed; if not, you probably need to do some
system administration chores to set up pkg-config and GTK+ correctly.
The GTK+ 2 GUI is built by default. Therefore, you usually don't need to pass
any options such as --enable-gui=gtk2 to configure and build that.
Optionally, the GTK+ 2 GUI can consolidate the GNOME 2 support. This support
is enabled by passing --enable-gnome-check to configure.
If you want to build the GTK+ 3 GUI, you have to pass --enable-gui=gtk3
explicitly to configure, and avoid passing --enable-gnome-check to that, as
the functionality of the GNOME 2 support has already been consolidated in
GTK+ 3.
Otherwise, if you are using Motif or Athena, when you have the Motif or Athena
files in a directory where configure doesn't look, edit the Makefile to enter
@@ -478,18 +498,14 @@ the names of the directories. Search for "GUI_INC_LOC" for an example to set
the Motif directories, "CONF_OPT_X" for Athena.
*gui-x11-gtk*
At the time of this writing, GTK+ version 1.0.6 and 1.2 are outdated. It
is suggested that you use GTK 2. The GTK 1 support will most likely be
dropped soon.
Currently, Vim supports both GTK+ 2 and GTK+ 3.
For the GTK+ 2 GUI, using the latest release of the GTK+ 2.0 or GTK+ 2.2
series is recommended.
The GTK+ 2 GUI requires GTK+ 2.2 or later.
Lastly, although GTK+ has supposedly been ported to the Win32 platform, this
has not been tested with Vim and is also unsupported. Also, it's unlikely to
even compile since GTK+ GUI uses parts of the generic X11 code. This might
change in distant future; particularly because getting rid of the X11 centric
code parts is also required for GTK+ framebuffer support.
Although the GTK+ 3 GUI is written in such a way that the source code can be
compiled against all versions of the 3.x series, we recommend GTK+ 3.10 or
later because of its substantial implementation changes in redraw done at
that version.
*gui-x11-motif*
For Motif, you need at least Motif version 1.2 and/or X11R5. Motif 2.0 and

View File

@@ -59,6 +59,12 @@ Example:
EOF
endfunction
<
To see what version of Lua you have: >
:lua print(_VERSION)
If you use LuaJIT you can also use this: >
:lua print(jit.version)
<
*:luado*
:[range]luado {body} Execute Lua function "function (line, linenr) {body}

View File

@@ -97,6 +97,9 @@ procedures is restricted.
:mzscheme (require (prefix vim- vimext)) ; for MzScheme < 4.x
:mzscheme (require (prefix-in vim- 'vimext)) ; MzScheme 4.x
:mzscheme (vim-set-buff-line 10 "This is line #10")
To see what version of MzScheme you have: >
:mzscheme (display (version))
<
Inline script usage: >
function! <SID>SetFirstLine()

View File

@@ -83,6 +83,9 @@ Example vim script: >
EOF
endfunction
<
To see what version of Perl you have: >
:perl print $^V
<
*:perldo* *:perld*
:[range]perld[o] {cmd} Execute Perl command {cmd} for each line in the

View File

@@ -1,4 +1,4 @@
*if_pyth.txt* For Vim version 7.4. Last change: 2015 Nov 10
*if_pyth.txt* For Vim version 7.4. Last change: 2016 Sep 01
VIM REFERENCE MANUAL by Paul Moore
@@ -56,7 +56,11 @@ Example: >
print 'EAT ME'
EOF
endfunction
<
To see what version of Python you have: >
:python import sys
:python print(sys.version)
Note: Python is very sensitive to the indenting. Make sure the "class" line
and "EOF" do not have any indent.
@@ -745,6 +749,10 @@ The `:py3` and `:python3` commands work similar to `:python`. A simple check
if the `:py3` command is working: >
:py3 print("Hello")
< *:py3file*
To see what version of Python you have: >
:py3 import sys
:py3 print(sys.version)
The `:py3file` command works similar to `:pyfile`.
*:py3do*
The `:py3do` command works similar to `:pydo`.

View File

@@ -1,4 +1,4 @@
*if_ruby.txt* For Vim version 7.4. Last change: 2015 Dec 03
*if_ruby.txt* For Vim version 7.4. Last change: 2016 Sep 01
VIM REFERENCE MANUAL by Shugo Maeda
@@ -58,6 +58,9 @@ Example Vim script: >
EOF
endfunction
<
To see what version of Ruby you have: >
:ruby print RUBY_VERSION
<
*:rubydo* *:rubyd* *E265*
:[range]rubyd[o] {cmd} Evaluate Ruby command {cmd} for each line in the
@@ -205,7 +208,7 @@ MS-Windows ~
You need to install the right version of Ruby for this to work. You can find
the package to download from:
http://www.garbagecollect.jp/ruby/mswin32/en/download/release.html
Currently that is ruby-1.9.1-p429-i386-mswin32.zip
Currently that is ruby-1.9.2-p136-i386-mswin32.zip
To use the Ruby interface the Ruby DLL must be in your search path. In a
console window type "path" to see what directories are used. The 'rubydll'

View File

@@ -54,6 +54,9 @@ Example: >
EOF
endfunction
<
To see what version of Tcl you have: >
:tcl puts [info patchlevel]
<
*:tcldo* *:tcld*
:[range]tcld[o] {cmd} Execute Tcl command {cmd} for each line in [range]

View File

@@ -1,4 +1,4 @@
*index.txt* For Vim version 7.4. Last change: 2016 Jul 16
*index.txt* For Vim version 7.4. Last change: 2016 Aug 27
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -984,7 +984,7 @@ tag command action in Command-line editing mode ~
|c_CTRL-E| CTRL-E cursor to end of command-line
|'cedit'| CTRL-F default value for 'cedit': opens the
command-line window; otherwise not used
CTRL-G not used
|c_CTRL-G| CTRL-G next match when 'incsearch' is active
|c_<BS>| <BS> delete the character in front of the cursor
|c_digraph| {char1} <BS> {char2}
enter digraph when 'digraph' is on
@@ -1017,7 +1017,7 @@ tag command action in Command-line editing mode ~
insert the contents of a register or object
under the cursor literally
CTRL-S (used for terminal control flow)
CTRL-T not used
|c_CTRL-T| CTRL-T previous match when 'incsearch' is active
|c_CTRL-U| CTRL-U remove all characters
|c_CTRL-V| CTRL-V insert next non-digit literally, insert three
digit decimal number as a single byte.
@@ -1207,7 +1207,7 @@ tag command action ~
|:display| :di[splay] display registers
|:djump| :dj[ump] jump to #define
|:dl| :dl short for |:delete| with the 'l' flag
|:dl| :del[ete]l short for |:delete| with the 'l' flag
|:del| :del[ete]l short for |:delete| with the 'l' flag
|:dlist| :dli[st] list #defines
|:doautocmd| :do[autocmd] apply autocommands to current buffer
|:doautoall| :doautoa[ll] apply autocommands for all loaded buffers
@@ -1239,6 +1239,7 @@ tag command action ~
|:file| :f[ile] show or set the current file name
|:files| :files list all files in the buffer list
|:filetype| :filet[ype] switch file type detection on/off
|:filter| :filt[er] filter output of following command
|:find| :fin[d] find file in 'path' and edit it
|:finally| :fina[lly] part of a :try command
|:finish| :fini[sh] quit sourcing a Vim script

View File

@@ -1,4 +1,4 @@
*map.txt* For Vim version 7.4. Last change: 2016 Jul 06
*map.txt* For Vim version 7.4. Last change: 2016 Aug 26
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -431,6 +431,9 @@ with a space.
Note: When using mappings for Visual mode, you can use the "'<" mark, which
is the start of the last selected Visual area in the current buffer |'<|.
The |:filter| command can be used to select what mappings to list. The
pattern is matched against the {lhs} and {rhs} in the raw form.
*:map-verbose*
When 'verbose' is non-zero, listing a key map will also display where it was
last defined. Example: >
@@ -1177,6 +1180,10 @@ scripts.
" Command has the -register attribute
b Command is local to current buffer
(see below for details on attributes)
The list can be filtered on command name with
|:filter|, e.g., to list all commands with "Pyth" in
the name: >
filter Pyth command
:com[mand] {cmd} List the user-defined commands that start with {cmd}
@@ -1416,9 +1423,11 @@ The valid escape sequences are
<mods> The command modifiers, if specified. Otherwise, expands to
nothing. Supported modifiers are |:aboveleft|, |:belowright|,
|:botright|, |:browse|, |:confirm|, |:hide|, |:keepalt|,
|:keepjumps|, |:keepmarks|, |:keeppatterns|, |:lockmarks|,
|:noswapfile|, |:silent|, |:tab|, |:topleft|, |:verbose|, and
|:vertical|.
|:keepjumps|, |:keepmarks|, |:keeppatterns|, |:leftabove|,
|:lockmarks|, |:noswapfile| |:rightbelow|, |:silent|, |:tab|,
|:topleft|, |:verbose|, and |:vertical|.
Note that these are not yet supported: |:noautocmd|,
|:sandbox| and |:unsilent|.
Examples: >
command! -nargs=+ -complete=file MyEdit
\ for f in expand(<q-args>, 0, 1) |

View File

@@ -1,4 +1,4 @@
*message.txt* For Vim version 7.4. Last change: 2016 Jul 16
*message.txt* For Vim version 7.4. Last change: 2016 Sep 01
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -39,6 +39,7 @@ back.
Note: If the output has been stopped with "q" at the more prompt, it will only
be displayed up to this point.
The previous command output is cleared when another command produces output.
The "g<" output is not redirected.
If you are using translated messages, the first printed line tells who
maintains the messages or the translations. You can use this to contact the

View File

@@ -1,4 +1,4 @@
*options.txt* For Vim version 7.4. Last change: 2016 Jul 28
*options.txt* For Vim version 7.4. Last change: 2016 Sep 02
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -261,10 +261,10 @@ global value, which is used for new buffers. With ":set" both the local and
global value is changed. With "setlocal" only the local value is changed,
thus this value is not used when editing a new buffer.
When editing a buffer that has been edited before, the last used window
options are used again. If this buffer has been edited in this window, the
values from back then are used. Otherwise the values from the window where
the buffer was edited last are used.
When editing a buffer that has been edited before, the options from the window
that was last closed are used again. If this buffer has been edited in this
window, the values from back then are used. Otherwise the values from the
last closed window where the buffer was edited last are used.
It's possible to set a local window option specifically for a type of buffer.
When you edit another buffer in the same window, you don't want to keep
@@ -2618,7 +2618,8 @@ A jump table for the options with a short description can be found at |Q_op|.
{Vi: directory to put temp file in, defaults to "/tmp"}
*'display'* *'dy'*
'display' 'dy' string (default "")
'display' 'dy' string (default "", set to "truncate" in
|defaults.vim|)
global
{not in Vi}
Change the way text is displayed. This is comma separated list of
@@ -2855,10 +2856,17 @@ A jump table for the options with a short description can be found at |Q_op|.
global
{not in Vi}
Enables the reading of .vimrc, .exrc and .gvimrc in the current
directory. If you switch this option on you should also consider
setting the 'secure' option (see |initialization|). Using a local
.exrc, .vimrc or .gvimrc is a potential security leak, use with care!
also see |.vimrc| and |gui-init|.
directory.
Setting this option is a potential security leak. E.g., consider
unpacking a package or fetching files from github, a .vimrc in there
might be a trojan horse. BETTER NOT SET THIS OPTION!
Instead, define an autocommand in your .vimrc to set options for a
matching directory.
If you do switch this option on you should also consider setting the
'secure' option (see |initialization|).
Also see |.vimrc| and |gui-init|.
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
@@ -3645,7 +3653,7 @@ A jump table for the options with a short description can be found at |Q_op|.
qXX - quality XX. Valid quality names are: PROOF, DRAFT,
ANTIALIASED, NONANTIALIASED, CLEARTYPE, DEFAULT.
Normally you would use "qDEFAULT".
Some quality values isn't supported in legacy OSs.
Some quality values are not supported in legacy OSs.
Use a ':' to separate the options.
- A '_' can be used in the place of a space, so you don't need to use
@@ -3944,17 +3952,16 @@ A jump table for the options with a short description can be found at |Q_op|.
*'highlight'* *'hl'*
'highlight' 'hl' string (default (as a single string):
"8:SpecialKey,@:NonText,d:Directory,
e:ErrorMsg,i:IncSearch,l:Search,m:MoreMsg,
M:ModeMsg,n:LineNr,N:CursorLineNr,
r:Question,s:StatusLine,S:StatusLineNC,
c:VertSplit, t:Title,v:Visual,
w:WarningMsg,W:WildMenu,
f:Folded,F:FoldColumn,A:DiffAdd,
C:DiffChange,D:DiffDelete,T:DiffText,
>:SignColumn,B:SpellBad,P:SpellCap,
R:SpellRare,L:SpellLocal,-:Conceal,
+:Pmenu,=:PmenuSel,
"8:SpecialKey,~:EndOfBuffer,@:NonText,
d:Directory,e:ErrorMsg,i:IncSearch,
l:Search,m:MoreMsg,M:ModeMsg,n:LineNr,
N:CursorLineNr,r:Question,s:StatusLine,
S:StatusLineNC,c:VertSplit,t:Title,
v:Visual,w:WarningMsg,W:WildMenu,f:Folded,
F:FoldColumn,A:DiffAdd,C:DiffChange,
D:DiffDelete,T:DiffText,>:SignColumn,
B:SpellBad,P:SpellCap,R:SpellRare,
L:SpellLocal,-:Conceal,+:Pmenu,=:PmenuSel,
x:PmenuSbar,X:PmenuThumb")
global
{not in Vi}
@@ -3963,7 +3970,8 @@ A jump table for the options with a short description can be found at |Q_op|.
first character in a pair gives the occasion, the second the mode to
use for that occasion. The occasions are:
|hl-SpecialKey| 8 Meta and special keys listed with ":map"
|hl-NonText| @ '~' and '@' at the end of the window and
|hl-EndOfBuffer| ~ lines after the last line in the buffer
|hl-NonText| @ '@' at the end of the window and
characters from 'showbreak'
|hl-Directory| d directories in CTRL-D listing and other special
things in listings
@@ -4318,6 +4326,8 @@ A jump table for the options with a short description can be found at |Q_op|.
original position when no match is found and when pressing <Esc>. You
still need to finish the search command with <Enter> to move the
cursor to the match.
You can use the CTRL-N and CTRL-P keys to move to the next and
previous match. |c_CTRL-N| |c_CTRL-P|
When compiled with the |+reltime| feature Vim only searches for about
half a second. With a complicated pattern and/or a lot of text the
match may not be found. This is to avoid that Vim hangs while you
@@ -4402,7 +4412,7 @@ A jump table for the options with a short description can be found at |Q_op|.
if you want to use Vim as a modeless editor. Used for |evim|.
These Insert mode commands will be useful:
- Use the cursor keys to move around.
- Use CTRL-O to execute one Normal mode command |i_CTRL-O|). When
- Use CTRL-O to execute one Normal mode command |i_CTRL-O|. When
this is a mapping, it is executed as if 'insertmode' was off.
Normal mode remains active until the mapping is finished.
- Use CTRL-L to execute a number of Normal mode commands, then use
@@ -4631,7 +4641,7 @@ A jump table for the options with a short description can be found at |Q_op|.
be able to execute Normal mode commands.
This is the opposite of the 'keymap' option, where characters are
mapped in Insert mode.
Also consider setting 'langnoremap' to avoid 'langmap' applies to
Also consider resetting 'langremap' to avoid 'langmap' applies to
characters resulting from a mapping.
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
@@ -4694,10 +4704,20 @@ A jump table for the options with a short description can be found at |Q_op|.
{not in Vi}
{only available when compiled with the |+langmap|
feature}
When on, setting 'langmap' does not apply to characters resulting from
This is just like 'langremap' but with the value inverted. It only
exists for backwards compatibility. When setting 'langremap' then
'langnoremap' is set to the inverted value, and the other way around.
*'langremap'* *'lrm'* *'nolangremap'* *'nolrm'*
'langremap' 'lrm' boolean (default on, reset in |defaults.vim|)
global
{not in Vi}
{only available when compiled with the |+langmap|
feature}
When off, setting 'langmap' does not apply to characters resulting from
a mapping. This basically means, if you noticed that setting
'langmap' disables some of your mappings, try setting this option.
This option defaults to off for backwards compatibility. Set it on if
'langmap' disables some of your mappings, try resetting this option.
This option defaults to on for backwards compatibility. Set it off if
that works for you to avoid mappings to break.
*'laststatus'* *'ls'*
@@ -4750,7 +4770,7 @@ A jump table for the options with a short description can be found at |Q_op|.
use this command to get the tallest window possible: >
:set lines=999
< Minimum value is 2, maximum value is 1000.
If you get less lines than expected, check the 'guiheadroom' option.
If you get fewer lines than expected, check the 'guiheadroom' option.
When you set this option and Vim is unable to change the physical
number of lines of the display, the display may be messed up.
@@ -4902,10 +4922,11 @@ A jump table for the options with a short description can be found at |Q_op|.
global
Changes the special characters that can be used in search patterns.
See |pattern|.
NOTE: To avoid portability problems with using patterns, always keep
this option at the default "on". Only switch it off when working with
old Vi scripts. In any other situation write patterns that work when
'magic' is on. Include "\M" when you want to |/\M|.
WARNING: Switching this option off most likely breaks plugins! That
is because many patterns assume it's on and will fail when it's off.
Only switch it off when working with old Vi scripts. In any other
situation write patterns that work when 'magic' is on. Include "\M"
when you want to |/\M|.
*'makeef'* *'mef'*
'makeef' 'mef' string (default: "")
@@ -6244,6 +6265,8 @@ A jump table for the options with a short description can be found at |Q_op|.
"inclusive" means that the last character of the selection is included
in an operation. For example, when "x" is used to delete the
selection.
When "old" is used and 'virtualedit' allows the cursor to move past
the end of line the line break still isn't included.
Note that when "exclusive" is used and selecting from the end
backwards, you cannot include the last character of a line, when
starting in Normal mode and 'virtualedit' empty.
@@ -6732,10 +6755,21 @@ A jump table for the options with a short description can be found at |Q_op|.
Example: Try this together with 'sidescroll' and 'listchars' as
in the following example to never allow the cursor to move
onto the "extends" character:
onto the "extends" character: >
:set nowrap sidescroll=1 listchars=extends:>,precedes:<
:set sidescrolloff=1
<
*'signcolumn'* *'scl'*
'signcolumn' 'scl' string (default "auto")
local to window
{not in Vi}
{not available when compiled without the |+signs|
feature}
Whether or not to draw the signcolumn. Valid values are:
"auto" only when there is a sign to display
"no" never
"yes" always
*'smartcase'* *'scs'* *'nosmartcase'* *'noscs'*
@@ -7405,6 +7439,9 @@ A jump table for the options with a short description can be found at |Q_op|.
By default, tag searches are case-sensitive. Case is ignored when
'ignorecase' is set and 'tagcase' is "followic", or when 'tagcase' is
"ignore".
Also when 'tagcase' is "followscs" and 'smartcase' is set, or
'tagcase' is "smart", and the pattern contains only lowercase
characters.
When 'tagbsearch' is off, tags searching is slower when a full match
exists, but faster when no full match exists. Tags in unsorted tags
@@ -7423,8 +7460,10 @@ A jump table for the options with a short description can be found at |Q_op|.
This option specifies how case is handled when searching the tags
file:
followic Follow the 'ignorecase' option
followscs Follow the 'smartcase' and 'ignorecase' options
ignore Ignore case
match Match case
smart Ignore case unless an upper case letter is used
*'taglength'* *'tl'*
'taglength' 'tl' number (default 0)
@@ -7924,8 +7963,8 @@ A jump table for the options with a short description can be found at |Q_op|.
"xterm", "xterm2", "urxvt" or "sgr" (because dec mouse codes conflict
with them).
This option is automatically set to "xterm", when the 'term' option is
set to a name that starts with "xterm", "mlterm", or "screen", and
'ttymouse' is not set already.
set to a name that starts with "xterm", "mlterm", "screen", "st" (full
match only), "st-" or "stterm", and 'ttymouse' is not set already.
Additionally, if vim is compiled with the |+termresponse| feature and
|t_RV| is set to the escape sequence to request the xterm version
number, more intelligent detection process runs.

View File

@@ -1,4 +1,4 @@
*os_win32.txt* For Vim version 7.4. Last change: 2016 Mar 05
*os_win32.txt* For Vim version 7.4. Last change: 2016 Aug 28
VIM REFERENCE MANUAL by George Reilly
@@ -144,29 +144,8 @@ the console.
5. Running under Windows 3.1 *win32-win3.1*
*win32s* *windows-3.1*
There is a special version of Gvim that runs under Windows 3.1 and 3.11. You
need the gvim.exe that was compiled with Visual C++ 4.1.
To run the Win32 version under Windows 3.1, you need to install Win32s. You
might have it already from another Win32 application which you have installed.
If Vim doesn't seem to be running properly, get the latest version: 1.30c.
You can find it at:
http://support.microsoft.com/download/support/mslfiles/pw1118.exe
(Microsoft moved it again, we don't know where it is now :-( ).
The reason for having two versions of gvim.exe is that the Win32s version was
compiled with VC++ 4.1. This is the last version of VC++ that supports Win32s
programs. VC++ 5.0 is better, so that one was used for the Win32 version.
Apart from that, there is no difference between the programs. If you are in a
mixed environment, you can use the gvim.exe for Win32s on both.
The Win32s version works the same way as the Win32 version under 95/NT. When
running under Win32s the following differences apply:
- You cannot use long file names, because Windows 3.1 doesn't support them!
- When executing an external command, it doesn't return an exit code. After
doing ":make" you have to do ":cn" yourself.
There was a special version of Gvim that runs under Windows 3.1 and 3.11.
Support was removed in patch 7.4.1363.
==============================================================================
6. Win32 mini FAQ *win32-faq*

View File

@@ -1,4 +1,4 @@
*quickref.txt* For Vim version 7.4. Last change: 2016 Jun 14
*quickref.txt* For Vim version 7.4. Last change: 2016 Aug 21
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -767,7 +767,7 @@ Short explanation of each option: *option-list*
'keywordprg' 'kp' program to use for the "K" command
'langmap' 'lmap' alphabetic characters for other language mode
'langmenu' 'lm' language to be used for the menus
'langnoremap' 'lnr' do not apply 'langmap' to mapped characters
'langremap' 'lrm' do apply 'langmap' to mapped characters
'laststatus' 'ls' tells when last window has status lines
'lazyredraw' 'lz' don't redraw while executing macros
'linebreak' 'lbr' wrap long lines at a blank
@@ -883,6 +883,7 @@ Short explanation of each option: *option-list*
'showtabline' 'stal' tells when the tab pages line is displayed
'sidescroll' 'ss' minimum number of columns to scroll horizontal
'sidescrolloff' 'siso' min. nr. of columns to left and right of cursor
'signcolumn' 'scl' when to display the sign column
'smartcase' 'scs' no ignore case when pattern has uppercase
'smartindent' 'si' smart autoindenting for C programs
'smarttab' 'sta' use 'shiftwidth' when inserting <Tab>

View File

@@ -1,4 +1,4 @@
*sign.txt* For Vim version 7.4. Last change: 2014 May 07
*sign.txt* For Vim version 7.4. Last change: 2016 Aug 17
VIM REFERENCE MANUAL by Gordon Prieur
@@ -45,8 +45,10 @@ There are two steps in using signs:
When signs are defined for a file, Vim will automatically add a column of two
characters to display them in. When the last sign is unplaced the column
disappears again. The color of the column is set with the SignColumn group
|hl-SignColumn|. Example to set the color: >
disappears again. This behavior can be changed with the 'signcolumn' option.
The color of the column is set with the SignColumn group |hl-SignColumn|.
Example to set the color: >
:highlight SignColumn guibg=darkgrey
@@ -195,7 +197,9 @@ JUMPING TO A SIGN *:sign-jump* *E157*
If the file isn't displayed in window and the current file can
not be |abandon|ed this fails.
:sign jump {id} buffer={nr}
Same, but use buffer {nr}.
:sign jump {id} buffer={nr} *E934*
Same, but use buffer {nr}. This fails if buffer {nr} does not
have a name.
vim:tw=78:ts=8:ft=help:norl:

View File

@@ -1,4 +1,4 @@
*starting.txt* For Vim version 7.4. Last change: 2016 Jul 28
*starting.txt* For Vim version 7.4. Last change: 2016 Sep 03
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -838,7 +838,7 @@ accordingly. Vim proceeds in this order:
options values and has "syntax on" and "filetype on" commands,
which is what most new users will want. See |defaults.vim|.
d. If the 'exrc' option is on (which is not the default), the current
d. If the 'exrc' option is on (which is NOT the default), the current
directory is searched for three files. The first that exists is used,
the others are ignored.
- The file ".vimrc" (for Unix, Amiga and OS/2) (*)
@@ -858,6 +858,8 @@ accordingly. Vim proceeds in this order:
searched for the "plugin" sub-directory and all files ending in ".vim"
will be sourced (in alphabetical order per directory), also in
subdirectories.
However, directories in 'runtimepath' ending in "after" are skipped
here and only loaded after packages, see below.
Loading plugins won't be done when:
- The 'loadplugins' option was reset in a vimrc file.
- The |--noplugin| command line argument is used.
@@ -865,13 +867,18 @@ accordingly. Vim proceeds in this order:
- When Vim was compiled without the |+eval| feature.
Note that using "-c 'set noloadplugins'" doesn't work, because the
commands from the command line have not been executed yet. You can
use "--cmd 'set noloadplugins'" |--cmd|.
use "--cmd 'set noloadplugins'" or "--cmd 'set loadplugins'" |--cmd|.
Packages are loaded. These are plugins, as above, but found in the
"start" directory of each entry in 'packpath'. Every plugin directory
found is added in 'runtimepath' and then the plugins are sourced. See
|packages|.
The plugins scripts are loaded, as above, but now only the directories
ending in "after" are used. Note that 'runtimepath' will have changed
if packages have been found, but that should not add a directory
ending in "after".
5. Set 'shellpipe' and 'shellredir'
The 'shellpipe' and 'shellredir' options are set according to the
value of the 'shell' option, unless they have been set before.
@@ -916,7 +923,8 @@ accordingly. Vim proceeds in this order:
The $MYVIMRC or $MYGVIMRC file will be set to the first found vimrc and/or
gvimrc file.
Some hints on using initializations:
Some hints on using initializations ~
Standard setup:
Create a vimrc file to set the default settings and mappings for all your edit
@@ -939,27 +947,37 @@ want to set the defaults for all users. Create a vimrc file with commands
for default settings and mappings and put it in the place that is given with
the ":version" command.
Saving the current state of Vim to a file:
Saving the current state of Vim to a file ~
Whenever you have changed values of options or when you have created a
mapping, then you may want to save them in a vimrc file for later use. See
|save-settings| about saving the current state of settings to a file.
Avoiding setup problems for Vi users:
Avoiding setup problems for Vi users ~
Vi uses the variable EXINIT and the file "~/.exrc". So if you do not want to
interfere with Vi, then use the variable VIMINIT and the file "vimrc" instead.
Amiga environment variables:
Amiga environment variables ~
On the Amiga, two types of environment variables exist. The ones set with the
DOS 1.3 (or later) setenv command are recognized. See the AmigaDos 1.3
manual. The environment variables set with the old Manx Set command (before
version 5.0) are not recognized.
MS-DOS line separators:
MS-DOS line separators ~
On MS-DOS-like systems (MS-DOS itself, Win32, and OS/2), Vim assumes that all
the vimrc files have <CR> <NL> pairs as line separators. This will give
problems if you have a file with only <NL>s and have a line like
":map xx yy^M". The trailing ^M will be ignored.
Vi compatible default value ~
*compatible-default*
When Vim starts, the 'compatible' option is on. This will be used when Vim
starts its initializations. But as soon as:
@@ -979,7 +997,7 @@ This has the side effect of setting or resetting other options (see
changed. This has the same effect like the value of 'compatible' had this
value when starting Vim.
'compatible is NOT reset, and |defaults.vim| is not loaded:
'compatible' is NOT reset, and |defaults.vim| is not loaded:
- when Vim was started with the |-u| command line argument, especially with
"-u NONE", or
- when started with the |-C| command line argument, or
@@ -992,6 +1010,8 @@ encountered. This makes a difference when using things like "<CR>". If the
mappings depend on a certain value of 'compatible', set or reset it before
giving the mapping.
Defaults without a .vimrc file ~
*defaults.vim*
If Vim is started normally and no user vimrc file is found, the
$VIMRUTIME/defaults.vim script is loaded. This will set 'compatible' off,
@@ -1010,8 +1030,12 @@ If you don't like some of the defaults, you can still source defaults.vim and
revert individual settings. See the defaults.vim file for hints on how to
revert each item.
If you use a system-wide vimrc and don't want defaults.vim to change settings,
set the "skip_defaults_vim" variable.
Avoiding trojan horses: *trojan-horse*
Avoiding trojan horses ~
*trojan-horse*
While reading the "vimrc" or the "exrc" file in the current directory, some
commands can be disabled for security reasons by setting the 'secure' option.
This is always done when executing the command from a tags file. Otherwise it
@@ -1034,6 +1058,8 @@ Be careful!
part of the line in the tags file) is always done in secure mode. This works
just like executing a command from a vimrc/exrc in the current directory.
If Vim startup is slow ~
*slow-start*
If Vim takes a long time to start up, use the |--startuptime| argument to find
out what happens. There are a few common causes:
@@ -1048,6 +1074,8 @@ out what happens. There are a few common causes:
moment (use the Vim argument "-i NONE", |-i|). Try reducing the number of
lines stored in a register with ":set viminfo='20,<50,s10". |viminfo-file|.
Intro message ~
*:intro*
When Vim starts without a file name, an introductory message is displayed (for
those who don't know what Vim is). It is removed as soon as the display is
@@ -1604,8 +1632,11 @@ most of the information will be restored).
*:ol* *:oldfiles*
:ol[dfiles] List the files that have marks stored in the viminfo
file. This list is read on startup and only changes
afterwards with ":rviminfo!". Also see |v:oldfiles|.
afterwards with `:rviminfo!`. Also see |v:oldfiles|.
The number can be used with |c_#<|.
The output can be filtered with |:filter|, e.g.: >
filter /\.vim/ oldfiles
< The filtering happens on the file name.
{not in Vi, only when compiled with the |+eval|
feature}

View File

@@ -1,4 +1,4 @@
*syntax.txt* For Vim version 7.4. Last change: 2016 May 28
*syntax.txt* For Vim version 7.4. Last change: 2016 Aug 16
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -949,6 +949,8 @@ Variable Highlight ~
*c_no_bracket_error* don't highlight {}; inside [] as errors
*c_no_curly_error* don't highlight {}; inside [] and () as errors;
except { and } in first column
Default is to highlight them, otherwise you
can't spot a missing ")".
*c_curly_error* highlight a missing }; this forces syncing from the
start of the file, can be slow
*c_no_ansi* don't do standard ANSI types and constants
@@ -3762,7 +3764,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()|.
Another way to conceal text is with |matchadd()|.
concealends *:syn-concealends*
@@ -4868,6 +4870,9 @@ DiffChange diff mode: Changed line |diff.txt|
DiffDelete diff mode: Deleted line |diff.txt|
*hl-DiffText*
DiffText diff mode: Changed text within a changed line |diff.txt|
*hl-EndOfBuffer*
EndOfBuffer filler lines (~) after the last line in the buffer.
By default, this is highlighted like |hl-NonText|.
*hl-ErrorMsg*
ErrorMsg error messages on the command line
*hl-VertSplit*
@@ -4896,10 +4901,10 @@ ModeMsg 'showmode' message (e.g., "-- INSERT --")
*hl-MoreMsg*
MoreMsg |more-prompt|
*hl-NonText*
NonText '~' and '@' at the end of the window, characters from
'showbreak' and other characters that do not really exist in
the text (e.g., ">" displayed when a double-wide character
doesn't fit at the end of the line).
NonText '@' at the end of the window, characters from 'showbreak'
and other characters that do not really exist in the text
(e.g., ">" displayed when a double-wide character doesn't
fit at the end of the line).
*hl-Normal*
Normal normal text
*hl-Pmenu*

View File

@@ -87,14 +87,21 @@ In the GUI tab pages line you can use the right mouse button to open menu.
Execute {cmd} and when it opens a new window open a new tab
page instead. Doesn't work for |:diffsplit|, |:diffpatch|,
|:execute| and |:normal|.
When [count] is omitted the tab page appears after the current
one.
When [count] is specified the new tab page comes after tab
page [count]. Use ":0tab cmd" to get the new tab page as the
first one.
If [count] is given the new tab page appears after the tab
page [count] otherwise the new tab page will appear after the
current one.
Examples: >
:tab split " opens current buffer in new tab page
:tab help gt " opens tab page with help for "gt"
:tab split " opens current buffer in new tab page
:tab help gt " opens tab page with help for "gt"
:.tab help gt " as above
:+tab help " opens tab page with help after the next
" tab page
:-tab help " opens tab page with help before the
" current one
:0tab help " opens tab page with help before the
" first one
:$tab help " opens tab page with help after the last
" one
CTRL-W gf Open a new tab page and edit the file name under the cursor.
See |CTRL-W_gf|.
@@ -141,10 +148,11 @@ something else.
given, then they become hidden. But modified buffers are
never abandoned, so changes cannot get lost. >
:tabonly " close all tab pages except the current
" one
:{count}tabo[nly][!]
Close all tab pages except the {count}th one. >
:.tabonly " one
:.tabonly " as above
:-tabonly " close all tab pages except the previous
" one
:+tabonly " close all tab pages except the next one

View File

@@ -400,6 +400,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
'langmap' options.txt /*'langmap'*
'langmenu' options.txt /*'langmenu'*
'langnoremap' options.txt /*'langnoremap'*
'langremap' options.txt /*'langremap'*
'laststatus' options.txt /*'laststatus'*
'lazyredraw' options.txt /*'lazyredraw'*
'lbr' options.txt /*'lbr'*
@@ -416,6 +417,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
'lnr' options.txt /*'lnr'*
'loadplugins' options.txt /*'loadplugins'*
'lpl' options.txt /*'lpl'*
'lrm' options.txt /*'lrm'*
'ls' options.txt /*'ls'*
'lsp' options.txt /*'lsp'*
'luadll' options.txt /*'luadll'*
@@ -586,6 +588,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
'nojoinspaces' options.txt /*'nojoinspaces'*
'nojs' options.txt /*'nojs'*
'nolangnoremap' options.txt /*'nolangnoremap'*
'nolangremap' options.txt /*'nolangremap'*
'nolazyredraw' options.txt /*'nolazyredraw'*
'nolbr' options.txt /*'nolbr'*
'nolinebreak' options.txt /*'nolinebreak'*
@@ -594,6 +597,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
'nolnr' options.txt /*'nolnr'*
'noloadplugins' options.txt /*'noloadplugins'*
'nolpl' options.txt /*'nolpl'*
'nolrm' options.txt /*'nolrm'*
'nolz' options.txt /*'nolz'*
'noma' options.txt /*'noma'*
'nomacatsui' options.txt /*'nomacatsui'*
@@ -806,6 +810,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
'sbr' options.txt /*'sbr'*
'sc' options.txt /*'sc'*
'scb' options.txt /*'scb'*
'scl' options.txt /*'scl'*
'scr' options.txt /*'scr'*
'scroll' options.txt /*'scroll'*
'scrollbind' options.txt /*'scrollbind'*
@@ -848,6 +853,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
'si' options.txt /*'si'*
'sidescroll' options.txt /*'sidescroll'*
'sidescrolloff' options.txt /*'sidescrolloff'*
'signcolumn' options.txt /*'signcolumn'*
'siso' options.txt /*'siso'*
'sj' options.txt /*'sj'*
'slm' options.txt /*'slm'*
@@ -1232,6 +1238,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
+job various.txt /*+job*
+jumplist various.txt /*+jumplist*
+keymap various.txt /*+keymap*
+lambda various.txt /*+lambda*
+langmap various.txt /*+langmap*
+libcall various.txt /*+libcall*
+linebreak various.txt /*+linebreak*
@@ -1590,6 +1597,9 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
/\{- pattern.txt /*\/\\{-*
/\~ pattern.txt /*\/\\~*
/^ pattern.txt /*\/^*
/_CTRL-G cmdline.txt /*\/_CTRL-G*
/_CTRL-L cmdline.txt /*\/_CTRL-L*
/_CTRL-T cmdline.txt /*\/_CTRL-T*
/atom pattern.txt /*\/atom*
/bar pattern.txt /*\/bar*
/branch pattern.txt /*\/branch*
@@ -1994,6 +2004,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:bmodified windows.txt /*:bmodified*
:bn windows.txt /*:bn*
:bnext windows.txt /*:bnext*
:bo windows.txt /*:bo*
:botright windows.txt /*:botright*
:bp windows.txt /*:bp*
:bprevious windows.txt /*:bprevious*
@@ -2263,6 +2274,8 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:filetype-overview filetype.txt /*:filetype-overview*
:filetype-plugin-off filetype.txt /*:filetype-plugin-off*
:filetype-plugin-on filetype.txt /*:filetype-plugin-on*
:filt various.txt /*:filt*
:filter various.txt /*:filter*
:fin editing.txt /*:fin*
:fina eval.txt /*:fina*
:finally eval.txt /*:finally*
@@ -2286,6 +2299,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:for eval.txt /*:for*
:fu eval.txt /*:fu*
:func-abort eval.txt /*:func-abort*
:func-closure eval.txt /*:func-closure*
:func-dict eval.txt /*:func-dict*
:func-range eval.txt /*:func-range*
:function eval.txt /*:function*
@@ -4467,6 +4481,11 @@ E929 starting.txt /*E929*
E93 windows.txt /*E93*
E930 eval.txt /*E930*
E931 message.txt /*E931*
E932 eval.txt /*E932*
E933 eval.txt /*E933*
E934 sign.txt /*E934*
E935 eval.txt /*E935*
E936 autocmd.txt /*E936*
E94 windows.txt /*E94*
E95 message.txt /*E95*
E96 diff.txt /*E96*
@@ -4745,6 +4764,7 @@ W15 repeat.txt /*W15*
W16 message.txt /*W16*
W17 arabic.txt /*W17*
W18 syntax.txt /*W18*
W19 autocmd.txt /*W19*
WORD motion.txt /*WORD*
WWW intro.txt /*WWW*
Win32 os_win32.txt /*Win32*
@@ -5061,6 +5081,7 @@ beval_lnum-variable eval.txt /*beval_lnum-variable*
beval_text-variable eval.txt /*beval_text-variable*
beval_winid-variable eval.txt /*beval_winid-variable*
beval_winnr-variable eval.txt /*beval_winnr-variable*
binary-number eval.txt /*binary-number*
bitwise-function usr_41.txt /*bitwise-function*
blockwise-examples visual.txt /*blockwise-examples*
blockwise-operators visual.txt /*blockwise-operators*
@@ -5156,6 +5177,7 @@ c_CTRL-C cmdline.txt /*c_CTRL-C*
c_CTRL-D cmdline.txt /*c_CTRL-D*
c_CTRL-E cmdline.txt /*c_CTRL-E*
c_CTRL-F cmdline.txt /*c_CTRL-F*
c_CTRL-G cmdline.txt /*c_CTRL-G*
c_CTRL-H cmdline.txt /*c_CTRL-H*
c_CTRL-I cmdline.txt /*c_CTRL-I*
c_CTRL-J cmdline.txt /*c_CTRL-J*
@@ -5172,6 +5194,7 @@ c_CTRL-R_CTRL-O cmdline.txt /*c_CTRL-R_CTRL-O*
c_CTRL-R_CTRL-P cmdline.txt /*c_CTRL-R_CTRL-P*
c_CTRL-R_CTRL-R cmdline.txt /*c_CTRL-R_CTRL-R*
c_CTRL-R_CTRL-W cmdline.txt /*c_CTRL-R_CTRL-W*
c_CTRL-T cmdline.txt /*c_CTRL-T*
c_CTRL-U cmdline.txt /*c_CTRL-U*
c_CTRL-V cmdline.txt /*c_CTRL-V*
c_CTRL-W cmdline.txt /*c_CTRL-W*
@@ -5223,6 +5246,7 @@ cc change.txt /*cc*
ceil() eval.txt /*ceil()*
ch.vim syntax.txt /*ch.vim*
ch_close() eval.txt /*ch_close()*
ch_close_in() eval.txt /*ch_close_in()*
ch_evalexpr() eval.txt /*ch_evalexpr()*
ch_evalraw() eval.txt /*ch_evalraw()*
ch_getbufnr() eval.txt /*ch_getbufnr()*
@@ -5265,6 +5289,7 @@ changing change.txt /*changing*
channel channel.txt /*channel*
channel-callback channel.txt /*channel-callback*
channel-close channel.txt /*channel-close*
channel-close-in channel.txt /*channel-close-in*
channel-commands channel.txt /*channel-commands*
channel-demo channel.txt /*channel-demo*
channel-functions usr_41.txt /*channel-functions*
@@ -5340,6 +5365,7 @@ clipboard-unnamed options.txt /*clipboard-unnamed*
clipboard-unnamedplus options.txt /*clipboard-unnamedplus*
clojure-indent indent.txt /*clojure-indent*
close_cb channel.txt /*close_cb*
closure eval.txt /*closure*
cmdarg-variable eval.txt /*cmdarg-variable*
cmdbang-variable eval.txt /*cmdbang-variable*
cmdline-arguments vi_diff.txt /*cmdline-arguments*
@@ -5582,6 +5608,7 @@ debugger.txt debugger.txt /*debugger.txt*
dec-mouse options.txt /*dec-mouse*
decada_members ft_ada.txt /*decada_members*
deepcopy() eval.txt /*deepcopy()*
defaults.vim starting.txt /*defaults.vim*
definition-search tagsrch.txt /*definition-search*
definitions intro.txt /*definitions*
delete() eval.txt /*delete()*
@@ -5708,6 +5735,8 @@ erlang.vim syntax.txt /*erlang.vim*
err_buf channel.txt /*err_buf*
err_cb channel.txt /*err_cb*
err_mode channel.txt /*err_mode*
err_modifiable channel.txt /*err_modifiable*
err_msg channel.txt /*err_msg*
err_name channel.txt /*err_name*
err_timeout channel.txt /*err_timeout*
errmsg-variable eval.txt /*errmsg-variable*
@@ -6110,6 +6139,7 @@ ftplugin-name usr_05.txt /*ftplugin-name*
ftplugin-overrule filetype.txt /*ftplugin-overrule*
ftplugin-special usr_41.txt /*ftplugin-special*
ftplugins usr_05.txt /*ftplugins*
funcref() eval.txt /*funcref()*
function() eval.txt /*function()*
function-argument eval.txt /*function-argument*
function-key intro.txt /*function-key*
@@ -6385,6 +6415,7 @@ gdb debug.txt /*gdb*
ge motion.txt /*ge*
get() eval.txt /*get()*
get-ms-debuggers debug.txt /*get-ms-debuggers*
getbufinfo() eval.txt /*getbufinfo()*
getbufline() eval.txt /*getbufline()*
getbufvar() eval.txt /*getbufvar()*
getchar() eval.txt /*getchar()*
@@ -6417,8 +6448,10 @@ getscript-data pi_getscript.txt /*getscript-data*
getscript-history pi_getscript.txt /*getscript-history*
getscript-plugins pi_getscript.txt /*getscript-plugins*
getscript-start pi_getscript.txt /*getscript-start*
gettabinfo() eval.txt /*gettabinfo()*
gettabvar() eval.txt /*gettabvar()*
gettabwinvar() eval.txt /*gettabwinvar()*
getwininfo() eval.txt /*getwininfo()*
getwinposx() eval.txt /*getwinposx()*
getwinposy() eval.txt /*getwinposy()*
getwinvar() eval.txt /*getwinvar()*
@@ -6624,6 +6657,7 @@ hl-DiffChange syntax.txt /*hl-DiffChange*
hl-DiffDelete syntax.txt /*hl-DiffDelete*
hl-DiffText syntax.txt /*hl-DiffText*
hl-Directory syntax.txt /*hl-Directory*
hl-EndOfBuffer syntax.txt /*hl-EndOfBuffer*
hl-ErrorMsg syntax.txt /*hl-ErrorMsg*
hl-FoldColumn syntax.txt /*hl-FoldColumn*
hl-Folded syntax.txt /*hl-Folded*
@@ -6836,6 +6870,7 @@ improvements-7 version7.txt /*improvements-7*
improvements-8 version8.txt /*improvements-8*
in_bot channel.txt /*in_bot*
in_buf channel.txt /*in_buf*
in_io-buffer channel.txt /*in_io-buffer*
in_mode channel.txt /*in_mode*
in_name channel.txt /*in_name*
in_top channel.txt /*in_top*
@@ -7577,6 +7612,7 @@ new-search-path version6.txt /*new-search-path*
new-searchpat version6.txt /*new-searchpat*
new-session-files version5.txt /*new-session-files*
new-spell version7.txt /*new-spell*
new-style-testing eval.txt /*new-style-testing*
new-tab-pages version7.txt /*new-tab-pages*
new-undo-branches version7.txt /*new-undo-branches*
new-unlisted-buffers version6.txt /*new-unlisted-buffers*
@@ -7620,6 +7656,7 @@ ocaml.vim syntax.txt /*ocaml.vim*
octal eval.txt /*octal*
octal-nrformats options.txt /*octal-nrformats*
octal-number eval.txt /*octal-number*
old-style-testing eval.txt /*old-style-testing*
oldfiles-variable eval.txt /*oldfiles-variable*
ole-activation if_ole.txt /*ole-activation*
ole-eval if_ole.txt /*ole-eval*
@@ -7664,7 +7701,10 @@ os_win32.txt os_win32.txt /*os_win32.txt*
other-features vi_diff.txt /*other-features*
out_buf channel.txt /*out_buf*
out_cb channel.txt /*out_cb*
out_io-buffer channel.txt /*out_io-buffer*
out_mode channel.txt /*out_mode*
out_modifiable channel.txt /*out_modifiable*
out_msg channel.txt /*out_msg*
out_name channel.txt /*out_name*
out_timeout channel.txt /*out_timeout*
p change.txt /*p*
@@ -7776,10 +7816,12 @@ print-options print.txt /*print-options*
print.txt print.txt /*print.txt*
printf() eval.txt /*printf()*
printf-% eval.txt /*printf-%*
printf-B eval.txt /*printf-B*
printf-E eval.txt /*printf-E*
printf-G eval.txt /*printf-G*
printf-S eval.txt /*printf-S*
printf-X eval.txt /*printf-X*
printf-b eval.txt /*printf-b*
printf-c eval.txt /*printf-c*
printf-d eval.txt /*printf-d*
printf-e eval.txt /*printf-e*
@@ -8432,11 +8474,11 @@ t_ZH term.txt /*t_ZH*
t_ZR term.txt /*t_ZR*
t_al term.txt /*t_al*
t_bc term.txt /*t_bc*
t_bool-varialble eval.txt /*t_bool-varialble*
t_bool-variable eval.txt /*t_bool-variable*
t_cd term.txt /*t_cd*
t_cdl version4.txt /*t_cdl*
t_ce term.txt /*t_ce*
t_channel-varialble eval.txt /*t_channel-varialble*
t_channel-variable eval.txt /*t_channel-variable*
t_ci version4.txt /*t_ci*
t_cil version4.txt /*t_cil*
t_cl term.txt /*t_cl*
@@ -8448,7 +8490,7 @@ t_cv version4.txt /*t_cv*
t_cvv version4.txt /*t_cvv*
t_da term.txt /*t_da*
t_db term.txt /*t_db*
t_dict-varialble eval.txt /*t_dict-varialble*
t_dict-variable eval.txt /*t_dict-variable*
t_dl term.txt /*t_dl*
t_ed version4.txt /*t_ed*
t_el version4.txt /*t_el*
@@ -8462,12 +8504,12 @@ t_f6 version4.txt /*t_f6*
t_f7 version4.txt /*t_f7*
t_f8 version4.txt /*t_f8*
t_f9 version4.txt /*t_f9*
t_float-varialble eval.txt /*t_float-varialble*
t_float-variable eval.txt /*t_float-variable*
t_fs term.txt /*t_fs*
t_func-varialble eval.txt /*t_func-varialble*
t_func-variable eval.txt /*t_func-variable*
t_help version4.txt /*t_help*
t_il version4.txt /*t_il*
t_job-varialble eval.txt /*t_job-varialble*
t_job-variable eval.txt /*t_job-variable*
t_k1 term.txt /*t_k1*
t_k2 term.txt /*t_k2*
t_k3 term.txt /*t_k3*
@@ -8492,15 +8534,15 @@ t_kr term.txt /*t_kr*
t_ks term.txt /*t_ks*
t_ku term.txt /*t_ku*
t_le term.txt /*t_le*
t_list-varialble eval.txt /*t_list-varialble*
t_list-variable eval.txt /*t_list-variable*
t_mb term.txt /*t_mb*
t_md term.txt /*t_md*
t_me term.txt /*t_me*
t_mr term.txt /*t_mr*
t_ms term.txt /*t_ms*
t_nd term.txt /*t_nd*
t_none-varialble eval.txt /*t_none-varialble*
t_number-varialble eval.txt /*t_number-varialble*
t_none-variable eval.txt /*t_none-variable*
t_number-variable eval.txt /*t_number-variable*
t_op term.txt /*t_op*
t_se term.txt /*t_se*
t_sf1 version4.txt /*t_sf1*
@@ -8520,7 +8562,7 @@ t_sku version4.txt /*t_sku*
t_so term.txt /*t_so*
t_sr term.txt /*t_sr*
t_star7 term.txt /*t_star7*
t_string-varialble eval.txt /*t_string-varialble*
t_string-variable eval.txt /*t_string-variable*
t_tb version4.txt /*t_tb*
t_te term.txt /*t_te*
t_ti term.txt /*t_ti*
@@ -8664,6 +8706,7 @@ test_null_list() eval.txt /*test_null_list()*
test_null_partial() eval.txt /*test_null_partial()*
test_null_string() eval.txt /*test_null_string()*
test_settime() eval.txt /*test_settime()*
testing eval.txt /*testing*
testing-variable eval.txt /*testing-variable*
tex-cchar syntax.txt /*tex-cchar*
tex-cole syntax.txt /*tex-cole*
@@ -8694,9 +8737,14 @@ throw-from-catch eval.txt /*throw-from-catch*
throw-variables eval.txt /*throw-variables*
throwpoint-variable eval.txt /*throwpoint-variable*
time-functions usr_41.txt /*time-functions*
timer eval.txt /*timer*
timer-functions usr_41.txt /*timer-functions*
timer_info() eval.txt /*timer_info()*
timer_pause() eval.txt /*timer_pause()*
timer_start() eval.txt /*timer_start()*
timer_stop() eval.txt /*timer_stop()*
timer_stopall() eval.txt /*timer_stopall()*
timers eval.txt /*timers*
timestamp editing.txt /*timestamp*
timestamps editing.txt /*timestamps*
tips tips.txt /*tips*
@@ -9179,6 +9227,7 @@ win_id2win() eval.txt /*win_id2win()*
winbufnr() eval.txt /*winbufnr()*
wincol() eval.txt /*wincol()*
window windows.txt /*window*
window-ID windows.txt /*window-ID*
window-contents intro.txt /*window-contents*
window-exit editing.txt /*window-exit*
window-functions usr_41.txt /*window-functions*
@@ -9189,6 +9238,7 @@ window-size term.txt /*window-size*
window-size-functions usr_41.txt /*window-size-functions*
window-tag windows.txt /*window-tag*
window-variable eval.txt /*window-variable*
windowid windows.txt /*windowid*
windowid-variable eval.txt /*windowid-variable*
windows windows.txt /*windows*
windows-3.1 os_win32.txt /*windows-3.1*
@@ -9198,6 +9248,7 @@ windows-starting windows.txt /*windows-starting*
windows.txt windows.txt /*windows.txt*
windows95 os_win32.txt /*windows95*
winheight() eval.txt /*winheight()*
winid windows.txt /*winid*
winline() eval.txt /*winline()*
winnr() eval.txt /*winnr()*
winrestcmd() eval.txt /*winrestcmd()*

View File

@@ -1,4 +1,4 @@
*tagsrch.txt* For Vim version 7.4. Last change: 2013 Oct 01
*tagsrch.txt* For Vim version 7.4. Last change: 2016 Aug 20
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -84,14 +84,23 @@ Note that when the current file changes, the priority list is mostly not
changed, to avoid confusion when using ":tnext". It is changed when using
":tag {ident}".
The ignore-case matches are not found for a ":tag" command when the
'ignorecase' option is off and 'tagcase' is "followic" or when 'tagcase' is
"match". They are found when a pattern is used (starting with a "/") and for
":tselect", also when 'ignorecase' is off and 'tagcase' is "followic" or when
'tagcase' is "match". Note that using ignore-case tag searching disables
binary searching in the tags file, which causes a slowdown. This can be
avoided by fold-case sorting the tag file. See the 'tagbsearch' option for an
explanation.
The ignore-case matches are not found for a ":tag" command when:
- the 'ignorecase' option is off and 'tagcase' is "followic"
- 'tagcase' is "match"
- 'tagcase' is "smart" and the pattern contains an upper case character.
- 'tagcase' is "followscs" and 'smartcase' option is on and the pattern
contains an upper case character.
The gnore-case matches are found when:
- a pattern is used (starting with a "/")
- for ":tselect"
- when 'tagcase' is "followic" and 'ignorecase' is off
- when 'tagcase' is "match"
- when 'tagcase' is "followscs" and the 'smartcase' option is off
Note that using ignore-case tag searching disables binary searching in the
tags file, which causes a slowdown. This can be avoided by fold-case sorting
the tag file. See the 'tagbsearch' option for an explanation.
==============================================================================
2. Tag stack *tag-stack* *tagstack* *E425*
@@ -442,13 +451,18 @@ file "tags". It can also be used to access a common tags file.
The next file in the list is not used when:
- A matching static tag for the current buffer has been found.
- A matching global tag has been found.
This also depends on whether case is ignored. Case is ignored when
'ignorecase' is set and 'tagcase' is "followic", or when 'tagcase' is
"ignore". If case is not ignored, and the tags file only has a match without
matching case, the next tags file is searched for a match with matching case.
If no tag with matching case is found, the first match without matching case
is used. If case is ignored, and a matching global tag with or without
matching case is found, this one is used, no further tags files are searched.
This also depends on whether case is ignored. Case is ignored when:
- 'tagcase' is "followic" and 'ignorecase' is set
- 'tagcase' is "ignore"
- 'tagcase' is "smart" and the pattern only contains lower case
characters.
- 'tagcase' is "followscs" and 'smartcase' is set and the pattern only
contains lower case characters.
If case is not ignored, and the tags file only has a match without matching
case, the next tags file is searched for a match with matching case. If no
tag with matching case is found, the first match without matching case is
used. If case is ignored, and a matching global tag with or without matching
case is found, this one is used, no further tags files are searched.
When a tag file name starts with "./", the '.' is replaced with the path of
the current file. This makes it possible to use a tags file in the directory
@@ -819,24 +833,24 @@ CTRL-W d Open a new window, with the cursor on the first
*:search-args*
Common arguments for the commands above:
[!] When included, find matches in lines that are recognized as comments.
When excluded, a match is ignored when the line is recognized as a
comment (according to 'comments'), or the match is in a C comment (after
"//" or inside /* */). Note that a match may be missed if a line is
recognized as a comment, but the comment ends halfway the line.
And if the line is a comment, but it is not recognized (according to
'comments') a match may be found in it anyway. Example: >
[!] When included, find matches in lines that are recognized as comments.
When excluded, a match is ignored when the line is recognized as a
comment (according to 'comments'), or the match is in a C comment
(after "//" or inside /* */). Note that a match may be missed if a
line is recognized as a comment, but the comment ends halfway the line.
And if the line is a comment, but it is not recognized (according to
'comments') a match may be found in it anyway. Example: >
/* comment
foobar */
< A match for "foobar" is found, because this line is not recognized as a
comment (even though syntax highlighting does recognize it).
Note: Since a macro definition mostly doesn't look like a comment, the
[!] makes no difference for ":dlist", ":dsearch" and ":djump".
[/] A pattern can be surrounded by '/'. Without '/' only whole words are
matched, using the pattern "\<pattern\>". Only after the second '/' a
next command can be appended with '|'. Example: >
< A match for "foobar" is found, because this line is not recognized as
a comment (even though syntax highlighting does recognize it).
Note: Since a macro definition mostly doesn't look like a comment, the
[!] makes no difference for ":dlist", ":dsearch" and ":djump".
[/] A pattern can be surrounded by '/'. Without '/' only whole words are
matched, using the pattern "\<pattern\>". Only after the second '/' a
next command can be appended with '|'. Example: >
:isearch /string/ | echo "the last one"
< For a ":djump", ":dsplit", ":dlist" and ":dsearch" command the pattern
is used as a literal string, not as a search pattern.
< For a ":djump", ":dsplit", ":dlist" and ":dsearch" command the pattern
is used as a literal string, not as a search pattern.
vim:tw=78:ts=8:ft=help:norl:

View File

@@ -1,4 +1,4 @@
*term.txt* For Vim version 7.4. Last change: 2016 Apr 29
*term.txt* For Vim version 7.4. Last change: 2016 Sep 02
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -426,6 +426,8 @@ Vim has started, the escape sequences may not be recognized anymore.
Vim supports using true colors in the terminal (taken from |highlight-guifg|
and |highlight-guibg|), given that the terminal supports this. To make this
work the 'termguicolors' option needs to be set.
See https://gist.github.com/XVilka/8346728 for a list of terminals that
support true colors.
Sometimes setting 'termguicolors' is not enough and one has to set the |t_8f|
and |t_8b| options explicitly. Default values of these options are
@@ -433,9 +435,8 @@ and |t_8b| options explicitly. Default values of these options are
set when `$TERM` is `xterm`. Some terminals accept the same sequences, but
with all semicolons replaced by colons (this is actually more compatible, but
less widely supported): >
set t_8f=^[[38:2:%lu:%lu:%lum
set t_8b=^[[48:2:%lu:%lu:%lum
(replace `^[` with real escape)
let &t_8f = "\<Esc>[38:2:%lu:%lu:%lum"
let &t_8b = "\<Esc>[48:2:%lu:%lu:%lum"
These options contain printf strings, with |printf()| (actually, its C
equivalent hence `l` modifier) invoked with the t_ option value and three

View File

@@ -1,4 +1,4 @@
*todo.txt* For Vim version 7.4. Last change: 2016 Jul 23
*todo.txt* For Vim version 7.4. Last change: 2016 Sep 08
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -34,7 +34,27 @@ not be repeated below, unless there is extra information.
*known-bugs*
-------------------- Known bugs and current work -----------------------
Invalid memory access in do_pending_operator. (Dominique, 2016 Sep 5)
Invalid memory access in msg_puts_printf (Dominique, 2016 Sep 6)
Crash after wiping a buffer. (Dominique, Sep 7)
With MS-Windows gvim:
test_netbeans.vim fails. Nb_basic line 12 and 13.
test86 fails partial fix
test87 fails
Make ":filter" work with more commands.
Search for: msg_putchar('\n')
+channel:
- channel_wait() may return an error while there is still something to read.
Perhaps try to read once?
- Problem with stderr on Windows? (Vincent Rischmann, 2016 Aug 31, #1026)
- Add 'cwd' argument to start_job(): directory to change to in the child.
check for valid directory before forking.
- Implement |job-term| ?
- Channel test fails with Motif. Sometimes kills the X11 server.
- When a message in the queue but there is no callback, drop it after a while?
Add timestamp to queued messages and callbacks with ID, remove after a
@@ -51,6 +71,8 @@ Later
With xterm could use -S{pty}.
Regexp problems:
- The new engine does not do the example in change.txt correctly, where the
meaning of \1 and \2 is explained. (Harm te Hennepe, #990)
- Since 7.4.704 the old regex engine fails to match [[:print:]] in 0xf6.
(Manuel Ortega, 2016 Apr 24)
Test fails on Mac. Avoid using isalpha(), isalnum(), etc? Depends on
@@ -105,26 +127,12 @@ What if there is an invalid character?
Should json_encode()/json_decode() restrict recursiveness?
Or avoid recursiveness.
Patch to test popupmenu. Fails, possibly due to a bug.
(Christian Brabandt, 2016 Jul 23)
7 In "-- INSERT (lang) --" show the name of the keymap used instead of
"lang". (Ilya Dogolazky)
Patch: Show keymap name in mode indicator (Dmitri Vereshchagin, 2016 Jul 19,
#933)
Patch to fix the Problem using cgn to change a search hit when
replacement includes hit. Reported by John Beckett, fix by Christian Brabandt,
2016 Jan 11.
Error in test_startup_utf8 on Solaris. (Danek Duvall, 2016 Aug 17)
Once .exe with updated installer is available: Add remark to download page
about /S and /D options (Ken Takata, 2016 Apr 13)
Or point to nightly builds: https://github.com/vim/vim-win32-installer/releases
Problem with completion on "**/" in $path. (issue #932)
Happens in uniquefy_paths() ? More info Jul 22.
Fix for this (Harm te Hennepe, 2016 Jul 21, #939)
Cursor positioned in the wrong place when editing src/testdir/test_viml.vim.
Javascript indent wrong after /* in single quoted string:
@@ -136,45 +144,40 @@ Javascript indent wrong after /* in single quoted string:
Use ADDR_OTHER instead of ADDR_LINES for many more commands.
Add tests for using number larger than number of lines in buffer.
Updating marks in quickfix list is broken. (Yegappan, 2016 Jul 18)
Invalid behavior with NULL list. (Nikolai Pavlov, #768)
For current Windows build .pdb file is missing. (Gabriele Fava, 2016 May 11)
5)
Support closure for lambda? Ken Takata is working on it.
Patch Jul 19. Still need test updates.
min() and max() spawn lots of error messages if sorted list/dictionary
contains invalid data (Nikolay Pavlov, 2016 Sep 4, #1039)
Patch to fix compiler warning with gtk3. (Kazunobu Kuriyama, 2016 Aug 24)
Problem with whitespace in errorformat. (Gerd Wachsmuth, 2016 May 15, #807)
Undo problem: "g-" doesn't go back, gets stuck. (Björn Linse, 2016 Jul 18)
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.
Rethink this: can we add an argument to setqflist() and getqflist() for these
extra items?
sort() is not stable when using numeric/float sort (Nikolay Pavlov, 2016 Sep
4#1038)
Patch to add filtering of the quickfix list. (Yegappan Lakshmanan, 2016 Mar
13, last version) Update June 26, #830.
Instead use a Vim script implementation, invoked from a Vim command.
cmap using execute() has side effects. (Killthemule, 2016 Aug 17, #983)
Syntax highlighting for messages with RFC3339 timestamp (#946)
Did maintainer reply?
ml_get errors when reloading file. (Chris Desjardins, 2016 Apr 19)
Also with latest version.
Still problems with 'emoji'. See issue #721. Patch 7.4.1697 half-fixes it.
Avoid PLAN_WRITE in windgoto() ?
Should already never use utf-8 chars to position the cursor.
Cannot delete a file with square brackets with delete(). (#696)
No autocommand for when changing directory. Patch from allen haim, 2016 Jun
27, #888
Justin M Keyes: use "global" or "window" for the pattern. Can add "tab"
later.
Completion for input() does not expand environment variables. (chdiza, 2016
Jul 25, #948)
'hlsearch' interferes with a Conceal match. (Rom Grk, 2016 Aug 9)
Patch to add context information to quickfix/location list. (Yegappan
Lakshmanan, 2016 Aug 25)
MS-Windows: use WS_HIDE instead of SW_SHOWMINNOACTIVE in os_win32.c?
Otherwise task flickers in taskbar.
@@ -184,41 +187,43 @@ Also for ":@.".
Repeating 'opfunc' in a function only works once. (Tarmean, 2016 Jul 15, #925)
Patch on issue #728 by Christian Brabandt, 2016 Apr 7. Update with test: Apr 8.
Explanation Apr 12.
Might be related to:
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 add 'topbot' to 'belloff' option. (Coot, 2016 Mar 18, #695)
Patch for C syntax HL. (Bradley Garagan, 2016 Apr 17) #763
Patch to make matchit work better, respect 'matchpairs'. (Ken Takata, 2016 Mar
25)
Second problem in #966: ins_compl_add_tv() uses get_dict_string() multiple
times, overwrites the one buffer. (Nikolay Pavlov, 2016 Aug 5)
This does not work: :set cscopequickfix=a-
(Linewi, 2015 Jul 12, #914)
Possibly wrong value for seq_cur. (Florent Fayolle, 2016 May 15, #806)
Filetype plugin for awk. (Doug Kearns, 2016 Sep 5)
Patch to improve map documentation. Issue #799.
Patch for syntax folding optimization. (Shougo, 2016 Sep 6, #1045)
Patch for restoring wide characters in the console buffer.
(Ken Takata, 2016 Jun 7)
We can use '. to go to the last change in the current buffer, but how about
the last change in any buffer? Can we use ', (, is next to .)?
Ramel Eshed: system() is much slower than job_start(), why? (Aug 26)
Patch for Python: #622. (Roland Puntaier, 2016 Feb 2)
What does it change?
Patch to make gd and gD work better for non-K&R code and with comments.
(Anton Lindqvist, 2016 Aug 29)
When generating the Unicode tables with runtime/tools/unicode.vim the
emoji_width table has only one entry.
It's possible to add ",," to 'wildignore', an empty entry. Causes problems.
Reject the value? #710.
Patch to fix increment/decrement not working properly when 'virtualedit' is
set. (Hirohito Higashi, 2016 Aug 1, #923)
Patch to support strikethrough next to bold and italic. (Christian Brabandt,
2013 Jul 30) Update from Ken Takata, 2013 Oct 12.
Update mentioned by Christian, 2016 Apr 25.
@@ -239,11 +244,14 @@ Add redrawtabline command. (Naruhiko Nishino, 2016 Jun 11)
Neovim patch for utfc_ptr2char_len() https://github.com/neovim/neovim/pull/4574
No test, needs some work to include.
Patch to make finding duplicate tags much faster, using a hashtab. (James
McCoy, 2016 Sept 6, #1046)
>
Patch to improve indenting for C++ constructor with initializer list.
(Hirohito Higashi, 2016 Mar 31)
After 7.5 is released:
After 8.0 is released:
- Drop support for older MS-Windows systems, before XP.
Patch from Ken Takata, 2016 Mar 8.
@@ -272,6 +280,9 @@ Problem using ":try" inside ":execute". (ZyX, 2013 Sep 15)
Patch to make tests pass with EBCDIC. (Owen Leibman, 2016 Apr 10)
Add ":read :command", to insert the output of an Ex command?
Can already do it with ":$put =execute('command')".
When repeating the 'confirm' dialog one needs to press Enter. (ds26gte, 2016
Apr 17) #762
@@ -298,8 +309,23 @@ Should use /usr/local/share/applications or /usr/share/applications.
Or use $XDG_DATA_DIRS.
Also need to run update-desktop-database (Kuriyama Kazunobu, 2015 Nov 4)
Patch to add getbufinfo(), gettabinfo() and getwininfo(). (Yegappan
Lakshmanan, 2016 Apr 2016) Update Jun 8.
Patch to test popupmenu. Fails, possibly due to a bug.
(Christian Brabandt, 2016 Jul 23)
Patch to introduce 'cmdencoding'. (Ken Takata, Aug 18?)
Better help Aug 19.
Problem: applies to too many commands, such as :cbuffer.
Updated patch with three options, 2016 Sep 8.
Win32: When running ":make" and 'encoding' differs from the system locale,
the output should be converted. Esp. when 'encoding' is "utf-8". (Yongwei
Wu) Should we use 'termencoding' for this?
Patch to have text objects defined by arbitrary single characters. (Daniel
Thau, 2013 Nov 20, 2014 Jan 29, 2014 Jan 31)
Added tests (James McCoy, 2016 Aug 3). Still needs more work.
Patch to add CTRL-N / CTRL-P while searching. (Christian Brabandt, 2016 Aug
3) Problem: two matches in one line and using CTRL-P does not move back.
Access to uninitialized memory in match_backref() regexp_nda.c:4882
(Dominique Pelle, 2015 Nov 6)
@@ -322,9 +348,6 @@ Patch to avoid redrawing tabline when the popup menu is visible.
Patch to add {skip} argument to search(). (Christian Brabandt, 2016 Feb 24)
Update 2016 Jun 10, #861
Add value "smart" to 'tagcase': ignore case when tag is all lower case.
Patch from Christian Brabandt, 2016 Mar 30, #712.
Patch to be able to use hex numbers with :digraph. (Lcd, 2015 Sep 6)
Update Sep 7. Update by Christian Brabandt, 2015 Sep 8, 2016 Feb 1.
@@ -403,6 +426,10 @@ inconsistent with the documentation.
Can we cache the syntax attributes, so that updates for 'relativenumber' and
'cursorline'/'cursorcolumn' are a lot faster?
C highlighting: modern C allows: /* comment */ #ifdef
and also line continuation after #include.
I can't recommend it though.
Build with Python on Mac does not always use the right library.
(Kazunobu Kuriyama, 2015 Mar 28)
@@ -521,7 +548,7 @@ Mixup of highlighting when there is a match and SpellBad. (ZyX, 2015 Jan 1)
Patch for drag&drop reordering of GUI tab pages reordering.
(Ken Takata, 2013 Nov 22, second one, also by Masamichi Abe)
Now on Git: https://gist.github.com/nocd5/165286495c782b815b94
Update 2016 Mar 15.
Update 2016 Aug 10.
Patch on Issue 72: 'autochdir' causes problems for :vimgrep.
@@ -541,9 +568,6 @@ any one-character from the previous line. (Kartik Agaram, 2014 Sep 19)
Syntax highlighting slow (hangs) in SASS file. (Niek Bosch, 2013 Aug 21)
Patch to add the EndOfBuffer highlight group, used instead of NonText for "~"
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,
@@ -552,8 +576,6 @@ Should be easy to highlight all matches with 'incsearch'. Idea by Itchyny,
Wrong scrolling when using incsearch. Patch by Christian Brabandt, 2014 Dec 4.
Is this a good solution?
Patch to add /pattern/ to :oldfiles. Pull #575.
Patch: Let rare word highlighting overrule good word highlighting.
(Jakson A. Aquino, 2010 Jul 30, again 2011 Jul 2)
@@ -623,9 +645,11 @@ Spell files use a latin single quote. Unicode also has another single quote:
New OpenOffice spell files support this with ICONV. But they are not
compatible with Vim spell files. The old files can no longer be downloaded.
xterm should be able to pass focus changes to Vim, so that Vim can check for
buffers that changed. Perhaps in misc.c, function selectwindow().
Xterm 224 supports it!
Patch to make FocusGained and FocusLost work in modern terminals. (Hayaki
Saito, 2013 Apr 24) Has a problem (email 2015 Jan 7).
Update 2015 Jan 10.
Saito, 2013 Apr 24) Update 2016 Aug 12.
Also see issue #609.
We could add the enable/disable sequences to t_ti/t_te or t_ks/t_ke.
@@ -754,9 +778,6 @@ Patch by Thomas Tuegel, also for GTK, 2013 Nov 24
Patch to add funcref to Lua. (Luis Carvalho, 2013 Sep 4)
With tests: Sep 5.
Patch to fix that on suckless Terminal mousewheel up does not work.
(Ralph Eastwood, 2013 Nov 25)
Discussion about canonicalization of Hebrew. (Ron Aaron, 2011 April 10)
Checking runtime scripts: Thilo Six, 2012 Jun 6.
@@ -849,9 +870,6 @@ Improve the installer for MS-Windows. There are a few alternatives:
Problem: they all work slightly different (e.g. don't install vimrun.exe).
How to test that it works well for all Vim users?
Patch to check whether a buffer is quickfix or a location list.
(Yasuhiro Matsumoto, 2014 Dec 9)
Patch to make fold updates much faster. (Christian Brabandt, 2012 Dec)
Issue 54: document behavior of -complete, also expands arg.
@@ -866,11 +884,6 @@ In the ATTENTION message about an existing swap file, mention the name of the
process that is running. It might actually be some other program, e.g. after
a reboot.
Patch to have text objects defined by arbitrary single characters. (Daniel
Thau, 2013 Nov 20, 2014 Jan 29, 2014 Jan 31)
Ben Fritz: problem with 'selection' set to "exclusive".
Updated to current Vim, not quite right yet. (Ben Fritz, 2014 Mar 27)
Patch to select the next or previous text object if there isn't one under the
cursor. (Daniel Thau, 2013 Nov 20)
@@ -892,9 +905,6 @@ Patch to make confirm() display colors. (Christian Brabandt, 2012 Nov 9)
Patch to add functions for signs. (Christian Brabandt, 2013 Jan 27)
Do we need some way (option) to show the sign column even when there are no
signs? Patch by Christian Brabandt, 2013 Aug 22.
Patch to remove flicker from popup menu. (Yasuhiro Matsumoto, 2013 Aug 15)
Problem with refresh:always in completion. (Tyler Wade, 2013 Mar 17)
@@ -1369,7 +1379,7 @@ https://scan.coverity.com/projects/241
Patch to support :undo absolute jump to file save number. (Christian Brabandt,
2010 Nov 5)
Patch to use 'foldnextmax' also for "marker" foldmethod. (Arnaud Lacombe, 2011
Patch to use 'foldnestmax' also for "marker" foldmethod. (Arnaud Lacombe, 2011
Jan 7)
Bug with 'incsearch' going to wrong line. (Wolfram Kresse, 2009 Aug 17)
@@ -2237,10 +2247,6 @@ only set after Visual moded is ended.
Also add a variable for the Visual mode. So that this mode and '< '> can be
used to set what "gv" selects. (Ben Schmidt)
Win32: When running ":make" and 'encoding' differs from the system locale, the
output should be converted. Esp. when 'encoding' is "utf-8". (Yongwei Wu)
Should we use 'termencoding' for this?
Win32, NTFS: When editing a specific infostream directly and 'backupcopy' is
"auto" should detect this situation and work like 'backupcopy' is "yes". File
name is something like "c:\path\foo.txt:bar", includes a colon. (Alex
@@ -2265,10 +2271,6 @@ Patch for adding ":lscscope". (Navdeep Parhar, 2007 Apr 26; update 2008 Apr
tabs and the autocommand "autocmd BufWinLeave * mkview". (James Vega, 2007
Jun 18)
xterm should be able to pass focus changes to Vim, so that Vim can check for
buffers that changed. Perhaps in misc.c, function selectwindow().
Xterm 224 supports it!
When completing from another file that uses a different encoding completion
text has the wrong encoding. E.g., when 'encoding' is utf-8 and file is
latin1. Example from Gombault Damien, 2007 Mar 24.
@@ -2442,9 +2444,6 @@ Awaiting updated patches:
done for filetype detection. Patch from Walter Briscoe, 2003 Jul 1.
7 Add a "-@ filelist" argument: read file names from a file. (David
Kotchan has a patch for it)
8 Include a connection to an external program through a pipe? See
patches from Felbinger for a mathematica interface.
Or use emacs server kind of thing?
7 Add ":justify" command. Patch from Vit Stradal 2002 Nov 25.
- findmatch() should be adjusted for Lisp. See remark at
get_lisp_indent(). Esp. \( and \) should be skipped. (Dorai Sitaram,

View File

@@ -1,4 +1,4 @@
*usr_41.txt* For Vim version 7.4. Last change: 2016 Jul 24
*usr_41.txt* For Vim version 7.4. Last change: 2016 Sep 01
VIM USER MANUAL - by Bram Moolenaar
@@ -803,6 +803,9 @@ Buffers, windows and the argument list:
win_gotoid() go to window with ID
win_id2tabwin() get tab and window nr from window ID
win_id2win() get window nr from window ID
getbufinfo() get a list with buffer information
gettabinfo() get a list with tab page information
getwininfo() get a list with window information
Command line: *command-line-functions*
getcmdline() get the current command line
@@ -929,6 +932,7 @@ Testing: *test-functions*
Inter-process communication: *channel-functions*
ch_open() open a channel
ch_close() close a channel
ch_close_in() close the in part of a channel
ch_read() read a message from a channel
ch_readraw() read a raw message from a channel
ch_sendexpr() send a JSON message over a channel
@@ -957,7 +961,10 @@ Jobs: *job-functions*
Timers: *timer-functions*
timer_start() create a timer
timer_pause() pause or unpause a timer
timer_stop() stop a timer
timer_stopall() stop all timers
timer_info() get information about timers
Various: *various-functions*
mode() get current editing mode

View File

@@ -1,4 +1,4 @@
*various.txt* For Vim version 7.4. Last change: 2016 Jul 09
*various.txt* For Vim version 7.4. Last change: 2016 Sep 06
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -91,6 +91,8 @@ g8 Print the hex values of the bytes used in the
on paper see |:hardcopy|. In the GUI you can use the
File.Print menu entry.
See |ex-flags| for [flags].
The |:filter| command can be used to only show lines
matching a pattern.
:[range]p[rint] {count} [flags]
Print {count} lines, starting with [range] (default
@@ -361,6 +363,7 @@ N *+insert_expand* |insert_expand| Insert mode completion
m *+job* starting and stopping jobs |job|
N *+jumplist* |jumplist|
B *+keymap* |'keymap'|
N *+lambda* |lambda| and |closure|
B *+langmap* |'langmap'|
N *+libcall* |libcall()|
N *+linebreak* |'linebreak'|, |'breakat'| and |'showbreak'|
@@ -419,7 +422,7 @@ N *+statusline* Options 'statusline', 'rulerformat' and special
m *+sun_workshop* |workshop|
N *+syntax* Syntax highlighting |syntax|
*+system()* Unix only: opposite of |+fork|
N *+tag_binary* binary searching in tags file |tag-binary-search|
T *+tag_binary* binary searching in tags file |tag-binary-search|
N *+tag_old_static* old method for static tags |tag-old-static|
m *+tag_any_white* any white space allowed in tags file |tag-any-white|
m *+tcl* Tcl interface |tcl|
@@ -523,6 +526,27 @@ N *+X11* Unix only: can restore window title |X11|
:redi[r] END End redirecting messages. {not in Vi}
*:filt* *:filter*
:filt[er] {pat} {command}
:filt[er] /{pat}/ {command}
Restrict the output of {command} to matches with {pat}.
For example, to list only xml files: >
:filter /\.xml$/ oldfiles
<
{pat} is a Vim search pattern. Instead of enclosing
it in / any non-ID character (see |'isident'|) can be
used, so long as it does not appear in {pat}. Without
the enclosing character the pattern cannot include the
bar character.
The pattern is matched against the relevant part of
the output, not necessarily the whole line. Only some
commands support filtering, try it out to check if it
works.
Only normal messages are filtered, error messages are
not.
*:sil* *:silent* *:silent!*
:sil[ent][!] {command} Execute {command} silently. Normal messages will not
be given or added to the message history.

View File

@@ -4026,7 +4026,7 @@ Solution: Check for NULL pointer returned from mch_open().
Files: src/if_cscope.c
Patch 7.0.154
Problem: When 'foldnextmax' is negative Vim can hang. (James Vega)
Problem: When 'foldnestmax' is negative Vim can hang. (James Vega)
Solution: Avoid the fold level becoming negative.
Files: src/fold.c, src/syntax.c

File diff suppressed because it is too large Load Diff

View File

@@ -1,4 +1,4 @@
*vi_diff.txt* For Vim version 7.4. Last change: 2016 Feb 12
*vi_diff.txt* For Vim version 7.4. Last change: 2016 Aug 16
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -147,7 +147,7 @@ Support for different systems.
resource usage, esp. on MS-DOS. For some outdated systems you need to
use an older Vim version.
Multi level undo. |undo|
Multi level persistent undo. |undo|
'u' goes backward in time, 'CTRL-R' goes forward again. Set option
'undolevels' to the number of changes to be remembered (default 1000).
Set 'undolevels' to 0 for a Vi-compatible one level undo. Set it to
@@ -158,6 +158,9 @@ Multi level undo. |undo|
create a branch in the undo tree. This means you can go back to any
state of the text, there is no risk of a change causing text to be
lost forever. |undo-tree|
The undo information is stored in a file when the 'undofile' option is
set. This means you can exit Vim, start Vim on a previously edited
file and undo changes that were made before exiting Vim.
Graphical User Interface (GUI). |gui|
Included support for GUI: menu's, mouse, scrollbars, etc. You can
@@ -212,6 +215,15 @@ Plugins. |add-plugin|
right directory. That's an easy way to start using Vim scripts
written by others. Plugins can be for all kind of files, or
specifically for a filetype.
Packages make this even easier. |packages|
Asynchronous communication and timers. |channel| |job| |timer|
Vim can exchange messages with other processes in the background.
This makes it possible to have servers do work and send back the
results to Vim. |channel|
Vim can start a job, communicate with it and stop it. |job|
Timers can fire once or repeatedly and invoke a function to do any
work. |timer|
Repeat a series of commands. |q|
"q{c}" starts recording typed characters into named register {c}.

View File

@@ -222,7 +222,7 @@ OPTIONS
-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
dentally 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

View File

@@ -1,4 +1,4 @@
*windows.txt* For Vim version 7.4. Last change: 2016 Jun 10
*windows.txt* For Vim version 7.4. Last change: 2016 Aug 23
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -75,7 +75,7 @@ places where a Normal mode command can't be used or is inconvenient.
The main Vim window can hold several split windows. There are also tab pages
|tab-page|, each of which can hold multiple windows.
*window-ID* *winid* *windowid*
Each window has a unique identifier called the window ID. This identifier
will not change within a Vim session. The |win_getid()| and |win_id2tabwin()|
functions can be used to convert between the window/tab number and the
@@ -255,7 +255,7 @@ window will appear.
far left and occupies the full height of the Vim window.
Doesn't work for |:execute| and |:normal|.
*:botright*
*:bo* *:botright*
:bo[tright] {cmd}
Execute {cmd}. If it contains a command that splits a window,
it will appear at the bottom and occupy the full width of the
@@ -1042,6 +1042,10 @@ list of buffers. |unlisted-buffer|
h+ hidden buffers which are modified
a+ active buffers which are modified
When using |:filter| the pattern is matched against the
displayed buffer name, e.g.: >
filter /\.vim/ ls
<
*:bad* *:badd*
:bad[d] [+lnum] {fname}
Add file name {fname} to the buffer list, without loading it.

View File

@@ -1,7 +1,7 @@
" Vim support file to detect file types
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2016 Jul 21
" Last Change: 2016 Aug 26
" Listen very carefully, I will say this only once
if exists("did_load_filetypes")
@@ -692,8 +692,8 @@ func! s:FTe()
let n = 1
while n < 100 && n < line("$")
if getline(n) =~ "^\\s*\\(<'\\|'>\\)\\s*$"
setf specman
return
setf specman
return
endif
let n = n + 1
endwhile
@@ -779,8 +779,7 @@ au BufNewFile,BufRead *.mo,*.gdmo setf gdmo
au BufNewFile,BufRead *.ged,lltxxxxx.txt setf gedcom
" Git
au BufNewFile,BufRead COMMIT_EDITMSG setf gitcommit
au BufNewFile,BufRead MERGE_MSG setf gitcommit
au BufNewFile,BufRead COMMIT_EDITMSG,MERGE_MSG,TAG_EDITMSG setf gitcommit
au BufNewFile,BufRead *.git/config,.gitconfig,.gitmodules setf gitconfig
au BufNewFile,BufRead *.git/modules/*/config setf gitconfig
au BufNewFile,BufRead */.config/git/config setf gitconfig
@@ -1781,6 +1780,9 @@ au BufNewFile,BufRead *.sass setf sass
" Sather
au BufNewFile,BufRead *.sa setf sather
" Scala
au BufNewFile,BufRead *.scala setf scala
" Scilab
au BufNewFile,BufRead *.sci,*.sce setf scilab
@@ -2053,7 +2055,7 @@ func! s:FTRules()
if line =~ s:ft_rules_udev_rules_pattern
let udev_rules = substitute(line, s:ft_rules_udev_rules_pattern, '\1', "")
if dir == udev_rules
setf udevrules
setf udevrules
endif
break
endif
@@ -2302,7 +2304,7 @@ au BufNewFile,BufRead */etc/updatedb.conf setf updatedb
au BufNewFile,BufRead */usr/share/upstart/*.conf setf upstart
au BufNewFile,BufRead */usr/share/upstart/*.override setf upstart
au BufNewFile,BufRead */etc/init/*.conf,*/etc/init/*.override setf upstart
au BufNewFile,BufRead */.init/*.conf,*/.init/*.override setf upstart
au BufNewFile,BufRead */.init/*.conf,*/.init/*.override setf upstart
au BufNewFile,BufRead */.config/upstart/*.conf setf upstart
au BufNewFile,BufRead */.config/upstart/*.override setf upstart

View File

@@ -1,7 +1,7 @@
" Vim filetype plugin
" Language: Cucumber
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Last Change: 2013 Jun 01
" Last Change: 2016 Aug 29
" Only do this when not done yet for this buffer
if (exists("b:did_ftplugin"))
@@ -19,27 +19,23 @@ setlocal omnifunc=CucumberComplete
let b:undo_ftplugin = "setl fo< com< cms< ofu<"
let b:cucumber_root = expand('%:p:h:s?.*[\/]\%(features\|stories\)\zs[\/].*??')
if !exists("b:cucumber_steps_glob")
let b:cucumber_steps_glob = b:cucumber_root.'/**/*.rb'
endif
if !exists("g:no_plugin_maps") && !exists("g:no_cucumber_maps")
nnoremap <silent><buffer> <C-]> :<C-U>exe <SID>jump('edit',v:count)<CR>
nnoremap <silent><buffer> [<C-D> :<C-U>exe <SID>jump('edit',v:count)<CR>
nnoremap <silent><buffer> ]<C-D> :<C-U>exe <SID>jump('edit',v:count)<CR>
nnoremap <silent><buffer> <C-W>] :<C-U>exe <SID>jump('split',v:count)<CR>
nnoremap <silent><buffer> <C-W><C-]> :<C-U>exe <SID>jump('split',v:count)<CR>
nnoremap <silent><buffer> <C-W>d :<C-U>exe <SID>jump('split',v:count)<CR>
nnoremap <silent><buffer> <C-W><C-D> :<C-U>exe <SID>jump('split',v:count)<CR>
nnoremap <silent><buffer> <C-W>} :<C-U>exe <SID>jump('pedit',v:count)<CR>
nnoremap <silent><buffer> [d :<C-U>exe <SID>jump('pedit',v:count)<CR>
nnoremap <silent><buffer> ]d :<C-U>exe <SID>jump('pedit',v:count)<CR>
cnoremap <SID>foldopen <Bar>if &foldopen =~# 'tag'<Bar>exe 'norm! zv'<Bar>endif
nnoremap <silent> <script> <buffer> [<C-D> :<C-U>exe <SID>jump('edit',v:count)<SID>foldopen<CR>
nnoremap <silent> <script> <buffer> ]<C-D> :<C-U>exe <SID>jump('edit',v:count)<SID>foldopen<CR>
nnoremap <silent> <script> <buffer> <C-W>d :<C-U>exe <SID>jump('split',v:count)<SID>foldopen<CR>
nnoremap <silent> <script> <buffer> <C-W><C-D> :<C-U>exe <SID>jump('split',v:count)<SID>foldopen<CR>
nnoremap <silent> <script> <buffer> [d :<C-U>exe <SID>jump('pedit',v:count)<CR>
nnoremap <silent> <script> <buffer> ]d :<C-U>exe <SID>jump('pedit',v:count)<CR>
let b:undo_ftplugin .=
\ "|sil! nunmap <buffer> <C-]>" .
\ "|sil! nunmap <buffer> [<C-D>" .
\ "|sil! nunmap <buffer> ]<C-D>" .
\ "|sil! nunmap <buffer> <C-W>]" .
\ "|sil! nunmap <buffer> <C-W><C-]>" .
\ "|sil! nunmap <buffer> <C-W>d" .
\ "|sil! nunmap <buffer> <C-W><C-D>" .
\ "|sil! nunmap <buffer> <C-W>}" .
\ "|sil! nunmap <buffer> [d" .
\ "|sil! nunmap <buffer> ]d"
endif
@@ -59,7 +55,7 @@ endfunction
function! s:allsteps()
let step_pattern = '\C^\s*\K\k*\>\s*(\=\s*\zs\S.\{-\}\ze\s*)\=\s*\%(do\|{\)\s*\%(|[^|]*|\s*\)\=\%($\|#\)'
let steps = []
for file in split(glob(b:cucumber_root.'/**/*.rb'),"\n")
for file in split(glob(b:cucumber_steps_glob),"\n")
let lines = readfile(file)
let num = 0
for line in lines

View File

@@ -27,7 +27,7 @@ elseif !exists("b:eruby_subtype")
let s:lines = getline(1)."\n".getline(2)."\n".getline(3)."\n".getline(4)."\n".getline(5)."\n".getline("$")
let b:eruby_subtype = matchstr(s:lines,'eruby_subtype=\zs\w\+')
if b:eruby_subtype == ''
let b:eruby_subtype = matchstr(substitute(expand("%:t"),'\c\%(\.erb\|\.eruby\|\.erubis\)\+$','',''),'\.\zs\w\+$')
let b:eruby_subtype = matchstr(substitute(expand("%:t"),'\c\%(\.erb\|\.eruby\|\.erubis\)\+$','',''),'\.\zs\w\+\%(\ze+\w\+\)\=$')
endif
if b:eruby_subtype == 'rhtml'
let b:eruby_subtype = 'html'

View File

@@ -1,7 +1,7 @@
" Vim filetype plugin
" Language: generic git output
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Last Change: 2013 May 30
" Last Change: 2016 Aug 29
" Only do this when not done yet for this buffer
if (exists("b:did_ftplugin"))
@@ -12,6 +12,8 @@ let b:did_ftplugin = 1
if !exists('b:git_dir')
if expand('%:p') =~# '[\/]\.git[\/]modules[\/]'
" Stay out of the way
elseif expand('%:p') =~# '[\/]\.git[\/]worktrees'
let b:git_dir = matchstr(expand('%:p'),'.*\.git[\/]worktrees[\/][^\/]\+\>')
elseif expand('%:p') =~# '\.git\>'
let b:git_dir = matchstr(expand('%:p'),'.*\.git\>')
elseif $GIT_DIR != ''

View File

@@ -1,7 +1,7 @@
" Vim filetype plugin
" Language: git commit file
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Last Change: 2013 May 30
" Last Change: 2016 Aug 29
" Only do this when not done yet for this buffer
if (exists("b:did_ftplugin"))
@@ -11,15 +11,10 @@ endif
runtime! ftplugin/git.vim
let b:did_ftplugin = 1
setlocal nomodeline tabstop=8 formatoptions-=croq formatoptions+=tl
let b:undo_ftplugin = 'setl modeline< tabstop< formatoptions<'
if &textwidth == 0
" make sure that log messages play nice with git-log on standard terminals
setlocal textwidth=72
let b:undo_ftplugin .= "|setl tw<"
endif
setlocal comments=:# commentstring=#\ %s
setlocal nomodeline tabstop=8 formatoptions+=tl textwidth=72
setlocal formatoptions-=c formatoptions-=r formatoptions-=o formatoptions-=q
let b:undo_ftplugin = 'setl modeline< tabstop< formatoptions< tw< com< cms<'
if exists("g:no_gitcommit_commands") || v:version < 700
finish
@@ -31,6 +26,8 @@ endif
command! -bang -bar -buffer -complete=custom,s:diffcomplete -nargs=* DiffGitCached :call s:gitdiffcached(<bang>0,b:git_dir,<f-args>)
let b:undo_ftplugin = b:undo_ftplugin . "|delc DiffGitCached"
function! s:diffcomplete(A,L,P)
let args = ""
if a:P <= match(a:L." -- "," -- ")+3

View File

@@ -1,7 +1,7 @@
" Vim filetype plugin
" Language: git rebase --interactive
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Last Change: 2010 May 21
" Last Change: 2016 Aug 29
" Only do this when not done yet for this buffer
if (exists("b:did_ftplugin"))
@@ -12,10 +12,11 @@ runtime! ftplugin/git.vim
let b:did_ftplugin = 1
setlocal comments=:# commentstring=#\ %s formatoptions-=t
setlocal nomodeline
if !exists("b:undo_ftplugin")
let b:undo_ftplugin = ""
endif
let b:undo_ftplugin = b:undo_ftplugin."|setl com< cms< fo<"
let b:undo_ftplugin = b:undo_ftplugin."|setl com< cms< fo< ml<"
function! s:choose(word)
s/^\(\w\+\>\)\=\(\s*\)\ze\x\{4,40\}\>/\=(strlen(submatch(1)) == 1 ? a:word[0] : a:word) . substitute(submatch(2),'^$',' ','')/e

View File

@@ -1,7 +1,7 @@
" Vim filetype plugin
" Language: Haml
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Last Change: 2013 Jun 01
" Last Change: 2016 Aug 29
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")

View File

@@ -1,7 +1,7 @@
" Vim filetype plugin
" Language: Markdown
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Last Change: 2013 May 30
" Last Change: 2016 Aug 29
if exists("b:did_ftplugin")
finish
@@ -11,7 +11,7 @@ runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim
setlocal comments=fb:*,fb:-,fb:+,n:> commentstring=>\ %s
setlocal formatoptions+=tcqln formatoptions-=r formatoptions-=o
setlocal formatlistpat=^\\s*\\d\\+\\.\\s\\+\\\|^[-*+]\\s\\+
setlocal formatlistpat=^\\s*\\d\\+\\.\\s\\+\\\|^[-*+]\\s\\+\\\|^\\[^\\ze[^\\]]\\+\\]:
if exists('b:undo_ftplugin')
let b:undo_ftplugin .= "|setl cms< com< fo< flp<"
@@ -19,4 +19,32 @@ else
let b:undo_ftplugin = "setl cms< com< fo< flp<"
endif
function! MarkdownFold()
let line = getline(v:lnum)
" Regular headers
let depth = match(line, '\(^#\+\)\@<=\( .*$\)\@=')
if depth > 0
return ">" . depth
endif
" Setext style headings
let nextline = getline(v:lnum + 1)
if (line =~ '^.\+$') && (nextline =~ '^=\+$')
return ">1"
endif
if (line =~ '^.\+$') && (nextline =~ '^-\+$')
return ">2"
endif
return "="
endfunction
if has("folding") && exists("g:markdown_folding")
setlocal foldexpr=MarkdownFold()
setlocal foldmethod=expr
let b:undo_ftplugin .= " foldexpr< foldmethod<"
endif
" vim:set sw=2:

View File

@@ -2,7 +2,7 @@
" Language: python
" Maintainer: James Sully <sullyj3@gmail.com>
" Previous Maintainer: Johannes Zellner <johannes@zellner.org>
" Last Change: Wed, 29 June 2016
" Last Change: Tue, 06 September 2016
" https://github.com/sullyj3/vim-ftplugin-python
if exists("b:did_ftplugin") | finish | endif
@@ -22,15 +22,25 @@ setlocal omnifunc=pythoncomplete#Complete
set wildignore+=*.pyc
nnoremap <silent> <buffer> ]] :call <SID>Python_jump('n', '\v%$\|^(class\|def)>', 'W')<cr>
nnoremap <silent> <buffer> [[ :call <SID>Python_jump('n', '\v^(class\|def)>', 'Wb')<cr>
nnoremap <silent> <buffer> ]m :call <SID>Python_jump('n', '\v%$\|^\s*(class\|def)>', 'W')<cr>
nnoremap <silent> <buffer> [m :call <SID>Python_jump('n', '\v^\s*(class\|def)>', 'Wb')<cr>
let b:next_toplevel='\v%$\|^(class\|def)>'
let b:prev_toplevel='\v^(class\|def)>'
let b:next='\v%$\|^\s*(class\|def)>'
let b:prev='\v^\s*(class\|def)>'
xnoremap <silent> <buffer> ]] :call <SID>Python_jump('x', '\v%$\|^(class\|def)>', 'W')<cr>
xnoremap <silent> <buffer> [[ :call <SID>Python_jump('x', '\v^(class\|def)>', 'Wb')<cr>
xnoremap <silent> <buffer> ]m :call <SID>Python_jump('x', '\v%$\|^\s*(class\|def)>', 'W')<cr>
xnoremap <silent> <buffer> [m :call <SID>Python_jump('x', '\v^\s*(class\|def)>', 'Wb')<cr>
execute "nnoremap <silent> <buffer> ]] :call <SID>Python_jump('n', '". b:next_toplevel."', 'W')<cr>"
execute "nnoremap <silent> <buffer> [[ :call <SID>Python_jump('n', '". b:prev_toplevel."', 'Wb')<cr>"
execute "nnoremap <silent> <buffer> ]m :call <SID>Python_jump('n', '". b:next."', 'W')<cr>"
execute "nnoremap <silent> <buffer> [m :call <SID>Python_jump('n', '". b:prev."', 'Wb')<cr>"
execute "onoremap <silent> <buffer> ]] :call <SID>Python_jump('o', '". b:next_toplevel."', 'W')<cr>"
execute "onoremap <silent> <buffer> [[ :call <SID>Python_jump('o', '". b:prev_toplevel."', 'Wb')<cr>"
execute "onoremap <silent> <buffer> ]m :call <SID>Python_jump('o', '". b:next."', 'W')<cr>"
execute "onoremap <silent> <buffer> [m :call <SID>Python_jump('o', '". b:prev."', 'Wb')<cr>"
execute "xnoremap <silent> <buffer> ]] :call <SID>Python_jump('x', '". b:next_toplevel."', 'W')<cr>"
execute "xnoremap <silent> <buffer> [[ :call <SID>Python_jump('x', '". b:prev_toplevel."', 'Wb')<cr>"
execute "xnoremap <silent> <buffer> ]m :call <SID>Python_jump('x', '". b:next."', 'W')<cr>"
execute "xnoremap <silent> <buffer> [m :call <SID>Python_jump('x', '". b:prev."', 'Wb')<cr>"
if !exists('*<SID>Python_jump')
fun! <SID>Python_jump(mode, motion, flags) range
@@ -56,8 +66,10 @@ if has("browsefilter") && !exists("b:browsefilter")
\ "All Files (*.*)\t*.*\n"
endif
" As suggested by PEP8.
setlocal expandtab shiftwidth=4 softtabstop=4 tabstop=8
if !exists("g:python_recommended_style") || g:python_recommended_style != 0
" As suggested by PEP8.
setlocal expandtab shiftwidth=4 softtabstop=4 tabstop=8
endif
" First time: try finding "pydoc".
if !exists('g:pydoc_executable')

View File

@@ -1,9 +1,9 @@
" Vim filetype plugin file
" Language: R help file
" Language: R Markdown file
" Maintainer: Jakson Alves de Aquino <jalvesaq@gmail.com>
" Homepage: https://github.com/jalvesaq/R-Vim-runtime
" Last Change: Tue Apr 07, 2015 04:37PM
" Original work by Alex Zvoleff (adjusted for rmd by Michel Kuhlmann)
" Last Change: Mon Jun 06, 2016 09:41PM
" Original work by Alex Zvoleff (adjusted from R help for rmd by Michel Kuhlmann)
" Only do this when not yet done for this buffer
if exists("b:did_ftplugin")
@@ -12,6 +12,16 @@ endif
runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim
" Nvim-R plugin needs this
if exists("*CompleteR")
if &omnifunc == "CompleteR"
let b:rplugin_nonr_omnifunc = ""
else
let b:rplugin_nonr_omnifunc = &omnifunc
endif
set omnifunc=CompleteR
endif
setlocal comments=fb:*,fb:-,fb:+,n:> commentstring=>\ %s
setlocal formatoptions+=tcqln
setlocal formatlistpat=^\\s*\\d\\+\\.\\s\\+\\\|^\\s*[-*+]\\s\\+

View File

@@ -28,12 +28,13 @@ if exists("loaded_matchit") && !exists("b:match_words")
\ ':' .
\ '\<\%(else\|elsif\|ensure\|when\|rescue\|break\|redo\|next\|retry\)\>' .
\ ':' .
\ '\<end\>' .
\ '\%(^\|[^.\:@$]\)\@<=\<end\:\@!\>' .
\ ',{:},\[:\],(:)'
let b:match_skip =
\ "synIDattr(synID(line('.'),col('.'),0),'name') =~ '" .
\ "\\<ruby\\%(String\\|StringDelimiter\\|ASCIICode\\|Escape\\|" .
\ "Regexp\\|RegexpDelimiter\\|" .
\ "Interpolation\\|NoInterpolation\\|Comment\\|Documentation\\|" .
\ "ConditionalModifier\\|RepeatModifier\\|OptionalDo\\|" .
\ "Function\\|BlockArgument\\|KeywordAsMethod\\|ClassVariable\\|" .
@@ -43,7 +44,7 @@ endif
setlocal formatoptions-=t formatoptions+=croql
setlocal include=^\\s*\\<\\(load\\>\\\|require\\>\\\|autoload\\s*:\\=[\"']\\=\\h\\w*[\"']\\=,\\)
setlocal includeexpr=substitute(substitute(v:fname,'::','/','g'),'$','.rb','')
setlocal includeexpr=substitute(substitute(v:fname,'::','/','g'),'\%(\.rb\)\=$','.rb','')
setlocal suffixesadd=.rb
if exists("&ofu") && has("ruby")
@@ -66,32 +67,32 @@ if !exists('g:ruby_version_paths')
let g:ruby_version_paths = {}
endif
function! s:query_path(root)
function! s:query_path(root) abort
let code = "print $:.join %q{,}"
if &shell =~# 'sh' && $PATH !~# '\s'
let prefix = 'env PATH='.$PATH.' '
if &shell =~# 'sh'
let prefix = 'env PATH='.shellescape($PATH).' '
else
let prefix = ''
endif
if &shellxquote == "'"
let path_check = prefix.'ruby -e "' . code . '"'
let path_check = prefix.'ruby --disable-gems -e "' . code . '"'
else
let path_check = prefix."ruby -e '" . code . "'"
let path_check = prefix."ruby --disable-gems -e '" . code . "'"
endif
let cd = haslocaldir() ? 'lcd' : 'cd'
let cwd = getcwd()
let cwd = fnameescape(getcwd())
try
exe cd fnameescape(a:root)
let path = split(system(path_check),',')
exe cd fnameescape(cwd)
exe cd cwd
return path
finally
exe cd fnameescape(cwd)
exe cd cwd
endtry
endfunction
function! s:build_path(path)
function! s:build_path(path) abort
let path = join(map(copy(a:path), 'v:val ==# "." ? "" : v:val'), ',')
if &g:path !~# '\v^\.%(,/%(usr|emx)/include)=,,$'
let path = substitute(&g:path,',,$',',','') . ',' . path
@@ -101,7 +102,7 @@ endfunction
if !exists('b:ruby_version') && !exists('g:ruby_path') && isdirectory(expand('%:p:h'))
let s:version_file = findfile('.ruby-version', '.;')
if !empty(s:version_file)
if !empty(s:version_file) && filereadable(s:version_file)
let b:ruby_version = get(readfile(s:version_file, '', 1), '')
if !has_key(g:ruby_version_paths, b:ruby_version)
let g:ruby_version_paths[b:ruby_version] = s:query_path(fnamemodify(s:version_file, ':p:h'))
@@ -135,7 +136,7 @@ if exists('s:ruby_paths') && stridx(&l:tags, join(map(copy(s:ruby_paths),'v:val.
let &l:tags = &tags . ',' . join(map(copy(s:ruby_paths),'v:val."/tags"'),',')
endif
if has("gui_win32") && !exists("b:browsefilter")
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
let b:browsefilter = "Ruby Source Files (*.rb)\t*.rb\n" .
\ "All Files (*.*)\t*.*\n"
endif
@@ -145,7 +146,22 @@ let b:undo_ftplugin = "setl fo< inc< inex< sua< def< com< cms< path< tags< kp<"
\."| if exists('&ofu') && has('ruby') | setl ofu< | endif"
\."| if has('balloon_eval') && exists('+bexpr') | setl bexpr< | endif"
function! s:map(mode, flags, map) abort
let from = matchstr(a:map, '\S\+')
if empty(mapcheck(from, a:mode))
exe a:mode.'map' '<buffer>'.(a:0 ? a:1 : '') a:map
let b:undo_ftplugin .= '|sil! '.a:mode.'unmap <buffer> '.from
endif
endfunction
cmap <buffer><script><expr> <Plug><cword> substitute(RubyCursorIdentifier(),'^$',"\022\027",'')
cmap <buffer><script><expr> <Plug><cfile> substitute(RubyCursorFile(),'^$',"\022\006",'')
let b:undo_ftplugin .= "| sil! cunmap <buffer> <Plug><cword>| sil! cunmap <buffer> <Plug><cfile>"
if !exists("g:no_plugin_maps") && !exists("g:no_ruby_maps")
nmap <buffer><script> <SID>: :<C-U>
nmap <buffer><script> <SID>c: :<C-U><C-R>=v:count ? v:count : ''<CR>
nnoremap <silent> <buffer> [m :<C-U>call <SID>searchsyn('\<def\>','rubyDefine','b','n')<CR>
nnoremap <silent> <buffer> ]m :<C-U>call <SID>searchsyn('\<def\>','rubyDefine','','n')<CR>
nnoremap <silent> <buffer> [M :<C-U>call <SID>searchsyn('\<end\>','rubyDefine','b','n')<CR>
@@ -168,7 +184,7 @@ if !exists("g:no_plugin_maps") && !exists("g:no_ruby_maps")
\."| sil! exe 'unmap <buffer> [[' | sil! exe 'unmap <buffer> ]]' | sil! exe 'unmap <buffer> []' | sil! exe 'unmap <buffer> ]['"
\."| sil! exe 'unmap <buffer> [m' | sil! exe 'unmap <buffer> ]m' | sil! exe 'unmap <buffer> [M' | sil! exe 'unmap <buffer> ]M'"
if maparg('im','n') == ''
if maparg('im','x') == '' && maparg('im','o') == '' && maparg('am','x') == '' && maparg('am','o') == ''
onoremap <silent> <buffer> im :<C-U>call <SID>wrap_i('[m',']M')<CR>
onoremap <silent> <buffer> am :<C-U>call <SID>wrap_a('[m',']M')<CR>
xnoremap <silent> <buffer> im :<C-U>call <SID>wrap_i('[m',']M')<CR>
@@ -178,7 +194,7 @@ if !exists("g:no_plugin_maps") && !exists("g:no_ruby_maps")
\."| sil! exe 'xunmap <buffer> im' | sil! exe 'xunmap <buffer> am'"
endif
if maparg('iM','n') == ''
if maparg('iM','x') == '' && maparg('iM','o') == '' && maparg('aM','x') == '' && maparg('aM','o') == ''
onoremap <silent> <buffer> iM :<C-U>call <SID>wrap_i('[[','][')<CR>
onoremap <silent> <buffer> aM :<C-U>call <SID>wrap_a('[[','][')<CR>
xnoremap <silent> <buffer> iM :<C-U>call <SID>wrap_i('[[','][')<CR>
@@ -188,33 +204,24 @@ if !exists("g:no_plugin_maps") && !exists("g:no_ruby_maps")
\."| sil! exe 'xunmap <buffer> iM' | sil! exe 'xunmap <buffer> aM'"
endif
if maparg("\<C-]>",'n') == ''
nnoremap <silent> <buffer> <C-]> :<C-U>exe v:count1."tag <C-R>=RubyCursorIdentifier()<CR>"<CR>
nnoremap <silent> <buffer> g<C-]> :<C-U>exe "tjump <C-R>=RubyCursorIdentifier()<CR>"<CR>
nnoremap <silent> <buffer> g] :<C-U>exe "tselect <C-R>=RubyCursorIdentifier()<CR>"<CR>
nnoremap <silent> <buffer> <C-W>] :<C-U>exe v:count1."stag <C-R>=RubyCursorIdentifier()<CR>"<CR>
nnoremap <silent> <buffer> <C-W><C-]> :<C-U>exe v:count1."stag <C-R>=RubyCursorIdentifier()<CR>"<CR>
nnoremap <silent> <buffer> <C-W>g<C-]> :<C-U>exe "stjump <C-R>=RubyCursorIdentifier()<CR>"<CR>
nnoremap <silent> <buffer> <C-W>g] :<C-U>exe "stselect <C-R>=RubyCursorIdentifier()<CR>"<CR>
nnoremap <silent> <buffer> <C-W>} :<C-U>exe "ptag <C-R>=RubyCursorIdentifier()<CR>"<CR>
nnoremap <silent> <buffer> <C-W>g} :<C-U>exe "ptjump <C-R>=RubyCursorIdentifier()<CR>"<CR>
let b:undo_ftplugin = b:undo_ftplugin
\."| sil! exe 'nunmap <buffer> <C-]>'| sil! exe 'nunmap <buffer> g<C-]>'| sil! exe 'nunmap <buffer> g]'"
\."| sil! exe 'nunmap <buffer> <C-W>]'| sil! exe 'nunmap <buffer> <C-W><C-]>'"
\."| sil! exe 'nunmap <buffer> <C-W>g<C-]>'| sil! exe 'nunmap <buffer> <C-W>g]'"
\."| sil! exe 'nunmap <buffer> <C-W>}'| sil! exe 'nunmap <buffer> <C-W>g}'"
endif
call s:map('c', '', '<C-R><C-W> <Plug><cword>')
call s:map('c', '', '<C-R><C-F> <Plug><cfile>')
if maparg("gf",'n') == ''
" By using findfile() rather than gf's normal behavior, we prevent
" erroneously editing a directory.
nnoremap <silent> <buffer> gf :<C-U>exe <SID>gf(v:count1,"gf",'edit')<CR>
nnoremap <silent> <buffer> <C-W>f :<C-U>exe <SID>gf(v:count1,"\<Lt>C-W>f",'split')<CR>
nnoremap <silent> <buffer> <C-W><C-F> :<C-U>exe <SID>gf(v:count1,"\<Lt>C-W>\<Lt>C-F>",'split')<CR>
nnoremap <silent> <buffer> <C-W>gf :<C-U>exe <SID>gf(v:count1,"\<Lt>C-W>gf",'tabedit')<CR>
let b:undo_ftplugin = b:undo_ftplugin
\."| sil! exe 'nunmap <buffer> gf' | sil! exe 'nunmap <buffer> <C-W>f' | sil! exe 'nunmap <buffer> <C-W><C-F>' | sil! exe 'nunmap <buffer> <C-W>gf'"
endif
cmap <buffer><script><expr> <SID>tagzv &foldopen =~# 'tag' ? '<Bar>norm! zv' : ''
call s:map('n', '<silent>', '<C-]> <SID>:exe v:count1."tag <Plug><cword>"<SID>tagzv<CR>')
call s:map('n', '<silent>', 'g<C-]> <SID>:exe "tjump <Plug><cword>"<SID>tagzv<CR>')
call s:map('n', '<silent>', 'g] <SID>:exe "tselect <Plug><cword>"<SID>tagzv<CR>')
call s:map('n', '<silent>', '<C-W>] <SID>:exe v:count1."stag <Plug><cword>"<SID>tagzv<CR>')
call s:map('n', '<silent>', '<C-W><C-]> <SID>:exe v:count1."stag <Plug><cword>"<SID>tagzv<CR>')
call s:map('n', '<silent>', '<C-W>g<C-]> <SID>:exe "stjump <Plug><cword>"<SID>tagzv<CR>')
call s:map('n', '<silent>', '<C-W>g] <SID>:exe "stselect <Plug><cword>"<SID>tagzv<CR>')
call s:map('n', '<silent>', '<C-W>} <SID>:exe v:count1."ptag <Plug><cword>"<CR>')
call s:map('n', '<silent>', '<C-W>g} <SID>:exe "ptjump <Plug><cword>"<CR>')
call s:map('n', '<silent>', 'gf <SID>c:find <Plug><cfile><CR>')
call s:map('n', '<silent>', '<C-W>f <SID>c:sfind <Plug><cfile><CR>')
call s:map('n', '<silent>', '<C-W><C-F> <SID>c:sfind <Plug><cfile><CR>')
call s:map('n', '<silent>', '<C-W>gf <SID>c:tabfind <Plug><cfile><CR>')
endif
let &cpo = s:cpo_save
@@ -225,7 +232,7 @@ if exists("g:did_ruby_ftplugin_functions")
endif
let g:did_ruby_ftplugin_functions = 1
function! RubyBalloonexpr()
function! RubyBalloonexpr() abort
if !exists('s:ri_found')
let s:ri_found = executable('ri')
endif
@@ -274,13 +281,13 @@ function! RubyBalloonexpr()
endif
endfunction
function! s:searchsyn(pattern,syn,flags,mode)
function! s:searchsyn(pattern, syn, flags, mode) abort
let cnt = v:count1
norm! m'
if a:mode ==# 'v'
norm! gv
endif
let i = 0
let cnt = v:count ? v:count : 1
while i < cnt
let i = i + 1
let line = line('.')
@@ -296,11 +303,11 @@ function! s:searchsyn(pattern,syn,flags,mode)
endwhile
endfunction
function! s:synname()
function! s:synname() abort
return synIDattr(synID(line('.'),col('.'),0),'name')
endfunction
function! s:wrap_i(back,forward)
function! s:wrap_i(back,forward) abort
execute 'norm k'.a:forward
let line = line('.')
execute 'norm '.a:back
@@ -310,7 +317,7 @@ function! s:wrap_i(back,forward)
execute 'norm jV'.a:forward.'k'
endfunction
function! s:wrap_a(back,forward)
function! s:wrap_a(back,forward) abort
execute 'norm '.a:forward
if line('.') < line('$') && getline(line('.')+1) ==# ''
let after = 1
@@ -328,37 +335,55 @@ function! s:wrap_a(back,forward)
endif
endfunction
function! RubyCursorIdentifier()
function! RubyCursorIdentifier() abort
let asciicode = '\%(\w\|[]})\"'."'".']\)\@<!\%(?\%(\\M-\\C-\|\\C-\\M-\|\\M-\\c\|\\c\\M-\|\\c\|\\C-\|\\M-\)\=\%(\\\o\{1,3}\|\\x\x\{1,2}\|\\\=\S\)\)'
let number = '\%(\%(\w\|[]})\"'."'".']\s*\)\@<!-\)\=\%(\<[[:digit:]_]\+\%(\.[[:digit:]_]\+\)\=\%([Ee][[:digit:]_]\+\)\=\>\|\<0[xXbBoOdD][[:xdigit:]_]\+\>\)\|'.asciicode
let operator = '\%(\[\]\|<<\|<=>\|[!<>]=\=\|===\=\|[!=]\~\|>>\|\*\*\|\.\.\.\=\|=>\|[~^&|*/%+-]\)'
let method = '\%(\<[_a-zA-Z]\w*\>\%([?!]\|\s*=>\@!\)\=\)'
let method = '\%(\.[_a-zA-Z]\w*\s*=>\@!\|\<[_a-zA-Z]\w*\>[?!]\=\)'
let global = '$\%([!$&"'."'".'*+,./:;<=>?@\`~]\|-\=\w\+\>\)'
let symbolizable = '\%(\%(@@\=\)\w\+\>\|'.global.'\|'.method.'\|'.operator.'\)'
let pattern = '\C\s*\%('.number.'\|\%(:\@<!:\)\='.symbolizable.'\)'
let [lnum, col] = searchpos(pattern,'bcn',line('.'))
let raw = matchstr(getline('.')[col-1 : ],pattern)
let stripped = substitute(substitute(raw,'\s\+=$','=',''),'^\s*:\=','','')
let stripped = substitute(substitute(raw,'\s\+=$','=',''),'^\s*[:.]\=','','')
return stripped == '' ? expand("<cword>") : stripped
endfunction
function! s:gf(count,map,edit) abort
if getline('.') =~# '^\s*require_relative\s*\(["'']\).*\1\s*$'
let target = matchstr(getline('.'),'\(["'']\)\zs.\{-\}\ze\1')
return a:edit.' %:h/'.target.'.rb'
elseif getline('.') =~# '^\s*\%(require[( ]\|load[( ]\|autoload[( ]:\w\+,\)\s*\s*\%(::\)\=File\.expand_path(\(["'']\)\.\./.*\1,\s*__FILE__)\s*$'
let target = matchstr(getline('.'),'\(["'']\)\.\./\zs.\{-\}\ze\1')
return a:edit.' %:h/'.target.'.rb'
function! RubyCursorFile() abort
let isfname = &isfname
try
set isfname+=:
let cfile = expand('<cfile>')
finally
let isfname = &isfname
endtry
let pre = matchstr(strpart(getline('.'), 0, col('.')-1), '.*\f\@<!')
let post = matchstr(strpart(getline('.'), col('.')), '\f\@!.*')
let ext = getline('.') =~# '^\s*\%(require\%(_relative\)\=\|autoload\)\>' && cfile !~# '\.rb$' ? '.rb' : ''
if s:synname() ==# 'rubyConstant'
let cfile = substitute(cfile,'\.\w\+[?!=]\=$','','')
let cfile = substitute(cfile,'::','/','g')
let cfile = substitute(cfile,'\(\u\+\)\(\u\l\)','\1_\2', 'g')
let cfile = substitute(cfile,'\(\l\|\d\)\(\u\)','\1_\2', 'g')
return tolower(cfile) . '.rb'
elseif getline('.') =~# '^\s*require_relative\s*\(["'']\).*\1\s*$'
let cfile = expand('%:p:h') . '/' . matchstr(getline('.'),'\(["'']\)\zs.\{-\}\ze\1') . ext
elseif getline('.') =~# '^\s*\%(require[( ]\|load[( ]\|autoload[( ]:\w\+,\)\s*\%(::\)\=File\.expand_path(\(["'']\)\.\./.*\1,\s*__FILE__)\s*$'
let target = matchstr(getline('.'),'\(["'']\)\.\.\zs/.\{-\}\ze\1')
let cfile = expand('%:p:h') . target . ext
elseif getline('.') =~# '^\s*\%(require \|load \|autoload :\w\+,\)\s*\(["'']\).*\1\s*$'
let target = matchstr(getline('.'),'\(["'']\)\zs.\{-\}\ze\1')
let cfile = matchstr(getline('.'),'\(["'']\)\zs.\{-\}\ze\1') . ext
elseif pre.post =~# '\<File.expand_path[( ].*[''"]\{2\}, *__FILE__\>' && cfile =~# '^\.\.'
let cfile = expand('%:p:h') . strpart(cfile, 2)
else
let target = expand('<cfile>')
return substitute(cfile, '\C\v^(.*):(\d+)%(:in)=$', '+\2 \1', '')
endif
let found = findfile(target, &path, a:count)
if found ==# ''
return 'norm! '.a:count.a:map
let cwdpat = '^\M' . substitute(getcwd(), '[\/]', '\\[\\/]', 'g').'\ze\[\/]'
let cfile = substitute(cfile, cwdpat, '.', '')
if fnameescape(cfile) !=# cfile
return '+ '.fnameescape(cfile)
else
return a:edit.' '.fnameescape(found)
return cfile
endif
endfunction

View File

@@ -1,7 +1,7 @@
" Vim filetype plugin
" Language: Sass
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Last Change: 2010 Jul 26
" Last Change: 2016 Aug 29
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
@@ -9,8 +9,9 @@ if exists("b:did_ftplugin")
endif
let b:did_ftplugin = 1
let b:undo_ftplugin = "setl cms< def< inc< inex< ofu< sua<"
let b:undo_ftplugin = "setl com< cms< def< inc< inex< ofu< sua<"
setlocal comments=://
setlocal commentstring=//\ %s
setlocal define=^\\s*\\%(@mixin\\\|=\\)
setlocal includeexpr=substitute(v:fname,'\\%(.*/\\\|^\\)\\zs','_','')

View File

@@ -0,0 +1,35 @@
" Vim filetype plugin file
" Language: Scala
" Maintainer: Derek Wyatt
" URL: https://github.com/derekwyatt/vim-scala
" License: Same as Vim
" Last Change: 02 August 2016
" ----------------------------------------------------------------------------
if exists('b:did_ftplugin') || &cp
finish
endif
let b:did_ftplugin = 1
" j is fairly new in Vim, so don't complain if it's not there
setlocal formatoptions-=t formatoptions+=croqnl
silent! setlocal formatoptions+=j
" Just like c.vim, but additionally doesn't wrap text onto /** line when
" formatting. Doesn't bungle bulleted lists when formatting.
if get(g:, 'scala_scaladoc_indent', 0)
setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s2:/**,mb:*,ex:*/,s1:/*,mb:*,ex:*/,://
else
setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/**,mb:*,ex:*/,s1:/*,mb:*,ex:*/,://
endif
setlocal commentstring=//\ %s
setlocal shiftwidth=2 softtabstop=2 expandtab
setlocal include='^\s*import'
setlocal includeexpr='substitute(v:fname,"\\.","/","g")'
setlocal path+=src/main/scala,src/test/scala
setlocal suffixesadd=.scala
" vim:set sw=2 sts=2 ts=8 et:

View File

@@ -1,12 +1,13 @@
" Vim filetype plugin
" Language: SCSS
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Last Change: 2010 Jul 26
" Last Change: 2016 Aug 29
if exists("b:did_ftplugin")
finish
endif
runtime! ftplugin/sass.vim
setlocal comments=s1:/*,mb:*,ex:*/,://
" vim:set sw=2:

View File

@@ -1,7 +1,7 @@
" Vim indent file
" Language: Cucumber
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Last Change: 2013 May 30
" Last Change: 2016 Aug 29
if exists("b:did_indent")
finish
@@ -27,6 +27,7 @@ function! GetCucumberIndent()
let line = getline(prevnonblank(v:lnum-1))
let cline = getline(v:lnum)
let nline = getline(nextnonblank(v:lnum+1))
let sw = exists('*shiftwidth') ? shiftwidth() : &sw
let syn = s:syn(prevnonblank(v:lnum-1))
let csyn = s:syn(v:lnum)
let nsyn = s:syn(nextnonblank(v:lnum+1))
@@ -35,38 +36,38 @@ function! GetCucumberIndent()
return 0
elseif csyn ==# 'cucumberExamples' || cline =~# '^\s*\%(Examples\|Scenarios\):'
" examples heading
return 2 * &sw
return 2 * sw
elseif csyn =~# '^cucumber\%(Background\|Scenario\|ScenarioOutline\)$' || cline =~# '^\s*\%(Background\|Scenario\|Scenario Outline\):'
" background, scenario or outline heading
return &sw
return sw
elseif syn ==# 'cucumberFeature' || line =~# '^\s*Feature:'
" line after feature heading
return &sw
return sw
elseif syn ==# 'cucumberExamples' || line =~# '^\s*\%(Examples\|Scenarios\):'
" line after examples heading
return 3 * &sw
return 3 * sw
elseif syn =~# '^cucumber\%(Background\|Scenario\|ScenarioOutline\)$' || line =~# '^\s*\%(Background\|Scenario\|Scenario Outline\):'
" line after background, scenario or outline heading
return 2 * &sw
return 2 * sw
elseif cline =~# '^\s*[@#]' && (nsyn == 'cucumberFeature' || nline =~# '^\s*Feature:' || indent(prevnonblank(v:lnum-1)) <= 0)
" tag or comment before a feature heading
return 0
elseif cline =~# '^\s*@'
" other tags
return &sw
return sw
elseif cline =~# '^\s*[#|]' && line =~# '^\s*|'
" mid-table
" preserve indent
return indent(prevnonblank(v:lnum-1))
elseif cline =~# '^\s*|' && line =~# '^\s*[^|]'
" first line of a table, relative indent
return indent(prevnonblank(v:lnum-1)) + &sw
return indent(prevnonblank(v:lnum-1)) + sw
elseif cline =~# '^\s*[^|]' && line =~# '^\s*|'
" line after a table, relative unindent
return indent(prevnonblank(v:lnum-1)) - &sw
return indent(prevnonblank(v:lnum-1)) - sw
elseif cline =~# '^\s*#' && getline(v:lnum-1) =~ '^\s*$' && (nsyn =~# '^cucumber\%(Background\|Scenario\|ScenarioOutline\)$' || nline =~# '^\s*\%(Background\|Scenario\|Scenario Outline\):')
" comments on scenarios
return &sw
return sw
endif
return indent(prevnonblank(v:lnum-1))
endfunction

View File

@@ -19,6 +19,9 @@ else
endif
unlet! b:did_indent
" Force HTML indent to not keep state.
let b:html_indent_usestate = 0
if &l:indentexpr == ''
if &l:cindent
let &l:indentexpr = 'cindent(v:lnum)'
@@ -38,7 +41,18 @@ if exists("*GetErubyIndent")
finish
endif
" this file uses line continuations
let s:cpo_sav = &cpo
set cpo&vim
function! GetErubyIndent(...)
" The value of a single shift-width
if exists('*shiftwidth')
let sw = shiftwidth()
else
let sw = &sw
endif
if a:0 && a:1 == '.'
let v:lnum = line('.')
elseif a:0 && a:1 =~ '^\d'
@@ -52,31 +66,44 @@ function! GetErubyIndent(...)
let ind = GetRubyIndent(v:lnum)
else
exe "let ind = ".b:eruby_subtype_indentexpr
" Workaround for Andy Wokula's HTML indent. This should be removed after
" some time, since the newest version is fixed in a different way.
if b:eruby_subtype_indentexpr =~# '^HtmlIndent('
\ && exists('b:indent')
\ && type(b:indent) == type({})
\ && has_key(b:indent, 'lnum')
" Force HTML indent to not keep state
let b:indent.lnum = -1
endif
endif
let lnum = prevnonblank(v:lnum-1)
let line = getline(lnum)
let cline = getline(v:lnum)
if cline =~# '^\s*<%[-=]\=\s*\%(}\|end\|else\|\%(ensure\|rescue\|elsif\|when\).\{-\}\)\s*\%([-=]\=%>\|$\)'
let ind = ind - &sw
let ind = ind - sw
endif
if line =~# '\S\s*<%[-=]\=\s*\%(}\|end\).\{-\}\s*\%([-=]\=%>\|$\)'
let ind = ind - &sw
let ind = ind - sw
endif
if line =~# '\%({\|\<do\)\%(\s*|[^|]*|\)\=\s*[-=]\=%>'
let ind = ind + &sw
let ind = ind + sw
elseif line =~# '<%[-=]\=\s*\%(module\|class\|def\|if\|for\|while\|until\|else\|elsif\|case\|when\|unless\|begin\|ensure\|rescue\)\>.*%>'
let ind = ind + &sw
let ind = ind + sw
endif
if line =~# '^\s*<%[=#-]\=\s*$' && cline !~# '^\s*end\>'
let ind = ind + &sw
let ind = ind + sw
endif
if line !~# '^\s*<%' && line =~# '%>\s*$'
let ind = ind - &sw
if line !~# '^\s*<%' && line =~# '%>\s*$' && line !~# '^\s*end\>'
let ind = ind - sw
endif
if cline =~# '^\s*[-=]\=%>\s*$'
let ind = ind - &sw
let ind = ind - sw
endif
return ind
endfunction
let &cpo = s:cpo_sav
unlet! s:cpo_sav
" vim:set sw=2 sts=2 ts=8 noet:

View File

@@ -1,7 +1,7 @@
" Vim indent file
" Language: Fortran 2008 (and older: Fortran 2003, 95, 90, and 77)
" Version: 0.44
" Last Change: 2016 Jan. 26
" Version: 0.45
" Last Change: 2016 Aug. 29
" Maintainer: Ajit J. Thakkar <ajit@unb.ca>; <http://www2.unb.ca/~ajit/>
" Usage: For instructions, do :help fortran-indent from Vim
" Credits:
@@ -121,7 +121,7 @@ function FortranGetIndent(lnum)
let prefix='\(\(pure\|impure\|elemental\|recursive\)\s\+\)\{,2}'
let type='\(\(integer\|real\|double\s\+precision\|complex\|logical'
\.'\|character\|type\|class\)\s*\S*\s\+\)\='
if prevstat =~? '^\s*\(module\|contains\|program\)\>'
if prevstat =~? '^\s*\(module\|contains\/submodule\|program\)\>'
\ ||prevstat =~? '^\s*'.prefix.'subroutine\>'
\ ||prevstat =~? '^\s*'.prefix.type.'function\>'
\ ||prevstat =~? '^\s*'.type.prefix.'function\>'
@@ -129,14 +129,14 @@ function FortranGetIndent(lnum)
endif
if getline(v:lnum) =~? '^\s*contains\>'
\ ||getline(v:lnum)=~? '^\s*end\s*'
\ .'\(function\|subroutine\|module\|program\)\>'
\ .'\(function\|subroutine\|module\/submodule\|program\)\>'
let ind = ind - shiftwidth()
endif
endif
"Subtract a shiftwidth from else, else if, elsewhere, case, end if,
" end where, end select, end forall, end interface, end associate,
" end enum, and end type statements
" end enum, end type, end block and end type statements
if getline(v:lnum) =~? '^\s*\(\d\+\s\)\=\s*'
\. '\(else\|else\s*if\|else\s*where\|case\|'
\. 'end\s*\(if\|where\|select\|interface\|'
@@ -152,9 +152,6 @@ function FortranGetIndent(lnum)
if prevstat =~ '&\s*$' && prev2stat !~ '&\s*$'
let ind = ind + shiftwidth()
endif
if prevstat =~ '&\s*$' && prevstat =~ '\<else\s*if\>'
let ind = ind - shiftwidth()
endif
"Line after last continuation line
if prevstat !~ '&\s*$' && prev2stat =~ '&\s*$' && prevstat !~? '\<then\>'
let ind = ind - shiftwidth()

View File

@@ -1,7 +1,7 @@
" Vim indent file
" Language: git config file
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Last Change: 2013 May 30
" Last Change: 2016 Aug 29
if exists("b:did_indent")
finish
@@ -20,17 +20,18 @@ if exists("*GetGitconfigIndent")
endif
function! GetGitconfigIndent()
let sw = exists('*shiftwidth') ? shiftwidth() : &sw
let line = getline(prevnonblank(v:lnum-1))
let cline = getline(v:lnum)
if line =~ '\\\@<!\%(\\\\\)*\\$'
" odd number of slashes, in a line continuation
return 2 * &sw
return 2 * sw
elseif cline =~ '^\s*\['
return 0
elseif cline =~ '^\s*\a'
return &sw
return sw
elseif cline == '' && line =~ '^\['
return &sw
return sw
else
return -1
endif

View File

@@ -1,7 +1,7 @@
" Vim indent file
" Language: Haml
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Last Change: 2013 May 30
" Last Change: 2016 Aug 29
if exists("b:did_indent")
finish
@@ -37,10 +37,11 @@ function! GetHamlIndent()
let line = substitute(line,'^\s\+','','')
let indent = indent(lnum)
let cindent = indent(v:lnum)
let sw = exists('*shiftwidth') ? shiftwidth() : &sw
if cline =~# '\v^-\s*%(elsif|else|when)>'
let indent = cindent < indent ? cindent : indent - &sw
let indent = cindent < indent ? cindent : indent - sw
endif
let increase = indent + &sw
let increase = indent + sw
if indent == indent(lnum)
let indent = cindent <= indent ? -1 : increase
endif

View File

@@ -1,18 +1,194 @@
" Vim indent file
" Language: Javascript
" Maintainer: Going to be Darrick Wiebe
" Last Change: 2015 Jun 09
" Language: Javascript
" Maintainer: Chris Paul ( https://github.com/bounceme )
" URL: https://github.com/pangloss/vim-javascript
" Last Change: August 25, 2016
" Only load this indent file when no other was loaded.
if exists("b:did_indent")
finish
if exists('b:did_indent')
finish
endif
let b:did_indent = 1
" C indenting is not too bad.
setlocal cindent
" Now, set up our indentation expression and keys that trigger it.
setlocal indentexpr=GetJavascriptIndent()
setlocal nolisp noautoindent nosmartindent
setlocal indentkeys=0{,0},0),0],:,!^F,o,O,e
setlocal cinoptions+=j1,J1
setlocal cinkeys-=0#
setlocal cinkeys+=0]
let b:undo_indent = "setl cin<"
let b:undo_indent = 'setlocal indentexpr< smartindent< autoindent< indentkeys< cinoptions<'
" Only define the function once.
if exists('*GetJavascriptIndent')
finish
endif
let s:cpo_save = &cpo
set cpo&vim
" Get shiftwidth value
if exists('*shiftwidth')
function s:sw()
return shiftwidth()
endfunction
else
function s:sw()
return &sw
endfunction
endif
let s:line_pre = '^\s*\%(\%(\%(\/\*.\{-}\)\=\*\+\/\s*\)\=\)\@>'
let s:expr_case = s:line_pre . '\%(\%(case\>.\+\)\|default\)\s*:'
" Regex of syntax group names that are or delimit string or are comments.
let s:syng_strcom = '\%(s\%(tring\|pecial\)\|comment\|regex\|doc\|template\)'
" Regex of syntax group names that are strings or documentation.
let s:syng_comment = '\%(comment\|doc\)'
" Expression used to check whether we should skip a match with searchpair().
let s:skip_expr = "synIDattr(synID(line('.'),col('.'),0),'name') =~? '".s:syng_strcom."'"
if has('reltime')
function s:GetPair(start,end,flags,time)
return searchpair(a:start,'',a:end,a:flags,s:skip_expr,max([prevnonblank(v:lnum) - 2000,0]),a:time)
endfunction
else
function s:GetPair(start,end,flags,n)
return searchpair(a:start,'',a:end,a:flags,0,max([prevnonblank(v:lnum) - 2000,0]))
endfunction
endif
let s:line_term = '\s*\%(\%(\/\%(\%(\*.\{-}\*\/\)\|\%(\*\+\)\)\)\s*\)\=$'
" configurable regexes that define continuation lines, not including (, {, or [.
if !exists('g:javascript_opfirst')
let g:javascript_opfirst = '\%([<>,:?^%|*&]\|\/[^/*]\|\([-.+]\)\1\@!\|=>\@!\|in\%(stanceof\)\=\>\)'
endif
if !exists('g:javascript_continuation')
let g:javascript_continuation = '\%([<=,.?/*:^%|&]\|+\@<!+\|-\@<!-\|=\@<!>\|\<in\%(stanceof\)\=\)'
endif
let g:javascript_opfirst = s:line_pre . g:javascript_opfirst
let g:javascript_continuation .= s:line_term
function s:OneScope(lnum,text,add)
return a:text =~# '\%(\<else\|\<do\|=>\)' . s:line_term ? 'no b' :
\ ((a:add && a:text =~ s:line_pre . '$' && search('\%' . s:PrevCodeLine(a:lnum - 1) . 'l.)' . s:line_term)) ||
\ cursor(a:lnum, match(a:text, ')' . s:line_term)) > -1) &&
\ s:GetPair('(', ')', 'cbW', 100) > 0 && search('\C\l\+\_s*\%#','bW') &&
\ (a:add || ((expand('<cword>') !=# 'while' || !s:GetPair('\C\<do\>', '\C\<while\>','nbW',100)) &&
\ (expand('<cword>') !=# 'each' || search('\C\<for\_s\+\%#','nbW')))) ? expand('<cword>') : ''
endfunction
" https://github.com/sweet-js/sweet.js/wiki/design#give-lookbehind-to-the-reader
function s:IsBlock()
return getline(line('.'))[col('.')-1] == '{' && !search(
\ '\C\%(\<return\s*\|\%([-=~!<*+,.?^%|&\[(]\|=\@<!>\|\*\@<!\/\|\<\%(var\|const\|let\|import\|export\%(\_s\+default\)\=\|yield\|delete\|void\|t\%(ypeof\|hrow\)\|new\|in\%(stanceof\)\=\)\)\_s*\)\%#','bnW') &&
\ (!search(':\_s*\%#','bW') || (!s:GetPair('[({[]','[])}]','bW',200) || s:IsBlock()))
endfunction
" Auxiliary Functions {{{2
" Find line above 'lnum' that isn't empty, in a comment, or in a string.
function s:PrevCodeLine(lnum)
let l:lnum = prevnonblank(a:lnum)
while l:lnum
if synIDattr(synID(l:lnum,matchend(getline(l:lnum), '^\s*[^''"]'),0),'name') !~? s:syng_strcom
return l:lnum
endif
let l:lnum = prevnonblank(l:lnum - 1)
endwhile
endfunction
" Check if line 'lnum' has a balanced amount of parentheses.
function s:Balanced(lnum)
let [open_0,open_2,open_4] = [0,0,0]
let l:line = getline(a:lnum)
let pos = match(l:line, '[][(){}]', 0)
while pos != -1
if synIDattr(synID(a:lnum,pos + 1,0),'name') !~? s:syng_strcom
let idx = stridx('(){}[]', l:line[pos])
if idx % 2 == 0
let open_{idx} = open_{idx} + 1
else
let open_{idx - 1} = open_{idx - 1} - 1
endif
endif
let pos = match(l:line, '[][(){}]', pos + 1)
endwhile
return (!open_4 + !open_2 + !open_0) - 2
endfunction
" }}}
function GetJavascriptIndent()
if !exists('b:js_cache')
let b:js_cache = [0,0,0]
endif
" Get the current line.
let l:line = getline(v:lnum)
let syns = synIDattr(synID(v:lnum, 1, 0), 'name')
" start with strings,comments,etc.{{{2
if (l:line !~ '^[''"`]' && syns =~? '\%(string\|template\)') ||
\ (l:line !~ '^\s*[/*]' && syns =~? s:syng_comment)
return -1
endif
if l:line !~ '^\%(\/\*\|\s*\/\/\)' && syns =~? s:syng_comment
return cindent(v:lnum)
endif
let l:lnum = s:PrevCodeLine(v:lnum - 1)
if l:lnum == 0
return 0
endif
if (l:line =~# s:expr_case)
let cpo_switch = &cpo
set cpo+=%
let ind = cindent(v:lnum)
let &cpo = cpo_switch
return ind
endif
"}}}
" the containing paren, bracket, curly. Memoize, last lineNr either has the
" same scope or starts a new one, unless if it closed a scope.
call cursor(v:lnum,1)
if b:js_cache[0] >= l:lnum && b:js_cache[0] < v:lnum && b:js_cache[0] &&
\ (b:js_cache[0] > l:lnum || s:Balanced(l:lnum) > 0)
let num = b:js_cache[1]
elseif syns != '' && l:line[0] =~ '\s'
let pattern = syns =~? 'block' ? ['{','}'] : syns =~? 'jsparen' ? ['(',')'] :
\ syns =~? 'jsbracket'? ['\[','\]'] : ['[({[]','[])}]']
let num = s:GetPair(pattern[0],pattern[1],'bW',2000)
else
let num = s:GetPair('[({[]','[])}]','bW',2000)
endif
let b:js_cache = [v:lnum,num,line('.') == v:lnum ? b:js_cache[2] : col('.')]
if l:line =~ s:line_pre . '[])}]'
return indent(num)
endif
call cursor(b:js_cache[1],b:js_cache[2])
let swcase = getline(l:lnum) =~# s:expr_case
let pline = swcase ? getline(l:lnum) : substitute(getline(l:lnum), '\%(:\@<!\/\/.*\)$', '','')
let inb = num == 0 || num < l:lnum && ((l:line !~ s:line_pre . ',' && pline !~ ',' . s:line_term) || s:IsBlock())
let switch_offset = num == 0 || s:OneScope(num, strpart(getline(num),0,b:js_cache[2] - 1),1) !=# 'switch' ? 0 :
\ &cino !~ ':' || !has('float') ? s:sw() :
\ float2nr(str2float(matchstr(&cino,'.*:\zs[-0-9.]*')) * (&cino =~# '.*:[^,]*s' ? s:sw() : 1))
" most significant, find the indent amount
if inb && !swcase && ((l:line =~# g:javascript_opfirst || pline =~# g:javascript_continuation) ||
\ num < l:lnum && s:OneScope(l:lnum,pline,0) =~# '\<\%(for\|each\|if\|let\|no\sb\|w\%(hile\|ith\)\)\>' &&
\ l:line !~ s:line_pre . '{')
return (num > 0 ? indent(num) : -s:sw()) + (s:sw() * 2) + switch_offset
elseif num > 0
return indent(num) + s:sw() + switch_offset
endif
endfunction
let &cpo = s:cpo_save
unlet s:cpo_save

View File

@@ -1,7 +1,7 @@
" Vim indent file
" Language: Liquid
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Last Change: 2013 May 30
" Last Change: 2016 Aug 29
if exists('b:did_indent')
finish
@@ -54,9 +54,10 @@ function! GetLiquidIndent(...)
let line = substitute(line,'\C^\%(\s*{%\s*end\w*\s*%}\)\+','','')
let line .= matchstr(cline,'\C^\%(\s*{%\s*end\w*\s*%}\)\+')
let cline = substitute(cline,'\C^\%(\s*{%\s*end\w*\s*%}\)\+','','')
let ind += &sw * s:count(line,'{%\s*\%(if\|elsif\|else\|unless\|ifchanged\|case\|when\|for\|empty\|tablerow\|capture\)\>')
let ind -= &sw * s:count(line,'{%\s*end\%(if\|unless\|ifchanged\|case\|for\|tablerow\|capture\)\>')
let ind -= &sw * s:count(cline,'{%\s*\%(elsif\|else\|when\|empty\)\>')
let ind -= &sw * s:count(cline,'{%\s*end\w*$')
let sw = exists('*shiftwidth') ? shiftwidth() : &sw
let ind += sw * s:count(line,'{%\s*\%(if\|elsif\|else\|unless\|ifchanged\|case\|when\|for\|empty\|tablerow\|capture\)\>')
let ind -= sw * s:count(line,'{%\s*end\%(if\|unless\|ifchanged\|case\|for\|tablerow\|capture\)\>')
let ind -= sw * s:count(cline,'{%\s*\%(elsif\|else\|when\|empty\)\>')
let ind -= sw * s:count(cline,'{%\s*end\w*$')
return ind
endfunction

View File

@@ -2,7 +2,7 @@
" Language: Rnoweb
" Author: Jakson Alves de Aquino <jalvesaq@gmail.com>
" Homepage: https://github.com/jalvesaq/R-Vim-runtime
" Last Change: Tue Apr 07, 2015 04:38PM
" Last Change: Fri Apr 15, 2016 10:58PM
" Only load this indent file when no other was loaded.
@@ -10,7 +10,17 @@ if exists("b:did_indent")
finish
endif
runtime indent/tex.vim
let s:TeXIndent = function(substitute(&indentexpr, "()", "", ""))
function! s:NoTeXIndent()
return indent(line("."))
endfunction
if &indentexpr == "" || &indentexpr == "GetRnowebIndent()"
let s:TeXIndent = function("s:NoTeXIndent")
else
let s:TeXIndent = function(substitute(&indentexpr, "()", "", ""))
endif
unlet b:did_indent
runtime indent/r.vim
let s:RIndent = function(substitute(&indentexpr, "()", "", ""))

View File

@@ -13,12 +13,23 @@ if exists("b:did_indent")
endif
let b:did_indent = 1
if !exists('g:ruby_indent_access_modifier_style')
" Possible values: "normal", "indent", "outdent"
let g:ruby_indent_access_modifier_style = 'normal'
endif
if !exists('g:ruby_indent_block_style')
" Possible values: "expression", "do"
let g:ruby_indent_block_style = 'expression'
endif
setlocal nosmartindent
" Now, set up our indentation expression and keys that trigger it.
setlocal indentexpr=GetRubyIndent(v:lnum)
setlocal indentkeys=0{,0},0),0],!^F,o,O,e
setlocal indentkeys=0{,0},0),0],!^F,o,O,e,:,.
setlocal indentkeys+==end,=else,=elsif,=when,=ensure,=rescue,==begin,==end
setlocal indentkeys+==private,=protected,=public
" Only define the function once.
if exists("*GetRubyIndent")
@@ -34,7 +45,7 @@ set cpo&vim
" Regex of syntax group names that are or delimit strings/symbols or are comments.
let s:syng_strcom = '\<ruby\%(Regexp\|RegexpDelimiter\|RegexpEscape' .
\ '\|Symbol\|String\|StringDelimiter\|StringEscape\|ASCIICode' .
\ '\|Interpolation\|NoInterpolation\|Comment\|Documentation\)\>'
\ '\|Interpolation\|InterpolationDelimiter\|NoInterpolation\|Comment\|Documentation\)\>'
" Regex of syntax group names that are strings.
let s:syng_string =
@@ -49,9 +60,10 @@ let s:skip_expr =
\ "synIDattr(synID(line('.'),col('.'),1),'name') =~ '".s:syng_strcom."'"
" Regex used for words that, at the start of a line, add a level of indent.
let s:ruby_indent_keywords = '^\s*\zs\<\%(module\|class\|def\|if\|for' .
\ '\|while\|until\|else\|elsif\|case\|when\|unless\|begin\|ensure' .
\ '\|rescue\):\@!\>' .
let s:ruby_indent_keywords =
\ '^\s*\zs\<\%(module\|class\|if\|for' .
\ '\|while\|until\|else\|elsif\|case\|when\|unless\|begin\|ensure\|rescue' .
\ '\|\%(public\|protected\|private\)\=\s*def\):\@!\>' .
\ '\|\%([=,*/%+-]\|<<\|>>\|:\s\)\s*\zs' .
\ '\<\%(if\|for\|while\|until\|case\|unless\|begin\):\@!\>'
@@ -64,7 +76,8 @@ let s:ruby_deindent_keywords =
" TODO: the do here should be restricted somewhat (only at end of line)?
let s:end_start_regex =
\ '\C\%(^\s*\|[=,*/%+\-|;{]\|<<\|>>\|:\s\)\s*\zs' .
\ '\<\%(module\|class\|def\|if\|for\|while\|until\|case\|unless\|begin\):\@!\>' .
\ '\<\%(module\|class\|if\|for\|while\|until\|case\|unless\|begin' .
\ '\|\%(public\|protected\|private\)\=\s*def\):\@!\>' .
\ '\|\%(^\|[^.:@$]\)\@<=\<do:\@!\>'
" Regex that defines the middle-match for the 'end' keyword.
@@ -82,16 +95,35 @@ let s:end_skip_expr = s:skip_expr .
let s:non_bracket_continuation_regex = '\%([\\.,:*/%+]\|\<and\|\<or\|\%(<%\)\@<![=-]\|\W[|&?]\|||\|&&\)\s*\%(#.*\)\=$'
" Regex that defines continuation lines.
" TODO: this needs to deal with if ...: and so on
let s:continuation_regex =
\ '\%(%\@<![({[\\.,:*/%+]\|\<and\|\<or\|\%(<%\)\@<![=-]\|\W[|&?]\|||\|&&\)\s*\%(#.*\)\=$'
" Regex that defines continuable keywords
let s:continuable_regex =
\ '\C\%(^\s*\|[=,*/%+\-|;{]\|<<\|>>\|:\s\)\s*\zs' .
\ '\<\%(if\|for\|while\|until\|unless\):\@!\>'
" Regex that defines bracket continuations
let s:bracket_continuation_regex = '%\@<!\%([({[]\)\s*\%(#.*\)\=$'
" Regex that defines dot continuations
let s:dot_continuation_regex = '%\@<!\.\s*\%(#.*\)\=$'
" Regex that defines backslash continuations
let s:backslash_continuation_regex = '%\@<!\\\s*$'
" Regex that defines end of bracket continuation followed by another continuation
let s:bracket_switch_continuation_regex = '^\([^(]\+\zs).\+\)\+'.s:continuation_regex
" Regex that defines the first part of a splat pattern
let s:splat_regex = '[[,(]\s*\*\s*\%(#.*\)\=$'
" Regex that describes all indent access modifiers
let s:access_modifier_regex = '\C^\s*\%(public\|protected\|private\)\s*\%(#.*\)\=$'
" Regex that describes the indent access modifiers (excludes public)
let s:indent_access_modifier_regex = '\C^\s*\%(protected\|private\)\s*\%(#.*\)\=$'
" Regex that defines blocks.
"
" Note that there's a slight problem with this regex and s:continuation_regex.
@@ -102,10 +134,13 @@ let s:splat_regex = '[[,(]\s*\*\s*\%(#.*\)\=$'
" The reason is that the pipe matches a hanging "|" operator.
"
let s:block_regex =
\ '\%(\<do:\@!\>\|%\@<!{\)\s*\%(|\s*(*\s*\%([*@&]\=\h\w*,\=\s*\)\%(,\s*(*\s*[*@&]\=\h\w*\s*)*\s*\)*|\)\=\s*\%(#.*\)\=$'
\ '\%(\<do:\@!\>\|%\@<!{\)\s*\%(|[^|]*|\)\=\s*\%(#.*\)\=$'
let s:block_continuation_regex = '^\s*[^])}\t ].*'.s:block_regex
" Regex that describes a leading operator (only a method call's dot for now)
let s:leading_operator_regex = '^\s*[.]'
" 2. Auxiliary Functions {{{1
" ======================
@@ -165,7 +200,21 @@ function s:GetMSL(lnum)
" Otherwise, terminate search as we have found our MSL already.
let line = getline(lnum)
if s:Match(lnum, s:splat_regex)
if !s:Match(msl, s:backslash_continuation_regex) &&
\ s:Match(lnum, s:backslash_continuation_regex)
" If the current line doesn't end in a backslash, but the previous one
" does, look for that line's msl
"
" Example:
" foo = "bar" \
" "baz"
"
let msl = lnum
elseif s:Match(msl, s:leading_operator_regex)
" If the current line starts with a leading operator, keep its indent
" and keep looking for an MSL.
let msl = lnum
elseif s:Match(lnum, s:splat_regex)
" If the above line looks like the "*" of a splat, use the current one's
" indentation.
"
@@ -175,7 +224,7 @@ function s:GetMSL(lnum)
" something
"
return msl
elseif s:Match(line, s:non_bracket_continuation_regex) &&
elseif s:Match(lnum, s:non_bracket_continuation_regex) &&
\ s:Match(msl, s:non_bracket_continuation_regex)
" If the current line is a non-bracket continuation and so is the
" previous one, keep its indent and continue looking for an MSL.
@@ -186,6 +235,18 @@ function s:GetMSL(lnum)
" three
"
let msl = lnum
elseif s:Match(lnum, s:dot_continuation_regex) &&
\ (s:Match(msl, s:bracket_continuation_regex) || s:Match(msl, s:block_continuation_regex))
" If the current line is a bracket continuation or a block-starter, but
" the previous is a dot, keep going to see if the previous line is the
" start of another continuation.
"
" Example:
" parent.
" method_call {
" three
"
let msl = lnum
elseif s:Match(lnum, s:non_bracket_continuation_regex) &&
\ (s:Match(msl, s:bracket_continuation_regex) || s:Match(msl, s:block_continuation_regex))
" If the current line is a bracket continuation or a block-starter, but
@@ -299,18 +360,39 @@ function s:ExtraBrackets(lnum)
endfunction
function s:Match(lnum, regex)
let col = match(getline(a:lnum), '\C'.a:regex) + 1
return col > 0 && !s:IsInStringOrComment(a:lnum, col) ? col : 0
let line = getline(a:lnum)
let offset = match(line, '\C'.a:regex)
let col = offset + 1
while offset > -1 && s:IsInStringOrComment(a:lnum, col)
let offset = match(line, '\C'.a:regex, offset + 1)
let col = offset + 1
endwhile
if offset > -1
return col
else
return 0
endif
endfunction
function s:MatchLast(lnum, regex)
let line = getline(a:lnum)
let col = match(line, '.*\zs' . a:regex)
while col != -1 && s:IsInStringOrComment(a:lnum, col)
let line = strpart(line, 0, col)
let col = match(line, '.*' . a:regex)
endwhile
return col + 1
" Locates the containing class/module's definition line, ignoring nested classes
" along the way.
"
function! s:FindContainingClass()
let saved_position = getpos('.')
while searchpair(s:end_start_regex, s:end_middle_regex, s:end_end_regex, 'bW',
\ s:end_skip_expr) > 0
if expand('<cword>') =~# '\<class\|module\>'
let found_lnum = line('.')
call setpos('.', saved_position)
return found_lnum
endif
endif
call setpos('.', saved_position)
return 0
endfunction
" 3. GetRubyIndent Function {{{1
@@ -320,6 +402,13 @@ function GetRubyIndent(...)
" 3.1. Setup {{{2
" ----------
" The value of a single shift-width
if exists('*shiftwidth')
let sw = shiftwidth()
else
let sw = &sw
endif
" For the current line, use the first argument if given, else v:lnum
let clnum = a:0 ? a:1 : v:lnum
@@ -333,6 +422,24 @@ function GetRubyIndent(...)
let line = getline(clnum)
let ind = -1
" If this line is an access modifier keyword, align according to the closest
" class declaration.
if g:ruby_indent_access_modifier_style == 'indent'
if s:Match(clnum, s:access_modifier_regex)
let class_line = s:FindContainingClass()
if class_line > 0
return indent(class_line) + sw
endif
endif
elseif g:ruby_indent_access_modifier_style == 'outdent'
if s:Match(clnum, s:access_modifier_regex)
let class_line = s:FindContainingClass()
if class_line > 0
return indent(class_line)
endif
endif
endif
" If we got a closing bracket on an empty line, find its match and indent
" according to it. For parentheses we indent to its column - 1, for the
" others we indent to the containing line's MSL's level. Return -1 if fail.
@@ -343,7 +450,9 @@ function GetRubyIndent(...)
if searchpair(escape(bs[0], '\['), '', bs[1], 'bW', s:skip_expr) > 0
if line[col-1]==')' && col('.') != col('$') - 1
let ind = virtcol('.') - 1
else
elseif g:ruby_indent_block_style == 'do'
let ind = indent(line('.'))
else " g:ruby_indent_block_style == 'expression'
let ind = indent(s:GetMSL(line('.')))
endif
endif
@@ -366,10 +475,17 @@ function GetRubyIndent(...)
if strpart(line, 0, col('.') - 1) =~ '=\s*$' &&
\ strpart(line, col('.') - 1, 2) !~ 'do'
" assignment to case/begin/etc, on the same line, hanging indent
let ind = virtcol('.') - 1
elseif g:ruby_indent_block_style == 'do'
" align to line of the "do", not to the MSL
let ind = indent(line('.'))
elseif getline(msl) =~ '=\s*\(#.*\)\=$'
" in the case of assignment to the MSL, align to the starting line,
" not to the MSL
let ind = indent(line('.'))
else
" align to the MSL
let ind = indent(msl)
endif
endif
@@ -389,6 +505,11 @@ function GetRubyIndent(...)
return 0
endif
" If the current line starts with a leading operator, add a level of indent.
if s:Match(clnum, s:leading_operator_regex)
return indent(s:GetMSL(clnum)) + sw
endif
" 3.3. Work on the previous line. {{{2
" -------------------------------
@@ -409,14 +530,50 @@ function GetRubyIndent(...)
let line = getline(lnum)
let ind = indent(lnum)
if g:ruby_indent_access_modifier_style == 'indent'
" If the previous line was a private/protected keyword, add a
" level of indent.
if s:Match(lnum, s:indent_access_modifier_regex)
return indent(lnum) + sw
endif
elseif g:ruby_indent_access_modifier_style == 'outdent'
" If the previous line was a private/protected/public keyword, add
" a level of indent, since the keyword has been out-dented.
if s:Match(lnum, s:access_modifier_regex)
return indent(lnum) + sw
endif
endif
if s:Match(lnum, s:continuable_regex) && s:Match(lnum, s:continuation_regex)
return indent(s:GetMSL(lnum)) + sw + sw
endif
" If the previous line ended with a block opening, add a level of indent.
if s:Match(lnum, s:block_regex)
return indent(s:GetMSL(lnum)) + &sw
let msl = s:GetMSL(lnum)
if g:ruby_indent_block_style == 'do'
" don't align to the msl, align to the "do"
let ind = indent(lnum) + sw
elseif getline(msl) =~ '=\s*\(#.*\)\=$'
" in the case of assignment to the msl, align to the starting line,
" not to the msl
let ind = indent(lnum) + sw
else
let ind = indent(msl) + sw
endif
return ind
endif
" If the previous line started with a leading operator, use its MSL's level
" of indent
if s:Match(lnum, s:leading_operator_regex)
return indent(s:GetMSL(lnum))
endif
" If the previous line ended with the "*" of a splat, add a level of indent
if line =~ s:splat_regex
return indent(lnum) + &sw
return indent(lnum) + sw
endif
" If the previous line contained unclosed opening brackets and we are still
@@ -431,22 +588,22 @@ function GetRubyIndent(...)
if opening.pos != -1
if opening.type == '(' && searchpair('(', '', ')', 'bW', s:skip_expr) > 0
if col('.') + 1 == col('$')
return ind + &sw
return ind + sw
else
return virtcol('.')
endif
else
let nonspace = matchend(line, '\S', opening.pos + 1) - 1
return nonspace > 0 ? nonspace : ind + &sw
return nonspace > 0 ? nonspace : ind + sw
endif
elseif closing.pos != -1
call cursor(lnum, closing.pos + 1)
normal! %
if s:Match(line('.'), s:ruby_indent_keywords)
return indent('.') + &sw
return indent('.') + sw
else
return indent('.')
return indent(s:GetMSL(line('.')))
endif
else
call cursor(clnum, vcol)
@@ -473,7 +630,7 @@ function GetRubyIndent(...)
let col = s:Match(lnum, s:ruby_indent_keywords)
if col > 0
call cursor(lnum, col)
let ind = virtcol('.') - 1 + &sw
let ind = virtcol('.') - 1 + sw
" TODO: make this better (we need to count them) (or, if a searchpair
" fails, we know that something is lacking an end and thus we indent a
" level
@@ -490,10 +647,14 @@ function GetRubyIndent(...)
let p_lnum = lnum
let lnum = s:GetMSL(lnum)
" If the previous line wasn't a MSL and is continuation return its indent.
" TODO: the || s:IsInString() thing worries me a bit.
" If the previous line wasn't a MSL.
if p_lnum != lnum
if s:Match(p_lnum, s:non_bracket_continuation_regex) || s:IsInString(p_lnum,strlen(line))
" If previous line ends bracket and begins non-bracket continuation decrease indent by 1.
if s:Match(p_lnum, s:bracket_switch_continuation_regex)
return ind - 1
" If previous line is a continuation return its indent.
" TODO: the || s:IsInString() thing worries me a bit.
elseif s:Match(p_lnum, s:non_bracket_continuation_regex) || s:IsInString(p_lnum,strlen(line))
return ind
endif
endif
@@ -506,9 +667,9 @@ function GetRubyIndent(...)
" TODO: this does not take into account contrived things such as
" module Foo; class Bar; end
if s:Match(lnum, s:ruby_indent_keywords)
let ind = msl_ind + &sw
let ind = msl_ind + sw
if s:Match(lnum, s:end_end_regex)
let ind = ind - &sw
let ind = ind - sw
endif
return ind
endif
@@ -517,7 +678,7 @@ function GetRubyIndent(...)
" closing bracket, indent one extra level.
if s:Match(lnum, s:non_bracket_continuation_regex) && !s:Match(lnum, '^\s*\([\])}]\|end\)')
if lnum == p_lnum
let ind = msl_ind + &sw
let ind = msl_ind + sw
else
let ind = msl_ind
endif

View File

@@ -1,7 +1,7 @@
" Vim indent file
" Language: Sass
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Last Change: 2013 May 30
" Last Change: 2016 Aug 29
if exists("b:did_indent")
finish
@@ -29,9 +29,7 @@ function! GetSassIndent()
let indent = indent(lnum)
let cindent = indent(v:lnum)
if line !~ s:property && line !~ s:extend && cline =~ s:property
return indent + &sw
"elseif line =~ s:property && cline !~ s:property
"return indent - &sw
return indent + (exists('*shiftwidth') ? shiftwidth() : &sw)
else
return -1
endif

609
runtime/indent/scala.vim Normal file
View File

@@ -0,0 +1,609 @@
" Vim indent file
" Language: Scala (http://scala-lang.org/)
" Original Author: Stefan Matthias Aust
" Modifications By: Derek Wyatt
" URL: https://github.com/derekwyatt/vim-scala
" Last Change: 2016 Aug 26
if exists("b:did_indent")
finish
endif
let b:did_indent = 1
setlocal autoindent
setlocal indentexpr=GetScalaIndent()
setlocal indentkeys=0{,0},0),!^F,<>>,o,O,e,=case,<CR>
if exists("*GetScalaIndent")
finish
endif
let s:keepcpo= &cpo
set cpo&vim
let s:defMatcher = '\%(\%(private\|protected\)\%(\[[^\]]*\]\)\?\s\+\|abstract\s\+\|override\s\+\)*\<def\>'
let s:funcNameMatcher = '\w\+'
let s:typeSpecMatcher = '\%(\s*\[\_[^\]]*\]\)'
let s:defArgMatcher = '\%((\_.\{-})\)'
let s:returnTypeMatcher = '\%(:\s*\w\+' . s:typeSpecMatcher . '\?\)'
let g:fullDefMatcher = '^\s*' . s:defMatcher . '\s\+' . s:funcNameMatcher . '\s*' . s:typeSpecMatcher . '\?\s*' . s:defArgMatcher . '\?\s*' . s:returnTypeMatcher . '\?\s*[={]'
function! scala#ConditionalConfirm(msg)
if 0
call confirm(a:msg)
endif
endfunction
function! scala#GetLine(lnum)
let line = substitute(getline(a:lnum), '//.*$', '', '')
let line = substitute(line, '"\(.\|\\"\)\{-}"', '""', 'g')
return line
endfunction
function! scala#CountBrackets(line, openBracket, closedBracket)
let line = substitute(a:line, '"\(.\|\\"\)\{-}"', '', 'g')
let open = substitute(line, '[^' . a:openBracket . ']', '', 'g')
let close = substitute(line, '[^' . a:closedBracket . ']', '', 'g')
return strlen(open) - strlen(close)
endfunction
function! scala#CountParens(line)
return scala#CountBrackets(a:line, '(', ')')
endfunction
function! scala#CountCurlies(line)
return scala#CountBrackets(a:line, '{', '}')
endfunction
function! scala#LineEndsInIncomplete(line)
if a:line =~ '[.,]\s*$'
return 1
else
return 0
endif
endfunction
function! scala#LineIsAClosingXML(line)
if a:line =~ '^\s*</\w'
return 1
else
return 0
endif
endfunction
function! scala#LineCompletesXML(lnum, line)
let savedpos = getpos('.')
call setpos('.', [savedpos[0], a:lnum, 0, savedpos[3]])
let tag = substitute(a:line, '^.*</\([^>]*\)>.*$', '\1', '')
let [lineNum, colnum] = searchpairpos('<' . tag . '>', '', '</' . tag . '>', 'Wbn')
call setpos('.', savedpos)
let pline = scala#GetLine(prevnonblank(lineNum - 1))
if pline =~ '=\s*$'
return 1
else
return 0
endif
endfunction
function! scala#IsParentCase()
let savedpos = getpos('.')
call setpos('.', [savedpos[0], savedpos[1], 0, savedpos[3]])
let [l, c] = searchpos('^\s*\%(' . s:defMatcher . '\|\%(\<case\>\)\)', 'bnW')
let retvalue = -1
if l != 0 && search('\%' . l . 'l\s*\<case\>', 'bnW')
let retvalue = l
endif
call setpos('.', savedpos)
return retvalue
endfunction
function! scala#CurlyMatcher()
let matchline = scala#GetLineThatMatchesBracket('{', '}')
if scala#CountParens(scala#GetLine(matchline)) < 0
let savedpos = getpos('.')
call setpos('.', [savedpos[0], matchline, 9999, savedpos[3]])
call searchpos('{', 'Wbc')
call searchpos(')', 'Wb')
let [lnum, colnum] = searchpairpos('(', '', ')', 'Wbn')
call setpos('.', savedpos)
let line = scala#GetLine(lnum)
if line =~ '^\s*' . s:defMatcher
return lnum
else
return matchline
endif
else
return matchline
endif
endfunction
function! scala#GetLineAndColumnThatMatchesCurly()
return scala#GetLineAndColumnThatMatchesBracket('{', '}')
endfunction
function! scala#GetLineAndColumnThatMatchesParen()
return scala#GetLineAndColumnThatMatchesBracket('(', ')')
endfunction
function! scala#GetLineAndColumnThatMatchesBracket(openBracket, closedBracket)
let savedpos = getpos('.')
let curline = scala#GetLine(line('.'))
if curline =~ a:closedBracket . '.*' . a:openBracket . '.*' . a:closedBracket
call setpos('.', [savedpos[0], savedpos[1], 0, savedpos[3]])
call searchpos(a:closedBracket . '\ze[^' . a:closedBracket . a:openBracket . ']*' . a:openBracket, 'W')
else
call setpos('.', [savedpos[0], savedpos[1], 9999, savedpos[3]])
call searchpos(a:closedBracket, 'Wbc')
endif
let [lnum, colnum] = searchpairpos(a:openBracket, '', a:closedBracket, 'Wbn')
call setpos('.', savedpos)
return [lnum, colnum]
endfunction
function! scala#GetLineThatMatchesCurly()
return scala#GetLineThatMatchesBracket('{', '}')
endfunction
function! scala#GetLineThatMatchesParen()
return scala#GetLineThatMatchesBracket('(', ')')
endfunction
function! scala#GetLineThatMatchesBracket(openBracket, closedBracket)
let [lnum, colnum] = scala#GetLineAndColumnThatMatchesBracket(a:openBracket, a:closedBracket)
return lnum
endfunction
function! scala#NumberOfBraceGroups(line)
let line = substitute(a:line, '[^()]', '', 'g')
if strlen(line) == 0
return 0
endif
let line = substitute(line, '^)*', '', 'g')
if strlen(line) == 0
return 0
endif
let line = substitute(line, '^(', '', 'g')
if strlen(line) == 0
return 0
endif
let c = 1
let counter = 0
let groupCount = 0
while counter < strlen(line)
let char = strpart(line, counter, 1)
if char == '('
let c = c + 1
elseif char == ')'
let c = c - 1
endif
if c == 0
let groupCount = groupCount + 1
endif
let counter = counter + 1
endwhile
return groupCount
endfunction
function! scala#MatchesIncompleteDefValr(line)
if a:line =~ '^\s*\%(' . s:defMatcher . '\|\<va[lr]\>\).*[=({]\s*$'
return 1
else
return 0
endif
endfunction
function! scala#LineIsCompleteIf(line)
if scala#CountBrackets(a:line, '{', '}') == 0 &&
\ scala#CountBrackets(a:line, '(', ')') == 0 &&
\ a:line =~ '^\s*\<if\>\s*([^)]*)\s*\S.*$'
return 1
else
return 0
endif
endfunction
function! scala#LineCompletesIfElse(lnum, line)
if a:line =~ '^\s*\%(\<if\>\|\%(}\s*\)\?\<else\>\)'
return 0
endif
let result = search('^\%(\s*\<if\>\s*(.*).*\n\|\s*\<if\>\s*(.*)\s*\n.*\n\)\%(\s*\<else\>\s*\<if\>\s*(.*)\s*\n.*\n\)*\%(\s*\<else\>\s*\n\|\s*\<else\>[^{]*\n\)\?\%' . a:lnum . 'l', 'Wbn')
if result != 0 && scala#GetLine(prevnonblank(a:lnum - 1)) !~ '{\s*$'
return result
endif
return 0
endfunction
function! scala#GetPrevCodeLine(lnum)
" This needs to skip comment lines
return prevnonblank(a:lnum - 1)
endfunction
function! scala#InvertBracketType(openBracket, closedBracket)
if a:openBracket == '('
return [ '{', '}' ]
else
return [ '(', ')' ]
endif
endfunction
function! scala#Testhelper(lnum, line, openBracket, closedBracket, iteration)
let bracketCount = scala#CountBrackets(a:line, a:openBracket, a:closedBracket)
" There are more '}' braces than '{' on this line so it may be completing the function definition
if bracketCount < 0
let [matchedLNum, matchedColNum] = scala#GetLineAndColumnThatMatchesBracket(a:openBracket, a:closedBracket)
if matchedLNum == a:lnum
return -1
endif
let matchedLine = scala#GetLine(matchedLNum)
if ! scala#MatchesIncompleteDefValr(matchedLine)
let bracketLine = substitute(substitute(matchedLine, '\%' . matchedColNum . 'c.*$', '', ''), '[^{}()]', '', 'g')
if bracketLine =~ '}$'
return scala#Testhelper(matchedLNum, matchedLine, '{', '}', a:iteration + 1)
elseif bracketLine =~ ')$'
return scala#Testhelper(matchedLNum, matchedLine, '(', ')', a:iteration + 1)
else
let prevCodeLNum = scala#GetPrevCodeLine(matchedLNum)
if scala#MatchesIncompleteDefValr(scala#GetLine(prevCodeLNum))
return prevCodeLNum
else
return -1
endif
endif
else
" return indent value instead
return matchedLNum
endif
" There's an equal number of '{' and '}' on this line so it may be a single line function definition
elseif bracketCount == 0
if a:iteration == 0
let otherBracketType = scala#InvertBracketType(a:openBracket, a:closedBracket)
return scala#Testhelper(a:lnum, a:line, otherBracketType[0], otherBracketType[1], a:iteration + 1)
else
let prevCodeLNum = scala#GetPrevCodeLine(a:lnum)
let prevCodeLine = scala#GetLine(prevCodeLNum)
if scala#MatchesIncompleteDefValr(prevCodeLine) && prevCodeLine !~ '{\s*$'
return prevCodeLNum
else
let possibleIfElse = scala#LineCompletesIfElse(a:lnum, a:line)
if possibleIfElse != 0
let defValrLine = prevnonblank(possibleIfElse - 1)
let possibleDefValr = scala#GetLine(defValrLine)
if scala#MatchesIncompleteDefValr(possibleDefValr) && possibleDefValr =~ '^.*=\s*$'
return possibleDefValr
else
return -1
endif
else
return -1
endif
endif
endif
else
return -1
endif
endfunction
function! scala#Test(lnum, line, openBracket, closedBracket)
return scala#Testhelper(a:lnum, a:line, a:openBracket, a:closedBracket, 0)
endfunction
function! scala#LineCompletesDefValr(lnum, line)
let bracketCount = scala#CountBrackets(a:line, '{', '}')
if bracketCount < 0
let matchedBracket = scala#GetLineThatMatchesBracket('{', '}')
if ! scala#MatchesIncompleteDefValr(scala#GetLine(matchedBracket))
let possibleDefValr = scala#GetLine(prevnonblank(matchedBracket - 1))
if matchedBracket != -1 && scala#MatchesIncompleteDefValr(possibleDefValr)
return 1
else
return 0
endif
else
return 0
endif
elseif bracketCount == 0
let bracketCount = scala#CountBrackets(a:line, '(', ')')
if bracketCount < 0
let matchedBracket = scala#GetLineThatMatchesBracket('(', ')')
if ! scala#MatchesIncompleteDefValr(scala#GetLine(matchedBracket))
let possibleDefValr = scala#GetLine(prevnonblank(matchedBracket - 1))
if matchedBracket != -1 && scala#MatchesIncompleteDefValr(possibleDefValr)
return 1
else
return 0
endif
else
return 0
endif
elseif bracketCount == 0
let possibleDefValr = scala#GetLine(prevnonblank(a:lnum - 1))
if scala#MatchesIncompleteDefValr(possibleDefValr) && possibleDefValr =~ '^.*=\s*$'
return 1
else
let possibleIfElse = scala#LineCompletesIfElse(a:lnum, a:line)
if possibleIfElse != 0
let possibleDefValr = scala#GetLine(prevnonblank(possibleIfElse - 1))
if scala#MatchesIncompleteDefValr(possibleDefValr) && possibleDefValr =~ '^.*=\s*$'
return 2
else
return 0
endif
else
return 0
endif
endif
else
return 0
endif
endif
endfunction
function! scala#SpecificLineCompletesBrackets(lnum, openBracket, closedBracket)
let savedpos = getpos('.')
call setpos('.', [savedpos[0], a:lnum, 9999, savedpos[3]])
let retv = scala#LineCompletesBrackets(a:openBracket, a:closedBracket)
call setpos('.', savedpos)
return retv
endfunction
function! scala#LineCompletesBrackets(openBracket, closedBracket)
let savedpos = getpos('.')
let offline = 0
while offline == 0
let [lnum, colnum] = searchpos(a:closedBracket, 'Wb')
let [lnumA, colnumA] = searchpairpos(a:openBracket, '', a:closedBracket, 'Wbn')
if lnum != lnumA
let [lnumB, colnumB] = searchpairpos(a:openBracket, '', a:closedBracket, 'Wbnr')
let offline = 1
endif
endwhile
call setpos('.', savedpos)
if lnumA == lnumB && colnumA == colnumB
return lnumA
else
return -1
endif
endfunction
function! GetScalaIndent()
" Find a non-blank line above the current line.
let prevlnum = prevnonblank(v:lnum - 1)
" Hit the start of the file, use zero indent.
if prevlnum == 0
return 0
endif
let ind = indent(prevlnum)
let originalIndentValue = ind
let prevline = scala#GetLine(prevlnum)
let curlnum = v:lnum
let curline = scala#GetLine(curlnum)
if get(g:, 'scala_scaladoc_indent', 0)
let star_indent = 2
else
let star_indent = 1
end
if prevline =~ '^\s*/\*\*'
if prevline =~ '\*/\s*$'
return ind
else
return ind + star_indent
endif
endif
if curline =~ '^\s*\*'
return cindent(curlnum)
endif
" If this line starts with a { then make it indent the same as the previous line
if curline =~ '^\s*{'
call scala#ConditionalConfirm("1")
" Unless, of course, the previous one is a { as well
if prevline !~ '^\s*{'
call scala#ConditionalConfirm("2")
return indent(prevlnum)
endif
endif
" '.' continuations
if curline =~ '^\s*\.'
if prevline =~ '^\s*\.'
return ind
else
return ind + &shiftwidth
endif
endif
" Indent html literals
if prevline !~ '/>\s*$' && prevline =~ '^\s*<[a-zA-Z][^>]*>\s*$'
call scala#ConditionalConfirm("3")
return ind + &shiftwidth
endif
" assumes curly braces around try-block
if curline =~ '^\s*}\s*\<catch\>'
return ind - &shiftwidth
elseif curline =~ '^\s*\<catch\>'
return ind
endif
" Add a 'shiftwidth' after lines that start a block
" If 'if', 'for' or 'while' end with ), this is a one-line block
" If 'val', 'var', 'def' end with =, this is a one-line block
if (prevline =~ '^\s*\<\%(\%(}\?\s*else\s\+\)\?if\|for\|while\)\>.*[)=]\s*$' && scala#NumberOfBraceGroups(prevline) <= 1)
\ || prevline =~ '^\s*' . s:defMatcher . '.*=\s*$'
\ || prevline =~ '^\s*\<va[lr]\>.*[=]\s*$'
\ || prevline =~ '^\s*\%(}\s*\)\?\<else\>\s*$'
\ || prevline =~ '=\s*$'
call scala#ConditionalConfirm("4")
let ind = ind + &shiftwidth
elseif prevline =~ '^\s*\<\%(}\?\s*else\s\+\)\?if\>' && curline =~ '^\s*}\?\s*\<else\>'
return ind
endif
let lineCompletedBrackets = 0
let bracketCount = scala#CountBrackets(prevline, '{', '}')
if bracketCount > 0 || prevline =~ '.*{\s*$'
call scala#ConditionalConfirm("5b")
let ind = ind + &shiftwidth
elseif bracketCount < 0
call scala#ConditionalConfirm("6b")
" if the closing brace actually completes the braces entirely, then we
" have to indent to line that started the whole thing
let completeLine = scala#LineCompletesBrackets('{', '}')
if completeLine != -1
call scala#ConditionalConfirm("8b")
let prevCompleteLine = scala#GetLine(prevnonblank(completeLine - 1))
" However, what actually started this part looks like it was a function
" definition, so we need to indent to that line instead. This is
" actually pretty weak at the moment.
if prevCompleteLine =~ '=\s*$'
call scala#ConditionalConfirm("9b")
let ind = indent(prevnonblank(completeLine - 1))
else
call scala#ConditionalConfirm("10b")
let ind = indent(completeLine)
endif
else
let lineCompletedBrackets = 1
endif
endif
if ind == originalIndentValue
let bracketCount = scala#CountBrackets(prevline, '(', ')')
if bracketCount > 0 || prevline =~ '.*(\s*$'
call scala#ConditionalConfirm("5a")
let ind = ind + &shiftwidth
elseif bracketCount < 0
call scala#ConditionalConfirm("6a")
" if the closing brace actually completes the braces entirely, then we
" have to indent to line that started the whole thing
let completeLine = scala#LineCompletesBrackets('(', ')')
if completeLine != -1 && prevline !~ '^.*{\s*$'
call scala#ConditionalConfirm("8a")
let prevCompleteLine = scala#GetLine(prevnonblank(completeLine - 1))
" However, what actually started this part looks like it was a function
" definition, so we need to indent to that line instead. This is
" actually pretty weak at the moment.
if prevCompleteLine =~ '=\s*$'
call scala#ConditionalConfirm("9a")
let ind = indent(prevnonblank(completeLine - 1))
else
call scala#ConditionalConfirm("10a")
let ind = indent(completeLine)
endif
else
" This is the only part that's different from from the '{', '}' one below
" Yup... some refactoring is necessary at some point.
let ind = ind + (bracketCount * &shiftwidth)
let lineCompletedBrackets = 1
endif
endif
endif
if curline =~ '^\s*}\?\s*\<else\>\%(\s\+\<if\>\s*(.*)\)\?\s*{\?\s*$' &&
\ ! scala#LineIsCompleteIf(prevline) &&
\ prevline !~ '^.*}\s*$'
let ind = ind - &shiftwidth
endif
" Subtract a 'shiftwidth' on '}' or html
let curCurlyCount = scala#CountCurlies(curline)
if curCurlyCount < 0
call scala#ConditionalConfirm("14a")
let matchline = scala#CurlyMatcher()
return indent(matchline)
elseif curline =~ '^\s*</[a-zA-Z][^>]*>'
call scala#ConditionalConfirm("14c")
return ind - &shiftwidth
endif
let prevParenCount = scala#CountParens(prevline)
if prevline =~ '^\s*\<for\>.*$' && prevParenCount > 0
call scala#ConditionalConfirm("15")
let ind = indent(prevlnum) + 5
endif
let prevCurlyCount = scala#CountCurlies(prevline)
if prevCurlyCount == 0 && prevline =~ '^.*\%(=>\|⇒\)\s*$' && prevline !~ '^\s*this\s*:.*\%(=>\|⇒\)\s*$' && curline !~ '^\s*\<case\>'
call scala#ConditionalConfirm("16")
let ind = ind + &shiftwidth
endif
if ind == originalIndentValue && curline =~ '^\s*\<case\>'
call scala#ConditionalConfirm("17")
let parentCase = scala#IsParentCase()
if parentCase != -1
call scala#ConditionalConfirm("17a")
return indent(parentCase)
endif
endif
if prevline =~ '^\s*\*/'
\ || prevline =~ '*/\s*$'
call scala#ConditionalConfirm("18")
let ind = ind - star_indent
endif
if scala#LineEndsInIncomplete(prevline)
call scala#ConditionalConfirm("19")
return ind
endif
if scala#LineIsAClosingXML(prevline)
if scala#LineCompletesXML(prevlnum, prevline)
call scala#ConditionalConfirm("20a")
return ind - &shiftwidth
else
call scala#ConditionalConfirm("20b")
return ind
endif
endif
if ind == originalIndentValue
"let indentMultiplier = scala#LineCompletesDefValr(prevlnum, prevline)
"if indentMultiplier != 0
" call scala#ConditionalConfirm("19a")
" let ind = ind - (indentMultiplier * &shiftwidth)
let defValrLine = scala#Test(prevlnum, prevline, '{', '}')
if defValrLine != -1
call scala#ConditionalConfirm("21a")
let ind = indent(defValrLine)
elseif lineCompletedBrackets == 0
call scala#ConditionalConfirm("21b")
if scala#GetLine(prevnonblank(prevlnum - 1)) =~ '^.*\<else\>\s*\%(//.*\)\?$'
call scala#ConditionalConfirm("21c")
let ind = ind - &shiftwidth
elseif scala#LineCompletesIfElse(prevlnum, prevline)
call scala#ConditionalConfirm("21d")
let ind = ind - &shiftwidth
elseif scala#CountParens(curline) < 0 && curline =~ '^\s*)' && scala#GetLine(scala#GetLineThatMatchesBracket('(', ')')) =~ '.*(\s*$'
" Handles situations that look like this:
"
" val a = func(
" 10
" )
"
" or
"
" val a = func(
" 10
" ).somethingHere()
call scala#ConditionalConfirm("21e")
let ind = ind - &shiftwidth
endif
endif
endif
call scala#ConditionalConfirm("returning " . ind)
return ind
endfunction
let &cpo = s:keepcpo
unlet s:keepcpo
" vim:set sw=2 sts=2 ts=8 et:
" vim600:fdm=marker fdl=1 fdc=0:

View File

@@ -1,9 +1,9 @@
" Vim indent file
" Language: Tera Term Language (TTL)
" Based on Tera Term Version 4.86
" Based on Tera Term Version 4.92
" Maintainer: Ken Takata
" URL: https://github.com/k-takata/vim-teraterm
" Last Change: 2015 Jun 4
" Last Change: 2016 Aug 17
" Filenames: *.ttl
" License: VIM License
@@ -25,9 +25,7 @@ endif
" The shiftwidth() function is relatively new.
" Don't require it to exist.
if exists('*shiftwidth')
function s:sw() abort
return shiftwidth()
endfunction
let s:sw = function('shiftwidth')
else
function s:sw() abort
return &shiftwidth
@@ -48,7 +46,7 @@ function! GetTeraTermIndent(lnum)
let l:ind = l:previ
if l:prevl =~ '^\s*if\>.*\<then\s*$'
if l:prevl =~ '^\s*if\>.*\<then\>'
" previous line opened a block
let l:ind += s:sw()
endif

View File

@@ -37,7 +37,7 @@ function s:FindPrevLessIndentedLine(lnum, ...)
let curindent = a:0 ? a:1 : indent(a:lnum)
while prevlnum
\&& indent(prevlnum) >= curindent
\&& getline(prevlnum) !~# '^\s*#'
\&& getline(prevlnum) =~# '^\s*#'
let prevlnum = prevnonblank(prevlnum-1)
endwhile
return prevlnum
@@ -51,11 +51,33 @@ function s:FindPrevLEIndentedLineMatchingRegex(lnum, regex)
return plilnum
endfunction
let s:mapkeyregex='\v^\s*%(\''%([^'']|'''')*\'''.
\ '|\"%([^"\\]|\\.)*\"'.
\ '|%(%(\:\ )@!.)*)\:%(\ |$)'
let s:mapkeyregex='\v^\s*\#@!\S@=%(\''%([^'']|\''\'')*\'''.
\ '|\"%([^"\\]|\\.)*\"'.
\ '|%(%(\:\ )@!.)*)\:%(\ |$)'
let s:liststartregex='\v^\s*%(\-%(\ |$))'
let s:c_ns_anchor_char = '\v%([\n\r\uFEFF \t,[\]{}]@!\p)'
let s:c_ns_anchor_name = s:c_ns_anchor_char.'+'
let s:c_ns_anchor_property = '\v\&'.s:c_ns_anchor_name
let s:ns_word_char = '\v[[:alnum:]_\-]'
let s:ns_tag_char = '\v%(%\x\x|'.s:ns_word_char.'|[#/;?:@&=+$.~*''()])'
let s:c_named_tag_handle = '\v\!'.s:ns_word_char.'+\!'
let s:c_secondary_tag_handle = '\v\!\!'
let s:c_primary_tag_handle = '\v\!'
let s:c_tag_handle = '\v%('.s:c_named_tag_handle.
\ '|'.s:c_secondary_tag_handle.
\ '|'.s:c_primary_tag_handle.')'
let s:c_ns_shorthand_tag = '\v'.s:c_tag_handle . s:ns_tag_char.'+'
let s:c_non_specific_tag = '\v\!'
let s:ns_uri_char = '\v%(%\x\x|'.s:ns_word_char.'\v|[#/;?:@&=+$,.!~*''()[\]])'
let s:c_verbatim_tag = '\v\!\<'.s:ns_uri_char.'+\>'
let s:c_ns_tag_property = '\v'.s:c_verbatim_tag.
\ '\v|'.s:c_ns_shorthand_tag.
\ '\v|'.s:c_non_specific_tag
let s:block_scalar_header = '\v[|>]%([+-]?[1-9]|[1-9]?[+-])?'
function GetYAMLIndent(lnum)
if a:lnum == 1 || !prevnonblank(a:lnum-1)
return 0
@@ -127,7 +149,10 @@ function GetYAMLIndent(lnum)
" - List with
" multiline scalar
return previndent+2
elseif prevline =~# s:mapkeyregex
elseif prevline =~# s:mapkeyregex . '\v\s*%(%('.s:c_ns_tag_property.
\ '\v|'.s:c_ns_anchor_property.
\ '\v|'.s:block_scalar_header.
\ '\v)%(\s+|\s*%(\#.*)?$))*'
" Mapping with: value
" that is multiline scalar
return previndent+s:shiftwidth()

View File

@@ -1,5 +1,5 @@
" Vim Keymap file for Hanyu Pinyin tone marks through numbers.
" Maintainer: Fredrik Roubert <roubert@df.lth.se>
" Maintainer: Fredrik Roubert <fredrik@roubert.name>
" Last Changed: February 15, 2004
" All characters are given literally.

View File

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

View File

@@ -1,7 +1,7 @@
" These commands create the option window.
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2016 Apr 30
" Last Change: 2016 Aug 21
" If there already is an option window, jump to that one.
if bufwinnr("option-window") > 0
@@ -1203,8 +1203,8 @@ endif
if has("langmap")
call append("$", "langmap\tlist of characters that are translated in Normal mode")
call <SID>OptionG("lmap", &lmap)
call append("$", "langnoremap\tdon't apply 'langmap' to mapped characters")
call <SID>BinOptionG("lnr", &lnr)
call append("$", "langremap\tapply 'langmap' to mapped characters")
call <SID>BinOptionG("lrm", &lrm)
endif
if has("xim")
call append("$", "imdisable\twhen set never use IM; overrules following IM options")
@@ -1307,6 +1307,11 @@ call append("$", "\t(local to buffer)")
call <SID>BinOptionL("bl")
call append("$", "debug\tset to \"msg\" to see all error messages")
call append("$", " \tset debug=" . &debug)
if has("signs")
call append("$", "signcolumn\twhether to show the signcolumn")
call append("$", "\t(local to window)")
call <SID>OptionL("scl")
endif
if has("mzscheme")
call append("$", "mzquantum\tinterval in milliseconds between polls for MzScheme threads")
call append("$", " \tset mzq=" . &mzq)

View File

@@ -1,8 +1,9 @@
" matchit.vim: (global plugin) Extended "%" matching
" Last Change: Fri Jan 25 10:00 AM 2008 EST
" Last Change: 2016 Aug 21
" Maintainer: Benji Fisher PhD <benji@member.AMS.org>
" Version: 1.13.2, for Vim 6.3+
" Fix from Fernando Torres included.
" Improvement from Ken Takata included.
" URL: http://www.vim.org/script.php?script_id=39
" Documentation:
@@ -44,6 +45,7 @@ endif
let loaded_matchit = 1
let s:last_mps = ""
let s:last_words = ":"
let s:patBR = ""
let s:save_cpo = &cpo
set cpo&vim
@@ -121,8 +123,8 @@ function! s:Match_wrapper(word, forward, mode) range
execute "let match_words =" b:match_words
endif
" Thanks to Preben "Peppe" Guldberg and Bram Moolenaar for this suggestion!
if (match_words != s:last_words) || (&mps != s:last_mps) ||
\ exists("b:match_debug")
if (match_words != s:last_words) || (&mps != s:last_mps)
\ || exists("b:match_debug")
let s:last_mps = &mps
" The next several lines were here before
" BF started messing with this script.
@@ -148,6 +150,10 @@ function! s:Match_wrapper(word, forward, mode) range
if exists("b:match_debug")
let b:match_pat = s:pat
endif
" Reconstruct the version with unresolved backrefs.
let s:patBR = substitute(match_words.',',
\ s:notslash.'\zs[,:]*,[,:]*', ',', 'g')
let s:patBR = substitute(s:patBR, s:notslash.'\zs:\{2,}', ':', 'g')
endif
" Second step: set the following local variables:
@@ -192,14 +198,10 @@ function! s:Match_wrapper(word, forward, mode) range
" group = colon-separated list of patterns, one of which matches
" = ini:mid:fin or ini:fin
"
" Reconstruct the version with unresolved backrefs.
let patBR = substitute(match_words.',',
\ s:notslash.'\zs[,:]*,[,:]*', ',', 'g')
let patBR = substitute(patBR, s:notslash.'\zs:\{2,}', ':', 'g')
" Now, set group and groupBR to the matching group: 'if:endif' or
" 'while:endwhile' or whatever. A bit of a kluge: s:Choose() returns
" group . "," . groupBR, and we pick it apart.
let group = s:Choose(s:pat, matchline, ",", ":", prefix, suffix, patBR)
let group = s:Choose(s:pat, matchline, ",", ":", prefix, suffix, s:patBR)
let i = matchend(group, s:notslash . ",")
let groupBR = strpart(group, i)
let group = strpart(group, 0, i-1)
@@ -661,6 +663,7 @@ fun! s:MultiMatch(spflag, mode)
\ exists("b:match_debug")
let s:last_words = match_words
let s:last_mps = &mps
let match_words = match_words . (strlen(match_words) ? "," : "") . default
if match_words !~ s:notslash . '\\\d'
let s:do_BR = 0
let s:pat = match_words
@@ -668,8 +671,8 @@ fun! s:MultiMatch(spflag, mode)
let s:do_BR = 1
let s:pat = s:ParseWords(match_words)
endif
let s:all = '\%(' . substitute(s:pat . (strlen(s:pat)?",":"") . default,
\ '[,:]\+','\\|','g') . '\)'
let s:all = '\%(' . substitute(s:pat . (strlen(s:pat) ? "," : "") . default,
\ '[,:]\+', '\\|', 'g') . '\)'
if exists("b:match_debug")
let b:match_pat = s:pat
endif

View File

@@ -61,7 +61,6 @@ an 50.10.320 &Syntax.AB.Ascii\ Doc :cal SetSyn("asciidoc")<CR>
an 50.10.330 &Syntax.AB.ASP\ with\ VBScript :cal SetSyn("aspvbs")<CR>
an 50.10.340 &Syntax.AB.ASP\ with\ Perl :cal SetSyn("aspperl")<CR>
an 50.10.350 &Syntax.AB.Assembly.680x0 :cal SetSyn("asm68k")<CR>
an 50.10.355 &Syntax.AB.Assembly.AVR :cal SetSyn("avra")<CR>
an 50.10.360 &Syntax.AB.Assembly.Flat :cal SetSyn("fasm")<CR>
an 50.10.370 &Syntax.AB.Assembly.GNU :cal SetSyn("asm")<CR>
an 50.10.380 &Syntax.AB.Assembly.GNU\ H-8300 :cal SetSyn("asmh8300")<CR>
@@ -162,31 +161,31 @@ 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>
an 50.30.360 &Syntax.DE.DTML\ (Zope) :cal SetSyn("dtml")<CR>
an 50.30.370 &Syntax.DE.DTrace :cal SetSyn("dtrace")<CR>
an 50.30.380 &Syntax.DE.Dts/dtsi :cal SetSyn("dts")<CR>
an 50.30.390 &Syntax.DE.Dylan.Dylan :cal SetSyn("dylan")<CR>
an 50.30.400 &Syntax.DE.Dylan.Dylan\ interface :cal SetSyn("dylanintr")<CR>
an 50.30.410 &Syntax.DE.Dylan.Dylan\ lid :cal SetSyn("dylanlid")<CR>
an 50.30.430 &Syntax.DE.EDIF :cal SetSyn("edif")<CR>
an 50.30.440 &Syntax.DE.Eiffel :cal SetSyn("eiffel")<CR>
an 50.30.450 &Syntax.DE.Elinks\ config :cal SetSyn("elinks")<CR>
an 50.30.460 &Syntax.DE.Elm\ filter\ rules :cal SetSyn("elmfilt")<CR>
an 50.30.470 &Syntax.DE.Embedix\ Component\ Description :cal SetSyn("ecd")<CR>
an 50.30.480 &Syntax.DE.ERicsson\ LANGuage :cal SetSyn("erlang")<CR>
an 50.30.490 &Syntax.DE.ESMTP\ rc :cal SetSyn("esmtprc")<CR>
an 50.30.500 &Syntax.DE.ESQL-C :cal SetSyn("esqlc")<CR>
an 50.30.510 &Syntax.DE.Essbase\ script :cal SetSyn("csc")<CR>
an 50.30.520 &Syntax.DE.Esterel :cal SetSyn("esterel")<CR>
an 50.30.530 &Syntax.DE.Eterm\ config :cal SetSyn("eterm")<CR>
an 50.30.540 &Syntax.DE.Eviews :cal SetSyn("eviews")<CR>
an 50.30.550 &Syntax.DE.Exim\ conf :cal SetSyn("exim")<CR>
an 50.30.560 &Syntax.DE.Expect :cal SetSyn("expect")<CR>
an 50.30.570 &Syntax.DE.Exports :cal SetSyn("exports")<CR>
an 50.30.330 &Syntax.DE.Doxygen.DataScript\ with\ doxygen :cal SetSyn("datascript.doxygen")<CR>
an 50.30.340 &Syntax.DE.Dracula :cal SetSyn("dracula")<CR>
an 50.30.350 &Syntax.DE.DSSSL :cal SetSyn("dsl")<CR>
an 50.30.360 &Syntax.DE.DTD :cal SetSyn("dtd")<CR>
an 50.30.370 &Syntax.DE.DTML\ (Zope) :cal SetSyn("dtml")<CR>
an 50.30.380 &Syntax.DE.DTrace :cal SetSyn("dtrace")<CR>
an 50.30.390 &Syntax.DE.Dts/dtsi :cal SetSyn("dts")<CR>
an 50.30.400 &Syntax.DE.Dylan.Dylan :cal SetSyn("dylan")<CR>
an 50.30.410 &Syntax.DE.Dylan.Dylan\ interface :cal SetSyn("dylanintr")<CR>
an 50.30.420 &Syntax.DE.Dylan.Dylan\ lid :cal SetSyn("dylanlid")<CR>
an 50.30.440 &Syntax.DE.EDIF :cal SetSyn("edif")<CR>
an 50.30.450 &Syntax.DE.Eiffel :cal SetSyn("eiffel")<CR>
an 50.30.460 &Syntax.DE.Elinks\ config :cal SetSyn("elinks")<CR>
an 50.30.470 &Syntax.DE.Elm\ filter\ rules :cal SetSyn("elmfilt")<CR>
an 50.30.480 &Syntax.DE.Embedix\ Component\ Description :cal SetSyn("ecd")<CR>
an 50.30.490 &Syntax.DE.ERicsson\ LANGuage :cal SetSyn("erlang")<CR>
an 50.30.500 &Syntax.DE.ESMTP\ rc :cal SetSyn("esmtprc")<CR>
an 50.30.510 &Syntax.DE.ESQL-C :cal SetSyn("esqlc")<CR>
an 50.30.520 &Syntax.DE.Essbase\ script :cal SetSyn("csc")<CR>
an 50.30.530 &Syntax.DE.Esterel :cal SetSyn("esterel")<CR>
an 50.30.540 &Syntax.DE.Eterm\ config :cal SetSyn("eterm")<CR>
an 50.30.550 &Syntax.DE.Eviews :cal SetSyn("eviews")<CR>
an 50.30.560 &Syntax.DE.Exim\ conf :cal SetSyn("exim")<CR>
an 50.30.570 &Syntax.DE.Expect :cal SetSyn("expect")<CR>
an 50.30.580 &Syntax.DE.Exports :cal SetSyn("exports")<CR>
an 50.40.100 &Syntax.FG.Falcon :cal SetSyn("falcon")<CR>
an 50.40.110 &Syntax.FG.Fantom :cal SetSyn("fan")<CR>
an 50.40.120 &Syntax.FG.Fetchmail :cal SetSyn("fetchmail")<CR>
@@ -328,7 +327,6 @@ an 50.70.270 &Syntax.M.Messages\ (/var/log) :cal SetSyn("messages")<CR>
an 50.70.280 &Syntax.M.Metafont :cal SetSyn("mf")<CR>
an 50.70.290 &Syntax.M.MetaPost :cal SetSyn("mp")<CR>
an 50.70.300 &Syntax.M.MGL :cal SetSyn("mgl")<CR>
an 50.70.305 &Syntax.M.MIX :cal SetSyn("mix")<CR>
an 50.70.310 &Syntax.M.MMIX :cal SetSyn("mmix")<CR>
an 50.70.320 &Syntax.M.Modconf :cal SetSyn("modconf")<CR>
an 50.70.330 &Syntax.M.Model :cal SetSyn("model")<CR>

View File

@@ -1,13 +1,10 @@
" Vim syntax file
" Language: xa 6502 cross assembler
" Maintainer: Clemens Kirchgatterer <clemens@1541.org>
" Last Change: 2014 Jan 05
" Last Change: 2016 Aug 31
" 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")
" quit when a syntax file was already loaded
if exists("b:current_syntax")
finish
endif
@@ -138,29 +135,19 @@ syn match a65End excludenl /end$/ contained
syn match a65Continue "\\$" 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_a65_syntax_inits")
if version < 508
let did_a65_syntax_inits = 1
command -nargs=+ HiLink hi link <args>
else
command -nargs=+ HiLink hi def link <args>
endif
" Only when an item doesn't have highlighting yet
HiLink a65Section Special
HiLink a65Address Special
HiLink a65Comment Comment
HiLink a65PreProc PreProc
HiLink a65Number Number
HiLink a65String String
HiLink a65Type Statement
HiLink a65Opcode Type
HiLink a65PC Error
HiLink a65Todo Todo
HiLink a65HiLo Number
hi def link a65Section Special
hi def link a65Address Special
hi def link a65Comment Comment
hi def link a65PreProc PreProc
hi def link a65Number Number
hi def link a65String String
hi def link a65Type Statement
hi def link a65Opcode Type
hi def link a65PC Error
hi def link a65Todo Todo
hi def link a65HiLo Number
delcommand HiLink
endif
let b:current_syntax = "a65"

View File

@@ -5,11 +5,8 @@
" Last Change: 2013 Jun 13
" Comment: Thanks to EPI-USE Labs for all your assistance. :)
" For version < 6.0: Clear all syntax items
" For version >= 6.0: Quit when a syntax file was already loaded
if version < 600
syntax clear
elseif exists("b:current_syntax")
" quit when a syntax file was already loaded
if exists("b:current_syntax")
finish
endif
@@ -43,11 +40,7 @@ syn match abapStringEscape contained "``"
syn match abapNumber "\-\=\<\d\+\>"
syn region abapHex matchgroup=abapHex start="X'" end="'"
if version >= 600
setlocal iskeyword=48-57,_,A-Z,a-z,/
else
set iskeyword=48-57,_,A-Z,a-z,/
endif
setlocal iskeyword=48-57,_,A-Z,a-z,/
syn match abapNamespace "\</\w\+/"
@@ -175,38 +168,28 @@ syn keyword abapTodo contained TODO NOTE
syn match abapTodo "\#EC\W\+\w\+"
" 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_abap_syntax_inits")
if version < 508
let did_abap_syntax_inits = 1
command -nargs=+ HiLink hi link <args>
else
command -nargs=+ HiLink hi def link <args>
endif
" Only when an item doesn't have highlighting yet
HiLink abapError Error
HiLink abapComment Comment
HiLink abapInclude Include
HiLink abapStatement Statement
HiLink abapComplexStatement Statement
HiLink abapSpecial Special
HiLink abapNamespace Special
HiLink abapSpecialTables Special
HiLink abapSymbolOperator abapOperator
HiLink abapOperator Operator
HiLink abapCharString String
HiLink abapString String
HiLink abapFloat Float
HiLink abapTypes Type
HiLink abapSymbol Structure
HiLink abapStructure Structure
HiLink abapField Variable
HiLink abapNumber Number
HiLink abapHex Number
hi def link abapError Error
hi def link abapComment Comment
hi def link abapInclude Include
hi def link abapStatement Statement
hi def link abapComplexStatement Statement
hi def link abapSpecial Special
hi def link abapNamespace Special
hi def link abapSpecialTables Special
hi def link abapSymbolOperator abapOperator
hi def link abapOperator Operator
hi def link abapCharString String
hi def link abapString String
hi def link abapFloat Float
hi def link abapTypes Type
hi def link abapSymbol Structure
hi def link abapStructure Structure
hi def link abapField Variable
hi def link abapNumber Number
hi def link abapHex Number
delcommand HiLink
endif
let b:current_syntax = "abap"

View File

@@ -4,11 +4,8 @@
" Last Change: 2002 Feb 24
" Remark: Huge improvement in folding performance--see filetype plugin
" 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")
" quit when a syntax file was already loaded
if exists("b:current_syntax")
finish
endif
@@ -25,24 +22,14 @@ syn match abaqusValue "=\s*[^,]*"lc=1 contained display
syn match abaqusBadLine "^\s\+\*.*" display
" 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_abaqus_syn_inits")
if version < 508
let did_abaqus_syn_inits = 1
command -nargs=+ HiLink hi link <args>
else
command -nargs=+ HiLink hi def link <args>
endif
" Only when an item doesn't have highlighting yet
" The default methods for highlighting. Can be overridden later
HiLink abaqusComment Comment
HiLink abaqusKeyword Statement
HiLink abaqusParameter Identifier
HiLink abaqusValue Constant
HiLink abaqusBadLine Error
" The default methods for highlighting. Can be overridden later
hi def link abaqusComment Comment
hi def link abaqusKeyword Statement
hi def link abaqusParameter Identifier
hi def link abaqusValue Constant
hi def link abaqusBadLine Error
delcommand HiLink
endif
let b:current_syntax = "abaqus"

View File

@@ -4,11 +4,8 @@
" URL: http://perun.hscs.wmin.ac.uk/~jra/vim/syntax/abc.vim
" Last Change: 27th April 2001
" 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")
" quit when a syntax file was already loaded
if exists("b:current_syntax")
finish
endif
@@ -36,28 +33,18 @@ syn match abcComment "%.*$"
" 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_abc_syn_inits")
if version < 508
let did_abc_syn_inits = 1
command -nargs=+ HiLink hi link <args>
else
command -nargs=+ HiLink hi def link <args>
endif
" Only when an item doesn't have highlighting yet
HiLink abcComment Comment
HiLink abcHeadField Type
HiLink abcBodyField Special
HiLink abcBar Statement
HiLink abcTuple Statement
HiLink abcBroken Statement
HiLink abcTie Statement
HiLink abcGuitarChord Identifier
HiLink abcNote Constant
hi def link abcComment Comment
hi def link abcHeadField Type
hi def link abcBodyField Special
hi def link abcBar Statement
hi def link abcTuple Statement
hi def link abcBroken Statement
hi def link abcTie Statement
hi def link abcGuitarChord Identifier
hi def link abcNote Constant
delcommand HiLink
endif
let b:current_syntax = "abc"

View File

@@ -3,11 +3,8 @@
" Maintainer: John Cook <johncook3@gmail.com>
" Last Change: 2011 Dec 27
" 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")
" quit when a syntax file was already loaded
if exists("b:current_syntax")
finish
endif
@@ -123,48 +120,38 @@ endif
syn sync minlines=1
" 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_abel_syn_inits")
if version < 508
let did_abel_syn_inits = 1
command -nargs=+ HiLink hi link <args>
else
command -nargs=+ HiLink hi def link <args>
endif
" Only when an item doesn't have highlighting yet
" The default highlighting.
HiLink abelHeader abelStatement
HiLink abelSection abelStatement
HiLink abelDeclaration abelStatement
HiLink abelLogicalOperator abelOperator
HiLink abelRangeOperator abelOperator
HiLink abelAlternateOperator abelOperator
HiLink abelArithmeticOperator abelOperator
HiLink abelRelationalOperator abelOperator
HiLink abelAssignmentOperator abelOperator
HiLink abelTruthTableOperator abelOperator
HiLink abelSpecifier abelStatement
HiLink abelOperator abelStatement
HiLink abelStatement Statement
HiLink abelIdentifier Identifier
HiLink abelTypeId abelType
HiLink abelTypeIdChar abelType
HiLink abelType Type
HiLink abelNumber abelString
HiLink abelString String
HiLink abelConstant Constant
HiLink abelComment Comment
HiLink abelExtension abelSpecial
HiLink abelSpecialChar abelSpecial
HiLink abelTypeIdEnd abelSpecial
HiLink abelSpecial Special
HiLink abelDirective PreProc
HiLink abelTodo Todo
HiLink abelError Error
" The default highlighting.
hi def link abelHeader abelStatement
hi def link abelSection abelStatement
hi def link abelDeclaration abelStatement
hi def link abelLogicalOperator abelOperator
hi def link abelRangeOperator abelOperator
hi def link abelAlternateOperator abelOperator
hi def link abelArithmeticOperator abelOperator
hi def link abelRelationalOperator abelOperator
hi def link abelAssignmentOperator abelOperator
hi def link abelTruthTableOperator abelOperator
hi def link abelSpecifier abelStatement
hi def link abelOperator abelStatement
hi def link abelStatement Statement
hi def link abelIdentifier Identifier
hi def link abelTypeId abelType
hi def link abelTypeIdChar abelType
hi def link abelType Type
hi def link abelNumber abelString
hi def link abelString String
hi def link abelConstant Constant
hi def link abelComment Comment
hi def link abelExtension abelSpecial
hi def link abelSpecialChar abelSpecial
hi def link abelTypeIdEnd abelSpecial
hi def link abelSpecial Special
hi def link abelDirective PreProc
hi def link abelTodo Todo
hi def link abelError Error
delcommand HiLink
endif
let b:current_syntax = "abel"

View File

@@ -7,11 +7,8 @@
" Syntax file to handle all $ACEDB/wspec/*.wrm files, primarily models.wrm
" AceDB software is available from http://www.acedb.org
" 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")
" quit when a syntax file was already loaded
if exists("b:current_syntax")
finish
endif
@@ -86,35 +83,25 @@ syn region acedbString start=/"/ end=/"/ skip=/\\"/ oneline
" Rest of syntax highlighting rules start here
" 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_acedb_syn_inits")
if version < 508
let did_acedb_syn_inits = 1
command -nargs=+ HiLink hi link <args>
else
command -nargs=+ HiLink hi def link <args>
endif
" Only when an item doesn't have highlighting yet
HiLink acedbMagic Special
HiLink acedbHyb Special
HiLink acedbType Type
HiLink acedbOption Type
HiLink acedbSubclass Type
HiLink acedbSubtag Include
HiLink acedbFlag Include
HiLink acedbTag Include
HiLink acedbClass Todo
HiLink acedbHelp Todo
HiLink acedbXref Identifier
HiLink acedbModifier Label
HiLink acedbComment Comment
HiLink acedbBlock ModeMsg
HiLink acedbNumber Number
HiLink acedbString String
hi def link acedbMagic Special
hi def link acedbHyb Special
hi def link acedbType Type
hi def link acedbOption Type
hi def link acedbSubclass Type
hi def link acedbSubtag Include
hi def link acedbFlag Include
hi def link acedbTag Include
hi def link acedbClass Todo
hi def link acedbHelp Todo
hi def link acedbXref Identifier
hi def link acedbModifier Label
hi def link acedbComment Comment
hi def link acedbBlock ModeMsg
hi def link acedbNumber Number
hi def link acedbString String
delcommand HiLink
endif
let b:current_syntax = "acedb"

View File

@@ -7,21 +7,14 @@
" Comment: Replaced sourcing c.vim file by ada.vim and rename lex*
" in aflex*
" 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")
" quit when a syntax file was already loaded
if exists("b:current_syntax")
finish
endif
" Read the Ada syntax to start with
if version < 600
so <sfile>:p:h/ada.vim
else
runtime! syntax/ada.vim
unlet b:current_syntax
endif
runtime! syntax/ada.vim
unlet b:current_syntax
" --- AfLex stuff ---
@@ -69,31 +62,20 @@ syn sync match aflexSyncPat groupthere aflexPatBlock "^<$"
syn sync match aflexSyncPat groupthere aflexPatBlock "^%%$"
" 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
" Only when an item doesn't have highlighting yet
hi def link aflexSlashQuote aflexPat
hi def link aflexBrace aflexPat
hi def link aflexAbbrvComment aflexPatComment
if version >= 508 || !exists("did_aflex_syntax_inits")
if version < 508
let did_aflex_syntax_inits = 1
command -nargs=+ HiLink hi link <args>
else
command -nargs=+ HiLink hi def link <args>
endif
HiLink aflexSlashQuote aflexPat
HiLink aflexBrace aflexPat
HiLink aflexAbbrvComment aflexPatComment
HiLink aflexAbbrv SpecialChar
HiLink aflexAbbrvRegExp Macro
HiLink aflexCFunctions Function
HiLink aflexMorePat SpecialChar
HiLink aflexPat Function
HiLink aflexPatComment Comment
HiLink aflexPatString Function
HiLink aflexPatTag Special
HiLink aflexSep Delimiter
delcommand HiLink
endif
hi def link aflexAbbrv SpecialChar
hi def link aflexAbbrvRegExp Macro
hi def link aflexCFunctions Function
hi def link aflexMorePat SpecialChar
hi def link aflexPat Function
hi def link aflexPatComment Comment
hi def link aflexPatString Function
hi def link aflexPatTag Special
hi def link aflexSep Delimiter
let b:current_syntax = "aflex"

View File

@@ -3,11 +3,8 @@
" Maintainer: John Cook <john.cook@kla-tencor.com>
" Last Change: 2001 Apr 25
" 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")
" quit when a syntax file was already loaded
if exists("b:current_syntax")
finish
endif
@@ -66,29 +63,19 @@ syn match ahdlSpecialChar "[\[\]().,;]"
syn sync minlines=1
" 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_ahdl_syn_inits")
if version < 508
let did_ahdl_syn_inits = 1
command -nargs=+ HiLink hi link <args>
else
command -nargs=+ HiLink hi def link <args>
endif
" Only when an item doesn't have highlighting yet
" The default highlighting.
HiLink ahdlNumber ahdlString
HiLink ahdlMegafunction ahdlIdentifier
HiLink ahdlSpecialChar SpecialChar
HiLink ahdlKeyword Statement
HiLink ahdlString String
HiLink ahdlComment Comment
HiLink ahdlIdentifier Identifier
HiLink ahdlOperator Operator
HiLink ahdlTodo Todo
" The default highlighting.
hi def link ahdlNumber ahdlString
hi def link ahdlMegafunction ahdlIdentifier
hi def link ahdlSpecialChar SpecialChar
hi def link ahdlKeyword Statement
hi def link ahdlString String
hi def link ahdlComment Comment
hi def link ahdlIdentifier Identifier
hi def link ahdlOperator Operator
hi def link ahdlTodo Todo
delcommand HiLink
endif
let b:current_syntax = "ahdl"
" vim:ts=8

View File

@@ -1,15 +1,12 @@
" Vim syntax file
" Language: AmigaDos
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
" Last Change: Oct 23, 2014
" Version: 7
" Last Change: Aug 31, 2016
" Version: 9
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_AMIGA
" 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")
" quit when a syntax file was already loaded
if exists("b:current_syntax")
finish
endif
@@ -72,30 +69,20 @@ syn match amiComment ";.*$" contains=amiCommentGroup
syn sync lines=50
" 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_amiga_syn_inits")
if version < 508
let did_amiga_syn_inits = 1
command -nargs=+ HiLink hi link <args>
else
command -nargs=+ HiLink hi def link <args>
endif
if !exists("skip_amiga_syntax_inits")
HiLink amiAlias Type
HiLink amiComment Comment
HiLink amiDev Type
HiLink amiEcho String
HiLink amiElse Statement
HiLink amiError Error
HiLink amiKey Statement
HiLink amiNumber Number
HiLink amiString String
HiLink amiTest Special
hi def link amiAlias Type
hi def link amiComment Comment
hi def link amiDev Type
hi def link amiEcho String
hi def link amiElse Statement
hi def link amiError Error
hi def link amiKey Statement
hi def link amiNumber Number
hi def link amiString String
hi def link amiTest Special
delcommand HiLink
endif
let b:current_syntax = "amiga"
" vim:ts=15

View File

@@ -9,11 +9,8 @@
" of [], in order to avoid -read highlighted,
" or [quote] strings highlighted
" 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")
" quit when a syntax file was already loaded
if exists("b:current_syntax")
finish
endif
@@ -123,35 +120,25 @@ syn region amlSkip matchgroup=amlOutput start="&typ" end="$" contains=amlVar
syn region amlSkip matchgroup=amlOutput start="&type" end="$" contains=amlVar
" 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_aml_syntax_inits")
if version < 508
let did_aml_syntax_inits = 1
command -nargs=+ HiLink hi link <args>
else
command -nargs=+ HiLink hi def link <args>
endif
" Only when an item doesn't have highlighting yet
HiLink amlComment Comment
HiLink amlNumber Number
HiLink amlQuote String
HiLink amlVar Identifier
HiLink amlVar2 Identifier
HiLink amlFunction PreProc
HiLink amlDir Statement
HiLink amlDir2 Statement
HiLink amlDirSym Statement
HiLink amlOutput Statement
HiLink amlArcCmd ModeMsg
HiLink amlFormedCmd amlArcCmd
HiLink amlTabCmd amlArcCmd
HiLink amlInfoCmd amlArcCmd
HiLink amlVtrCmd amlArcCmd
HiLink amlFormed amlArcCmd
HiLink amlTab amlArcCmd
hi def link amlComment Comment
hi def link amlNumber Number
hi def link amlQuote String
hi def link amlVar Identifier
hi def link amlVar2 Identifier
hi def link amlFunction PreProc
hi def link amlDir Statement
hi def link amlDir2 Statement
hi def link amlDirSym Statement
hi def link amlOutput Statement
hi def link amlArcCmd ModeMsg
hi def link amlFormedCmd amlArcCmd
hi def link amlTabCmd amlArcCmd
hi def link amlInfoCmd amlArcCmd
hi def link amlVtrCmd amlArcCmd
hi def link amlFormed amlArcCmd
hi def link amlTab amlArcCmd
delcommand HiLink
endif
let b:current_syntax = "aml"

View File

@@ -3,9 +3,8 @@
" Last Change: 2003 May 11
if version < 600
syntax clear
elseif exists("b:current_syntax")
" quit when a syntax file was already loaded
if exists("b:current_syntax")
finish
endif
@@ -115,33 +114,24 @@ syn keyword amplTodo contained TODO FIXME XXX
if version >= 508 || !exists("did_ampl_syntax_inits")
if version < 508
let did_ampl_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 amplEntityKeyword Keyword
HiLink amplType Type
HiLink amplStatement Statement
HiLink amplOperators Operator
HiLink amplBasicOperators Operator
HiLink amplConditional Conditional
HiLink amplRepeat Repeat
HiLink amplStrings String
HiLink amplNumerics Number
HiLink amplSetFunction Function
HiLink amplBuiltInFunction Function
HiLink amplRandomGenerator Function
HiLink amplComment Comment
HiLink amplDotSuffix Special
HiLink amplPiecewise Special
" The default methods for highlighting. Can be overridden later.
hi def link amplEntityKeyword Keyword
hi def link amplType Type
hi def link amplStatement Statement
hi def link amplOperators Operator
hi def link amplBasicOperators Operator
hi def link amplConditional Conditional
hi def link amplRepeat Repeat
hi def link amplStrings String
hi def link amplNumerics Number
hi def link amplSetFunction Function
hi def link amplBuiltInFunction Function
hi def link amplRandomGenerator Function
hi def link amplComment Comment
hi def link amplDotSuffix Special
hi def link amplPiecewise Special
delcommand HiLink
endif
let b:current_syntax = "ampl"

View File

@@ -4,11 +4,8 @@
" LastChange: 02 May 2001
" Original: Comes from JavaCC.vim
" 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")
" quit when a syntax file was already loaded
if exists("b:current_syntax")
finish
endif
@@ -18,12 +15,8 @@ endif
" Those files usually have the extension *.jj
" source the java.vim file
if version < 600
so <sfile>:p:h/java.vim
else
runtime! syntax/java.vim
unlet b:current_syntax
endif
runtime! syntax/java.vim
unlet b:current_syntax
"remove catching errors caused by wrong parenthesis (does not work in antlr
"files) (first define them in case they have not been defined in java)
@@ -53,17 +46,8 @@ syn match antlrSep "[|:]\|\.\."
syn keyword antlrActionToken TOKEN SKIP MORE SPECIAL_TOKEN
syn keyword antlrError DEBUG IGNORE_IN_BNF
if version >= 508 || !exists("did_antlr_syntax_inits")
if version < 508
let did_antlr_syntax_inits = 1
command -nargs=+ HiLink hi link <args>
else
command -nargs=+ HiLink hi def link <args>
endif
HiLink antlrSep Statement
HiLink antlrPackages Statement
delcommand HiLink
endif
hi def link antlrSep Statement
hi def link antlrPackages Statement
let b:current_syntax = "antlr"

View File

@@ -9,13 +9,9 @@
" make it really linewise?
" + add `display' where appropriate
" Setup
if version >= 600
if exists("b:current_syntax")
finish
endif
else
syntax clear
" quit when a syntax file was already loaded
if exists("b:current_syntax")
finish
endif
syn case ignore
@@ -178,37 +174,28 @@ syn match apacheSection "<\/\=\(<IfVersion\)[^>]*>" contains=apacheAnything
syn keyword apacheDeclaration VirtualDocumentRoot VirtualDocumentRootIP VirtualScriptAlias VirtualScriptAliasIP
" Define the default highlighting
if version >= 508 || !exists("did_apache_syntax_inits")
if version < 508
let did_apache_syntax_inits = 1
command -nargs=+ HiLink hi link <args>
else
command -nargs=+ HiLink hi def link <args>
endif
HiLink apacheAllowOverride apacheDeclaration
HiLink apacheAllowOverrideValue apacheOption
HiLink apacheAuthType apacheDeclaration
HiLink apacheAuthTypeValue apacheOption
HiLink apacheOptionOption apacheOption
HiLink apacheDeclaration Function
HiLink apacheAnything apacheOption
HiLink apacheOption Number
HiLink apacheComment Comment
HiLink apacheFixme Todo
HiLink apacheLimitSectionKeyword apacheLimitSection
HiLink apacheLimitSection apacheSection
HiLink apacheSection Label
HiLink apacheMethodOption Type
HiLink apacheAllowDeny Include
HiLink apacheAllowDenyValue Identifier
HiLink apacheOrder Special
HiLink apacheOrderValue String
HiLink apacheString String
HiLink apacheError Error
HiLink apacheUserID Number
hi def link apacheAllowOverride apacheDeclaration
hi def link apacheAllowOverrideValue apacheOption
hi def link apacheAuthType apacheDeclaration
hi def link apacheAuthTypeValue apacheOption
hi def link apacheOptionOption apacheOption
hi def link apacheDeclaration Function
hi def link apacheAnything apacheOption
hi def link apacheOption Number
hi def link apacheComment Comment
hi def link apacheFixme Todo
hi def link apacheLimitSectionKeyword apacheLimitSection
hi def link apacheLimitSection apacheSection
hi def link apacheSection Label
hi def link apacheMethodOption Type
hi def link apacheAllowDeny Include
hi def link apacheAllowDenyValue Identifier
hi def link apacheOrder Special
hi def link apacheOrderValue String
hi def link apacheString String
hi def link apacheError Error
hi def link apacheUserID Number
delcommand HiLink
endif
let b:current_syntax = "apache"

View File

@@ -20,11 +20,8 @@
" </SubSection>
" </Section>
" 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")
" quit when a syntax file was already loaded
if exists("b:current_syntax")
finish
endif
@@ -41,25 +38,15 @@ syn match apTagOption contained / [-\/_\.:*a-zA-Z0-9]\+/ms=s+1
syn match apTagError contained /[^>]</ms=s+1
" 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_apachestyle_syn_inits")
if version < 508
let did_apachestyle_syn_inits = 1
command -nargs=+ HiLink hi link <args>
else
command -nargs=+ HiLink hi def link <args>
endif
" Only when an item doesn't have highlighting yet
HiLink apComment Comment
HiLink apOption Keyword
"HiLink apLastValue Identifier ugly?
HiLink apTag Special
HiLink apTagOption Identifier
HiLink apTagError Error
hi def link apComment Comment
hi def link apOption Keyword
"hi def link apLastValue Identifier ugly?
hi def link apTag Special
hi def link apTagOption Identifier
hi def link apTagError Error
delcommand HiLink
endif
let b:current_syntax = "apachestyle"
" vim: ts=8

View File

@@ -3,12 +3,9 @@
" Maintainer: Yann Amar <quidame@poivron.org>
" Last Change: 2015 Dec 22
" For version 5.x: Clear all syntax items
" For version 6.x and 7.x: Quit when a syntax file was already loaded
" quit when a syntax file was already loaded
if !exists("main_syntax")
if version < 600
syntax clear
elseif exists("b:current_syntax")
if exists("b:current_syntax")
finish
endif
let main_syntax = 'aptconf'

View File

@@ -10,20 +10,13 @@
" Thanks to Rik, Erik Nomitch, Adam Obeng and Graeme Cross for helpful feedback!
" 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")
" quit when a syntax file was already loaded
if exists("b:current_syntax")
finish
endif
" Read the C syntax to start with
if version < 600
so <sfile>:p:h/cpp.vim
else
runtime! syntax/cpp.vim
endif
runtime! syntax/cpp.vim
syn keyword arduinoConstant HIGH LOW INPUT OUTPUT
syn keyword arduinoConstant DEC BIN HEX OCT BYTE

View File

@@ -7,11 +7,8 @@
" Thanks to Ori Avtalion for feedback on the comment markers!
" For version 5.x: Clear all syntax items
" For version 6.0 and later: Quit when a syntax file was already loaded
if version < 600
syntax clear
elseif exists("b:current_syntax")
" quit when a syntax file was already loaded
if exists("b:current_syntax")
finish
endif
@@ -103,37 +100,27 @@ syn match asmDirective "\.[A-Za-z][0-9A-Za-z-_]*"
syn case match
" 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_asm_syntax_inits")
if version < 508
let did_asm_syntax_inits = 1
command -nargs=+ HiLink hi link <args>
else
command -nargs=+ HiLink hi def link <args>
endif
" Only when an item doesn't have highlighting yet
" The default methods for highlighting. Can be overridden later
HiLink asmSection Special
HiLink asmLabel Label
HiLink asmComment Comment
HiLink asmTodo Todo
HiLink asmDirective Statement
" The default methods for highlighting. Can be overridden later
hi def link asmSection Special
hi def link asmLabel Label
hi def link asmComment Comment
hi def link asmTodo Todo
hi def link asmDirective Statement
HiLink asmInclude Include
HiLink asmCond PreCondit
HiLink asmMacro Macro
hi def link asmInclude Include
hi def link asmCond PreCondit
hi def link asmMacro Macro
HiLink hexNumber Number
HiLink decNumber Number
HiLink octNumber Number
HiLink binNumber Number
hi def link hexNumber Number
hi def link decNumber Number
hi def link octNumber Number
hi def link binNumber Number
HiLink asmIdentifier Identifier
HiLink asmType Type
hi def link asmIdentifier Identifier
hi def link asmType Type
delcommand HiLink
endif
let b:current_syntax = "asm"

View File

@@ -8,11 +8,8 @@
" Feel free to contribute...
"
" 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")
" quit when a syntax file was already loaded
if exists("b:current_syntax")
finish
endif
@@ -328,63 +325,53 @@ syn match asm68kDirective "\<XREF\(\.S\)\=\s"
syn case match
" 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_asm68k_syntax_inits")
if version < 508
let did_asm68k_syntax_inits = 1
command -nargs=+ HiLink hi link <args>
else
command -nargs=+ HiLink hi def link <args>
endif
" Only when an item doesn't have highlighting yet
" The default methods for highlighting. Can be overridden later
" Comment Constant Error Identifier PreProc Special Statement Todo Type
"
" Constant Boolean Character Number String
" Identifier Function
" PreProc Define Include Macro PreCondit
" Special Debug Delimiter SpecialChar SpecialComment Tag
" Statement Conditional Exception Keyword Label Operator Repeat
" Type StorageClass Structure Typedef
" The default methods for highlighting. Can be overridden later
" Comment Constant Error Identifier PreProc Special Statement Todo Type
"
" Constant Boolean Character Number String
" Identifier Function
" PreProc Define Include Macro PreCondit
" Special Debug Delimiter SpecialChar SpecialComment Tag
" Statement Conditional Exception Keyword Label Operator Repeat
" Type StorageClass Structure Typedef
HiLink asm68kComment Comment
HiLink asm68kTodo Todo
hi def link asm68kComment Comment
hi def link asm68kTodo Todo
HiLink hexNumber Number " Constant
HiLink octNumber Number " Constant
HiLink binNumber Number " Constant
HiLink decNumber Number " Constant
HiLink floatNumber Number " Constant
HiLink floatExponent Number " Constant
HiLink floatE SpecialChar " Statement
"HiLink floatE Number " Constant
hi def link hexNumber Number " Constant
hi def link octNumber Number " Constant
hi def link binNumber Number " Constant
hi def link decNumber Number " Constant
hi def link floatNumber Number " Constant
hi def link floatExponent Number " Constant
hi def link floatE SpecialChar " Statement
"hi def link floatE Number " Constant
HiLink asm68kImmediate SpecialChar " Statement
"HiLink asm68kSymbol Constant
hi def link asm68kImmediate SpecialChar " Statement
"hi def link asm68kSymbol Constant
HiLink asm68kString String " Constant
HiLink asm68kCharError Error
HiLink asm68kStringError Error
hi def link asm68kString String " Constant
hi def link asm68kCharError Error
hi def link asm68kStringError Error
HiLink asm68kReg Identifier
HiLink asm68kOperator Identifier
hi def link asm68kReg Identifier
hi def link asm68kOperator Identifier
HiLink asm68kInclude Include " PreProc
HiLink asm68kMacro Macro " PreProc
HiLink asm68kMacroParam Keyword " Statement
hi def link asm68kInclude Include " PreProc
hi def link asm68kMacro Macro " PreProc
hi def link asm68kMacroParam Keyword " Statement
HiLink asm68kDirective Special
HiLink asm68kPreCond Special
hi def link asm68kDirective Special
hi def link asm68kPreCond Special
HiLink asm68kOpcode Statement
HiLink asm68kCond Conditional " Statement
HiLink asm68kRepeat Repeat " Statement
hi def link asm68kOpcode Statement
hi def link asm68kCond Conditional " Statement
hi def link asm68kRepeat Repeat " Statement
HiLink asm68kLabel Type
delcommand HiLink
endif
hi def link asm68kLabel Type
let b:current_syntax = "asm68k"

View File

@@ -3,11 +3,8 @@
" Maintainer: Kevin Dahlhausen <kdahlhaus@yahoo.com>
" Last Change: 2002 Sep 19
" 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")
" quit when a syntax file was already loaded
if exists("b:current_syntax")
finish
endif
@@ -52,33 +49,19 @@ syn case match
" Read the general asm syntax
if version < 600
source <sfile>:p:h/asm.vim
else
runtime! syntax/asm.vim
endif
runtime! syntax/asm.vim
" 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_hitachi_syntax_inits")
if version < 508
let did_hitachi_syntax_inits = 1
command -nargs=+ HiLink hi link <args>
else
command -nargs=+ HiLink hi def link <args>
endif
" Only when an item doesn't have highlighting yet
HiLink asmOpcode Statement
HiLink asmRegister Identifier
hi def link asmOpcode Statement
hi def link asmRegister Identifier
" My default-color overrides:
"hi asmOpcode ctermfg=yellow
"hi asmReg ctermfg=lightmagenta
" My default-color overrides:
"hi asmOpcode ctermfg=yellow
"hi asmReg ctermfg=lightmagenta
delcommand HiLink
endif
let b:current_syntax = "asmh8300"

View File

@@ -4,11 +4,8 @@
" URL: http://www.fleiner.com/vim/syntax/asn.vim
" Last Change: 2012 Oct 05
" 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")
" quit when a syntax file was already loaded
if exists("b:current_syntax")
finish
endif
@@ -50,34 +47,24 @@ syn match asnBraces "[{}]"
syn sync ccomment asnComment
" 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_asn_syn_inits")
if version < 508
let did_asn_syn_inits = 1
command -nargs=+ HiLink hi link <args>
else
command -nargs=+ HiLink hi def link <args>
endif
HiLink asnDefinition Function
HiLink asnBraces Function
HiLink asnStructure Statement
HiLink asnBoolValue Boolean
HiLink asnSpecial Special
HiLink asnString String
HiLink asnCharacter Character
HiLink asnSpecialCharacter asnSpecial
HiLink asnNumber asnValue
HiLink asnComment Comment
HiLink asnLineComment asnComment
HiLink asnType Type
HiLink asnTypeInfo PreProc
HiLink asnValue Number
HiLink asnExternal Include
HiLink asnTagModifier Function
HiLink asnFieldOption Type
delcommand HiLink
endif
" Only when an item doesn't have highlighting yet
hi def link asnDefinition Function
hi def link asnBraces Function
hi def link asnStructure Statement
hi def link asnBoolValue Boolean
hi def link asnSpecial Special
hi def link asnString String
hi def link asnCharacter Character
hi def link asnSpecialCharacter asnSpecial
hi def link asnNumber asnValue
hi def link asnComment Comment
hi def link asnLineComment asnComment
hi def link asnType Type
hi def link asnTypeInfo PreProc
hi def link asnValue Number
hi def link asnExternal Include
hi def link asnTagModifier Function
hi def link asnFieldOption Type
let &cpo = s:cpo_save
unlet s:cpo_save

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