Compare commits

...

420 Commits

Author SHA1 Message Date
226400830b patch 8.0.1736: check for C99 features is incomplete
Problem:    Check for C99 features is incomplete.
Solution:   Use AC_PROG_CC_C99 and when C99 isn't fully supported check the
            features we need. (James McCoy, closes #2820)
2018-04-19 20:39:41 +02:00
285e335869 patch 8.0.1735: flexible array member feature not supported by HP-UX
Problem:    Flexible array member feature not supported by HP-UX. (John
            Marriott)
Solution:   Do not use the flexible array member feature of C99.
2018-04-18 23:01:13 +02:00
f98a39ca57 patch 8.0.1734: package directory not added to 'rtp' if prefix matches
Problem:    Package directory not added to 'rtp' if prefix matches.
Solution:   Check the match is a full match. (Ozaki Kiichi, closes #2817)
            Also handle different ways of spelling a path.
2018-04-18 22:18:23 +02:00
bad0ce7b26 patch 8.0.1733: incomplete testing for completion fix
Problem:    Incomplete testing for completion fix. (Lifepillar)
Solution:   Add a test with CTRL-P.
2018-04-17 23:31:05 +02:00
a997b45c7e patch 8.0.1732: crash when terminal API call deletes the buffer
Problem:    Crash when terminal API call deletes the buffer.
Solution:   Lock the buffer while calling a function. (closes #2813)
2018-04-17 23:24:06 +02:00
e87edf3b85 patch 8.0.1731: characters deleted on completion
Problem:    Characters deleted on completion. (Adrià Farrés)
Solution:   Also check the last item for the ORIGINAL_TEXT flag. (Christian
            Brabandt, closes #1645)
2018-04-17 22:14:32 +02:00
561f8a5a46 patch 8.0.1730: no configure check for the used C99 features
Problem:    No configure check for the used C99 features.
Solution:   Add a compilation check.  Tentatively document C99 features.
2018-04-17 22:02:45 +02:00
ea3ece405a patch 8.0.1729: no comma after last enum item
Problem:    No comma after last enum item.
Solution:   Add a few commas to check if this works for all compilers.  Also
            add a few // comments.
2018-04-17 20:14:39 +02:00
1feab2b9cc patch 8.0.1728: condition always false, useless code
Problem:    Condition always false, useless code.
Solution:   Remove the code. (Nikolai Pavlov, closes #2808)
2018-04-17 20:12:08 +02:00
353eeeaca2 patch 8.0.1727: qf_get_properties() function is too long
Problem:    qf_get_properties() function is too long.
Solution:   Refactor the code. (Yegappan Lakshmanan, closes #2807)
2018-04-16 18:04:57 +02:00
df2c774ded patch 8.0.1726: older MSVC doesn't support declarations halfway a block
Problem:    Older MSVC doesn't support declarations halfway a block.
Solution:   Move the declaration back to the start of the block.
2018-04-16 17:06:09 +02:00
32c67ba733 patch 8.0.1725: terminal debugger doesn't handle command arguments
Problem:    Terminal debugger doesn't handle command arguments.
Solution:   Add the :TermdebugCommand command.  Use a ! to execute right away.
            (Christian Brabandt)
2018-04-16 16:21:49 +02:00
06965b838f patch 8.0.1724: declarations cannot be halfway a block
Problem:    Declarations cannot be halfway a block.
Solution:   Move one declaration to check if this works for all compilers.
2018-04-16 15:40:50 +02:00
f3a411783c patch 8.0.1723: using one item array size declaration is misleading
Problem:    Using one item array size declaration is misleading.
Solution:   Instead of using "[1]" and actually using a larger array, use
            "[]".  This is to verify that this C99 feature works for all
            compilers.
2018-04-16 14:45:45 +02:00
498c2562e1 patch 8.0.1722: cannot specify a minimal size for a terminal window
Problem:    Cannot specify a minimal size for a terminal window.
Solution:   Support the "rows*cols" format for 'winsize'.
2018-04-15 23:45:15 +02:00
a7eef3d87f patch 8.0.1721: no test for using the 'termsize' option
Problem:    No test for using the 'termsize' option.
Solution:   Add a test.
2018-04-15 22:25:54 +02:00
802bfb1463 patch 8.0.1720: when a timer is running a terminal window may not close
Problem:    When a timer is running a terminal window may not close after a
            shell has exited.
Solution:   Call job_status() more often.
2018-04-15 17:28:13 +02:00
e1a32310d5 patch 8.0.1719: cannot specify which Python executable configure should use
Problem:    Cannot specify which Python executable configure should use.
Solution:   Add --with-python-command and --with-python3-command.
2018-04-15 16:03:25 +02:00
6c672194cd patch 8.0.1718: terminal scrollback test fails on MS-Windows
Problem:    Terminal scrollback test fails on MS-Windows.
Solution:   Check for the last line of output anticipating there might be an
            empty line below it.
2018-04-15 13:28:42 +02:00
3cba73423e patch 8.0.1717: C89 check causes too much trouble
Problem:    C89 check causes too much trouble.
Solution:   Remove enforcing C89 for now.
2018-04-15 13:12:46 +02:00
ac3e830065 patch 8.0.1716: test for term_setsize() does not give a good error message
Problem:    Test for term_setsize() does not give a good error message.
Solution:   use assert_inrange().
2018-04-15 13:10:44 +02:00
8c94a54905 patch 8.0.1715: terminal buffer can be 1 more than 'terminalscroll' lines
Problem:    Terminal buffer can be 1 more than 'terminalscroll' lines.
Solution:   Change > to >=.
2018-04-15 12:55:13 +02:00
6e72cd0d72 patch 8.0.1714: term_setsize() does not give an error in a normal buffer
Problem:    Term_setsize() does not give an error in a normal buffer.
Solution:   Add an error message.
2018-04-14 21:31:35 +02:00
b3623a382a patch 8.0.1713: terminal debugger doesn't handle arguments
Problem:    Terminal debugger doesn't handle arguments.
Solution:   Use <f-args> and pass all the arguments to gdb, e.g. the core file
            or process number. (suggested by Christian Brabandt) Disallow
            starting the debugger twice.
2018-04-14 18:59:50 +02:00
8c041b6b95 patch 8.0.1712: terminal scrollback is not limited
Problem:    Terminal scrollback is not limited.
Solution:   Add the 'terminalscroll' option.
2018-04-14 18:14:06 +02:00
a42d363bac patch 8.0.1711: term_setsize() is not implemented yet
Problem:    Term_setsize() is not implemented yet.
Solution:   Implement it.
2018-04-14 17:05:38 +02:00
2a43230ce3 patch 8.0.1710: building with Ruby fails
Problem:    Building with Ruby fails.
Solution:   Don't add -ansi when building with Ruby.
2018-04-14 16:12:30 +02:00
2e324950b8 patch 8.0.1709: some non-C89 code may slip through
Problem:    Some non-C89 code may slip through.
Solution:   Enforce C89 in configure. Fix detected problems. (James McCoy,
            closes #2735)
2018-04-14 14:37:07 +02:00
78a16b0f2a patch 8.0.1708: mkdir with 'p' flag fails on existing directory
Problem:    Mkdir with 'p' flag fails on existing directory, which is
            different from the mkdir shell command.
Solution:   Don't fail if the directory already exists. (James McCoy,
            closes #2775)
2018-04-14 13:51:55 +02:00
98da6ecab9 patch 8.0.1707: when 'wfh' is set ":bel 10new" scrolls window
Problem:    When 'wfh' is set ":bel 10new" scrolls window. (Andrew Pyatkov)
Solution:   Set the fraction before changing the window height. (closes #2798)
2018-04-13 22:15:46 +02:00
b59118d501 patch 8.0.1706: cannot sent CTRL-\ to a terminal window
Problem:    Cannot sent CTRL-\ to a terminal window.
Solution:   Make CTRL-W CTRL-\ send CTRL-\ to a terminal window.
2018-04-13 22:11:56 +02:00
5bab555c2f patch 8.0.1705: when making a vertical split the mode message isn't updated
Problem:    When making a vertical split the mode message isn't always
            updated, "VISUAL" remains. (Alexei Averchenko)
Solution:   Only reset clear_cmdline when filling all columns of the last
            screen line. (Tom M. closes #2611)
2018-04-13 20:41:29 +02:00
b8e22a053b patch 8.0.1704: 'backupskip' default doesn't work for Mac
Problem:    'backupskip' default doesn't work for Mac.
Solution:   Use "/private/tmp". (Rainer Müller, closes #2793)
2018-04-12 21:37:34 +02:00
527dec3f94 patch 8.0.1703: in the tutor 'showcmd' is not set
Problem:    In the tutor 'showcmd' is not set.
Solution:   Set 'showcmd' in the vimtutor script. (Ken Takata, closes #2792)
2018-04-12 20:36:43 +02:00
ee5b94a8ec patch 8.0.1702: leaking memory when autocommands make quickfix list invalid
Problem:    Leaking memory when autocommands make a quickfix list invalid.
Solution:   Call FreeWild(). (Yegappan Lakshmanan)
2018-04-12 20:35:05 +02:00
cccd62d435 patch 8.0.1701: can disable COLOR_EMOJI with MSVC but not MinGW
Problem:    Can disable COLOR_EMOJI with MSVC but not MinGW.
Solution:   Add COLOR_EMOJI flag.  Also add some empty lines for readability.
2018-04-12 20:23:48 +02:00
56f9955044 patch 8.0.1700: coverage statistics still don't work on coveralls
Problem:    Coverate statistics still don't work on coveralls.
Solution:   Exclude the xxd directory again.
2018-04-12 20:06:05 +02:00
9ce4213b03 patch 8.0.1699: leftover stuff for Python 1.4
Problem:    Leftover stuff for Python 1.4.
Solution:   Remove outdated Python 1.4 stuff. (Naoki Inada, closes #2794)
2018-04-11 22:19:36 +02:00
1ed00330bc patch 8.0.1698: coverage statistics don't work on coveralls
Problem:    Coverate statistics don't work on coveralls.
Solution:   Use curly braces for $SRCDIR.
2018-04-11 21:03:08 +02:00
769e9d21ac patch 8.0.1697: various tests are still a bit flaky
Problem:    Various tests are still a bit flaky.
Solution:   Increase the default wait time to five seconds.
2018-04-11 20:53:49 +02:00
d60e0a1d20 patch 8.0.1696: coverage statistics don't work
Problem:    Coverate statistics don't work.
Solution:   Include the xxd directory. (Christian Brabandt)
2018-04-11 10:06:04 +02:00
6995c0a7a9 patch 8.0.1695: xxd test not run on MS-Windows
Problem:    Xxd test not run on MS-Windows.
Solution:   Use xxd.exe if it exists.
2018-04-10 21:46:10 +02:00
b377457e69 patch 8.0.1694: terminal API test is a bit flaky
Problem:    Terminal API test is a bit flaky.
Solution:   Wait longer for Vim to stop.
2018-04-10 21:43:26 +02:00
1acdb3f301 patch 8.0.1693: xxd is excluded from coverage statistics
Problem:    Xxd is excluded from coverage statistics.
Solution:   Don't skip the xxd directory. (Christian Brabandt)
2018-04-10 21:16:32 +02:00
3a21d9c7bb patch 8.0.1692: Python may not work when using statically linked library
Problem:    Python may not work when using statically linked library .
Solution:   Do not define PYTHON_HOME and PYTHON3_HOME in configure if the
            Python library is linked statically.
2018-04-10 20:26:20 +02:00
164268d4cf patch 8.0.1691: xxd test sometimes fails
Problem:    Xxd test sometimes fails.
Solution:   Wipe out the XXDfile buffer.
2018-04-10 20:06:17 +02:00
8dd1761e69 patch 8.0.1690: not easy to run one test with gvim instead of vim
Problem:    Not easy to run one test with gvim instead of vim.
Solution:   Add VIMTESTTARGET in Makefile.
2018-04-10 19:24:04 +02:00
29f9ed20b4 patch 8.0.1689: no tests for xxd
Problem:    No tests for xxd.
Solution:   Add a test. (Christian Brabandt)
2018-04-10 19:20:31 +02:00
6f4700233f patch 8.0.1688: some macros are used without a semicolon
Problem:    Some macros are used without a semicolon, causing auto-indent to be
            wrong.
Solution:   Use the do-while(0) trick. (Ozaki Kiichi, closes #2729)
2018-04-10 18:47:20 +02:00
d6b4f2dd76 patch 8.0.1687: 64 bit compiler warnings
Problem:    64 bit compiler warnings.
Solution:   change type, add type cast. (Mike Williams)
2018-04-10 18:26:27 +02:00
d088240b96 patch 8.0.1686: Python does not work when configuring with specific dir
Problem:    Python does not work when configuring with specific dir. (Rajdeep)
Solution:   Do define PYTHON_HOME and PYTHON3_HOME in configure if the Python
            config dir was specified.
2018-04-10 18:13:05 +02:00
f59c6e8cee patch 8.0.1685: can't set ANSI colors of a terminal window
Problem:    Can't set ANSI colors of a terminal window.
Solution:   Add term_setansicolors(), term_getansicolors() and
            g:term_ansi_colors. (Andy Massimino, closes #2747)
2018-04-10 15:59:11 +02:00
07b46af645 patch 8.0.1684: ml_get errors when using terminal window for shell command
Problem:    ml_get errors when using terminal window for shell command.
            (Blay263)
Solution:   Do not change the size of the current window.
2018-04-10 14:56:18 +02:00
0424958bde patch 8.0.1683: Python upgrade breaks Vim when defining PYTHON_HOME
Problem:    Python upgrade breaks Vim when defining PYTHON_HOME.
Solution:   Do not define PYTHON_HOME and PYTHON3_HOME in configure. (Naoki
            Inada, closes #2787)
2018-04-10 13:29:34 +02:00
8c87a2b1fe patch 8.0.1682: auto indenting breaks inserting a block
Problem:    Auto indenting breaks inserting a block.
Solution:   Do not check for cursor movement if indent was changed. (Christian
            Brabandt, closes #2778)
2018-04-10 13:15:47 +02:00
e80757c154 patch 8.0.1681: the format attribute fails with MinGW
Problem:    The format attribute fails with MinGW. (John Marriott)
Solution:   Don't use the format attribute with MinGW.
2018-04-10 12:42:44 +02:00
756ef113d1 patch 8.0.1680: memory allocated by libvterm is not profiled
Problem:    Memory allocated by libvterm does not show up in profile.
Solution:   Pass allocater functions to vterm_new().
2018-04-10 12:04:27 +02:00
672afb9f66 patch 8.0.1679: compiler warning for printf format
Problem:    Compiler warning for printf format. (Chdiza)
Solution:   Change type to "long long". (closes #2791)
2018-04-08 16:34:22 +02:00
e333e79f9b patch 8.0.1678: errorformat "%r" implies "%>"
Problem:    Errorformat "%r" implies "%>". (Jan Gosmann)
Solution:   Jump to before setting fmt_ptr. (Yegappan Lakshmanan,
            closes #2785)
2018-04-08 13:27:39 +02:00
ea39176baa patch 8.0.1677: no compiler warning for wrong format in vim_snprintf()
Problem:    No compiler warning for wrong format in vim_snprintf().
Solution:   Add printf attribute for gcc.  Fix reported problems.
2018-04-08 13:07:22 +02:00
4ac2e8d8e6 patch 8.0.1676: no compiler warning for wrong printf format
Problem:    No compiler warning for wrong printf format.
Solution:   Add a printf attribute for gcc. Fix reported problems. (Dominique
            Pelle, closes #2789)
2018-04-08 12:38:26 +02:00
8200829141 patch 8.0.1675: unused macro argument in libvterm
Problem:    Unused macro argument in libvterm. (Randall W. Morris)
Solution:   Remove the argument.
2018-04-08 12:17:04 +02:00
77557a7ae6 patch 8.0.1674: libvterm can't handle an OSC string split
Problem:    Libvterm can't handle a long OSC string that is split.
Solution:   When an incomplete OSC string is received copy it to the parser
            buffer. Increase the size of the parser buffer to be able to
            handle longer strings.
2018-04-07 21:42:56 +02:00
4791015e6f patch 8.0.1673: terminal window tests are still a bit flaky
Problem:    Terminal window tests are still a bit flaky.
Solution:   Increase the waiting time even more. (Elimar Riesebieter)
2018-04-07 19:27:16 +02:00
72532d354e patch 8.0.1672: error during completion causes command to be cancelled
Problem:    Error during completion causes command to be cancelled.
Solution:   Reset did_emsg before waiting for another character. (Tom M.)
2018-04-07 19:09:09 +02:00
22efba47de patch 8.0.1671: crash when passing non-dict argument as env to job_start()
Problem:    Crash when passing non-dict argument as env to job_start().
Solution:   Check for valid argument. (Ozaki Kiichi, closes #2765)
2018-04-07 13:22:21 +02:00
b6ed74fef8 patch 8.0.1670: terminal window tests are still a bit flaky
Problem:    Terminal window tests are still a bit flaky.
Solution:   Increase the waiting time for the buffer to be created.
2018-04-07 10:42:14 +02:00
e1bb879f49 patch 8.0.1669: :vimgrep may add entries to the wrong quickfix list
Problem:    :vimgrep may add entries to the wrong quickfix list.
Solution:   Use the list identifier. (Yegappan Lakshmanan)
2018-04-06 22:58:23 +02:00
c4b533e1e9 patch 8.0.1668: terminal debugger: can't re-open source code window
Problem:    Terminal debugger: can't re-open source code window.
Solution:   Add the :Source command.  Also create the window if needed when
            gdb stops at a source line.
2018-04-06 22:26:25 +02:00
3680bab7e7 patch 8.0.1667: terminal window tests are flaky
Problem:    Terminal window tests are flaky.
Solution:   Increase the waiting time for Vim to start.
2018-04-06 20:22:06 +02:00
51ad4eaa22 Update runtime files 2018-04-06 11:14:11 +02:00
d5359b24ce patch 8.0.1666: % argument in ch_log() causes trouble
Problem:    % argument in ch_log() causes trouble.
Solution:   Use string as third argument in internal ch_log(). (Dominique
            Pelle, closes #2784)
2018-04-05 22:44:39 +02:00
9a993e3c09 patch 8.0.1665: when running a terminal from the GUI 'term' is not useful
Problem:    When running a terminal from the GUI 'term' is not useful.
Solution:   Use $TERM in the GUI if it starts with "xterm". (closes #2776)
2018-04-05 22:15:22 +02:00
3aa67fb453 patch 8.0.1664: test failure because of not allocating enough space
Problem:    Test failure because of not allocating enough space.
Solution:   Allocate more bytes.
2018-04-05 21:04:15 +02:00
86676c949f patch 8.0.1663: cannot build without multi-byte feature
Problem:    Cannot build without multi-byte feature.
Solution:   Add #ifdef.
2018-04-05 18:56:48 +02:00
4a69634b1b patch 8.0.1662: showing dump diff doesn't mention both file names
Problem:    Showing dump diff doesn't mention both file names.
Solution:   Add the file name in the separator line.
2018-04-05 18:45:26 +02:00
878c96d5b9 patch 8.0.1661: warnings from 64 bit compiler
Problem:    Warnings from 64 bit compiler.
Solution:   Add type casts. (Mike Williams)
2018-04-04 23:00:06 +02:00
333b80acf3 patch 8.0.1660: the terminal API "drop" command doesn't support options
Problem:    The terminal API "drop" command doesn't support options.
Solution:   Implement the options.
2018-04-04 22:57:29 +02:00
1f8495cf48 patch 8.0.1659: scroll events not recognized for some xterm emulators
Problem:    Scroll events not recognized for some xterm emulators.
Solution:   Recognize mouse codes 0x40 and 0x41 as scroll events.
2018-04-04 21:53:11 +02:00
79cf7c0d45 patch 8.0.1658: capitalize argument not available in long form
Problem:    Capitalize argument not available in long form.
Solution:   Recognize -capitalize.  Update man page.
2018-04-03 14:21:16 +02:00
9af9778209 patch 8.0.1657: crash when reading a channel
Problem:    Crash when reading a channel.
Solution:   Clear the write flag before writing. (idea by Shinya Ohyanagi,
            closes #2769).
2018-04-03 12:51:01 +02:00
8b31a6ff7a patch 8.0.1656: no option to have xxd produce upper case variable names
Problem:    No option to have xxd produce upper case variable names.
Solution:   Add the -C argument. (Matt Panaro closes #2772)
2018-04-03 12:17:25 +02:00
25a6e8a769 Small runtime update 2018-03-30 12:27:32 +02:00
f3ba14ffd3 patch 8.0.1655: outdated gdb message in terminal debugger unclear
Problem:    Outdated gdb message in terminal debugger unclear.
Solution:   Specifically mention the required gdb version.  Avoid getting
            stuck on pagination.
2018-03-29 18:29:51 +02:00
ab943431d8 Update runtime files 2018-03-29 18:27:07 +02:00
7b24ce08fe patch 8.0.1654: warnings for conversion of void to function pointer
Problem:    Warnings for conversion of void to function pointer.
Solution:   Use a temp variable that is a function pointer.
2018-03-29 18:15:26 +02:00
1834d37396 patch 8.0.1653: screen dump is made too soon
Problem:    Screen dump is made too soon.
Solution:   Wait until the ruler is displayed. (Ozaki Kiichi, closes #2755)
2018-03-29 17:40:46 +02:00
f06b0b6c8f patch 8.0.1652: term_dumpwrite() does not output composing characters
Problem:    term_dumpwrite() does not output composing characters.
Solution:   Use the cell index.
2018-03-29 17:22:24 +02:00
0751f51a5b patch 8.0.1651: cannot filter :ls output for terminal buffers
Problem:    Cannot filter :ls output for terminal buffers.
Solution:   Add flags for terminal buffers. (Marcin Szamotulski, closes #2751)
2018-03-29 16:37:16 +02:00
0c72fe4ed8 patch 8.0.1650: too many #ifdefs
Problem:    Too many #ifdefs.
Solution:   Graduate FEAT_LISTCMDS, no reason to leave out buffer commands.
2018-03-29 16:04:08 +02:00
cd43effeca patch 8.0.1649: no completion for argument list commands
Problem:    No completion for argument list commands.
Solution:   Add arglist completion. (Yegappan Lakshmanan, closes #2706)
2018-03-29 15:55:38 +02:00
1b2f61e732 patch 8.0.1648: resource fork tool doesn't work on Python 3
Problem:    Resource fork tool doesn't work on Python 3.
Solution:   Use "print()" instead of "print". (Marius Gedminas)
2018-03-27 21:12:01 +02:00
2a77d21f78 patch 8.0.1647: terminal API may call any user function
Problem:    Terminal API may call a function not meant to be called by this
            API.
Solution:   Require the function to start with Tapi_.
2018-03-26 21:38:52 +02:00
4368d5ce8a patch 8.0.1646: MS-Windows: executable contains unreferenced functions
Problem:    MS-Windows: executable contains unreferenced functions and data.
Solution:   Add /opt:ref to the compiler command. (Ken Takata)
2018-03-26 20:55:10 +02:00
086eb87695 patch 8.0.1645: test for terminal response to escape sequence may fail
Problem:    Test for terminal response to escape sequence fails for some
            people. (toothpik)
Solution:   Run "cat" and let it echo the characters.
2018-03-25 21:24:12 +02:00
cf67a509e9 patch 8.0.1644: terminal API tests still fail
Problem:    Terminal API tests still fail.
Solution:   Explicitly set 'title' in the terminal job. (Ozaki Kiichi,
            closes #2750)
2018-03-25 20:31:32 +02:00
2de50f8762 patch 8.0.1643: terminal API tests fail
Problem:    Terminal API tests fail.
Solution:   Explicitly set 'title'.
2018-03-25 19:09:56 +02:00
15a1c3fdc1 patch 8.0.1642: running Vim in terminal fails with two windows
Problem:    Running Vim in terminal fails with two windows.
Solution:   Pass the number of rows to RunVimInTerminal().
2018-03-25 18:56:25 +02:00
8fbaeb195d patch 8.0.1641: job in terminal can't communicate with Vim
Problem:    Job in terminal can't communicate with Vim.
Solution:   Add the terminal API.
2018-03-25 18:20:17 +02:00
65873846e0 patch 8.0.1640: Test_cwd() is flaky
Problem:    Test_cwd() is flaky.
Solution:   Add to list of flaky tests.
2018-03-25 17:12:58 +02:00
b5b49a3b43 patch 8.0.1639: libvterm code lags behind master
Problem:    Libvterm code lags behind master.
Solution:   Sync to head, solve merge problems.
2018-03-25 16:20:37 +02:00
e7499ddc33 patch 8.0.1638: popup test fails depending on environment variable
Problem:    Popup test fails depending on environment variable.
Solution:   Reset $COLORFGBG when running Vim in a terminal. (closes #2693)
2018-03-24 17:56:13 +01:00
897e63c4c0 patch 8.0.1637: no test for term_dumpdiff() options argument
Problem:    No test for term_dumpdiff() options argument.
Solution:   Add a test.
2018-03-24 17:16:33 +01:00
45d2a64f96 patch 8.0.1636: no test for term_dumpload() and term_dumpdiff()
Problem:    No test for term_dumpload() and term_dumpdiff().
Solution:   Add tests.
2018-03-24 14:30:32 +01:00
16d7eced1a patch 8.0.1635: undefining _POSIX_THREADS causes problems with Python 3
Problem:    Undefining _POSIX_THREADS causes problems with Python 3. (Micah
            Bucy, closes #2748)
Solution:   Remove the lines.
2018-03-24 14:06:15 +01:00
75b0a888e4 patch 8.0.1634: the ex_vimgrep() function is too long
Problem:    The ex_vimgrep() function is too long.
Solution:   Split it in smaller functions. (Yegappan Lakshmanan)
2018-03-24 14:01:56 +01:00
8c64a36e40 patch 8.0.1633: a TextChanged autocmd triggers when it is defined
Problem:    A TextChanged autocmd triggers when it is defined after creating a
            buffer.
Solution:   Set b_last_changedtick when opening a buffer. (Hirohito Highlight,
            closes #2742)
2018-03-23 22:39:31 +01:00
47015b80a0 patch 8.0.1632: in a terminal dump NUL and space are different
Problem:    In a terminal dump NUL and space considered are different,
            although they are displayed the same.
Solution:   When encountering NUL handle it like space.
2018-03-23 22:10:34 +01:00
948a796bfe patch 8.0.1631: testing with Vim running in terminal is a bit flaky
Problem:    Testing with Vim running in terminal is a bit flaky.
Solution:   Delete any .swp file so that later tests don't fail.
2018-03-23 20:37:45 +01:00
295ac5ab5e patch 8.0.1630: trimming white space is not that easy
Problem:    Trimming white space is not that easy.
Solution:   Add the trim() function. (Bukn, closes #1280)
2018-03-22 23:04:02 +01:00
62b7f6a139 patch 8.0.1629: Mac: getpagesize() is deprecated
Problem:    Mac: getpagesize() is deprecated.
Solution:   Use sysconf() instead. (Ozaki Kiichi, closes #2741)
2018-03-22 21:44:07 +01:00
0bd052ba12 patch 8.0.1628: channel log doesn't mention exiting
Problem:    Channel log doesn't mention exiting.
Solution:   Add a ch_log() call in getout().
2018-03-22 20:33:56 +01:00
7735dafb58 patch 8.0.1627: compiler warning for visibility attribute not supported
Problem:    Compiler warning for visibility attribute not supported on MinGW
            builds.
Solution:   Don't add the attribute when we don't expect it to work.
            (Christian Brabandt)
2018-03-22 20:26:50 +01:00
b571c63d48 patch 8.0.1626: compiler warning for possible loss of data
Problem:    Compiler warning for possible loss of data.
Solution:   Use size_t instead of int. (Christian Brabandt)
2018-03-21 22:27:59 +01:00
29dfa5af3c patch 8.0.1625: test_quotestar is flaky when run in GTK GUI
Problem:    Test_quotestar is flaky when run in GTK GUI.
Solution:   Do not call lose_selection when invoked from
            selection_clear_event().
2018-03-20 21:24:45 +01:00
5a3a49ed59 patch 8.0.1624: options for term_dumpdiff() and term_dumpload() not implemented
Problem:    Options for term_dumpdiff() and term_dumpload() not implemented
            yet.
Solution:   Implement the relevant options.
2018-03-20 18:35:53 +01:00
3e8d385347 patch 8.0.1623: terminal kill tests are flaky
Problem:    Terminal kill tests are flaky.
Solution:   Instead of running Vim in a terminal, run it as a normal command.
2018-03-20 17:43:01 +01:00
6ed86ad170 patch 8.0.1622: possible NULL pointer dereference
Problem:    Possible NULL pointer dereferencey. (Coverity)
Solution:   Reverse the check for a NULL pointer.
2018-03-20 13:30:42 +01:00
6185903e3d patch 8.0.1621: using invalid default value for highlight attribute
Problem:    Using invalid default value for highlight attribute.
Solution:   Use zero instead of -1.
2018-03-20 13:00:25 +01:00
e26e0d2b83 patch 8.0.1620: reading spell file has no good EOF detection
Problem:    Reading spell file has no good EOF detection.
Solution:   Check for EOF at every character read for a length field.
2018-03-20 12:34:04 +01:00
81c3c89a28 patch 8.0.1619: Win32 GUI: crash when winpty is not installed
Problem:    Win32 GUI: crash when winpty is not installed and trying to use
            :shell in a terminal window.
Solution:   Check for NULL return form term_start(). (Yasuhiro Matsumoto,
            closes #2727)
2018-03-20 11:41:44 +01:00
ecadf4377f patch 8.0.1618: color Grey50 is missing in the compiled-in table
Problem:    Color Grey50, used for ToolbarLine, is missing in the compiled-in
            table.
Solution:   Add the color to the list. (Kazunobu Kuriyama)
2018-03-20 11:17:04 +01:00
42f652f733 patch 8.0.1617: Win32: :shell command in the GUI crashes
Problem:    Win32: :shell command in the GUI crashes.
Solution:   Handle the situation that "cmd" is NULL. (Yasuhiro Matsumoto,
            closes #2721)
2018-03-19 21:44:37 +01:00
f05fa37822 patch 8.0.1616: Win32: shell commands in the GUI open a new console
Problem:    Win32: shell commands in the GUI open a new console.
Solution:   Use a terminal window for interactive use when 'guioptions'
            contains "!".
2018-03-18 19:29:34 +01:00
52acb110ac patch 8.0.1615: term_dumpload() does not use the right colors
Problem:    term_dumpload() does not use the right colors.
Solution:   Initialize colors when not using create_vterm().
2018-03-18 19:20:22 +01:00
98ef233e14 Update runtime files. Convert a couple of help files to utf-8. 2018-03-18 14:44:37 +01:00
9ef2a30e6f patch 8.0.1614: "make tags" doesn't include libvterm
Problem:    "make tags" doesn't include libvterm.
Solution:   Add the libvterm sources to the tags command.
2018-03-17 15:55:26 +01:00
a2150ac016 patch 8.0.1613: warning for unused variable in tiny build
Problem:    Warning for unused variable in tiny build. (Tony Mechelynck)
Solution:   Move declaration to inner block.
2018-03-17 13:15:17 +01:00
1dd98334d6 patch 8.0.1612: need to close terminal after shell stopped
Problem:    Need to close terminal after shell stopped.
Solution:   Make :terminal without argument close the window by default.
2018-03-16 22:54:53 +01:00
af23bad0fd patch 8.0.1611: CTRL-W in system terminal does not go to job
Problem:    CTRL-W in system terminal does not go to job.
Solution:   Do not use CTRL-W as a terminal command in a system terminal.
2018-03-16 22:20:49 +01:00
4ac31eeff0 patch 8.0.1610: cannot build without GUI
Problem:    Cannot build without GUI.
Solution:   Add #ifdef.
2018-03-16 21:34:25 +01:00
135682517b patch 8.0.1609: shell commands in the GUI use a dumb terminal
Problem:    Shell commands in the GUI use a dumb terminal.
Solution:   Add the "!" flag to 'guioptions' to execute system commands in a
            special terminal window.  Only for Unix now.
2018-03-16 20:46:58 +01:00
43cb626214 patch 8.0.1608: Win32: directx not enabled by default
Problem:    Win32: directx not enabled by default.
Solution:   Change Makefile to enable directx by default. (Ken Takata)
2018-03-14 21:39:02 +01:00
62dd452d02 patch 8.0.1607: --clean loads user settings from .gvimrc
Problem:    --clean loads user settings from .gvimrc.
Solution:   Behave like "-U NONE" was used. (Ken Takata)
2018-03-14 21:20:02 +01:00
228de1dfd2 patch 8.0.1606: singular/plural variants not translated
Problem:    Singular/plural variants not translated.
Solution:   Add NGETTEXT argument to xgettext. (Sergey Alyoshin)
2018-03-14 20:11:12 +01:00
012eb66293 patch 8.0.1605: terminal test is a bit flaky
Problem:    Terminal test is a bit flaky.
Solution:   Check for the shell prompt.  Use more lambda functions.
2018-03-13 17:55:27 +01:00
a903472cfa patch 8.0.1604: paste test may fail if $DISPLAY is not set
Problem:    Paste test may fail if $DISPLAY is not set.
Solution:   Add WorkingClipboard() and use it in the paste test.
2018-03-13 15:43:46 +01:00
f118d4847e patch 8.0.1603: cannot build with +terminal but without +menu
Problem:    Cannot build with +terminal but without +menu.
Solution:   Add #ifdef. (Damien)
2018-03-13 13:14:00 +01:00
625f0c1eb7 patch 8.0.1602: crash in parsing JSON
Problem:    Crash in parsing JSON.
Solution:   Fail when using array or dict as dict key. (Damien)
2018-03-13 13:10:41 +01:00
ff1e879577 patch 8.0.1601: highlight test fails on Win32
Problem:    Highlight test fails on Win32.
Solution:   Check for vtp and vcon support.
2018-03-12 22:16:37 +01:00
f708ac592f patch 8.0.1600: crash when setting t_Co to zero when 'termguicolors' is set
Problem:    Crash when setting t_Co to zero when 'termguicolors' is set.
Solution:   Use IS_CTERM instead of checking the number of colors.
            (closes #2710)
2018-03-12 21:48:32 +01:00
3e4b84d0b5 patch 8.0.1599: no error message when gdb does not support debugger
Problem:    No error message when gdb does not support the terminal debugger.
Solution:   Check for the response to open the Machine Interface.
2018-03-11 20:51:52 +01:00
c48369c3fc patch 8.0.1598: cannot select text in a terminal with the mouse
Problem:    Cannot select text in a terminal with the mouse.
Solution:   When a job in a terminal is not consuming mouse events, use them
            for modeless selection.  Also stop Insert mode when clicking in a
            terminal window.
2018-03-11 19:30:45 +01:00
e87303af32 patch 8.0.1597: autocommand events are not sorted
Problem:    Autocommand events are not sorted.
Solution:   Sort the autocommand events.
2018-03-11 17:02:12 +01:00
b852c3e64d patch 8.0.1596: no autocommand specifically for opening a terminal window
Problem:    No autocommand specifically for opening a terminal window.
Solution:   Add TerminalOpen. (?, closes #2484)
2018-03-11 16:55:36 +01:00
12a96de430 patch 8.0.1595: no autocommand triggered before exiting
Problem:    No autocommand triggered before exiting.
Solution:   Add the ExitPre autocommand event.
2018-03-11 14:44:18 +01:00
435acdb88c patch 8.0.1594: :conform qall not tested with active terminal window
Problem:    :conform qall not tested with active terminal window.
Solution:   Add a test.
2018-03-10 20:51:25 +01:00
25cdd9c33b patch 8.0.1593: :qall never exits with an active terminal window
Problem:    :qall never exits with an active terminal window.
Solution:   Add a way to kill a job in a terminal window.
2018-03-10 20:28:12 +01:00
b5b7562475 Update runtime files. 2018-03-09 22:22:21 +01:00
4d8bac8bf5 patch 8.0.1592: terminal windows in a session are not properly restored
Problem:    Terminal windows in a session are not properly restored.
Solution:   Add "terminal" in 'sessionoptions'.  When possible restore the
            command running in a terminal.
2018-03-09 21:33:34 +01:00
20586cb4f4 patch 8.0.1591: MS-Windows: when reparsing the arguments 'wildignore' matters
Problem:    MS-Windows: when reparsing the arguments 'wildignore' matters.
Solution:   Save and reset 'wildignore'. (Yasuhiro Matsumoto, closes #2702)
2018-03-08 22:03:14 +01:00
1a84024037 patch 8.0.1590: padding in list type wastes memory
Problem:    Padding in list type wastes memory.
Solution:   Reorder struct members to optimize padding. (Dominique Pelle,
            closes #2704)
2018-03-08 21:46:43 +01:00
d7db27bafd patch 8.0.1589: error for setting 'modifiable' when resetting it
Problem:    Error for setting 'modifiable' when resetting it.
Solution:   Check if 'modifiable' was actually set.
2018-03-07 23:02:33 +01:00
52f18a112a patch 8.0.1588: popup menu hangs after typing CTRL-C
Problem:    Popup menu hangs after typing CTRL-C.
Solution:   Make CTRL-C exit the loop. (Ozaki Kiichi, closes #2697)
2018-03-07 22:09:11 +01:00
3324d0a864 patch 8.0.1587: inserting from the clipboard doesn't work literally
Problem:    inserting from the clipboard doesn't work literally
Solution:   When pasting from the * or + register always assume literally.
2018-03-06 19:51:13 +01:00
201dc67db5 patch 8.0.1586: imactivatefunc does not work on non-GUI Mac
Problem:    Imactivatefunc does not work on non-GUI Mac.
Solution:   Fix logic in #ifdef.
2018-03-06 18:59:57 +01:00
ebf142a1ed patch 8.0.1585: enabling beval_term feature in Win32 GUI
Problem:    Enabling beval_term feature in Win32 GUI.
Solution:   Only enable beval_term in Win32 console.
2018-03-06 18:20:03 +01:00
f536bf6d45 patch 8.0.1584: using C99 in Mac file gives compiler warning messages
Problem:    Using C99 in Mac file gives compiler warning messages.
Solution:   Add #prama's to avoid the warnings. (Kazunobu Kuriyama)
2018-03-06 17:55:01 +01:00
fc6f16b57c patch 8.0.1583: using C99 comment
Problem:    Using C99 comment.
Solution:   Use old style comment. (Kazunobu Kuriyama)
2018-03-06 17:43:22 +01:00
157d813be4 patch 8.0.1582: in the MS-Windows console mouse movement is not used
Problem:    In the MS-Windows console mouse movement is not used.
Solution:   Pass mouse movement events when useful.
2018-03-06 17:09:20 +01:00
3b3a9a5609 patch 8.0.1581: cannot build Win32 GUI without +eval
Problem:    Cannot build Win32 GUI without +eval.
Solution:   Define HAVE_INPUT_METHOD without +eval. (Ken Takata)
2018-03-06 16:11:47 +01:00
946acdac5b patch 8.0.1580: FEAT_CURSORBIND and FEAT_SCROLLBIND are unused
Problem:    FEAT_CURSORBIND and FEAT_SCROLLBIND are unused.
Solution:   Delete them.
2018-03-06 15:06:19 +01:00
df0d24b627 patch 8.0.1579: virtual replace test fails in GUI
Problem:    Virtual replace test fails in GUI.
Solution:   Don't save key options if they were not set.
2018-03-06 14:22:58 +01:00
69f5a3011d patch 8.0.1578: no test for :popup in terminal
Problem:    No test for :popup in terminal.
Solution:   Add a screen dump test.
2018-03-06 13:23:08 +01:00
e780848150 patch 8.0.1577: virtual replace test fails on MS-Windows
Problem:    Virtual replace test fails on MS-Windows.
Solution:   Make adding a termcap entry work for a builtin terminal.
            Restore terminal keys in a better way.
2018-03-06 13:17:23 +01:00
16896a1019 patch 8.0.1576: Perl VIM::Buffers() does not find every buffer
Problem:    Perl VIM::Buffers() does not find every buffer.
Solution:   Also find unlisted buffer by number or name. (Chris Weyl,
            closes #2692)
2018-03-06 12:25:56 +01:00
63e82db6fc patch 8.0.1575: crash when using virtual replace
Problem:    Crash when using virtual replace.
Solution:   Adjust orig_line_count.  Add more tests. (Christian Brabandt)
2018-03-06 12:10:48 +01:00
987723e084 patch 8.0.1574: show cursor in wrong place when using popup menu
Problem:    Show cursor in wrong place when using popup menu. (Wei Zhang)
Solution:   Force updating the cursor position.  Fix skipping over unused
            entries.
2018-03-06 11:43:04 +01:00
89894aa671 patch 8.0.1573: getwinpos(1) may cause response to be handled as command
Problem:    getwinpos(1) may cause response to be handled as command.
Solution:   Handle any cursor position report once one was request. (partly by
            Hirohito Higashi)
2018-03-05 22:43:10 +01:00
362dc33835 patch 8.0.1572: Mac: getting memory size doesn't work everywhere
Problem:    Mac: getting memory size doesn't work everywhere.
Solution:   Use MACOS_X instead of MACOS_X_DARWIN. (Kazunobu Kuriyama)
2018-03-05 21:59:37 +01:00
40d77b0ec1 patch 8.0.1571: can't build without GUI
Problem:    Can't build without GUI.
Solution:   Adjust #ifdef for gui_find_menu().
2018-03-05 21:32:27 +01:00
29a2c08d79 patch 8.0.1570: can't use :popup for a menu in the terminal
Problem:    Can't use :popup for a menu in the terminal. (Wei Zhang)
Solution:   Make :popup work in the terminal.  Also fix that entries were
            included that don't work in the current state.
2018-03-05 21:06:23 +01:00
28ada699c1 patch 8.0.1569: warning for uninitialized variable from gcc
Problem:    Warning for uninitialized variable from gcc.
Solution:   Initialize the variable.
2018-03-05 12:42:42 +01:00
24fe475894 patch 8.0.1568: can't build on older Mac, header file is missing
Problem:    Can't build on older Mac, header file is missing.
Solution:   Remove the header file. (Ozaki Kiichi, closes #2691)
2018-03-05 10:54:53 +01:00
6e35a11490 patch 8.0.1567: cannot build Win32 GUI without IME
Problem:    Cannot build Win32 GUI without IME. (John Marriott)
Solution:   Adjust when IME_WITHOUT_XIM and HAVE_INPUT_METHOD are defined and
            use it in a few more places.
2018-03-04 21:36:05 +01:00
8a3bb56230 patch 8.0.1566: too many #ifdefs
Problem:    Too many #ifdefs.
Solution:   Graduate FEAT_SCROLLBIND and FEAT_CURSORBIND.
2018-03-04 20:14:14 +01:00
107279c17b patch 8.0.1565: can't build Mac version without GUI
Problem:    Can't build Mac version without GUI.
Solution:   Adjust when IME_WITHOUT_XIM is defined.
2018-03-04 18:57:19 +01:00
f2bd8ef2b4 patch 8.0.1564: too many #ifdefs
Problem:    Too many #ifdefs.
Solution:   Graduate the +autocmd feature. Takes away 450 #ifdefs and
            increases code size of tiny Vim by only 40 Kbyte.
2018-03-04 18:08:14 +01:00
3f54fd319f patch 8.0.1563: timeout of getwinposx() can be too short
Problem:    Timeout of getwinposx() can be too short. (lilydjwg)
Solution:   Add getwinpos(). (closes #2689)
2018-03-03 21:29:55 +01:00
71137fed4d patch 8.0.1562: the terminal debugger can't set a breakpoint with the mouse
Problem:    The terminal debugger can't set a breakpoint with the mouse.
Solution:   Add popup menu entries.
2018-03-03 20:47:21 +01:00
069dafc1de patch 8.0.1561: crash with rust syntax highligting
Problem:    Crash with rust syntax highligting. (Edd Barrett)
Solution:   Avoid going past the end of an empty line.
2018-03-03 20:02:19 +01:00
3767b61ad9 patch 8.0.1560: build failure without GUI on MS-Windows
Problem:    Build failure without GUI on MS-Windows.
Solution:   Adjust #ifdef for vcol2col().
2018-03-03 19:51:58 +01:00
658a154cbf patch 8.0.1559: build failure without GUI
Problem:    Build failure without GUI.
Solution:   Adjust #ifdef for get_fpos_of_mouse().
2018-03-03 19:29:43 +01:00
aef8c3da2b patch 8.0.1558: no right-click menu in a terminal
Problem:    No right-click menu in a terminal.
Solution:   Implement the right click menu for the terminal.
2018-03-03 18:59:16 +01:00
c71807db9c patch 8.0.1557: printf() does not work with only one argument
Problem:    printf() does not work with only one argument. (Daniel Hahler)
Solution:   Allow using just the format. (Ken Takata, closes #2687)
2018-03-03 15:06:52 +01:00
590ec878a5 patch 8.0.1556: may not parse the t_RS response correctly
Problem:    May not parse the t_RS response correctly, resulting in wrong
            characters in the input stream.
Solution:   When the t_RS response is partly received wait for more
            characters.
2018-03-02 20:58:42 +01:00
77780b66f4 patch 8.0.1555: build error for some combination of features
Problem:    Build error for some combination of features.
Solution:   Declare variable in more situations.
2018-03-01 23:10:45 +01:00
0726870326 patch 8.0.1554: custom plugins loaded with --clean
Problem:    Custom plugins loaded with --clean.
Solution:   Do not include the home directory in 'runtimepath'.
2018-03-01 21:57:32 +01:00
5f73ef8d20 patch 8.0.1553: cannot see what digraph is used to insert a character
Problem:    Cannot see what digraph is used to insert a character.
Solution:   Show the digraph with the "ga" command. (Christian Brabandt)
2018-02-27 21:09:30 +01:00
8195247054 patch 8.0.1552: may leak file descriptors when executing job
Problem:    May leak file descriptors when executing job.
Solution:   Close more file descriptors. (Ozaki Kiichi, closes #2531)
2018-02-27 19:10:00 +01:00
988615f26f patch 8.0.1551: on Mac 'maxmemtot' is set to a weird value
Problem:    On Mac 'maxmemtot' is set to a weird value.
Solution:   For Mac use total memory and subtract system memory. For other
            systems accept both a 32 bit and 64 bit result. (Ozaki Kiichi,
            closes #2646)
2018-02-27 17:58:20 +01:00
792f0e3659 patch 8.0.1550: various small problems in source files
Problem:    Various small problems in source files.
Solution:   Fix the problems.
2018-02-27 17:27:13 +01:00
5d7ead3bc8 patch 8.0.1549: various small problems in test files
Problem:    Various small problems in test files.
Solution:   Include small changes.
2018-02-27 17:17:42 +01:00
3ad8772ef0 Include Serbian spell input files 2018-02-27 17:11:01 +01:00
75542ec9f6 patch 8.0.1548: screen dump test script not included in distribution
Problem:    Screen dump test script not included in distribution.
Solution:   Add the script to the list of distributed files.
2018-02-27 17:07:43 +01:00
9c474b2773 patch 8.0.1547: undo in the options window makes it empty
Problem:    Undo in the options window makes it empty.
Solution:   Set 'undolevels' while filling the buffer. (Yasuhiro Matthew,
            closes #2645)
2018-02-27 17:04:25 +01:00
c8bcfe7efd patch 8.0.1546: using feedkeys() in a terminal may trigger mappings
Problem:    Using feedkeys() in a terminal window may trigger mappings.
            (Charles Sheridan)
Solution:   Avoid triggering a mapping when peeking for a key.
2018-02-27 16:29:28 +01:00
8226ac6b59 patch 8.0.1545: screen dumps not included in distribution
Problem:    Screen dumps not included in distribution.
Solution:   Add dumps to the list of distributed files.
2018-02-27 14:54:53 +01:00
22f1d0e35e Updated runtime files.
Add Serbian translations and spell checking.
2018-02-27 14:53:30 +01:00
d4fc577e60 patch 8.0.1544: when using 'termguicolors' SpellBad doesn't show
Problem:    When using 'termguicolors' SpellBad doesn't show.
Solution:   When the GUI colors are not set fall back to the cterm colors.
2018-02-27 14:39:03 +01:00
33ef5bb0e4 patch 8.0.1543: with 'termguicolors' Normal color doesn't work correctly
Problem:    With 'termguicolors' Normal color doesn't work correctly.
Solution:   Set cterm_normal_bg_gui_color and cterm_normal_fg_color always.
            (Kazunobu Kuriyama, closes #981, closes #2332)
2018-02-27 13:04:59 +01:00
9271d058c9 patch 8.0.1542: terminal screen dump does not include cursor position
Problem:    Terminal screen dump does not include cursor position.
Solution:   Mark the cursor position in the cump.
2018-02-25 21:39:46 +01:00
36f923014a patch 8.0.1541: synpat_T is taking too much memory
Problem:    synpat_T is taking too much memory.
Solution:   Reorder members to reduce padding. (Dominique Pelle, closes #2671)
2018-02-24 21:36:34 +01:00
2b10bcbfc1 patch 8.0.1540: popup menu positioning fails with longer string
Problem:    Popup menu positioning fails with longer string.
Solution:   Only align with right side of window when width is less than
            'pumwidth' (closes #2661)
2018-02-24 21:25:44 +01:00
6bb2cdfe60 patch 8.0.1539: no test for the popup menu positioning
Problem:    No test for the popup menu positioning.
Solution:   Add a screendump test for the popup menu.
2018-02-24 19:53:53 +01:00
bb008dd323 patch 8.0.1538: popupmenu is too far left when completion is long
Problem:    Popupmenu is too far left when completion is long. (Linwei)
Solution:   Adjust column computations. (Hirohito Higashi, closes #2661)
2018-02-24 18:59:55 +01:00
085346f5a1 patch 8.0.1537: xxd does not skip NUL lines when using ebcdic
Problem:    Xxd does not skip NUL lines when using ebcdic.
Solution:   Check for a NUL before converting a character for ebcdic. (Tim
            Sell, closes #2668)
2018-02-24 18:30:55 +01:00
791010e648 patch 8.0.1536: quotestar test is flaky when using the GUI
Problem:    Quotestar test is flaky when using the GUI.
Solution:   Add check that the star register arrived at the server.  Increase
            timeouts.
2018-02-24 17:42:28 +01:00
6acadda8d6 patch 8.0.1535: C syntax test still fails when using gvim
Problem:    C syntax test still fails when using gvim.
Solution:   Clear Normal cterm highlighting instead of setting it.
2018-02-24 16:51:32 +01:00
b7ea7cb8e4 patch 8.0.1534: C syntax test fails when using gvim
Problem:    C syntax test fails when using gvim
Solution:   Force running in a terminal.  Check that 'background' is correct
            even when $COLORFGBG is set.
2018-02-24 14:38:51 +01:00
674e482d13 patch 8.0.1533: libterm doesn't support requesting fg and bg color
Problem:    Libterm doesn't support requesting fg and bg color.
Solution:   Implement t_RF and t_RB.
2018-02-24 14:03:56 +01:00
cc0f2be880 patch 8.0.1532: compiler warnings without termguicolors feature
Problem:    Compiler warnings without termguicolors feature.
Solution:   Add #ifdef. (John Marriott)  Cleanup the code a bit.
2018-02-23 18:23:30 +01:00
cafafb381a patch 8.0.1531: cannot use 24 bit colors in MS-Windows console
Problem:    Cannot use 24 bit colors in MS-Windows console.
Solution:   Add support for vcon. (Nobuhiro Takasaki, Ken Takasaki,
            fixes #1270, fixes #2060)
2018-02-22 21:07:09 +01:00
19eb6658ec patch 8.0.1530: dump test fails when using a shadow directory
Problem:    Dump test fails when using a shadow directory.
Solution:   Add the directory to the list of symlinks to make (Elimar
            Riesebieter)
2018-02-22 11:42:49 +01:00
3049418f3d patch 8.0.1529: assert_equalfile() does not close file descriptors
Problem:    Assert_equalfile() does not close file descriptors. (Coverity)
Solution:   Close the file descriptors.
2018-02-20 21:46:05 +01:00
81226e0310 patch 8.0.1528: dead code found
Problem:    Dead code found.
Solution:   Remove the useless lines. (CodeAi, closes #2656)
2018-02-20 21:44:45 +01:00
3cc9f7440d patch 8.0.1527: screen dump test fails on MS-Windows
Problem:    Screen dump test fails on MS-Windows.
Solution:   Skip dump test on MS-Windows for now.
2018-02-20 17:09:16 +01:00
da65058a9c patch 8.0.1526: no test using a screen dump yet
Problem:    No test using a screen dump yet.
Solution:   Add a test for C syntax highlighting.  Add helper functions.
2018-02-20 15:51:40 +01:00
7a76092a51 patch 8.0.1525: using :wqa exits even if a job runs in a terminal window
Problem:    Using :wqa exits even if a job runs in a terminal window. (Jason
            Felice)
Solution:   Check if a terminal has a running job. (closes #2654)
2018-02-19 23:10:02 +01:00
9c8816bd30 patch 8.0.1524: compiler warnings for uninitialized variables
Problem:    Compiler warnings for uninitialized variables. (Tony Mechelynck)
Solution:   Initialize variables.
2018-02-19 21:50:42 +01:00
d96ff16511 patch 8.0.1523: cannot write and read terminal screendumps
Problem:    Cannot write and read terminal screendumps.
Solution:   Add term_dumpwrite(), term_dumpread() and term_dumpdiff().
            Also add assert_equalfile().
2018-02-18 22:13:29 +01:00
4287ed33dd patch 8.0.1522: popup menu is positioned in the wrong place
Problem:    Popup menu is positioned in the wrong place. (Davit Samvelyan,
            Boris Staletic)
Solution:   Correct computation of the column and the conditions for that.
            (Hirohito Higashi, closes #2640)
2018-02-17 20:35:29 +01:00
73cddfd559 patch 8.0.1521: Shift-Tab does not work in a terminal window
Problem:    Shift-Tab does not work in a terminal window.
Solution:   Recognize Shift-Tab key press. (Jsees Luehrs, closes #2644)
2018-02-16 20:01:04 +01:00
181ca99e16 patch 8.0.1520: cursor in wrong line when using a WinBar in Terminal window
Problem:    Cursor is in the wrong line when using a WinBar in a Terminal
            window.
Solution:   Adjust the row number. (Christian Brabandt, closes #2362)
2018-02-13 21:19:21 +01:00
341a64c9ca patch 8.0.1519: getchangelist() does not use argument as bufname()
Problem:    Getchangelist() does not use argument as bufname().
Solution:   Use get_buf_tv(). (Yegappan Lakshmanan, closes #2641)
2018-02-13 19:21:17 +01:00
2be5733152 patch 8.0.1518: error messages suppressed after ":silent! try"
Problem:    Error messages suppressed after ":silent! try". (Ben Reilly)
Solution:   Restore emsg_silent before executing :try. (closes #2531)
2018-02-13 18:05:18 +01:00
bc197195b0 patch 8.0.1517: invalid memory acces with pattern using look-behind match
Problem:    Invalid memory acces with pattern using look-behind match.
            (Dominique Pelle)
Solution:   Get a pointer to the right line.
2018-02-13 16:35:06 +01:00
b3292fa2d3 patch 8.0.1516: errors for job options are not very specific
Problem:    Errors for job options are not very specific.
Solution:   Add more specific error messages.
2018-02-13 15:17:58 +01:00
ab5e7c3deb patch 8.0.1515: BufWinEnter event fired when opening hidden terminal
Problem:    BufWinEnter event fired when opening hidden terminal.
Solution:   Do not fire BufWinEnter when the terminal is midden and does not
            open a window. (Kenta Sato, closes #2636)
2018-02-13 14:07:18 +01:00
07ad816525 patch 8.0.1514: getting the list of changes is not easy
Problem:    Getting the list of changes is not easy.
Solution:   Add the getchangelist() function. (Yegappan Lakshmanan,
            closes #2634)
2018-02-13 13:59:59 +01:00
4867974137 patch 8.0.1513: the jumplist is not always properly cleaned up
Problem:    The jumplist is not always properly cleaned up.
Solution:   Call fname2fnum() before cleanup_jumplist(). (Yegappan Lakshmanan)
2018-02-13 13:33:29 +01:00
e4db7aedab patch 8.0.1512: warning for possibly using NULL pointer
Problem:    Warning for possibly using NULL pointer. (Coverity)
Solution:   Skip using the pointer if it's NULL.
2018-02-13 13:12:11 +01:00
3198870137 patch 8.0.1511: some code for the debugger watch expression is clumsy
Problem:    Some code for the debugger watch expression is clumsy.
Solution:   Clean up the code.
2018-02-13 12:57:42 +01:00
b48e96f61c patch 8.0.1510: cannot test if a command causes a beep
Problem:    Cannot test if a command causes a beep.
Solution:   Add assert_beeps().
2018-02-13 12:26:14 +01:00
294959528e patch 8.0.1509: test for failing drag-n-drop command no longer fails
Problem:    Test for failing drag-n-drop command no longer fails.
Solution:   Check for the "dnd" feature.
2018-02-12 22:49:00 +01:00
5a656864a0 patch 8.0.1508: the :drop command is not always available
Problem:    The :drop command is not always available.
Solution:   Include :drop in all builds. (Yasuhiro Matsumoto, closes #2639)
2018-02-12 22:08:06 +01:00
bfbea567d8 patch 8.0.1507: timer test is a bit flaky
Problem:    Timer test is a bit flaky.
Solution:   Add it to the list of flaky tests.
2018-02-12 21:31:35 +01:00
c19e1d1ba5 patch 8.0.1506: new version of HP NonStop (Tandem) doesn't like a header
Problem:    New version of HP NonStop (Tandem) doesn't like the default header
            for setenv().
Solution:   Put a #ifdef around the setenv() entry. (Joachim Schmitz)
2018-02-12 20:58:11 +01:00
c6f9f739d3 patch 8.0.1505: debugger can't break on a condition
Problem:    Debugger can't break on a condition. (Charles Campbell)
Solution:   Add ":breakadd expr". (Christian Brabandt, closes #859)
2018-02-11 19:06:26 +01:00
c33ecb2915 patch 8.0.1504: Win32: the screen may be cleared on startup
Problem:    Win32: the screen may be cleared on startup.
Solution:   Only call shell_resized() when the size actually changed. (Ken
            Takata, closes #2527)
2018-02-11 16:40:45 +01:00
cdd09aa51a patch 8.0.1503: access memory beyond end of string
Problem:    Access memory beyond end of string. (Coverity)
Solution:   Keep allocated memory in separate pointer.  Avoid outputting the
            NUL character.
2018-02-11 15:38:40 +01:00
71a43c0137 patch 8.0.1502: in out-of-memory situation character is not restored
Problem:    In out-of-memory situation character is not restored. (Coverity)
Solution:   Restore the character in all situations.
2018-02-11 15:20:20 +01:00
a0221df149 patch 8.0.1501: out-of-memory situation not correctly handled
Problem:    Out-of-memory situation not correctly handled. (Coverity)
Solution:   Check for NULL value.
2018-02-11 15:07:22 +01:00
0549a1e184 patch 8.0.1500: possible NULL pointer dereference
Problem:    Possible NULL pointer dereference. (Coverity)
Solution:   Check for the pointer not being NULL.
2018-02-11 15:02:48 +01:00
4b7e7bed6c patch 8.0.1499: out-of-memory situation not correctly handled
Problem:    Out-of-memory situation not correctly handled. (Coverity)
Solution:   Check for NULL value.
2018-02-11 14:53:30 +01:00
a7e18d237f patch 8.0.1498: getjumplist() returns duplicate entries
Problem:    Getjumplist() returns duplicate entries. (lacygoill)
Solution:   Call cleanup_jumplist(). (Yegappan Lakshmanan)
2018-02-11 14:29:49 +01:00
4f50588ba3 patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Problem:    Getting the jump list requires parsing the output of :jumps.
Solution:   Add getjumplist(). (Yegappan Lakshmanan, closes #2609)
2018-02-10 21:06:32 +01:00
d23a823669 patch 8.0.1496: clearing a pointer takes two lines
Problem:    Clearing a pointer takes two lines.
Solution:   Add VIM_CLEAR() and replace vim_clear(). (Hirohito Higashi,
            closes #2629)
2018-02-10 18:45:26 +01:00
42443c7d7f patch 8.0.1495: having 'pumwidth' default to zero has no merit
Problem:    Having 'pumwidth' default to zero has no merit.
Solution:   Make the default 15, as the actual default value.
2018-02-10 18:28:52 +01:00
5a09343719 patch 8.0.1494: no autocmd triggered in Insert mode with visible popup menu
Problem:    No autocmd triggered in Insert mode with visible popup menu.
Solution:   Add TextChangedP. (Prabir Shrestha, Christian Brabandt,
            closes #2372, closes #1691)
            Fix that the TextChanged autocommands are not always triggered
            when sourcing a script.
2018-02-10 18:15:19 +01:00
9b56a57cda patch 8.0.1493: completion items cannot be annotated
Problem:    Completion items cannot be annotated.
Solution:   Add a "user_data" entry to the completion item. (Ben Jackson,
            coses #2608, closes #2508)
2018-02-10 16:19:32 +01:00
b301f6b950 patch 8.0.1492: memory leak in balloon_split()
Problem:    Memory leak in balloon_split().
Solution:   Free the balloon lines. Free the balloon when exiting.
2018-02-10 15:38:35 +01:00
a8f04aa275 patch 8.0.1491: the minimum width of the popup menu is hard coded
Problem:    The minimum width of the popup menu is hard coded.
Solution:   Add the 'pumwidth' option. (Christian Brabandt, James McCoy,
            closes #2314)
2018-02-10 15:36:55 +01:00
2993ac5fce patch 8.0.1490: number of spell regions is spread out through the code
Problem:    Number of spell regions is spread out through the code.
Solution:   Define MAXREGIONS.
2018-02-10 14:12:43 +01:00
7254067ee9 Update runtime files. 2018-02-09 22:00:53 +01:00
5459129af2 patch 8.0.1489: there is no easy way to get the global directory
Problem:    There is no easy way to get the global directory, esp. if some
            windows have a local directory.
Solution:   Make getcwd(-1) return the global directory. (Andy Massimino,
            closes #2606)
2018-02-09 20:53:59 +01:00
0d20737732 patch 8.0.1488: emacs tags no longer work
Problem:    Emacs tags no longer work. (zdohnal)
Solution:   Do not skip over end of line.
2018-02-09 19:25:29 +01:00
8846ac5aed patch 8.0.1487: test 14 fails
Problem:    Test 14 fails.
Solution:   Fix of-by-one error.
2018-02-09 19:24:01 +01:00
82846a00ac patch 8.0.1486: accessing invalid memory with "it"
Problem:    Accessing invalid memory with "it". (Dominique Pelle)
Solution:   Avoid going over the end of the line. (Christian Brabandt,
            closes #2532)
2018-02-09 18:09:54 +01:00
9e33efd152 patch 8.0.1485: weird autocmd may cause arglist to be changed recursively
Problem:    Weird autocmd may cause arglist to be changed recursively.
Solution:   Prevent recursively changing the argument list. (Christian
            Brabandt, closes #2472)
2018-02-09 17:50:28 +01:00
a15ef4588c patch 8.0.1484: reduntant conditions
Problem:    Reduntant conditions.
Solution:   Remove them. (Dominique Pelle)
2018-02-09 16:46:00 +01:00
9d32276b52 patch 8.0.1483: searchpair() might return an invalid value on timeout
Problem:    Searchpair() might return an invalid value on timeout.
Solution:   When the second search times out, do not accept a match from the
            first search. (Daniel Hahler, closes #2552)
2018-02-09 16:04:25 +01:00
02ae9b4a93 patch 8.0.1482: using feedkeys() does not work to test completion
Problem:    Using feedkeys() does not work to test Insert mode completion.
            (Lifepillar)
Solution:   Do not check for typed keys when executing :normal or feedkeys().
            Fix thesaurus completion not working when 'complete' is empty.
2018-02-09 15:06:02 +01:00
1567558b20 patch 8.0.1481: clearing a pointer takes two lines
Problem:    Clearing a pointer takes two lines.
Solution:   Add vim_clear() to free and clear the pointer.
2018-02-09 12:29:56 +01:00
0562532c2e patch 8.0.1480: patch missing change
Problem:    Patch missing change.
Solution:   Add missing change.
2018-02-09 12:28:00 +01:00
bc0e9adae9 patch 8.0.1479: insert mode completion state is confusing
Problem:    Insert mode completion state is confusing.
Solution:   Move ctrl_x_mode into edit.c.  Add CTRL_X_NORMAL for zero.
2018-02-09 12:13:34 +01:00
dff72ba445 patch 8.0.1478: unnecessary condition
Problem:    Unnecessary condition for "len" being zero.
Solution:   Remove the condition. (Dominique Pelle)
2018-02-08 22:45:17 +01:00
d317b38a4d patch 8.0.1477: redraw flicker when moving the mouse outside of terminal window
Problem:    Redraw flicker when moving the mouse outside of terminal window.
Solution:   Instead of updating the cursor color and shape every time leaving
            and entering a terminal window, only update when different from
            the previously used cursor.
2018-02-08 22:33:31 +01:00
acda04f5c6 patch 8.0.1476: screen isn't always updated right away
Problem:    Screen isn't always updated right away.
Solution:   Adjust #ifdef: Call out_flush() when not running the GUI.
2018-02-08 09:57:28 +01:00
f12519dec8 patch 8.0.1475: invalid memory access in read_redo()
Problem:    Invalid memory access in read_redo(). (gy741)
Solution:   Convert the replacement character back from a negative number to
            CR or NL. (hint by Dominique Pelle, closes #2616)
2018-02-06 22:52:49 +01:00
dd08b6a32b patch 8.0.1474: Visual C 2017 has multiple MSVCVER numbers
Problem:    Visual C 2017 has multiple MSVCVER numbers.
Solution:   Assume the 2017 version if MSVCVER >= 1910. (Leonardo Valeri
            Manera, closes #2619)
2018-02-06 22:02:43 +01:00
511ffdd65d patch 8.0.1473: MS-Windows: D&D fails between 32 and 64 bit apps
Problem:    MS-Windows: D&D fails between 32 and 64 bit apps.
Solution:   Add the /HIGHENTROPYVA:NO linker option. (Ken Takata, closes #2504)
2018-02-04 19:37:40 +01:00
5d4247402b patch 8.0.1472: MS-Windows: nsis installer is a bit slow
Problem:    MS-Windows: nsis installer is a bit slow.
Solution:   Use ReserveFile for vimrc.ini. (closes #2522)
2018-02-04 19:11:30 +01:00
28944fecff patch 8.0.1471: on MS-Windows CursorIM highlighting no longer works
Problem:    On MS-Windows CursorIM highlighting no longer works.
Solution:   Adjust #if statements. (Ken Takata)
2018-02-04 19:01:31 +01:00
2c7b906afb patch 8.0.1470: integer overflow when using regexp pattern
Problem:    Integer overflow when using regexp pattern. (geeknik)
Solution:   Use a long instead of int. (Christian Brabandt, closes #2251)
2018-02-04 18:22:46 +01:00
2374faae11 patch 8.0.1469: when package path is a symlink 'runtimepath' is wrong
Problem:    When package path is a symlink adding it to 'runtimepath' happens
            at the end.
Solution:   Do not resolve symlinks before locating the position in
            'runtimepath'. (Ozaki Kiichi, closes #2604)
2018-02-04 17:47:42 +01:00
191f18bad0 patch 8.0.1468: illegal memory access in del_bytes()
Problem:    Illegal memory access in del_bytes().
Solution:   Check for negative byte count. (Christian Brabandt, closes #2466)
2018-02-04 16:38:47 +01:00
fef4ddd5eb patch 8.0.1467: libvterm doesn't handle illegal byte sequence correctly
Problem:    Libvterm doesn't handle illegal byte sequence correctly.
Solution:   After the invalid code check if there is space to store another
            character.  Allocate one more character. (zhykzhykzhyk, closes
            #2614, closes #2613)
2018-02-04 14:49:57 +01:00
06b77ef69f patch 8.0.1466: older GTK versions don't have gtk_entry_get_text_length()
Problem:    Older GTK versions don't have gtk_entry_get_text_length().
Solution:   Add a function with #ifdefs to take care of GTK version
            differences. (Kazunobu Kuriyama, closes #2605)
2018-02-04 14:32:57 +01:00
4bc0bed536 patch 8.0.1465: python2 and python3 detection not tested
Problem:    Python2 and python3 detection not tested. (Matej Cepl)
Solution:   Add test for detecting python2 and python3.  Also detect a script
            using "js" as javascript.
2018-02-03 22:35:40 +01:00
8a37b03289 patch 8.0.1464: completing directory after :find does not add slash
Problem:    Completing directory after :find does not add slash.
Solution:   Adjust the flags for globpath(). (Genki Sky)
2018-02-03 20:43:08 +01:00
ec48a9c589 patch 8.0.1463: test fails without 'autochdir' option
Problem:    Test fails without 'autochdir' option.
Solution:   Skip test if 'autochdir' is not supported.
2018-02-03 20:11:40 +01:00
f4aba797cb patch 8.0.1462: missing yet another file in patch
Problem:    Missing yet another file in patch.
Solution:   Add changes to missing file.
2018-02-03 19:17:36 +01:00
15833239a4 patch 8.0.1461: missing another file in patch
Problem:    Missing another file in patch.
Solution:   Add changes to missing file.
2018-02-03 18:33:17 +01:00
b5cb65ba2b patch 8.0.1460: missing file in patch
Problem:    Missing file in patch.
Solution:   Add changes to missing file.
2018-02-03 18:01:37 +01:00
b7407d3fc9 patch 8.0.1459: cannot handle change of directory
Problem:    Cannot handle change of directory.
Solution:   Add the DirChanged autocommand event. (Andy Massimino,
            closes #888)  Avoid changing directory for 'autochdir' too often.
2018-02-03 17:36:27 +01:00
ddb349369d patch 8.0.1458: filetype detection test does not check all scripts
Problem:    Filetype detection test does not check all scripts.
Solution:   Add most scripts to the test
2018-02-03 15:55:49 +01:00
8fd2ffc530 patch 8.0.1457: clojure now supports a shebang line
Problem:    Clojure now supports a shebang line.
Solution:   Detect clojure script from the shebang line. (David Burgin,
            closes #2570)
2018-02-03 15:43:15 +01:00
8dce6c54c8 patch 8.0.1456: timer test on travis Mac is still flaky
Problem:    Timer test on travis Mac is still flaky.
Solution:   Increase time range a bit more.
2018-02-03 15:38:42 +01:00
4bfa8af141 patch 8.0.1455: if $SHELL contains a space then 'shell' is incorrect
Problem:    If $SHELL contains a space then the default value of 'shell' is
            incorrect. (Matthew Horan)
Solution:   Escape spaces in $SHELL. (Christian Brabandt, closes #459)
2018-02-03 15:14:46 +01:00
42b23fad1d patch 8.0.1454: when in silent mode too much output is buffered
Problem:    When in silent mode too much output is buffered.
Solution:   Use line buffering instead of fully buffered. (Brian M. Carlson,
            closes #2537)
2018-02-03 14:46:45 +01:00
218101442e patch 8.0.1453: terminal test fails on some slow terminals
Problem:    Terminal test fails on some slow terminals.
Solution:   Increase timeout to 10 seconds.
2018-02-02 18:30:36 +01:00
d4a282f7a5 patch 8.0.1452: terminal test fails on some systems
Problem:    Terminal test fails on some systems. (jonathonf)
Solution:   Use "cat" instead of Python to produce the input.  Add a delay.
            (closes #2607)
2018-02-02 18:22:31 +01:00
94073167e3 patch 8.0.1451: difficult to set the python home directories properly
Problem:    It is difficult to set the python home directory properly for
            Python 2.7 and 3.5 since both use $PYTHONHOME.
Solution:   Add the 'pythonhome' and 'pythonthreehome' options. (Kazuki
            Sakamoto, closes #1266)
2018-01-31 21:49:05 +01:00
1dd45fb4f3 patch 8.0.1450: GUI: endless loop when stopping cursor blinking
Problem:    Endless loop when gui_mch_stop_blink() is called while blink_state
            is BLINK_OFF. (zdohnal)
Solution:   Avoid calling gui_update_cursor() recursively.
2018-01-31 21:10:01 +01:00
a338adcf22 patch 8.0.1449: slow redrawing with DirectX
Problem:    Slow redrawing with DirectX.
Solution:   Avoid calling gui_mch_flush() unnecessarily, especially when
            updating the cursor. (Ken Takata, closes #2560)
2018-01-31 20:51:47 +01:00
37badc898b patch 8.0.1448: segfault with exception inside :rubyfile command
Problem:    Segmentation fault when Ruby throws an exception inside :rubyfile
            command.
Solution:   Use rb_protect() instead of rb_load_protect(). (ujihisa,
            closes #2147, greywolf, closes #2512, #2511)
2018-01-31 20:15:30 +01:00
cada78975e patch 8.0.1447: still too many old style tests
Problem:    Still too many old style tests.
Solution:   Turn a few tests into new style. (Yegappan Lakshmanan,
            closes #2509)
2018-01-31 19:30:24 +01:00
6f361c9912 patch 8.0.1446: acessing freed memory after window command in auto command
Problem:    Acessing freed memory after window command in auto command.
            (gy741)
Solution:   Adjust the pointer in the parent frame. (Christian Brabandt,
            closes #2467)
2018-01-31 19:06:50 +01:00
153b704e20 patch 8.0.1445: cannot act on edits in the command line
Problem:    Cannot act on edits in the command line.
Solution:   Add the CmdlineChanged autocommand event. (xtal8, closes #2603,
            closes #2524)
2018-01-31 15:48:32 +01:00
ec0557f08b patch 8.0.1444: missing -D_FILE_OFFSET_BITS=64 may cause problems
Problem:    Missing -D_FILE_OFFSET_BITS=64 may cause problems if a library is
            compiled with it.
Solution:   Include -D_FILE_OFFSET_BITS if some CFLAGS has it. (James McCoy,
            closes #2600)
2018-01-31 14:41:37 +01:00
059fd01021 patch 8.0.1443: compiler complains about uninitialized variable
Problem:    Compiler complains about uninitialized variable. (Tony Mechelynck)
Solution:   Assign a value to the variable.
2018-01-31 14:25:53 +01:00
a172b63ab8 patch 8.0.1442: using pointer before it is set
Problem:    Using pointer before it is set.
Solution:   Search in whole buffer instead of next token.
2018-01-30 22:52:06 +01:00
ce46d934af patch 8.0.1441: using ":undo 0" leaves undo in wrong state
Problem:    Using ":undo 0" leaves undo in wrong state.
Solution:   Instead of searching for state 1 and go above, just use the start.
            (Ozaki Kiichi, closes #2595)
2018-01-30 22:46:06 +01:00
b50773c6df patch 8.0.1440: terminal window: some vterm responses are delayed
Problem:    Terminal window: some vterm responses are delayed.
Solution:   After writing input. check if there is output to read. (Ozaki
            Kiichi, closes #2594)
2018-01-30 22:31:19 +01:00
1274d33493 patch 8.0.1439: if cscope fails a search Vim may hang
Problem:    If cscope fails a search Vim may hang.
Solution:   Bail out when a search error is encountered. (Safouane Baroudi,
            closes #2598)
2018-01-30 21:47:52 +01:00
0479e910c4 patch 8.0.1438: filetype detection test not updated for change
Problem:    Filetype detection test not updated for change.
Solution:   Update the test.
2018-01-29 09:17:32 +01:00
d6d304298a patch 8.0.1437: pkg-config doesn't work with cross compiling
Problem:    Pkg-config doesn't work with cross compiling.
Solution:   Use AC_PATH_TOOL() instead of AC_PATH_PROG(). (James McCoy,
            closes #2513)
2018-01-28 22:48:55 +01:00
40962ec9c0 Update runtime files. 2018-01-28 22:47:25 +01:00
84b242c369 patch 8.0.1436: not enough information about what Python version may work
Problem:    Not enough information about what Python version may work.
Solution:   Add "python_compiled", "python3_compiled", "python_dynamic" and
            "python3_dynamic" values for has().
2018-01-28 17:45:49 +01:00
501383236d patch 8.0.1435: memory leak in test_arabic
Problem:    Memory leak in test_arabic.
Solution:   Free the from and to parts. (Christian Brabandt, closes #2569)
2018-01-28 17:05:16 +01:00
d7823d5b7c patch 8.0.1434: GTK: :promtfind does not put focus on text input
Problem:    GTK: :promtfind does not put focus on text input. (Adam Novak)
Solution:   When re-opening the dialog put focus on the text input. (Kazunobu
            Kuriyama, closes #2563)
2018-01-28 15:36:42 +01:00
95dbcbea6d patch 8.0.1433: illegal memory access after undo
Problem:    Illegal memory access after undo. (Dominique Pelle)
Solution:   Avoid the column becomes negative. (Christian Brabandt,
            closes #2533)
2018-01-27 21:01:34 +01:00
2ec364e94d patch 8.0.1432: after ":copen" can't get the window-ID of the quickfix window
Problem:    After ":copen" can't get the window-ID of the quickfix window.
            (FalacerSelene)
Solution:   Make it work without a quickfix list.  Add a test. (Yegappan
            Lakshmanan, closes #2541)
2018-01-27 11:52:13 +01:00
0cbcd949e1 patch 8.0.1431: MS-Windows: vimtutor fails if %TMP% has special chars
Problem:    MS-Windows: vimtutor fails if %TMP% has special chars.
Solution:   Add quotes. (Tamce, closes #2561)
2018-01-26 22:22:55 +01:00
4aad53c369 patch 8.0.1430: crash when term_start() fails
Problem:    Crash when term_start() fails.
Solution:   Initialize winpty_err.
2018-01-26 21:11:03 +01:00
ede35bbbd0 patch 8.0.1429: crash when calling term_start() with empty argument
Problem:    Crash when calling term_start() with empty argument.
Solution:   Check for invalid argument. (Yasuhiro Matsomoto, closes #2503)
            Fix memory leak.
2018-01-26 20:05:18 +01:00
200ea8ffaa patch 8.0.1428: compiler warning on 64 bit MS-Windows system
Problem:    Compiler warning on 64 bit MS-Windows system.
Solution:   Change type from "int" to "size_t". (Mike Williams)
2018-01-02 15:37:46 +01:00
de04654ddc patch 8.0.1427: the :leftabove modifier doesn't work for :copen
Problem:    The :leftabove modifier doesn't work for :copen.
Solution:   Respect the split modifier. (Yegappan Lakshmanan, closes #2496)
2017-12-26 13:53:11 +01:00
9e3dfc6501 patch 8.0.1426: "gf" and <cfile> don't accept ? and & in URL
Problem:    "gf" and <cfile> don't accept ? and & in URL. (Dmitrii Tcyganok)
Solution:   Check for a URL and allow for extra characters. (closes #2493)
2017-12-25 14:29:18 +01:00
2095148277 patch 8.0.1425: execute() does not work in completion of user command
Problem:    execute() does not work in completion of user command. (thinca)
Solution:   Switch off redir_off and restore it. (Ozaki Kiichi, closes #2492)
2017-12-25 13:44:43 +01:00
df980db69b update a few runtime files 2017-12-24 13:22:00 +01:00
a47ebdbd22 patch 8.0.1424: the timer_pause test is flaky on Travis
Problem:    The timer_pause test is flaky on Travis.
Solution:   Accept a longer sleep time on Mac.
2017-12-23 18:41:35 +01:00
fabaf753e2 patch 8.0.1423: error in return not caught by try/catch
Problem:    Error in return not caught by try/catch.
Solution:   Call update_force_abort(). (Yasuhiro Matsomoto, closes #2483)
2017-12-23 17:26:11 +01:00
45a0000d5c patch 8.0.1422: no fallback to underline when undercurl is not set
Problem:    No fallback to underline when undercurl is not set. (Ben Jackson)
Solution:   Check for the value to be empty instead of NULL. (closes #2424)
2017-12-22 21:12:34 +01:00
e6640ad44e patch 8.0.1421: accessing invalid memory with overlong byte sequence
Problem:    Accessing invalid memory with overlong byte sequence.
Solution:   Check for NUL character. (test by Dominique Pelle, closes #2485)
2017-12-22 21:06:56 +01:00
3c09722600 patch 8.0.1420: accessing freed memory in vimgrep
Problem:    Accessing freed memory in vimgrep.
Solution:   Check that the quickfix list is still valid. (Yegappan Lakshmanan,
            closes #2474)
2017-12-21 20:54:49 +01:00
b73fa629d6 patch 8.0.1419: cursor column is not updated after ]s
Problem:    Cursor column is not updated after ]s. (Gary Johnson)
Solution:   Set the curswant flag.
2017-12-21 20:27:47 +01:00
ae6f865125 patch 8.0.1418: no test for expanding backticks
Problem:    No test for expanding backticks.
Solution:   Add a test. (Dominique Pelle, closes #2479)
2017-12-20 22:32:20 +01:00
1bd999f982 patch 8.0.1417: test doesn't search for a sentence
Problem:    Test doesn't search for a sentence. Still fails when searching for
            start of sentence. (Dominique Pelle)
Solution:   Add paren. Check for MAXCOL in dec().
2017-12-19 22:25:40 +01:00
8ada6aa929 patch 8.0.1416: crash when searching for a sentence
Problem:    Crash when searching for a sentence.
Solution:   Return NUL when getting character at MAXCOL. (closes #2468)
2017-12-19 21:23:21 +01:00
4ce46c2a6b patch 8.0.1415: warning for unused function without timers feature
Problem:    Warning for unused function without timers feature.
Solution:   Add #ifdef. (John Marriott)
2017-12-19 19:42:41 +01:00
14a4deb064 patch 8.0.1414: accessing freed memory in :lfile.
Problem:    Accessing freed memory in :lfile.
Solution:   Get the current window after executing autocommands. (Yegappan
            Lakshmanan, closes #2473)
2017-12-19 16:48:55 +01:00
aaf6e43b7a patch 8.0.1413: accessing freed memory in :cbuffer
Problem:    Accessing freed memory in :cbuffer.
Solution:   Get quickfix list after executing autocmds. (closes #2470)
2017-12-19 16:41:14 +01:00
1223744849 patch 8.0.1412: using free memory using setloclist()
Problem:    Using free memory using setloclist(). (Dominique Pelle)
Solution:   Mark location list context as still in use when needed. (Yegappan
            Lakshmanan, closes #2462)
2017-12-19 12:38:52 +01:00
2efb323e87 patch 8.0.1411: reading invalid memory with CTRL-W :
Problem:    Reading invalid memory with CTRL-W :.
Solution:   Correct the command characters. (closes #2469)
2017-12-19 12:27:23 +01:00
338e47fdfd patch 8.0.1410: hang when using count() with an empty string
Problem:    Hang when using count() with an empty string.
Solution:   Return zero for an empty string. (Dominique Pelle, closes #2465)
2017-12-19 11:55:26 +01:00
132f75255e patch 8.0.1409: buffer overflow in :tags command
Problem:    Buffer overflow in :tags command.
Solution:   Use vim_snprintf(). (Dominique Pelle, closes #2471, closes #2475)
            Add a test.
2017-12-19 10:49:34 +01:00
a0ca7d002d patch 8.0.1408: crash in setqflist()
Problem:    Crash in setqflist().
Solution:   Check for string to be NULL. (Dominique Pelle, closes #2464)
2017-12-19 10:22:19 +01:00
4af031dbc8 patch 8.0.1407: GUI: CursorHold may trigger before 'updatetime'
Problem:    GUI: CursorHold may trigger before 'updatetime' when using timers.
Solution:   Check that 'updatetime' has passed.
2017-12-19 10:02:43 +01:00
b254af312d patch 8.0.1406: difficult to track changes to a quickfix list
Problem:    Difficult to track changes to a quickfix list.
Solution:   Add a "changedtick" value. (Yegappan Lakshmanan, closes #2460)
2017-12-18 19:48:58 +01:00
c9e649ae81 patch 8.0.1405: duplicated code for getting a typed character
Problem:    Duplicated code for getting a typed character. CursorHold is
            called too often in the GUI. (lilydjwg)
Solution:   Refactor code to move code up from mch_inchar().  Don't fire
            CursorHold if feedkeys() was used. (closes #2451)
2017-12-18 18:14:47 +01:00
606d45ccd8 patch 8.0.1404: invalid memory access on exit
Problem:    Invalid memory access on exit when autocommands wipe out a buffer.
            (gy741, Dominique Pelle)
Solution:   Check if the buffer is still valid. (closes #2449)
2017-12-18 16:21:44 +01:00
4fb921e388 patch 8.0.1403: using freed buffer in grep command
Problem:    Using freed buffer in grep command. (gy741, Dominique Pelle)
Solution:   Lock the dummy buffer to avoid autocommands wiping it out.
2017-12-18 15:33:00 +01:00
9bca805ec4 patch 8.0.1402: crash with nasty autocommand
Problem:    Crash with nasty autocommand. (gy741, Dominique Pelle)
Solution:   Check that the new current buffer isn't wiped out. (closes #2447)
2017-12-18 12:37:55 +01:00
cb89c98c26 patch 8.0.1401: cannot build with GTK but without XIM
Problem:    Cannot build with GTK but without XIM. (Guido)
Solution:   Adjust #ifdef. (closes #2461)
2017-12-17 21:54:55 +01:00
f0b03c4e98 Update runtime files 2017-12-17 17:17:07 +01:00
8ee2d36e21 patch 8.0.1400: color scheme check script shows up as color scheme
Problem:    Color scheme check script shows up as color scheme.
Solution:   Move it to the "tools" subdirectory. (closes #2457)
2017-12-17 16:11:09 +01:00
ee219b0e9f patch 8.0.1399: warnings and errors when building tiny version
Problem:    Warnings and errors when building tiny version. (Tony Mechelynck)
Solution:   Add #ifdefs.
2017-12-17 14:55:01 +01:00
9e1d399e63 patch 8.0.1398: :packadd does not load packages from the "start" directory
Problem:    :packadd does not load packages from the "start" directory.
            (Alejandro Hernandez)
Solution:   Make :packadd look in the "start" directory if those packages were
            not loaded on startup.
2017-12-17 14:26:46 +01:00
890dd05492 patch 8.0.1397: pattern with \& following nothing gives an error
Problem:    Pattern with \& following nothing gives an error.
Solution:   Emit an empty node when needed.
2017-12-16 19:59:37 +01:00
a1d5c154db patch 8.0.1396: memory leak when CTRL-G in search command line fails
Problem:    Memory leak when CTRL-G in search command line fails.
Solution:   Move restore_last_search_pattern to after "if".
2017-12-16 19:05:22 +01:00
200d0e36bc patch 8.0.1395: it is not easy to see if a colorscheme is well written
Problem:    It is not easy to see if a colorscheme is well written.
Solution:   Add a script that checks for common mistakes. (Christian Brabandt)
2017-12-16 18:53:35 +01:00
7e1652c63c patch 8.0.1394: cannot intercept a yank command
Problem:    Cannot intercept a yank command.
Solution:   Add the TextYankPost autocommand event. (Philippe Vaucher et al.,
            closes #2333)
2017-12-16 18:27:02 +01:00
6621605eb9 patch 8.0.1393: too much highlighting with 'hlsearch' and 'incsearch' set
Problem:    Too much highlighting with 'hlsearch' and 'incsearch' set.
Solution:   Do not highlight matches when the pattern matches everything.
2017-12-16 16:33:44 +01:00
8b42328cef patch 8.0.1392: build fails with --with-features=huge --disable-channel
Problem:    Build fails with --with-features=huge --disable-channel.
Solution:   Don't enable the terminal feature when the channel feature is
            missing. (Dominique Pelle, closes #2453)
2017-12-16 14:37:06 +01:00
b29d328eb4 patch 8.0.1391: encoding empty string to JSON sometimes gives "null"
Problem:    Encoding empty string to JSON sometimes gives "null".
Solution:   Handle NULL string as empty string. (closes #2446)
2017-12-15 21:25:01 +01:00
4697399e8c move netrw back to the previous version 2017-12-14 19:56:46 +01:00
7f88b65f6c patch 8.0.1390: DirectX scrolling can be slow, vertical positioning is off
Problem:    DirectX scrolling can be slow, vertical positioning is off.
Solution:   Make scroll slightly faster when using "scrlines:1". Fix y
            position of displayed text. Fix DirectX with non-utf8 encoding.
            (Ken Takata, closes #2440)
2017-12-14 13:15:19 +01:00
a6d4849c71 patch 8.0.1389: getqflist() items are missing if not set
Problem:    getqflist() items are missing if not set, that makes it more
            difficult to handle the values.
Solution:   When a value is not available return zero or another invalid
            value. (Yegappan Lakshmanan, closes #2430)
2017-12-12 22:45:31 +01:00
fae8ed1fc8 patch 8.0.1388: char not overwritten with ambiguous width char
Problem:    Char not overwritten with ambiguous width char, if the ambiguous
            char is single width but we reserve double-width space.
Solution:   First clear the screen cells. (Ozaki Kiichi, closes #2436)
2017-12-12 22:29:30 +01:00
a703aaee4d patch 8.0.1387: wordcount test is old style
Problem:    Wordcount test is old style.
Solution:   Change into a new style test. (Yegappan Lakshmanan, closes #2434)
2017-12-11 22:55:26 +01:00
8e6a31df81 patch 8.0.1386: cannot select modified buffers with getbufinfo()
Problem:    Cannot select modified buffers with getbufinfo().
Solution:   Add the "bufmodified" flag. (Yegappan Lakshmanan, closes #2431)
2017-12-10 21:06:22 +01:00
59eb016dff patch 8.0.1385: Python 3.5 is getting old
Problem:    Python 3.5 is getting old.
Solution:   Make Python 3.6 the default. (Ken Takata, closes #2429)
2017-12-10 18:17:44 +01:00
74240d3feb patch 8.0.1384: not enough quickfix help; confusing winid
Problem:    Not enough quickfix help; confusing winid.
Solution:   Add more examples in the help. When the quickfix window is not
            present, return zero for getqflist() with 'winid'. Add more tests
            for jumping to quickfix list entries. (Yegappan Lakshmanan, closes
            #2427)
2017-12-10 15:26:15 +01:00
35c5e8155d patch 8.0.1383: local additions in help skips some files
Problem:    Local additions in help skips some files. (joshklod)
Solution:   Check the base file name length equals.
2017-12-09 21:10:13 +01:00
f405c8fe85 patch 8.0.1382: get "no write since last change" message if terminal is open
Problem:    Get "no write since last change" message if a terminal is open.
            (Fritz mehner)
Solution:   Don't consider a buffer changed if it's a terminal window.
2017-12-09 19:51:49 +01:00
620ca2da37 patch 8.0.1381: ch_readraw() waits for NL if channel mode is NL
Problem:    ch_readraw() waits for NL if channel mode is NL.
Solution:   Pass a "raw" flag to channel_read_block(). (Yasuhiro Matsumoto)
2017-12-09 19:13:13 +01:00
05684310a5 patch 8.0.1380: using "vim -r swapfile" the hit-enter prompt is misplaced.
Problem:    When recovering a file with "vim -r swapfile" the hit-enter prompt
            is at the top of the window.
Solution:   Invalidate the cursor position.
2017-12-09 15:11:24 +01:00
e4b78e2a42 patch 8.0.1379: configure check for selinux does not check for header file
Problem:    Configure check for selinux does not check for header file.
Solution:   Add an AC_CHECK_HEADER(). (Benny Siegert)
2017-12-07 22:29:11 +01:00
3388d33457 patch 8.0.1378: autoload script sources itself when defining function
Problem:    Autoload script sources itself when defining function.
Solution:   Pass TFN_NO_AUTOLOAD to trans_function_name(). (Yasuhiro
            Matsumoto, closes #2423)
2017-12-07 22:23:04 +01:00
6e65d594aa patch 8.0.1377: cannot call a dict function in autoloaded dict
Problem:    Cannot call a dict function in autoloaded dict.
Solution:   Call get_lval() passing the read-only flag.
2017-12-07 22:11:27 +01:00
23c1b2b018 patch 8.0.1376: cursor in terminal not always updated
Problem:    Cursor in terminal not always updated.
Solution:   Call gui_mch_flush(). (Ken Takata)
2017-12-05 21:32:33 +01:00
415a6939a4 patch 8.0.1375: window size wrong after maximizing with WinBar
Problem:    Window size wrong after maximizing with WinBar. (Lifepillar)
Solution:   Fix height computations. Redraw window when it is zero height but
            has a WinBar. (closes #2356)
2017-12-05 20:31:07 +01:00
5fe6bdf858 patch 8.0.1374: CTRL-A does not work with an empty line
Problem:    CTRL-A does not work with an empty line. (Alex)
Solution:   Decrement the end only once. (Hirohito Higashi, closes #2387)
2017-12-05 17:22:12 +01:00
3767c6e9ee patch 8.0.1373: no error when settting 'renderoptions' before starting GUI
Problem:    No error when settting 'renderoptions' to an invalid value before
            starting the GUI.
Solution:   Always check the value. (Ken Takata, closes #2413)
2017-12-05 16:57:56 +01:00
ac112f01a6 patch 8.0.1372: profile log may be truncated halfway a character
Problem:    Profile log may be truncated halfway a character.
Solution:   Find the start of the character. (Ozaki Kiichi, closes #2385)
2017-12-05 16:46:28 +01:00
feeb4d0901 patch 8.0.1371: Shift-Insert doesn't always work in MS-Windows console
Problem:    Shift-Insert doesn't always work in MS-Windows console.
Solution:   Handle K_NUL differently if the second character is more than one
            byte. (Yasuhiro Matsumoto, closes #2381)
2017-12-05 15:14:46 +01:00
1eca6f13d6 patch 8.0.1370: channel test for callback is flaky
Problem:    Channel test for callback is flaky.
Solution:   Add the test to thelist of flaky tests.
2017-12-05 14:04:27 +01:00
92467d3351 patch 8.0.1369: MS-Windows: drawing underline slow, mFallbackDC not updated
Problem:    MS-Windows: drawing underline, curl and strike-throw is slow,
            mFallbackDC not properly updated.
Solution:   Several performance improvements. (Ken Takata, Taro Muraoka,
            Yasuhiro Matsumoto, closes #2401)
2017-12-05 13:22:16 +01:00
ce6179c799 patch 8.0.1368: cannot drag status or separator of new terminal window
Problem:    Cannot drag status line or vertical separator of new terminal
            window. (UncleBill)
Solution:   Adjust mouse row and column computation. (Yasuhiro Matsumoto,
            closes #2410)
2017-12-05 13:06:16 +01:00
461fe50fea patch 8.0.1367: terminal test hangs, executing abcde
Problem:    terminal test hangs, executing abcde. (Stucki)
Solution:   Rename abcde to abxde.
2017-12-05 12:30:03 +01:00
1ad022a9b8 patch 8.0.1367 2017-12-03 18:20:32 +01:00
24820691e6 patch 8.0.1365: when one channel test fails others fail as well
Problem:    When one channel test fails others fail as well.
Solution:   Stop the job after a failure.  Also add a couple of tests to the
            list of flaky tests.
2017-12-02 16:38:12 +01:00
22044dc317 patch 8.0.1364: there is no easy way to get the window position
Problem:    There is no easy way to get the window position.
Solution:   Add win_screenpos().
2017-12-02 15:43:37 +01:00
af903e5d49 patch 8.0.1363: recovering does not work when swap file ends in .stz
Problem:    Recovering does not work when swap file ends in .stz.
Solution:   Check for all possible swap file names. (Elfling, closes #2395,
            closes #2396)
2017-12-02 15:11:22 +01:00
a7c54cfcf8 patch 8.0.1362: terminal window colors wrong when using Terminal highlighting
Problem:    Terminal window colors wrong when using Terminal highlighting.
Solution:   Set ansi_index when setting the default color.  Also cache the
            color index for Terminal. (Ozaki Kiichi, closes #2393)
2017-12-01 21:07:20 +01:00
97ce419201 patch 8.0.1361: some users don't want to diff with hidden buffers
Problem:    Some users don't want to diff with hidden buffers.
Solution:   Add the "hiddenoff" item to 'diffopt'. (Alisue, closes #2394)
2017-12-01 20:35:58 +01:00
76bb7196f5 patch 8.0.1360: the Terminal highlighting doesn't work in a terminal
Problem:    The Terminal highlighting doesn't work in a terminal. (Ozaki
            Kiichi)
Solution:   Use the Terminal highlighting when the cterm index is zero.
2017-11-30 22:07:07 +01:00
2f0584910c Update runtime files 2017-11-30 20:27:52 +01:00
46359e198f patch 8.0.1359: libvterm ANSI colors can not always be recognized
Problem:    Libvterm ANSI colors can not always be recognized from the RGB
            values. The default color is wrong when t_RB is empty.
Solution:   Add the ANSI color index to VTermColor.
2017-11-29 22:33:38 +01:00
8b9e20afb0 patch 8.0.1358: undercurl is not used in the terminal
Problem:    Undercurl is not used in the terminal. (Kovid Goyal)
Solution:   Only fall back to underline when undercurl highlighting is not
            defined. (closes #1306)
2017-11-28 21:25:21 +01:00
1a2ab991a6 patch 8.0.1357: startup test fails on OpenBSD
Problem:    Startup test fails on OpenBSD. (Edd Barrett)
Solution:   Check for "BSD" instead of "FreeBSD" being defined. (James McCoy,
            closes #2376, closes #2378)
2017-11-28 21:06:18 +01:00
c5aa55db7e patch 8.0.1356: using simalt in a GUIEnter autocommand inserts characters
Problem:    Using simalt in a GUIEnter autocommand inserts strange characters.
            (Chih-Long Chang)
Solution:   Ignore K_NOP in Insert mode. (closes #2379)
2017-11-28 20:47:40 +01:00
a45ff6caba patch 8.0.1355: cursor keys don't work in MS-Windows console
Problem:    Cursor keys don't work in MS-Windows console.
Solution:   Revert the previous patch.  Also delete dead code.
2017-11-28 20:06:10 +01:00
3660a10c73 patch 8.0.1354: Shift-Insert doesn't always work in MS-Windows console
Problem:    Shift-Insert doesn't always work in MS-Windows console.
Solution:   Handle K_NUL differently. (Yasuhiro Matsumoto, closes #2381)
2017-11-28 18:07:59 +01:00
1ed2276fd5 patch 8.0.1353: QuickFixCmdPost is not used consistently
Problem:    QuickFixCmdPost is not used consistently.
Solution:   Invoke QuickFixCmdPost consistently after QuickFixCmdPre.
            (Yegappan Lakshmanan, closes #2377)
2017-11-28 18:03:44 +01:00
f38c86eb6b patch 8.0.1352: dead URLs in the help go unnoticed
Problem:    Dead URLs in the help go unnoticed.
Solution:   Add a script to check URLs in the help files. (Christian Brabandt)
2017-11-28 14:19:07 +01:00
bdb8139098 patch 8.0.1351: warning for unused variables building with MinGW
Problem:    Warning for unused variables building with MinGW.
Solution:   Change a few #ifdefs (suggested by John Marriott). Remove
            superfluous checks of FEAT_MBYTE.
2017-11-27 23:24:08 +01:00
1355aad2b9 patch 8.0.1350: cannot build with +eval and -multi_byte
Problem:    Cannot build with +eval and -multi_byte.
Solution:   Adjust #ifdefs. (John Marriott)  Always include the multi_byte
            feature when an input method feature is enabled.
2017-11-27 22:49:01 +01:00
17471e84a7 patch 8.0.1349: options test fails when using Motif or GTK GUI
Problem:    Options test fails when using Motif or GTK GUI.
Solution:   Use "fixed" instead of "fixedsys" for Unix. Don't try "xxx" for
            guifonteset.  Don't set 'termencoding' to anything but "utf-8" for
            GTK.  Give an error if 'termencoding' can't be converted.
2017-11-26 23:47:18 +01:00
c8c75796a6 patch 8.0.1348: make testclean deletes script file on MS-Windows
Problem:    Make testclean deletes script file on MS-Windows.
Solution:   Rename file to avoid it starting with an "x".
2017-11-26 17:18:06 +01:00
e0aa23f7e3 patch 8.0.1347: MS-Windows: build broken by misplaced curly
Problem:    MS-Windows: build broken by misplaced curly.
Solution:   Move curly after #endif
2017-11-26 17:08:03 +01:00
a3571ebef5 patch 8.0.1346: crash when passing 50 char string to balloon_split()
Problem:    Crash when passing 50 char string to balloon_split().
Solution:   Fix off-by-one error.
2017-11-26 16:53:16 +01:00
c41838aa01 patch 8.0.1345: race condition between stat() and open() for viminfo
Problem:    Race condition between stat() and open() for the viminfo temp
            file. (Simon Ruderich)
Solution:   use open() with O_EXCL to atomically check if the file exists.
            Don't try using a temp file, renaming it will fail anyway.
2017-11-26 16:50:41 +01:00
2877d334ad patch 8.0.1344: using 'imactivatefunc' in the GUI does not work
Problem:    Using 'imactivatefunc' in the GUI does not work.
Solution:   Do not use 'imactivatefunc' and 'imstatusfunc' in the GUI.
2017-11-26 14:56:16 +01:00
d7ccc4d81d patch 8.0.1343: MS-Windows: does not show colored emojis
Problem:    MS-Windows: does not show colored emojis.
Solution:   Implement colored emojis. Improve drawing speed. Make 'taamode'
            work. (Taro Muraoka, Yasuhiro Matsumoto, Ken Takata, close #2375)
2017-11-26 14:29:32 +01:00
fb1db0e355 patch 8.0.1342: cannot build with Motif and multi-byte
Problem:    Cannot build with Motif and multi-byte. (Mohamed Boughaba)
Solution:   Use the right input method status flag. (closes #2374)
2017-11-25 21:07:46 +01:00
be5d998d0e patch 8.0.1341: 'imactivatefunc' test fails on MS-Windows
Problem:    'imactivatefunc' test fails on MS-Windows.
Solution:   Skip the text.
2017-11-25 17:58:28 +01:00
281c93e714 patch 8.0.1340: MS-Windows: cannot build GUI without IME
Problem:    MS-Windows: cannot build GUI without IME.
Solution:   Define im_get_status() and im_set_active() when IME is not used.
2017-11-25 17:48:33 +01:00
83799a7b74 patch 8.0.1339: no test for what 8.0.1335 fixes
Problem:    No test for what 8.0.1335 fixes.
Solution:   Add a test. (Yasuhiro Matsumoto, closes #2373)
2017-11-25 17:24:09 +01:00
819edbe078 patch 8.0.1338: USE_IM_CONTROL is confusing and incomplete
Problem:    USE_IM_CONTROL is confusing and incomplete.
Solution:   Just use FEAT_MBYTE.  Call 'imactivatefunc' also without GUI.
2017-11-25 17:14:33 +01:00
50d43153a7 patch 8.0.1337: typo in #ifdef
Problem:    Typo in #ifdef.
Solution:   Fix the #if line.
2017-11-25 15:24:56 +01:00
6315a9ae92 patch 8.0.1336: cannot use imactivatefunc() unless compiled with +xim
Problem:    Cannot use imactivatefunc() unless compiled with +xim.
Solution:   Allow using imactivatefunc() when not compiled with +xim.
            (Yasuhiro Matsumoto, closes #2349)
2017-11-25 15:20:02 +01:00
291a9d15ed patch 8.0.1335: writefile() using fsync() may give an error.
Problem:    Writefile() using fsync() may give an error for a device.
            (Yasuhiro Matsumoto)
Solution:   Ignore fsync() failing. (closes #2373)
2017-11-25 14:37:11 +01:00
3167c3e701 patch 8.0.1334: splitting a window with a WinBar damages window layout
Problem:    Splitting a window with a WinBar damages window layout.
            (Lifepillar)
Solution:   Take the winbar into account when computing the new window
            position.  Add WINBAR_HEIGHT().
2017-11-25 14:19:43 +01:00
2c997d7603 patch 8.0.1333: some tests are run twice
Problem:    Some tests are run twice.
Solution:   Invoked most utf8 tests only from test_alot_utf8. (Yegappan
            Lakshmanan, closes #2369)
2017-11-23 22:52:09 +01:00
93a32e2ec4 patch 8.0.1332: highlighting in quickfix window could be better
Problem:    Highlighting in quickfix window could be better. (Axel Bender)
Solution:   Use the qfSeparator highlight item. (Yegappan Lakshmanan)
2017-11-23 22:05:45 +01:00
3679c17917 patch 8.0.1331: possible crash when window can be zero lines high
Problem:    Possible crash when window can be zero lines high. (Joseph
            Dornisch)
Solution:   Only set w_fraction if the window is at least two lines high.
2017-11-22 22:22:11 +01:00
a2a80162de Update runtime files. 2017-11-21 23:09:50 +01:00
390 changed files with 30962 additions and 10339 deletions

View File

@ -108,7 +108,7 @@ script:
- if [ -n "$err" ]; then exit 1; fi - if [ -n "$err" ]; then exit 1; fi
after_success: after_success:
- if [ "$COVERAGE" = "yes" ]; then ~/.local/bin/coveralls -b $SRCDIR -x .xs -e ${SRCDIR}/xxd -e ${SRCDIR}/if_perl.c --encodings utf-8 latin-1 EUC-KR; fi - if [ "$COVERAGE" = "yes" ]; then ~/.local/bin/coveralls -b ${SRCDIR} -x .xs -e ${SRCDIR}/xxd -e ${SRCDIR}/if_perl.c --encodings utf-8 latin-1 EUC-KR; fi
- if [ "$COVERAGE" = "yes" ]; then cd $SRCDIR && bash <(curl -s https://codecov.io/bash) ; fi - if [ "$COVERAGE" = "yes" ]; then cd ${SRCDIR} && bash <(curl -s https://codecov.io/bash) ; fi
# vim:set sts=2 sw=2 tw=0 et: # vim:set sts=2 sw=2 tw=0 et:

View File

@ -110,6 +110,7 @@ SRC_ALL = \
src/testdir/sautest/autoload/*.vim \ src/testdir/sautest/autoload/*.vim \
src/testdir/runtest.vim \ src/testdir/runtest.vim \
src/testdir/shared.vim \ src/testdir/shared.vim \
src/testdir/screendump.vim \
src/testdir/view_util.vim \ src/testdir/view_util.vim \
src/testdir/setup.vim \ src/testdir/setup.vim \
src/testdir/gui_init.vim \ src/testdir/gui_init.vim \
@ -119,7 +120,6 @@ SRC_ALL = \
src/testdir/test[0-9]*a.ok \ src/testdir/test[0-9]*a.ok \
src/testdir/test_[a-z]*.ok \ src/testdir/test_[a-z]*.ok \
src/testdir/test49.vim \ src/testdir/test49.vim \
src/testdir/test60.vim \
src/testdir/test83-tags? \ src/testdir/test83-tags? \
src/testdir/test77a.com \ src/testdir/test77a.com \
src/testdir/test_*.vim \ src/testdir/test_*.vim \
@ -135,10 +135,11 @@ SRC_ALL = \
src/testdir/pyxfile/*.py \ src/testdir/pyxfile/*.py \
src/testdir/bench*.in \ src/testdir/bench*.in \
src/testdir/bench*.vim \ src/testdir/bench*.vim \
src/testdir/dumps/*.dump \
src/testdir/samples/*.txt \ src/testdir/samples/*.txt \
src/testdir/samples/test000 \ src/testdir/samples/test000 \
src/testdir/if_ver*.vim \ src/testdir/if_ver*.vim \
src/testdir/xterm_ramp.vim \ src/testdir/color_ramp.vim \
src/proto.h \ src/proto.h \
src/proto/arabic.pro \ src/proto/arabic.pro \
src/proto/beval.pro \ src/proto/beval.pro \
@ -585,6 +586,7 @@ RT_ALL = \
runtime/doc/*.txt \ runtime/doc/*.txt \
runtime/doc/Makefile \ runtime/doc/Makefile \
runtime/doc/doctags.c \ runtime/doc/doctags.c \
runtime/doc/test_urls.vim \
runtime/doc/vim.1 \ runtime/doc/vim.1 \
runtime/doc/evim.1 \ runtime/doc/evim.1 \
runtime/doc/vimdiff.1 \ runtime/doc/vimdiff.1 \
@ -666,6 +668,7 @@ RT_SCRIPTS = \
runtime/autoload/xml/*.vim \ runtime/autoload/xml/*.vim \
runtime/colors/*.vim \ runtime/colors/*.vim \
runtime/colors/README.txt \ runtime/colors/README.txt \
runtime/colors/tools/*.vim \
runtime/compiler/*.vim \ runtime/compiler/*.vim \
runtime/compiler/README.txt \ runtime/compiler/README.txt \
runtime/indent/*.vim \ runtime/indent/*.vim \

View File

@ -16,6 +16,7 @@ matrix:
before_build: before_build:
- '"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64 /release' - '"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64 /release'
- 'set INCLUDE=%INCLUDE%C:\Program Files (x86)\Windows Kits\8.1\Include\um'
build_script: build_script:
- src/appveyor.bat - src/appveyor.bat

View File

@ -89,6 +89,11 @@ Page instfiles
UninstPage uninstConfirm UninstPage uninstConfirm
UninstPage instfiles UninstPage instfiles
# Reserve files
# Needed for showing the _vimrc setting page faster.
ReserveFile /plugin InstallOptions.dll
ReserveFile vimrc.ini
########################################################## ##########################################################
# Functions # Functions
@ -475,14 +480,12 @@ Function SetCustom
# Display the InstallOptions dialog # Display the InstallOptions dialog
# Check if a _vimrc should be created # Check if a _vimrc should be created
SectionGetFlags ${sec_vimrc_id} $0 SectionGetFlags ${sec_vimrc_id} $3
IntOp $0 $0 & 1 IntOp $3 $3 & 1
StrCmp $0 "1" +2 0 StrCmp $3 "1" +2 0
Abort Abort
Push $3 InstallOptions::dialog "$PLUGINSDIR\vimrc.ini"
InstallOptions::dialog "$PLUGINSDIR\vimrc.ini"
Pop $3
Pop $3 Pop $3
FunctionEnd FunctionEnd

View File

@ -1,7 +1,7 @@
" Vim functions for file type detection " Vim functions for file type detection
" "
" Maintainer: Bram Moolenaar <Bram@vim.org> " Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2017 Nov 11 " Last Change: 2017 Dec 05
" These functions are moved here from runtime/filetype.vim to make startup " These functions are moved here from runtime/filetype.vim to make startup
" faster. " faster.
@ -618,7 +618,11 @@ func dist#ft#FTperl()
setf perl setf perl
return 1 return 1
endif endif
if search('^use\s\s*\k', 'nc', 30) let save_cursor = getpos('.')
call cursor(1,1)
let has_use = search('^use\s\s*\k', 'c', 30)
call setpos('.', save_cursor)
if has_use
setf perl setf perl
return 1 return 1
endif endif

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
" netrwSettings.vim: makes netrw settings simpler " netrwSettings.vim: makes netrw settings simpler
" Date: Nov 09, 2016 " Date: Dec 30, 2014
" Maintainer: Charles E Campbell <drchipNOSPAM at campbellfamily dot biz> " Maintainer: Charles E Campbell <drchipNOSPAM at campbellfamily dot biz>
" Version: 16 " Version: 15
" Copyright: Copyright (C) 1999-2007 Charles E. Campbell {{{1 " Copyright: Copyright (C) 1999-2007 Charles E. Campbell {{{1
" Permission is hereby granted to use and distribute this code, " Permission is hereby granted to use and distribute this code,
" with or without modifications, provided that this copyright " with or without modifications, provided that this copyright
@ -19,7 +19,7 @@
if exists("g:loaded_netrwSettings") || &cp if exists("g:loaded_netrwSettings") || &cp
finish finish
endif endif
let g:loaded_netrwSettings = "v16" let g:loaded_netrwSettings = "v15"
if v:version < 700 if v:version < 700
echohl WarningMsg echohl WarningMsg
echo "***warning*** this version of netrwSettings needs vim 7.0" echo "***warning*** this version of netrwSettings needs vim 7.0"
@ -154,13 +154,9 @@ fun! netrwSettings#NetrwSettings()
put = 'let g:netrw_list_hide = '.g:netrw_list_hide put = 'let g:netrw_list_hide = '.g:netrw_list_hide
put = 'let g:netrw_liststyle = '.g:netrw_liststyle put = 'let g:netrw_liststyle = '.g:netrw_liststyle
put = 'let g:netrw_localcopycmd = '.g:netrw_localcopycmd put = 'let g:netrw_localcopycmd = '.g:netrw_localcopycmd
put = 'let g:netrw_localcopycmdopt = '.g:netrw_localcopycmdopt
put = 'let g:netrw_localmkdir = '.g:netrw_localmkdir put = 'let g:netrw_localmkdir = '.g:netrw_localmkdir
put = 'let g:netrw_localmkdiropt = '.g:netrw_localmkdiropt
put = 'let g:netrw_localmovecmd = '.g:netrw_localmovecmd put = 'let g:netrw_localmovecmd = '.g:netrw_localmovecmd
put = 'let g:netrw_localmovecmdopt = '.g:netrw_localmovecmdopt
put = 'let g:netrw_localrmdir = '.g:netrw_localrmdir put = 'let g:netrw_localrmdir = '.g:netrw_localrmdir
put = 'let g:netrw_localrmdiropt = '.g:netrw_localrmdiropt
put = 'let g:netrw_maxfilenamelen = '.g:netrw_maxfilenamelen put = 'let g:netrw_maxfilenamelen = '.g:netrw_maxfilenamelen
put = 'let g:netrw_menu = '.g:netrw_menu put = 'let g:netrw_menu = '.g:netrw_menu
put = 'let g:netrw_mousemaps = '.g:netrw_mousemaps put = 'let g:netrw_mousemaps = '.g:netrw_mousemaps

View File

@ -64,6 +64,7 @@ Search for "highlight_init".
If you think you have a color scheme that is good enough to be used by others, If you think you have a color scheme that is good enough to be used by others,
please check the following items: please check the following items:
- Source the tools/check_colors.vim script to check for common mistakes.
- Does it work in a color terminal as well as in the GUI? - Does it work in a color terminal as well as in the GUI?
- Is "g:colors_name" set to a meaningful value? In case of doubt you can do - Is "g:colors_name" set to a meaningful value? In case of doubt you can do
it this way: it this way:

View File

@ -0,0 +1,136 @@
" This script tests a color scheme for some errors. Load the scheme and source
" this script. e.g. :e colors/desert.vim | :so test_colors.vim
" Will output possible errors.
let s:save_cpo= &cpo
set cpo&vim
func! Test_check_colors()
call cursor(1,1)
let err={}
" 1) Check g:colors_name is existing
if !search('\<\%(g:\)\?colors_name\>', 'cnW')
let err['colors_name'] = 'g:colors_name not set'
else
let err['colors_name'] = 'OK'
endif
" 2) Check for some well-defined highlighting groups
" Some items, check several groups, e.g. Diff, Spell
let hi_groups = ['ColorColumn', 'Diff', 'ErrorMsg', 'Folded',
\ 'FoldColumn', 'IncSearch', 'LineNr', 'ModeMsg', 'MoreMsg', 'NonText',
\ 'Normal', 'Pmenu', 'Todo', 'Search', 'Spell', 'StatusLine', 'TabLine',
\ 'Title', 'Visual', 'WarningMsg', 'WildMenu']
let groups={}
for group in hi_groups
if search('\c@suppress\s\+'.group, 'cnW')
" skip check, if the script contains a line like
" @suppress Visual:
let groups[group] = 'Ignoring '.group
continue
endif
if !search('hi\%[ghlight] \+'.group, 'cnW')
let groups[group] = 'No highlight definition for '.group
continue
endif
if !search('hi\%[ghlight] \+'.group. '.*fg=', 'cnW')
let groups[group] = 'Missing foreground color for '.group
continue
endif
if search('hi\%[ghlight] \+'.group. '.*guibg=', 'cnW') &&
\ !search('hi\%[ghlight] \+'.group. '.*ctermbg=', 'cnW')
let groups[group] = 'Missing bg terminal color for '.group
continue
endif
call search('hi\%[ghlight] \+'.group, 'cW')
" only check in the current line
if !search('guifg', 'cnW', line('.')) || !search('ctermfg', 'cnW', line('.'))
" do not check for background colors, they could be intentionally left out
let groups[group] = 'Missing fg definition for '.group
endif
call cursor(1,1)
endfor
let err['highlight'] = groups
" 3) Check, that it does not set background highlighting
" Doesn't ':hi Normal ctermfg=253 ctermfg=233' also set the background sometimes?
let bg_set='\(set\?\|setl\(ocal\)\?\) .*\(background\|bg\)=\(dark\|light\)'
let bg_let='let \%([&]\%([lg]:\)\?\)\%(background\|bg\)\s*=\s*\([''"]\?\)\w\+\1'
let bg_pat='\%('.bg_set. '\|'.bg_let.'\)'
let line=search(bg_pat, 'cnW')
if search(bg_pat, 'cnW')
exe line
if search('hi \U\w\+\s\+\S', 'cbnW')
let err['background'] = 'Should not set background option after :hi statement'
endif
else
let err['background'] = 'OK'
endif
call cursor(1,1)
" 4) Check, that t_Co is checked
let pat = '[&]t_Co\s*[<>=]=\?\s*\d\+'
if !search(pat, 'ncW')
let err['t_Co'] = 'Does not check terminal for capable colors'
endif
" 5) Initializes correctly, e.g. should have a section like
" hi clear
" if exists("syntax_on")
" syntax reset
" endif
let pat='hi\%[ghlight]\s*clear\n\s*if\s*exists(\([''"]\)syntax_on\1)\n\s*syn\%[tax]\s*reset\n\s*endif'
if !search(pat, 'cnW')
let err['init'] = 'No initialization'
endif
" 6) Does not use :syn on
if search('syn\%[tax]\s\+on', 'cnW')
let err['background'] = 'Should not issue :syn on'
endif
" 7) Does not define filetype specfic groups like vimCommand, htmlTag,
let hi_groups = ['vim', 'html', 'python', 'sh', 'ruby']
for group in hi_groups
let pat='\Chi\%[ghlight]\s*\zs'.group.'\w\+\>'
if search(pat, 'cnW')
let line = search(pat, 'cW')
let err['filetype'] = get(err, 'filetype', 'Should not define: ') . matchstr(getline('.'), pat). ' '
endif
call cursor(1,1)
endfor
let g:err = err
" print Result
call Result(err)
endfu
fu! Result(err)
let do_roups = 0
echohl Title|echomsg "---------------"|echohl Normal
for key in sort(keys(a:err))
if key is# 'highlight'
let do_groups = 1
continue
else
if a:err[key] !~ 'OK'
echohl Title
endif
echomsg printf("%15s: %s", key, a:err[key])
echohl Normal
endif
endfor
echohl Title|echomsg "---------------"|echohl Normal
if do_groups
echohl Title | echomsg "Groups" | echohl Normal
for v1 in sort(keys(a:err['highlight']))
echomsg printf("%25s: %s", v1, a:err['highlight'][v1])
endfor
endif
endfu
call Test_check_colors()
let &cpo = s:save_cpo
unlet s:save_cpo

View File

@ -375,6 +375,10 @@ tags.ref tags.html: tags
perlhtml: tags $(DOCS) perlhtml: tags $(DOCS)
./vim2html.pl tags $(DOCS) ./vim2html.pl tags $(DOCS)
# Check URLs in the help with "curl".
test_urls:
vim -S test_urls.vim
clean: clean:
-rm doctags *.html tags.ref -rm doctags *.html tags.ref

View File

@ -1,4 +1,4 @@
*autocmd.txt* For Vim version 8.0. Last change: 2017 Nov 05 *autocmd.txt* For Vim version 8.0. Last change: 2018 Mar 15
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -21,7 +21,6 @@ For a basic explanation, see section |40.3| in the user manual.
11. Disabling autocommands |autocmd-disable| 11. Disabling autocommands |autocmd-disable|
{Vi does not have any of these commands} {Vi does not have any of these commands}
{only when the |+autocmd| feature has not been disabled at compile time}
============================================================================== ==============================================================================
1. Introduction *autocmd-intro* 1. Introduction *autocmd-intro*
@ -33,7 +32,7 @@ files matching *.c. You can also use autocommands to implement advanced
features, such as editing compressed files (see |gzip-example|). The usual features, such as editing compressed files (see |gzip-example|). The usual
place to put autocommands is in your .vimrc or .exrc file. place to put autocommands is in your .vimrc or .exrc file.
*E203* *E204* *E143* *E855* *E937* *E203* *E204* *E143* *E855* *E937* *E952*
WARNING: Using autocommands is very powerful, and may lead to unexpected side WARNING: Using autocommands is very powerful, and may lead to unexpected side
effects. Be careful not to destroy your text. effects. Be careful not to destroy your text.
- It's a good idea to do some testing on an expendable copy of a file first. - It's a good idea to do some testing on an expendable copy of a file first.
@ -57,6 +56,8 @@ effects. Be careful not to destroy your text.
Add {cmd} to the list of commands that Vim will Add {cmd} to the list of commands that Vim will
execute automatically on {event} for a file matching execute automatically on {event} for a file matching
{pat} |autocmd-patterns|. {pat} |autocmd-patterns|.
Note: A quote character is seen as argument to the
:autocmd and won't start a comment.
Vim always adds the {cmd} after existing autocommands, Vim always adds the {cmd} after existing autocommands,
so that the autocommands execute in the order in which so that the autocommands execute in the order in which
they were given. See |autocmd-nested| for [nested]. they were given. See |autocmd-nested| for [nested].
@ -92,7 +93,8 @@ will appear twice. To avoid this, define your autocommands in a group, so
that you can easily clear them: > that you can easily clear them: >
augroup vimrc augroup vimrc
autocmd! " Remove all vimrc autocommands " Remove all vimrc autocommands
autocmd!
au BufNewFile,BufRead *.html so <sfile>:h/html.vim au BufNewFile,BufRead *.html so <sfile>:h/html.vim
augroup END augroup END
@ -146,6 +148,8 @@ prompt. When one command outputs two messages this can happen anyway.
plugins, syntax highlighting, etc. plugins, syntax highlighting, etc.
:au[tocmd]! [group] Remove ALL autocommands. :au[tocmd]! [group] Remove ALL autocommands.
Note: a quote will be seen as argument to the :autocmd
and won't start a comment.
Warning: You should normally not do this without a Warning: You should normally not do this without a
group, it breaks plugins, syntax highlighting, etc. group, it breaks plugins, syntax highlighting, etc.
@ -258,6 +262,7 @@ Name triggered by ~
|BufCreate| just after adding a buffer to the buffer list |BufCreate| just after adding a buffer to the buffer list
|BufDelete| before deleting a buffer from the buffer list |BufDelete| before deleting a buffer from the buffer list
|BufWipeout| before completely deleting a buffer |BufWipeout| before completely deleting a buffer
|TerminalOpen| after a terminal buffer was created
|BufFilePre| before changing the name of the current buffer |BufFilePre| before changing the name of the current buffer
|BufFilePost| after changing the name of the current buffer |BufFilePost| after changing the name of the current buffer
@ -286,7 +291,8 @@ Name triggered by ~
|GUIFailed| after starting the GUI failed |GUIFailed| after starting the GUI failed
|TermResponse| after the terminal response to |t_RV| is received |TermResponse| after the terminal response to |t_RV| is received
|QuitPre| when using `:quit`, before deciding whether to quit |QuitPre| when using `:quit`, before deciding whether to exit
|ExitPre| when using a command that may make Vim exit
|VimLeavePre| before exiting Vim, before writing the viminfo file |VimLeavePre| before exiting Vim, before writing the viminfo file
|VimLeave| before exiting Vim, after writing the viminfo file |VimLeave| before exiting Vim, after writing the viminfo file
@ -295,6 +301,8 @@ Name triggered by ~
|FileChangedShellPost| After handling a file changed since editing started |FileChangedShellPost| After handling a file changed since editing started
|FileChangedRO| before making the first change to a read-only file |FileChangedRO| before making the first change to a read-only file
|DirChanged| after the working directory has changed
|ShellCmdPost| after executing a shell command |ShellCmdPost| after executing a shell command
|ShellFilterPost| after filtering with a shell command |ShellFilterPost| after filtering with a shell command
@ -322,6 +330,10 @@ Name triggered by ~
|CmdwinEnter| after entering the command-line window |CmdwinEnter| after entering the command-line window
|CmdwinLeave| before leaving the command-line window |CmdwinLeave| before leaving the command-line window
|CmdlineChanged| after a change was made to the command-line text
|CmdlineEnter| after the cursor moves to the command line
|CmdlineLeave| before the cursor leaves the command line
|InsertEnter| starting Insert mode |InsertEnter| starting Insert mode
|InsertChange| when typing <Insert> while in Insert or Replace mode |InsertChange| when typing <Insert> while in Insert or Replace mode
|InsertLeave| when leaving Insert mode |InsertLeave| when leaving Insert mode
@ -330,6 +342,10 @@ Name triggered by ~
|TextChanged| after a change was made to the text in Normal mode |TextChanged| after a change was made to the text in Normal mode
|TextChangedI| after a change was made to the text in Insert mode |TextChangedI| after a change was made to the text in Insert mode
when popup menu is not visible
|TextChangedP| after a change was made to the text in Insert mode
when popup menu visible
|TextYankPost| after text is yanked or deleted
|ColorScheme| after loading a color scheme |ColorScheme| after loading a color scheme
@ -499,6 +515,13 @@ CmdUndefined When a user command is used but it isn't
command is defined. An alternative is to command is defined. An alternative is to
always define the user command and have it always define the user command and have it
invoke an autoloaded function. See |autoload|. invoke an autoloaded function. See |autoload|.
*CmdlineChanged*
CmdlineChanged After a change was made to the text in the
command line. Be careful not to mess up
the command line, it may cause Vim to lock up.
<afile> is set to a single character,
indicating the type of command-line.
|cmdwin-char|
*CmdlineEnter* *CmdlineEnter*
CmdlineEnter After moving the cursor to the command line, CmdlineEnter After moving the cursor to the command line,
where the user can type a command or search where the user can type a command or search
@ -625,6 +648,21 @@ FileChangedRO Before making the first change to a read-only
*E881* *E881*
If the number of lines changes saving for undo If the number of lines changes saving for undo
may fail and the change will be aborted. may fail and the change will be aborted.
*DirChanged*
DirChanged The working directory has changed in response
to the |:cd| or |:lcd| commands, or as a
result of the 'autochdir' option.
The pattern can be:
"window" to trigger on `:lcd
"global" to trigger on `:cd`
"auto" to trigger on 'autochdir'.
"drop" to trigger on editing a file
<afile> is set to the new directory name.
*ExitPre*
ExitPre When using `:quit`, `:wq` in a way it makes
Vim exit, or using `:qall`, just after
|QuitPre|. Can be used to close any
non-essential window.
*FileChangedShell* *FileChangedShell*
FileChangedShell When Vim notices that the modification time of FileChangedShell When Vim notices that the modification time of
a file has changed since editing started. a file has changed since editing started.
@ -762,7 +800,7 @@ InsertCharPre When a character is typed in Insert mode,
inserted literally. inserted literally.
It is not allowed to change the text |textlock|. It is not allowed to change the text |textlock|.
The event is not triggered when 'paste' is The event is not triggered when 'paste' is
set. set. {only with the +eval feature}
*InsertEnter* *InsertEnter*
InsertEnter Just before starting Insert mode. Also for InsertEnter Just before starting Insert mode. Also for
Replace mode and Virtual Replace mode. The Replace mode and Virtual Replace mode. The
@ -840,6 +878,7 @@ QuitPre When using `:quit`, `:wq` or `:qall`, before
or quits Vim. Can be used to close any or quits Vim. Can be used to close any
non-essential window if the current window is non-essential window if the current window is
the last ordinary window. the last ordinary window.
Also see |ExitPre|.
*RemoteReply* *RemoteReply*
RemoteReply When a reply from a Vim that functions as RemoteReply When a reply from a Vim that functions as
server was received |server2client()|. The server was received |server2client()|. The
@ -908,6 +947,7 @@ SwapExists Detected an existing swap file when starting
It is not allowed to change to another buffer, It is not allowed to change to another buffer,
change a buffer name or change directory change a buffer name or change directory
here. here.
{only available with the +eval feature}
*Syntax* *Syntax*
Syntax When the 'syntax' option has been set. The Syntax When the 'syntax' option has been set. The
pattern is matched against the syntax name. pattern is matched against the syntax name.
@ -934,6 +974,11 @@ TermChanged After the value of 'term' has changed. Useful
for re-loading the syntax file to update the for re-loading the syntax file to update the
colors, fonts and other terminal-dependent colors, fonts and other terminal-dependent
settings. Executed for all loaded buffers. settings. Executed for all loaded buffers.
*TerminalOpen*
TerminalOpen Just after a terminal buffer was created, with
`:terminal` or |term_start()|. This event is
triggered even if the buffer is created
without a window, with the ++hidden option.
*TermResponse* *TermResponse*
TermResponse After the response to |t_RV| is received from TermResponse After the response to |t_RV| is received from
the terminal. The value of |v:termresponse| the terminal. The value of |v:termresponse|
@ -956,6 +1001,31 @@ TextChangedI After a change was made to the text in the
current buffer in Insert mode. current buffer in Insert mode.
Not triggered when the popup menu is visible. Not triggered when the popup menu is visible.
Otherwise the same as TextChanged. Otherwise the same as TextChanged.
*TextChangedP*
TextChangedP After a change was made to the text in the
current buffer in Insert mode, only when the
popup menu is visible. Otherwise the same as
TextChanged.
*TextYankPost*
TextYankPost After text has been yanked or deleted in the
current buffer. The following values of
|v:event| can be used to determine the operation
that triggered this autocmd:
operator The operation performed.
regcontents Text that was stored in the
register, as a list of lines,
like with: >
getreg(r, 1, 1)
< regname Name of the |register| or
empty string for the unnamed
register.
regtype Type of the register, see
|getregtype()|.
Not triggered when |quote_| is used nor when
called recursively.
It is not allowed to change the buffer text,
see |textlock|.
{only when compiled with the +eval feature}
*User* *User*
User Never executed automatically. To be used for User Never executed automatically. To be used for
autocommands that are only executed with autocommands that are only executed with

View File

@ -1,4 +1,4 @@
*debugger.txt* For Vim version 8.0. Last change: 2005 Mar 29 *debugger.txt* For Vim version 8.0. Last change: 2017 Nov 21
VIM REFERENCE MANUAL by Gordon Prieur VIM REFERENCE MANUAL by Gordon Prieur
@ -95,10 +95,12 @@ list and colors can be set via X resources (XmNballoonEvalFontList,
XmNballoonEvalBackground, and XmNballoonEvalForeground). XmNballoonEvalBackground, and XmNballoonEvalForeground).
The 'balloondelay' option sets the delay before an attempt is made to show a The 'balloondelay' option sets the delay before an attempt is made to show a
balloon. balloon.
The 'ballooneval' option needs to be set to switch it on. The 'ballooneval' and/or the 'balloonevalterm' option needs to be set to
switch it on.
Balloon evaluation is only available when compiled with the |+balloon_eval| Balloon evaluation is only available in the GUI when compiled with the
feature. |+balloon_eval| feature. For the terminal the |+balloon_eval_term| feature
matters.
The Balloon evaluation functions are also used to show a tooltip for the The Balloon evaluation functions are also used to show a tooltip for the
toolbar. The 'ballooneval' option does not need to be set for this. But the toolbar. The 'ballooneval' option does not need to be set for this. But the

View File

@ -1,4 +1,4 @@
*develop.txt* For Vim version 8.0. Last change: 2017 Jul 31 *develop.txt* For Vim version 8.0. Last change: 2018 Apr 17
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -185,9 +185,40 @@ The basic steps to make changes to the code:
C COMPILER *style-compiler* C COMPILER *style-compiler*
The minimal C compiler version supported is C89, also known as ANSI C. The minimal C compiler version supported is C89, also known as ANSI C.
Later standards don't add much and C89 is the widest supported. Later standards, such as C99, are not widely supported, or at least not 100%
supported. Therefore we use only some of the C99 features and disallow some
(at least for now).
One restriction that this implies: no // comments, only /* comments */. Please don't make changes everywhere to use the C99 features, it causes merge
problems for existing patches. Only use them for new and changed code.
Comments ~
Traditionally Vim uses /* comments */. We intend to keep it that way,
especially for file and function headers. For new code or lines of code that
change, it is allowed to use // comments. Especially when it comes after
code:
int some_var; // single line comment useful here
Enums ~
The last item in an enum may have a trailing comma. C89 didn't allow this.
Types ~
"long long" is allowed and can be expected to be 64 bits. Use %lld in printf
formats. Also "long long unsigned" with %llu.
Not to be used ~
These C99 features are not to be used, because not enough compilers support
them:
- Declaration after Statements (MSVC 2012 does not support it). All
declarations need to be at the start of the block.
- Variable length arrays (even in C11 this is an optional feature).
- _Bool and _Complex types.
- "inline" (it's hardly ever needed, let the optimizer do its work)
- flexible array members: Not supported by HP-UX C compiler (John Marriott)
USE OF COMMON FUNCTIONS *style-functions* USE OF COMMON FUNCTIONS *style-functions*

View File

@ -1,4 +1,4 @@
*editing.txt* For Vim version 8.0. Last change: 2017 Aug 21 *editing.txt* For Vim version 8.0. Last change: 2018 Mar 29
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -424,6 +424,15 @@ On Unix and a few other systems you can also use backticks for the file name
argument, for example: > argument, for example: >
:next `find . -name ver\\*.c -print` :next `find . -name ver\\*.c -print`
:view `ls -t *.patch \| head -n1` :view `ls -t *.patch \| head -n1`
Vim will run the command in backticks using the 'shell' and use the standard
output as argument for the given Vim command (error messages from the shell
command will be discarded).
To see what shell command Vim is running, set the 'verbose' option to 4. When
the shell command returns a non-zero exit code, an error message will be
displayed and the Vim command will be aborted. To avoid this make the shell
always return zero like so: >
:next `find . -name ver\\*.c -print \|\| true`
The backslashes before the star are required to prevent the shell from The backslashes before the star are required to prevent the shell from
expanding "ver*.c" prior to execution of the find program. The backslash expanding "ver*.c" prior to execution of the find program. The backslash
before the shell pipe symbol "|" prevents Vim from parsing it as command before the shell pipe symbol "|" prevents Vim from parsing it as command
@ -650,8 +659,7 @@ list of the current window.
There is no check for duplicates, it is possible to There is no check for duplicates, it is possible to
add a file to the argument list twice. add a file to the argument list twice.
The currently edited file is not changed. The currently edited file is not changed.
{not in Vi} {not available when compiled without the {not in Vi}
|+listcmds| feature}
Note: you can also use this method: > Note: you can also use this method: >
:args ## x :args ## x
< This will add the "x" item and sort the new list. < This will add the "x" item and sort the new list.
@ -665,8 +673,7 @@ list of the current window.
when it's deleted from the argument list. when it's deleted from the argument list.
Example: > Example: >
:argdel *.obj :argdel *.obj
< {not in Vi} {not available when compiled without the < {not in Vi}
|+listcmds| feature}
:[range]argd[elete] Delete the {range} files from the argument list. :[range]argd[elete] Delete the {range} files from the argument list.
Example: > Example: >
@ -681,8 +688,7 @@ list of the current window.
< Removes all the files from the arglist. < Removes all the files from the arglist.
When the last number in the range is too high, up to When the last number in the range is too high, up to
the last argument is deleted. the last argument is deleted.
{not in Vi} {not available when compiled without the {not in Vi}
|+listcmds| feature}
*:argu* *:argument* *:argu* *:argument*
:[count]argu[ment] [count] [++opt] [+cmd] :[count]argu[ment] [count] [++opt] [+cmd]
@ -691,16 +697,14 @@ list of the current window.
when changes have been made and Vim does not want to when changes have been made and Vim does not want to
|abandon| the current buffer. |abandon| the current buffer.
Also see |++opt| and |+cmd|. Also see |++opt| and |+cmd|.
{not in Vi} {not available when compiled without the {not in Vi}
|+listcmds| feature}
:[count]argu[ment]! [count] [++opt] [+cmd] :[count]argu[ment]! [count] [++opt] [+cmd]
Edit file [count] in the argument list, discard any Edit file [count] in the argument list, discard any
changes to the current buffer. When [count] is changes to the current buffer. When [count] is
omitted the current entry is used. omitted the current entry is used.
Also see |++opt| and |+cmd|. Also see |++opt| and |+cmd|.
{not in Vi} {not available when compiled without the {not in Vi}
|+listcmds| feature}
:[count]n[ext] [++opt] [+cmd] *:n* *:ne* *:next* *E165* *E163* :[count]n[ext] [++opt] [+cmd] *:n* *:ne* *:next* *E165* *E163*
Edit [count] next file. This fails when changes have Edit [count] next file. This fails when changes have
@ -823,7 +827,6 @@ fourth file in the argument list. This happens when you do ":e file".
LOCAL ARGUMENT LIST LOCAL ARGUMENT LIST
{not in Vi} {not in Vi}
{not available when compiled without the |+windows| or |+listcmds| features}
*:arglocal* *:arglocal*
:argl[ocal] Make a local copy of the global argument list. :argl[ocal] Make a local copy of the global argument list.
@ -875,8 +878,7 @@ USING THE ARGUMENT LIST
autocommand event is disabled by adding it to autocommand event is disabled by adding it to
'eventignore'. This considerably speeds up editing 'eventignore'. This considerably speeds up editing
each file. each file.
{not in Vi} {not available when compiled without the {not in Vi}
|+listcmds| feature}
Also see |:windo|, |:tabdo|, |:bufdo|, |:cdo|, |:ldo|, Also see |:windo|, |:tabdo|, |:bufdo|, |:cdo|, |:ldo|,
|:cfdo| and |:lfdo| |:cfdo| and |:lfdo|
@ -900,7 +902,7 @@ Note: When the 'write' option is off, you are not able to write any file.
*:w* *:write* *:w* *:write*
*E502* *E503* *E504* *E505* *E502* *E503* *E504* *E505*
*E512* *E514* *E667* *E796* *E512* *E514* *E667* *E796* *E949*
:w[rite] [++opt] Write the whole buffer to the current file. This is :w[rite] [++opt] Write the whole buffer to the current file. This is
the normal way to save changes to a file. It fails the normal way to save changes to a file. It fails
when the 'readonly' option is set or when there is when the 'readonly' option is set or when there is
@ -956,6 +958,9 @@ used, for example, when the write fails and you want to try again later with
":w #". This can be switched off by removing the 'A' flag from the ":w #". This can be switched off by removing the 'A' flag from the
'cpoptions' option. 'cpoptions' option.
Note that the 'fsync' option matters here. If it's set it may make writes
slower (but safer).
*:sav* *:saveas* *:sav* *:saveas*
:sav[eas][!] [++opt] {file} :sav[eas][!] [++opt] {file}
Save the current buffer under the name {file} and set Save the current buffer under the name {file} and set
@ -1199,7 +1204,8 @@ MULTIPLE WINDOWS AND BUFFERS *window-exit*
:wqa[ll]! [++opt] :wqa[ll]! [++opt]
:xa[ll]! Write all changed buffers, even the ones that are readonly, :xa[ll]! Write all changed buffers, even the ones that are readonly,
and exit Vim. If there are buffers without a file name or and exit Vim. If there are buffers without a file name or
which cannot be written for another reason, Vim will not quit. which cannot be written for another reason, or there is a
terminal with a running job, Vim will not quit.
{not in Vi} {not in Vi}
============================================================================== ==============================================================================

View File

@ -1,4 +1,4 @@
*eval.txt* For Vim version 8.0. Last change: 2017 Nov 16 *eval.txt* For Vim version 8.0. Last change: 2018 Mar 23
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -1246,8 +1246,8 @@ The arguments are optional. Example: >
*closure* *closure*
Lambda expressions can access outer scope variables and arguments. This is Lambda expressions can access outer scope variables and arguments. This is
often called a closure. Example where "i" and "a:arg" are used in a lambda often called a closure. Example where "i" and "a:arg" are used in a lambda
while they exist in the function scope. They remain valid even after the while they already exist in the function scope. They remain valid even after
function returns: > the function returns: >
:function Foo(arg) :function Foo(arg)
: let i = 3 : let i = 3
: return {x -> x + i - a:arg} : return {x -> x + i - a:arg}
@ -1256,7 +1256,10 @@ function returns: >
:echo Bar(6) :echo Bar(6)
< 5 < 5
See also |:func-closure|. Lambda and closure support can be checked with: > Note that the variables must exist in the outer scope before the lamba is
defined for this to work. See also |:func-closure|.
Lambda and closure support can be checked with: >
if has('lambda') if has('lambda')
Examples for using a lambda expression with |sort()|, |map()| and |filter()|: > Examples for using a lambda expression with |sort()|, |map()| and |filter()|: >
@ -1554,6 +1557,12 @@ v:errors Errors found by assert functions, such as |assert_true()|.
< If v:errors is set to anything but a list it is made an empty < If v:errors is set to anything but a list it is made an empty
list by the assert function. list by the assert function.
*v:event* *event-variable*
v:event Dictionary containing information about the current
|autocommand|. The dictionary is emptied when the |autocommand|
finishes, please refer to |dict-identity| for how to get an
independent copy of it.
*v:exception* *exception-variable* *v:exception* *exception-variable*
v:exception The value of the exception most recently caught and not v:exception The value of the exception most recently caught and not
finished. See also |v:throwpoint| and |throw-variables|. finished. See also |v:throwpoint| and |throw-variables|.
@ -2011,8 +2020,11 @@ argidx() Number current index in the argument list
arglistid([{winnr} [, {tabnr}]]) Number argument list id arglistid([{winnr} [, {tabnr}]]) Number argument list id
argv({nr}) String {nr} entry of the argument list argv({nr}) String {nr} entry of the argument list
argv() List the argument list argv() List the argument list
assert_beeps({cmd}) none assert {cmd} causes a beep
assert_equal({exp}, {act} [, {msg}]) assert_equal({exp}, {act} [, {msg}])
none assert {exp} is equal to {act} none assert {exp} is equal to {act}
assert_equalfile({fname-one}, {fname-two})
none assert file contents is equal
assert_exception({error} [, {msg}]) assert_exception({error} [, {msg}])
none assert {error} is in v:exception none assert {error} is in v:exception
assert_fails({cmd} [, {error}]) none assert {cmd} fails assert_fails({cmd} [, {error}]) none assert {cmd} fails
@ -2031,7 +2043,7 @@ assert_true({actual} [, {msg}]) none assert {actual} is true
asin({expr}) Float arc sine of {expr} asin({expr}) Float arc sine of {expr}
atan({expr}) Float arc tangent of {expr} atan({expr}) Float arc tangent of {expr}
atan2({expr1}, {expr2}) Float arc tangent of {expr1} / {expr2} atan2({expr1}, {expr2}) Float arc tangent of {expr1} / {expr2}
balloon_show({msg}) none show {msg} inside the balloon balloon_show({expr}) none show {expr} inside the balloon
balloon_split({msg}) List split {msg} as used for a balloon balloon_split({msg}) List split {msg} as used for a balloon
browse({save}, {title}, {initdir}, {default}) browse({save}, {title}, {initdir}, {default})
String put up a file requester String put up a file requester
@ -2145,6 +2157,7 @@ getbufline({expr}, {lnum} [, {end}])
List lines {lnum} to {end} of buffer {expr} List lines {lnum} to {end} of buffer {expr}
getbufvar({expr}, {varname} [, {def}]) getbufvar({expr}, {varname} [, {def}])
any variable {varname} in buffer {expr} any variable {varname} in buffer {expr}
getchangelist({expr}) List list of change list items
getchar([expr]) Number get one character from the user getchar([expr]) Number get one character from the user
getcharmod() Number modifiers for the last typed character getcharmod() Number modifiers for the last typed character
getcharsearch() Dict last character search getcharsearch() Dict last character search
@ -2161,6 +2174,8 @@ getfperm({fname}) String file permissions of file {fname}
getfsize({fname}) Number size in bytes of file {fname} getfsize({fname}) Number size in bytes of file {fname}
getftime({fname}) Number last modification time of file getftime({fname}) Number last modification time of file
getftype({fname}) String description of type of file {fname} getftype({fname}) String description of type of file {fname}
getjumplist([{winnr} [, {tabnr}]])
List list of jump list items
getline({lnum}) String line {lnum} of current buffer getline({lnum}) String line {lnum} of current buffer
getline({lnum}, {end}) List lines {lnum} to {end} of current buffer getline({lnum}, {end}) List lines {lnum} to {end} of current buffer
getloclist({nr} [, {what}]) List list of location list items getloclist({nr} [, {what}]) List list of location list items
@ -2177,8 +2192,9 @@ gettabvar({nr}, {varname} [, {def}])
gettabwinvar({tabnr}, {winnr}, {name} [, {def}]) gettabwinvar({tabnr}, {winnr}, {name} [, {def}])
any {name} in {winnr} in tab page {tabnr} any {name} in {winnr} in tab page {tabnr}
getwininfo([{winid}]) List list of windows getwininfo([{winid}]) List list of windows
getwinposx() Number X coord in pixels of GUI Vim window getwinpos([{timeout}]) List X and Y coord in pixels of the Vim window
getwinposy() Number Y coord in pixels of GUI Vim window getwinposx() Number X coord in pixels of the Vim window
getwinposy() Number Y coord in pixels of the Vim window
getwinvar({nr}, {varname} [, {def}]) getwinvar({nr}, {varname} [, {def}])
any variable {varname} in window {nr} any variable {varname} in window {nr}
glob({expr} [, {nosuf} [, {list} [, {alllinks}]]]) glob({expr} [, {nosuf} [, {list} [, {alllinks}]]])
@ -2270,6 +2286,8 @@ mode([expr]) String current editing mode
mzeval({expr}) any evaluate |MzScheme| expression mzeval({expr}) any evaluate |MzScheme| expression
nextnonblank({lnum}) Number line nr of non-blank line >= {lnum} nextnonblank({lnum}) Number line nr of non-blank line >= {lnum}
nr2char({expr} [, {utf8}]) String single char with ASCII/UTF8 value {expr} nr2char({expr} [, {utf8}]) String single char with ASCII/UTF8 value {expr}
option_restore({list}) none restore options saved by option_save()
option_save({list}) List save options values
or({expr}, {expr}) Number bitwise OR or({expr}, {expr}) Number bitwise OR
pathshorten({expr}) String shorten directory names in a path pathshorten({expr}) String shorten directory names in a path
perleval({expr}) any evaluate |Perl| expression perleval({expr}) any evaluate |Perl| expression
@ -2398,7 +2416,14 @@ tagfiles() List tags files used
tan({expr}) Float tangent of {expr} tan({expr}) Float tangent of {expr}
tanh({expr}) Float hyperbolic tangent of {expr} tanh({expr}) Float hyperbolic tangent of {expr}
tempname() String name for a temporary file tempname() String name for a temporary file
term_dumpdiff({filename}, {filename} [, {options}])
Number display difference between two dumps
term_dumpload({filename} [, {options}])
Number displaying a screen dump
term_dumpwrite({buf}, {filename} [, {options}])
none dump terminal window contents
term_getaltscreen({buf}) Number get the alternate screen flag term_getaltscreen({buf}) Number get the alternate screen flag
term_getansicolors({buf}) List get ANSI palette in GUI color mode
term_getattr({attr}, {what}) Number get the value of attribute {what} term_getattr({attr}, {what}) Number get the value of attribute {what}
term_getcursor({buf}) List get the cursor position of a terminal term_getcursor({buf}) List get the cursor position of a terminal
term_getjob({buf}) Job get the job associated with a terminal term_getjob({buf}) Job get the job associated with a terminal
@ -2411,6 +2436,10 @@ term_gettty({buf}, [{input}]) String get the tty name of a terminal
term_list() List get the list of terminal buffers term_list() List get the list of terminal buffers
term_scrape({buf}, {row}) List get row of a terminal screen term_scrape({buf}, {row}) List get row of a terminal screen
term_sendkeys({buf}, {keys}) none send keystrokes to a terminal term_sendkeys({buf}, {keys}) none send keystrokes to a terminal
term_setansicolors({buf}, {colors})
none set ANSI palette in GUI color mode
term_setkill({buf}, {how}) none set signal to stop job in terminal
term_setrestore({buf}, {command}) none set command to restore terminal
term_start({cmd}, {options}) Job open a terminal window and run a job term_start({cmd}, {options}) Job open a terminal window and run a job
term_wait({buf} [, {time}]) Number wait for screen to be updated term_wait({buf} [, {time}]) Number wait for screen to be updated
test_alloc_fail({id}, {countdown}, {repeat}) test_alloc_fail({id}, {countdown}, {repeat})
@ -2437,6 +2466,7 @@ tolower({expr}) String the String {expr} switched to lowercase
toupper({expr}) String the String {expr} switched to uppercase toupper({expr}) String the String {expr} switched to uppercase
tr({src}, {fromstr}, {tostr}) String translate chars of {src} in {fromstr} tr({src}, {fromstr}, {tostr}) String translate chars of {src} in {fromstr}
to chars in {tostr} to chars in {tostr}
trim({text}[, {mask}]) String trim characters in {mask} from {text}
trunc({expr}) Float truncate Float {expr} trunc({expr}) Float truncate Float {expr}
type({name}) Number type of variable {name} type({name}) Number type of variable {name}
undofile({name}) String undo file name for {name} undofile({name}) String undo file name for {name}
@ -2452,6 +2482,7 @@ win_getid([{win} [, {tab}]]) Number get window ID for {win} in {tab}
win_gotoid({expr}) Number go to window with ID {expr} win_gotoid({expr}) Number go to window with ID {expr}
win_id2tabwin({expr}) List get tab and window nr from window ID win_id2tabwin({expr}) List get tab and window nr from window ID
win_id2win({expr}) Number get window nr from window ID win_id2win({expr}) Number get window nr from window ID
win_screenpos({nr}) List get screen position of window {nr}
winbufnr({nr}) Number buffer number of window {nr} winbufnr({nr}) Number buffer number of window {nr}
wincol() Number window column of the cursor wincol() Number window column of the cursor
winheight({nr}) Number height of window {nr} winheight({nr}) Number height of window {nr}
@ -2557,6 +2588,11 @@ argv([{nr}]) The result is the {nr}th file in the argument list of the
< Without the {nr} argument a |List| with the whole |arglist| is < Without the {nr} argument a |List| with the whole |arglist| is
returned. returned.
assert_beeps({cmd}) *assert_beeps()*
Run {cmd} and add an error message to |v:errors| if it does
NOT produce a beep or visual bell.
Also see |assert_fails()|.
*assert_equal()* *assert_equal()*
assert_equal({expected}, {actual} [, {msg}]) assert_equal({expected}, {actual} [, {msg}])
When {expected} and {actual} are not equal an error message is When {expected} and {actual} are not equal an error message is
@ -2572,6 +2608,14 @@ assert_equal({expected}, {actual} [, {msg}])
< Will result in a string to be added to |v:errors|: < Will result in a string to be added to |v:errors|:
test.vim line 12: Expected 'foo' but got 'bar' ~ test.vim line 12: Expected 'foo' but got 'bar' ~
*assert_equalfile()*
assert_equalfile({fname-one}, {fname-two})
When the files {fname-one} and {fname-two} do not contain
exactly the same text an error message is added to |v:errors|.
When {fname-one} or {fname-two} does not exist the error will
mention that.
Mainly useful with |terminal-diff|.
assert_exception({error} [, {msg}]) *assert_exception()* assert_exception({error} [, {msg}]) *assert_exception()*
When v:exception does not contain the string {error} an error When v:exception does not contain the string {error} an error
message is added to |v:errors|. message is added to |v:errors|.
@ -2589,6 +2633,8 @@ assert_fails({cmd} [, {error}]) *assert_fails()*
Run {cmd} and add an error message to |v:errors| if it does Run {cmd} and add an error message to |v:errors| if it does
NOT produce an error. NOT produce an error.
When {error} is given it must match in |v:errmsg|. When {error} is given it must match in |v:errmsg|.
Note that beeping is not considered an error, and some failing
commands only beep. Use |assert_beeps()| for those.
assert_false({actual} [, {msg}]) *assert_false()* assert_false({actual} [, {msg}]) *assert_false()*
When {actual} is not false an error message is added to When {actual} is not false an error message is added to
@ -2748,6 +2794,8 @@ bufexists({expr}) *bufexists()*
The result is a Number, which is |TRUE| if a buffer called The result is a Number, which is |TRUE| if a buffer called
{expr} exists. {expr} exists.
If the {expr} argument is a number, buffer numbers are used. If the {expr} argument is a number, buffer numbers are used.
Number zero is the alternate buffer for the current window.
If the {expr} argument is a string it must match a buffer name If the {expr} argument is a string it must match a buffer name
exactly. The name can be: exactly. The name can be:
- Relative to the current directory. - Relative to the current directory.
@ -3053,12 +3101,16 @@ ch_open({address} [, {options}]) *ch_open()*
ch_read({handle} [, {options}]) *ch_read()* ch_read({handle} [, {options}]) *ch_read()*
Read from {handle} and return the received message. Read from {handle} and return the received message.
{handle} can be a Channel or a Job that has a Channel. {handle} can be a Channel or a Job that has a Channel.
For a NL channel this waits for a NL to arrive, except when
there is nothing more to read (channel was closed).
See |channel-more|. See |channel-more|.
{only available when compiled with the |+channel| feature} {only available when compiled with the |+channel| feature}
ch_readraw({handle} [, {options}]) *ch_readraw()* ch_readraw({handle} [, {options}]) *ch_readraw()*
Like ch_read() but for a JS and JSON channel does not decode Like ch_read() but for a JS and JSON channel does not decode
the message. See |channel-more|. the message. For a NL channel it does not block waiting for
the NL to arrive, but otherwise works like ch_read().
See |channel-more|.
{only available when compiled with the |+channel| feature} {only available when compiled with the |+channel| feature}
ch_sendexpr({handle}, {expr} [, {options}]) *ch_sendexpr()* ch_sendexpr({handle}, {expr} [, {options}]) *ch_sendexpr()*
@ -3124,8 +3176,8 @@ char2nr({expr} [, {utf8}]) *char2nr()*
char2nr("ABC") returns 65 char2nr("ABC") returns 65
< When {utf8} is omitted or zero, the current 'encoding' is used. < When {utf8} is omitted or zero, the current 'encoding' is used.
Example for "utf-8": > Example for "utf-8": >
char2nr("<EFBFBD>") returns 225 char2nr("á") returns 225
char2nr("<EFBFBD>"[0]) returns 195 char2nr("á"[0]) returns 195
< With {utf8} set to 1, always treat as utf-8 characters. < With {utf8} set to 1, always treat as utf-8 characters.
A combining character is a separate character. A combining character is a separate character.
|nr2char()| does the opposite. |nr2char()| does the opposite.
@ -3323,8 +3375,8 @@ count({comp}, {expr} [, {ic} [, {start}]]) *count()*
When {ic} is given and it's |TRUE| then case is ignored. When {ic} is given and it's |TRUE| then case is ignored.
When {comp} is a string then the number of not overlapping When {comp} is a string then the number of not overlapping
occurrences of {expr} is returned. occurrences of {expr} is returned. Zero is returned when
{expr} is an empty string.
*cscope_connection()* *cscope_connection()*
cscope_connection([{num} , {dbpath} [, {prepend}]]) cscope_connection([{num} , {dbpath} [, {prepend}]])
@ -4166,6 +4218,7 @@ getbufinfo([{dict}])
be specified in {dict}: be specified in {dict}:
buflisted include only listed buffers. buflisted include only listed buffers.
bufloaded include only loaded buffers. bufloaded include only loaded buffers.
bufmodified include only modified buffers.
Otherwise, {expr} specifies a particular buffer to return Otherwise, {expr} specifies a particular buffer to return
information for. For the use of {expr}, see |bufname()| information for. For the use of {expr}, see |bufname()|
@ -4252,6 +4305,22 @@ getbufvar({expr}, {varname} [, {def}]) *getbufvar()*
:let bufmodified = getbufvar(1, "&mod") :let bufmodified = getbufvar(1, "&mod")
:echo "todo myvar = " . getbufvar("todo", "myvar") :echo "todo myvar = " . getbufvar("todo", "myvar")
< <
getchangelist({expr}) *getchangelist()*
Returns the |changelist| for the buffer {expr}. For the use
of {expr}, see |bufname()| above. If buffer {expr} doesn't
exist, an empty list is returned.
The returned list contains two entries: a list with the change
locations and the current position in the list. Each
entry in the change list is a dictionary with the following
entries:
col column number
coladd column offset for 'virtualedit'
lnum line number
If buffer {expr} is the current buffer, then the current
position refers to the position in the list. For other
buffers, it is set to the length of the list.
getchar([expr]) *getchar()* getchar([expr]) *getchar()*
Get a single character from the user or input stream. Get a single character from the user or input stream.
If [expr] is omitted, wait until a character is available. If [expr] is omitted, wait until a character is available.
@ -4403,6 +4472,7 @@ getcompletion({pat}, {type} [, {filtered}]) *getcompletion()*
specifies what for. The following completion types are specifies what for. The following completion types are
supported: supported:
arglist file names in argument list
augroup autocmd groups augroup autocmd groups
buffer buffer names buffer buffer names
behave :behave suboptions behave :behave suboptions
@ -4468,10 +4538,13 @@ getcwd([{winnr} [, {tabnr}]])
Without arguments, for the current window. Without arguments, for the current window.
With {winnr} return the local current directory of this window With {winnr} return the local current directory of this window
in the current tab page. in the current tab page. {winnr} can be the window number or
the |window-ID|.
If {winnr} is -1 return the name of the global working
directory. See also |haslocaldir()|.
With {winnr} and {tabnr} return the local current directory of With {winnr} and {tabnr} return the local current directory of
the window in the specified tab page. the window in the specified tab page.
{winnr} can be the window number or the |window-ID|.
Return an empty string if the arguments are invalid. Return an empty string if the arguments are invalid.
getfsize({fname}) *getfsize()* getfsize({fname}) *getfsize()*
@ -4541,6 +4614,25 @@ getftype({fname}) *getftype()*
"file" are returned. On MS-Windows a symbolic link to a "file" are returned. On MS-Windows a symbolic link to a
directory returns "dir" instead of "link". directory returns "dir" instead of "link".
getjumplist([{winnr} [, {tabnr}]]) *getjumplist()*
Returns the |jumplist| for the specified window.
Without arguments use the current window.
With {winnr} only use this window in the current tab page.
{winnr} can also be a |window-ID|.
With {winnr} and {tabnr} use the window in the specified tab
page.
The returned list contains two entries: a list with the jump
locations and the last used jump position number in the list.
Each entry in the jump location list is a dictionary with
the following entries:
bufnr buffer number
col column number
coladd column offset for 'virtualedit'
filename filename if available
lnum line number
*getline()* *getline()*
getline({lnum} [, {end}]) getline({lnum} [, {end}])
Without {end} the result is a String, which is line {lnum} Without {end} the result is a String, which is line {lnum}
@ -4658,13 +4750,15 @@ getqflist([{what}]) *getqflist()*
If the optional {what} dictionary argument is supplied, then If the optional {what} dictionary argument is supplied, then
returns only the items listed in {what} as a dictionary. The returns only the items listed in {what} as a dictionary. The
following string items are supported in {what}: following string items are supported in {what}:
changedtick get the total number of changes made
to the list
context get the context stored with |setqflist()| context get the context stored with |setqflist()|
efm errorformat to use when parsing "lines". If efm errorformat to use when parsing "lines". If
not present, then the 'erroformat' option not present, then the 'errorformat' option
value is used. value is used.
id get information for the quickfix list with id get information for the quickfix list with
|quickfix-ID|; zero means the id for the |quickfix-ID|; zero means the id for the
current list or the list specifed by "nr" current list or the list specified by "nr"
idx index of the current entry in the list idx index of the current entry in the list
items quickfix list entries items quickfix list entries
lines use 'errorformat' to extract items from a list lines use 'errorformat' to extract items from a list
@ -4676,9 +4770,10 @@ getqflist([{what}]) *getqflist()*
the last quickfix list the last quickfix list
size number of entries in the quickfix list size number of entries in the quickfix list
title get the list title title get the list title
winid get the |window-ID| (if opened) winid get the quickfix |window-ID|
all all of the above quickfix properties all all of the above quickfix properties
Non-string items in {what} are ignored. Non-string items in {what} are ignored. To get the value of a
particular item, set it to zero.
If "nr" is not present then the current quickfix list is used. If "nr" is not present then the current quickfix list is used.
If both "nr" and a non-zero "id" are specified, then the list If both "nr" and a non-zero "id" are specified, then the list
specified by "id" is used. specified by "id" is used.
@ -4688,18 +4783,24 @@ getqflist([{what}]) *getqflist()*
When "lines" is specified, all the other items except "efm" When "lines" is specified, all the other items except "efm"
are ignored. The returned dictionary contains the entry are ignored. The returned dictionary contains the entry
"items" with the list of entries. "items" with the list of entries.
In case of error processing {what}, an empty dictionary is
returned.
The returned dictionary contains the following entries: The returned dictionary contains the following entries:
context context information stored with |setqflist()| changedtick total number of changes made to the
id quickfix list ID |quickfix-ID| list |quickfix-changedtick|
idx index of the current entry in the list context context information stored with |setqflist()|.
items quickfix list entries If not present, set to "".
nr quickfix list number id quickfix list ID |quickfix-ID|. If not
size number of entries in the quickfix list present, set to 0.
title quickfix list title text idx index of the current entry in the list. If not
winid quickfix |window-ID| (if opened) present, set to 0.
items quickfix list entries. If not present, set to
an empty list.
nr quickfix list number. If not present, set to 0
size number of entries in the quickfix list. If not
present, set to 0.
title quickfix list title text. If not present, set
to "".
winid quickfix |window-ID|. If not present, set to 0
Examples: > Examples: >
:echo getqflist({'all': 1}) :echo getqflist({'all': 1})
@ -4784,17 +4885,37 @@ gettabwinvar({tabnr}, {winnr}, {varname} [, {def}]) *gettabwinvar()*
Examples: > Examples: >
:let list_is_on = gettabwinvar(1, 2, '&list') :let list_is_on = gettabwinvar(1, 2, '&list')
:echo "myvar = " . gettabwinvar(3, 1, 'myvar') :echo "myvar = " . gettabwinvar(3, 1, 'myvar')
<
getwinpos([{timeout}]) *getwinpos()*
The result is a list with two numbers, the result of
getwinposx() and getwinposy() combined:
[x-pos, y-pos]
{timeout} can be used to specify how long to wait in msec for
a response from the terminal. When omitted 100 msec is used.
Use a longer time for a remote terminal.
When using a value less than 10 and no response is received
within that time, a previously reported position is returned,
if available. This can be used to poll for the position and
do some work in the mean time: >
while 1
let res = getwinpos(1)
if res[0] >= 0
break
endif
" Do some work here
endwhile
< <
*getwinposx()* *getwinposx()*
getwinposx() The result is a Number, which is the X coordinate in pixels of getwinposx() The result is a Number, which is the X coordinate in pixels of
the left hand side of the GUI Vim window. Also works for an the left hand side of the GUI Vim window. Also works for an
xterm. xterm (uses a timeout of 100 msec).
The result will be -1 if the information is not available. The result will be -1 if the information is not available.
The value can be used with `:winpos`. The value can be used with `:winpos`.
*getwinposy()* *getwinposy()*
getwinposy() The result is a Number, which is the Y coordinate in pixels of getwinposy() The result is a Number, which is the Y coordinate in pixels of
the top of the GUI Vim window. Also works for an xterm. the top of the GUI Vim window. Also works for an xterm (uses
a timeout of 100 msec).
The result will be -1 if the information is not available. The result will be -1 if the information is not available.
The value can be used with `:winpos`. The value can be used with `:winpos`.
@ -5908,8 +6029,6 @@ matchaddpos({group}, {pos} [, {priority} [, {id} [, {dict}]]])
< Matches added by |matchaddpos()| are returned by < Matches added by |matchaddpos()| are returned by
|getmatches()| with an entry "pos1", "pos2", etc., with the |getmatches()| with an entry "pos1", "pos2", etc., with the
value a list like the {pos} item. value a list like the {pos} item.
These matches cannot be set via |setmatches()|, however they
can still be deleted by |clearmatches()|.
matcharg({nr}) *matcharg()* matcharg({nr}) *matcharg()*
Selects the {nr} match item, as set with a |:match|, Selects the {nr} match item, as set with a |:match|,
@ -6019,6 +6138,8 @@ mkdir({name} [, {path} [, {prot}]])
Example: > Example: >
:call mkdir($HOME . "/tmp/foo/bar", "p", 0700) :call mkdir($HOME . "/tmp/foo/bar", "p", 0700)
< This function is not available in the |sandbox|. < This function is not available in the |sandbox|.
There is no error if the directory already exists and the "p"
flag is passed (since patch 8.0.1708).
Not available on all systems. To check use: > Not available on all systems. To check use: >
:if exists("*mkdir") :if exists("*mkdir")
< <
@ -6095,6 +6216,31 @@ nr2char({expr} [, {utf8}]) *nr2char()*
characters. nr2char(0) is a real NUL and terminates the characters. nr2char(0) is a real NUL and terminates the
string, thus results in an empty string. string, thus results in an empty string.
option_restore({list}) *option_restore()*
Restore options previously saved by option_save().
When buffer-local options have been saved, this function must
be called when the same buffer is the current buffer.
When window-local options have been saved, this function must
be called when the same window is the current window.
When in the wrong buffer and/or window an error is given and
the local options won't be restored.
NOT IMPLEMENTED YET!
option_save({list}) *option_save()*
Saves the options named in {list}. The returned value can be
passed to option_restore(). Example: >
let s:saved_options = option_save([
\ 'ignorecase',
\ 'iskeyword',
\ ])
au <buffer> BufLeave *
\ call option_restore(s:saved_options)
< The advantage over using `:let` is that global and local
values are handled and the script ID is restored, so that
`:verbose set` will show where the option was originally set,
not where it was restored.
NOT IMPLEMENTED YET!
or({expr}, {expr}) *or()* or({expr}, {expr}) *or()*
Bitwise OR on the two arguments. The arguments are converted Bitwise OR on the two arguments. The arguments are converted
to a number. A List, Dict or Float argument causes an error. to a number. A List, Dict or Float argument causes an error.
@ -6473,7 +6619,7 @@ remote_expr({server}, {string} [, {idvar} [, {timeout}]])
between (not at the end), like with join(expr, "\n"). between (not at the end), like with join(expr, "\n").
If {idvar} is present and not empty, it is taken as the name If {idvar} is present and not empty, it is taken as the name
of a variable and a {serverid} for later use with of a variable and a {serverid} for later use with
remote_read() is stored there. |remote_read()| is stored there.
If {timeout} is given the read times out after this many If {timeout} is given the read times out after this many
seconds. Otherwise a timeout of 600 seconds is used. seconds. Otherwise a timeout of 600 seconds is used.
See also |clientserver| |RemoteReply|. See also |clientserver| |RemoteReply|.
@ -7693,8 +7839,9 @@ submatch({nr} [, {list}]) *submatch()* *E935*
When substitute() is used recursively only the submatches in When substitute() is used recursively only the submatches in
the current (deepest) call can be obtained. the current (deepest) call can be obtained.
Example: > Examples: >
:s/\d\+/\=submatch(0) + 1/ :s/\d\+/\=submatch(0) + 1/
:echo substitute(text, '\d\+', '\=submatch(0) + 1', '')
< This finds the first number in the line and adds one to it. < This finds the first number in the line and adds one to it.
A line break is included as a newline character. A line break is included as a newline character.
@ -8036,12 +8183,88 @@ tempname() *tempname()* *temp-file-name*
For MS-Windows forward slashes are used when the 'shellslash' For MS-Windows forward slashes are used when the 'shellslash'
option is set or when 'shellcmdflag' starts with '-'. option is set or when 'shellcmdflag' starts with '-'.
*term_dumpdiff()*
term_dumpdiff({filename}, {filename} [, {options}])
Open a new window displaying the difference between the two
files. The files must have been created with
|term_dumpwrite()|.
Returns the buffer number or zero when the diff fails.
Also see |terminal-diff|.
NOTE: this does not work with double-width characters yet.
The top part of the buffer contains the contents of the first
file, the bottom part of the buffer contains the contents of
the second file. The middle part shows the differences.
The parts are separated by a line of dashes.
If the {options} argument is present, it must be a Dict with
these possible members:
"term_name" name to use for the buffer name, instead
of the first file name.
"term_rows" vertical size to use for the terminal,
instead of using 'termsize'
"term_cols" horizontal size to use for the terminal,
instead of using 'termsize'
"vertical" split the window vertically
"curwin" use the current window, do not split the
window; fails if the current buffer
cannot be |abandon|ed
"norestore" do not add the terminal window to a
session file
Each character in the middle part indicates a difference. If
there are multiple differences only the first in this list is
used:
X different character
w different width
f different foreground color
b different background color
a different attribute
+ missing position in first file
- missing position in second file
Using the "s" key the top and bottom parts are swapped. This
makes it easy to spot a difference.
*term_dumpload()*
term_dumpload({filename} [, {options}])
Open a new window displaying the contents of {filename}
The file must have been created with |term_dumpwrite()|.
Returns the buffer number or zero when it fails.
Also see |terminal-diff|.
For {options} see |term_dumpdiff()|.
*term_dumpwrite()*
term_dumpwrite({buf}, {filename} [, {options}])
Dump the contents of the terminal screen of {buf} in the file
{filename}. This uses a format that can be used with
|term_dumpload()| and |term_dumpdiff()|.
If {filename} already exists an error is given. *E953*
Also see |terminal-diff|.
{options} is a dictionary with these optional entries:
"rows" maximum number of rows to dump
"columns" maximum number of columns to dump
term_getaltscreen({buf}) *term_getaltscreen()* term_getaltscreen({buf}) *term_getaltscreen()*
Returns 1 if the terminal of {buf} is using the alternate Returns 1 if the terminal of {buf} is using the alternate
screen. screen.
{buf} is used as with |term_getsize()|. {buf} is used as with |term_getsize()|.
{only available when compiled with the |+terminal| feature} {only available when compiled with the |+terminal| feature}
term_getansicolors({buf}) *term_getansicolors()*
Get the ANSI color palette in use by terminal {buf}.
Returns a List of length 16 where each element is a String
representing a color in hexadecimal "#rrggbb" format.
Also see |term_setansicolors()| and |g:terminal_ansi_colors|.
If neither was used returns the default colors.
{buf} is used as with |term_getsize()|. If the buffer does not
exist or is not a terminal window, an empty list is returned.
{only available when compiled with the |+terminal| feature and
with GUI enabled and/or the |+termguicolors| feature}
term_getattr({attr}, {what}) *term_getattr()* term_getattr({attr}, {what}) *term_getattr()*
Given {attr}, a value returned by term_scrape() in the "attr" Given {attr}, a value returned by term_scrape() in the "attr"
item, return whether {what} is on. {what} can be one of: item, return whether {what} is on. {what} can be one of:
@ -8086,6 +8309,8 @@ term_getline({buf}, {row}) *term_getline()*
The first line has {row} one. When {row} is "." the cursor The first line has {row} one. When {row} is "." the cursor
line is used. When {row} is invalid an empty string is line is used. When {row} is invalid an empty string is
returned. returned.
To get attributes of each character use |term_scrape()|.
{only available when compiled with the |+terminal| feature} {only available when compiled with the |+terminal| feature}
term_getscrolled({buf}) *term_getscrolled()* term_getscrolled({buf}) *term_getscrolled()*
@ -8171,8 +8396,68 @@ term_sendkeys({buf}, {keys}) *term_sendkeys()*
means the character CTRL-X. means the character CTRL-X.
{only available when compiled with the |+terminal| feature} {only available when compiled with the |+terminal| feature}
term_setsize({buf}, {expr}) *term_setsize()* term_setansicolors({buf}, {colors}) *term_setansicolors()*
Not implemented yet. Set the ANSI color palette used by terminal {buf}.
{colors} must be a List of 16 valid color names or hexadecimal
color codes, like those accepted by |highlight-guifg|.
Also see |term_getansicolors()| and |g:terminal_ansi_colors|.
The colors normally are:
0 black
1 dark red
2 dark green
3 brown
4 dark blue
5 dark magenta
6 dark cyan
7 light grey
8 dark grey
9 red
10 green
11 yellow
12 blue
13 magenta
14 cyan
15 white
These colors are used in the GUI and in the terminal when
'termguicolors' is set. When not using GUI colors (GUI mode
or |termguicolors|), the terminal window always uses the 16
ANSI colors of the underlying terminal.
{only available when compiled with the |+terminal| feature and
with GUI enabled and/or the |+termguicolors| feature}
term_setkill({buf}, {how}) *term_setkill()*
When exiting Vim or trying to close the terminal window in
another way, {how} defines whether the job in the terminal can
be stopped.
When {how} is empty (the default), the job will not be
stopped, trying to exit will result in |E947|.
Otherwise, {how} specifies what signal to send to the job.
See |job_stop()| for the values.
After sending the signal Vim will wait for up to a second to
check that the job actually stopped.
term_setrestore({buf}, {command}) *term_setrestore()*
Set the command to write in a session file to restore the job
in this terminal. The line written in the session file is: >
terminal ++curwin ++cols=%d ++rows=%d {command}
< Make sure to escape the command properly.
Use an empty {command} to run 'shell'.
Use "NONE" to not restore this window.
{only available when compiled with the |+terminal| feature}
term_setsize({buf}, {rows}, {cols}) *term_setsize()*
Set the size of terminal {buf}. The size of the window
containing the terminal will also be adjusted, if possible.
If {rows} or {cols} is zero or negative, that dimension is not
changed.
{buf} must be the buffer number of a terminal window. Use an
empty string for the current buffer. If the buffer does not
exist or is not a terminal window, an error is given.
{only available when compiled with the |+terminal| feature} {only available when compiled with the |+terminal| feature}
term_start({cmd}, {options}) *term_start()* term_start({cmd}, {options}) *term_start()*
@ -8214,6 +8499,10 @@ term_start({cmd}, {options}) *term_start()*
window; fails if the current buffer window; fails if the current buffer
cannot be |abandon|ed cannot be |abandon|ed
"hidden" do not open a window "hidden" do not open a window
"norestore" do not add the terminal window to a
session file
"term_kill" what to do when trying to close the
terminal window, see |term_setkill()|
"term_finish" What to do when the job is finished: "term_finish" What to do when the job is finished:
"close": close any windows "close": close any windows
"open": open window if needed "open": open window if needed
@ -8229,6 +8518,9 @@ term_start({cmd}, {options}) *term_start()*
CTRL-D is used on MS-Windows. For Python CTRL-D is used on MS-Windows. For Python
use CTRL-Z or "exit()". For a shell use use CTRL-Z or "exit()". For a shell use
"exit". A CR is always added. "exit". A CR is always added.
"ansi_colors" A list of 16 color names or hex codes
defining the ANSI palette used in GUI
color modes. See |g:terminal_ansi_colors|.
{only available when compiled with the |+terminal| feature} {only available when compiled with the |+terminal| feature}
@ -8427,6 +8719,22 @@ tr({src}, {fromstr}, {tostr}) *tr()*
echo tr("<blob>", "<>", "{}") echo tr("<blob>", "<>", "{}")
< returns "{blob}" < returns "{blob}"
trim({text}[, {mask}]) *trim()*
Return {text} as a String where any character in {mask} is
removed from the beginning and end of {text}.
If {mask} is not given, {mask} is all characters up to 0x20,
which includes Tab, space, NL and CR, plus the non-breaking
space character 0xa0.
This code deals with multibyte characters properly.
Examples: >
echo trim(" some text ")
< returns "some text" >
echo trim(" \r\t\t\r RESERVE \t\n\x0B\xA0") . "_TAIL"
< returns "RESERVE_TAIL" >
echo trim("rm<Xrm<>X>rrm", "rm<>")
< returns "Xrm<>X" (characters in the middle are not removed)
trunc({expr}) *trunc()* trunc({expr}) *trunc()*
Return the largest integral value with magnitude less than or Return the largest integral value with magnitude less than or
equal to {expr} as a |Float| (truncate towards zero). equal to {expr} as a |Float| (truncate towards zero).
@ -8630,6 +8938,14 @@ win_id2win({expr}) *win_id2win()*
Return the window number of window with ID {expr}. Return the window number of window with ID {expr}.
Return 0 if the window cannot be found in the current tabpage. Return 0 if the window cannot be found in the current tabpage.
win_screenpos({nr}) *win_screenpos()*
Return the screen position of window {nr} as a list with two
numbers: [row, col]. The first window always has position
[1, 1].
{nr} can be the window number or the |window-ID|.
Return [0, 0] if the window cannot be found in the current
tabpage.
*winbufnr()* *winbufnr()*
winbufnr({nr}) The result is a Number, which is the number of the buffer winbufnr({nr}) The result is a Number, which is the number of the buffer
associated with window {nr}. {nr} can be the window number or associated with window {nr}. {nr} can be the window number or
@ -8781,8 +9097,8 @@ writefile({list}, {fname} [, {flags}])
the file. This flushes the file to disk, if possible. This the file. This flushes the file to disk, if possible. This
takes more time but avoids losing the file if the system takes more time but avoids losing the file if the system
crashes. crashes.
When {flags} does not contain "S" or "s" then fsync is called When {flags} does not contain "S" or "s" then fsync() is
if the 'fsync' option is set. called if the 'fsync' option is set.
When {flags} contains "S" then fsync() is not called, even When {flags} contains "S" then fsync() is not called, even
when 'fsync' is set. when 'fsync' is set.
@ -8950,8 +9266,12 @@ persistent_undo Compiled with support for persistent undo history.
postscript Compiled with PostScript file printing. postscript Compiled with PostScript file printing.
printer Compiled with |:hardcopy| support. printer Compiled with |:hardcopy| support.
profile Compiled with |:profile| support. profile Compiled with |:profile| support.
python Compiled with Python 2.x interface. |has-python| python Python 2.x interface available. |has-python|
python3 Compiled with Python 3.x interface. |has-python| python_compiled Compiled with Python 2.x interface. |has-python|
python_dynamic Python 2.x interface is dynamically loaded. |has-python|
python3 Python 3.x interface available. |has-python|
python3_compiled Compiled with Python 3.x interface. |has-python|
python3_dynamic Python 3.x interface is dynamically loaded. |has-python|
pythonx Compiled with |python_x| interface. |has-pythonx| pythonx Compiled with |python_x| interface. |has-pythonx|
qnx QNX version of Vim. qnx QNX version of Vim.
quickfix Compiled with |quickfix| support. quickfix Compiled with |quickfix| support.
@ -8993,6 +9313,8 @@ ttyout output is a terminal (tty)
unix Unix version of Vim. *+unix* unix Unix version of Vim. *+unix*
unnamedplus Compiled with support for "unnamedplus" in 'clipboard' unnamedplus Compiled with support for "unnamedplus" in 'clipboard'
user_commands User-defined commands. user_commands User-defined commands.
vcon Win32: Virtual console support is working, can use
'termguicolors'. Also see |+vtp|.
vertsplit Compiled with vertically split windows |:vsplit|. vertsplit Compiled with vertically split windows |:vsplit|.
vim_starting True while initial source'ing takes place. |startup| vim_starting True while initial source'ing takes place. |startup|
*vim_starting* *vim_starting*
@ -9003,6 +9325,8 @@ visualextra Compiled with extra Visual mode commands.
|blockwise-operators|. |blockwise-operators|.
vms VMS version of Vim. vms VMS version of Vim.
vreplace Compiled with |gR| and |gr| commands. vreplace Compiled with |gR| and |gr| commands.
vtp Compiled for vcon support |+vtp| (check vcon to find
out if it works in the current console).
wildignore Compiled with 'wildignore' option. wildignore Compiled with 'wildignore' option.
wildmenu Compiled with 'wildmenu' option. wildmenu Compiled with 'wildmenu' option.
win32 Win32 version of Vim (MS-Windows 95 and later, 32 or win32 Win32 version of Vim (MS-Windows 95 and later, 32 or
@ -9241,8 +9565,7 @@ may be larger.
It is also possible to define a function without any arguments. You must It is also possible to define a function without any arguments. You must
still supply the () then. still supply the () then.
It is allowed to define another function inside a function It is allowed to define another function inside a function body.
body.
*local-variables* *local-variables*
Inside a function local variables can be used. These will disappear when the Inside a function local variables can be used. These will disappear when the

View File

@ -1,4 +1,4 @@
*filetype.txt* For Vim version 8.0. Last change: 2017 Oct 10 *filetype.txt* For Vim version 8.0. Last change: 2018 Feb 04
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -602,51 +602,17 @@ MANPAGER *manpager.vim*
The :Man command allows you to turn Vim into a manpager (that syntax highlights The :Man command allows you to turn Vim into a manpager (that syntax highlights
manpages and follows linked manpages on hitting CTRL-]). manpages and follows linked manpages on hitting CTRL-]).
Tested on:
- Linux
- Mac OS
- FreeBSD
- OpenBSD
- Cygwin
- Win 10 under Bash
Untested:
- Amiga OS
- BeOS
- OS/2
If man sets the $MAN_PN environment variable, like man-db, the most common
implementation on Linux, then the "env MAN_PN=1 " part below should NOT be
set, that is, the "env MAN_PN=1" should be omitted! Otherwise, the Vim
manpager does not correctly recognize manpages whose title contains a capital
letter. See the discussion on
https://groups.google.com/forum/#!topic/vim_dev/pWZmt_7GkxI
For bash,zsh,ksh or dash, add to the config file (.bashrc,.zshrc, ...) For bash,zsh,ksh or dash, add to the config file (.bashrc,.zshrc, ...)
export MANPAGER="env MAN_PN=1 vim -M +MANPAGER -" export MANPAGER="vim -M +MANPAGER -"
For (t)csh, add to the config file For (t)csh, add to the config file
setenv MANPAGER "env MAN_PN=1 vim -M +MANPAGER -" setenv MANPAGER "vim -M +MANPAGER -"
For fish, add to the config file For fish, add to the config file
set -x MANPAGER "env MAN_PN=1 vim -M +MANPAGER -" set -x MANPAGER "vim -M +MANPAGER -"
On OpenBSD:
export MANPAGER="env MAN_PN=1 vim -M +MANPAGER"
If you experience still issues on manpages whose titles do not contain capital
letters, then try adding MANPATH=${MANPATH} after MAN_PN=1. If your manpages do
not show up localized, then try adding, LANGUAGE=${LANG} after MAN_PN=1. See
https://github.com/vim/vim/issues/1002
PDF *ft-pdf-plugin* PDF *ft-pdf-plugin*
@ -669,7 +635,7 @@ By default the following options are set, in accordance with PEP8: >
setlocal expandtab shiftwidth=4 softtabstop=4 tabstop=8 setlocal expandtab shiftwidth=4 softtabstop=4 tabstop=8
To disable this behaviour, set the following variable in your vimrc: > To disable this behaviour, set the following variable in your vimrc: >
let g:python_recommended_style = 0 let g:python_recommended_style = 0
@ -706,4 +672,23 @@ You can change the default by defining the variable g:tex_flavor to the format
Currently no other formats are recognized. Currently no other formats are recognized.
VIM *ft-vim-plugin*
The Vim filetype plugin defines mappings to move to the start and end of
functions with [[ and ]]. Move around comments with ]" and [".
The mappings can be disabled with: >
let g:no_vim_maps = 1
ZIMBU *ft-zimbu-plugin*
The Zimbu filetype plugin defines mappings to move to the start and end of
functions with [[ and ]].
The mappings can be disabled with: >
let g:no_zimbu_maps = 1
<
vim:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:ft=help:norl:

View File

@ -1,4 +1,4 @@
*gui.txt* For Vim version 8.0. Last change: 2017 Nov 09 *gui.txt* For Vim version 8.0. Last change: 2018 Mar 06
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -134,7 +134,7 @@ task bar with the 'guiheadroom' option.
:winp[os] :winp[os]
Display current position of the top left corner of the GUI vim Display current position of the top left corner of the GUI vim
window in pixels. Does not work in all versions. window in pixels. Does not work in all versions.
Also see |getwinposx()| and |getwinposy()|. Also see |getwinpos()|, |getwinposx()| and |getwinposy()|.
:winp[os] {X} {Y} *E466* :winp[os] {X} {Y} *E466*
Put the GUI vim window at the given {X} and {Y} coordinates. Put the GUI vim window at the given {X} and {Y} coordinates.
@ -992,10 +992,14 @@ it behaves in a strange way.
:popu[p] {name} Popup the menu {name}. The menu named must :popu[p] {name} Popup the menu {name}. The menu named must
have at least one subentry, but need not have at least one subentry, but need not
appear on the menu-bar (see |hidden-menus|). appear on the menu-bar (see |hidden-menus|).
{only available for Win32 and GTK GUI} {only available for Win32 and GTK GUI or in
the terminal when compiled with +insert_expand}
:popu[p]! {name} Like above, but use the position of the mouse :popu[p]! {name} Like above, but use the position of the mouse
pointer instead of the cursor. pointer instead of the cursor.
In the terminal this is the last known
position, which is usually at the last click
or release (mouse movement is irrelevalt).
Example: > Example: >
:popup File :popup File
@ -1006,6 +1010,10 @@ pointer if ! was used). >
:popup ]Toolbar :popup ]Toolbar
This creates a popup menu that doesn't exist on the main menu-bar. This creates a popup menu that doesn't exist on the main menu-bar.
Note that in the GUI the :popup command will return immediately, before a
selection has been made. In the terminal the commands waits for the user to
make a selection.
Note that a menu that starts with ']' will not be displayed. Note that a menu that starts with ']' will not be displayed.
============================================================================== ==============================================================================

View File

@ -1,4 +1,4 @@
*if_cscop.txt* For Vim version 8.0. Last change: 2017 Jun 14 *if_cscop.txt* For Vim version 8.0. Last change: 2018 Jan 21
VIM REFERENCE MANUAL by Andy Kahn VIM REFERENCE MANUAL by Andy Kahn
@ -468,36 +468,18 @@ license or OS distribution), then you can download it for free from:
http://cscope.sourceforge.net/ http://cscope.sourceforge.net/
This is released by SCO under the BSD license. This is released by SCO under the BSD license.
If you want a newer version of cscope, you will probably have to buy it.
According to the (old) nvi documentation:
You can buy version 13.3 source with an unrestricted license
for $400 from AT&T Software Solutions by calling +1-800-462-8146.
Also you can download cscope 13.x and mlcscope 14.x (multi-lingual cscope
which supports C, C++, Java, lex, yacc, breakpoint listing, Ingres, and SDL)
from World-Wide Exptools Open Source packages page:
http://www.bell-labs.com/project/wwexptools/packages.html
In Solaris 2.x, if you have the C compiler license, you will also have In Solaris 2.x, if you have the C compiler license, you will also have
cscope. Both are usually located under /opt/SUNWspro/bin cscope. Both are usually located under /opt/SUNWspro/bin
SGI developers can also get it. Search for Cscope on this page:
http://freeware.sgi.com/index-by-alpha.html
https://toolbox.sgi.com/toolbox/utilities/cscope/
The second one is for those who have a password for the SGI toolbox.
There is source to an older version of a cscope clone (called "cs") available There is source to an older version of a cscope clone (called "cs") available
on the net. Due to various reasons, this is not supported with Vim. on the net. Due to various reasons, this is not supported with Vim.
The cscope interface/support for Vim was originally written by The cscope interface/support for Vim was originally written by
Andy Kahn <ackahn@netapp.com>. The original structure (as well as a tiny Andy Kahn <ackahn@netapp.com>. The original structure (as well as a tiny
bit of code) was adapted from the cscope interface in nvi. Please report bit of code) was adapted from the cscope interface in nvi.
any problems, suggestions, patches, et al., you have for the usage of
cscope within Vim to him.
*cscope-win32* *cscope-win32*
For a cscope version for Win32 see: For a cscope version for Win32 see (seems abandoned):
http://code.google.com/p/cscope-win32/ https://code.google.com/archive/p/cscope-win32/
Win32 support was added by Sergey Khorev <sergey.khorev@gmail.com>. Contact Win32 support was added by Sergey Khorev <sergey.khorev@gmail.com>. Contact
him if you have Win32-specific issues. him if you have Win32-specific issues.

View File

@ -1,4 +1,4 @@
*if_perl.txt* For Vim version 8.0. Last change: 2015 Oct 16 *if_perl.txt* For Vim version 8.0. Last change: 2017 Nov 24
VIM REFERENCE MANUAL by Sven Verdoolaege VIM REFERENCE MANUAL by Sven Verdoolaege
@ -112,7 +112,7 @@ possible.
Here is an overview of the functions that are available to Perl: > Here is an overview of the functions that are available to Perl: >
:perl VIM::Msg("Text") # displays a message :perl VIM::Msg("Text") # displays a message
:perl VIM::Msg("Error", "ErrorMsg") # displays an error message :perl VIM::Msg("Wrong!", "ErrorMsg") # displays an error message
:perl VIM::Msg("remark", "Comment") # displays a highlighted message :perl VIM::Msg("remark", "Comment") # displays a highlighted message
:perl VIM::SetOption("ai") # sets a vim option :perl VIM::SetOption("ai") # sets a vim option
:perl $nbuf = VIM::Buffers() # returns the number of buffers :perl $nbuf = VIM::Buffers() # returns the number of buffers

View File

@ -1,4 +1,4 @@
*if_pyth.txt* For Vim version 8.0. Last change: 2017 Nov 09 *if_pyth.txt* For Vim version 8.0. Last change: 2018 Jan 30
VIM REFERENCE MANUAL by Paul Moore VIM REFERENCE MANUAL by Paul Moore
@ -736,8 +736,8 @@ or 'pythonthreedll' option can be also used to specify the Python DLL.
The name of the DLL should match the Python version Vim was compiled with. The name of the DLL should match the Python version Vim was compiled with.
Currently the name for Python 2 is "python27.dll", that is for Python 2.7. Currently the name for Python 2 is "python27.dll", that is for Python 2.7.
That is the default value for 'pythondll'. For Python 3 it is python35.dll That is the default value for 'pythondll'. For Python 3 it is python36.dll
(Python 3.5). To know for sure edit "gvim.exe" and search for (Python 3.6). To know for sure edit "gvim.exe" and search for
"python\d*.dll\c". "python\d*.dll\c".
@ -809,7 +809,8 @@ Raising SystemExit exception in python isn't endorsed way to quit vim, use: >
You can test what Python version is available with: > You can test what Python version is available with: >
if has('python') if has('python')
echo 'there is Python 2.x' echo 'there is Python 2.x'
elseif has('python3') endif
if has('python3')
echo 'there is Python 3.x' echo 'there is Python 3.x'
endif endif
@ -818,6 +819,24 @@ dynamically, these has() calls will try to load them. If only one can be
loaded at a time, just checking if Python 2 or 3 are available will prevent loaded at a time, just checking if Python 2 or 3 are available will prevent
the other one from being available. the other one from being available.
To avoid loading the dynamic library, only check if Vim was compiled with
python support: >
if has('python_compiled')
echo 'compiled with Python 2.x support'
if has('python_dynamic')
echo 'Python 2.x dynamically loaded'
endif
endif
if has('python3_compiled')
echo 'compiled with Python 3.x support'
if has('python3_dynamic')
echo 'Python 3.x dynamically loaded'
endif
endif
This also tells you whether Python is dynamically loaded, which will fail if
the runtime library cannot be found.
============================================================================== ==============================================================================
11. Python X *python_x* *pythonx* 11. Python X *python_x* *pythonx*

View File

@ -1,4 +1,4 @@
*if_ruby.txt* For Vim version 8.0. Last change: 2016 Sep 01 *if_ruby.txt* For Vim version 8.0. Last change: 2018 Mar 15
VIM REFERENCE MANUAL by Shugo Maeda VIM REFERENCE MANUAL by Shugo Maeda
@ -221,6 +221,9 @@ for sure edit "gvim.exe" and search for "ruby\d*.dll\c".
If you want to build Vim with RubyInstaller 1.9 or 2.X using MSVC, you need If you want to build Vim with RubyInstaller 1.9 or 2.X using MSVC, you need
some tricks. See the src/INSTALLpc.txt for detail. some tricks. See the src/INSTALLpc.txt for detail.
If Vim is built with RubyInstaller 2.4 or later, you may also need to add
"C:\Ruby<version>\bin\ruby_builtin_dlls" to the PATH environment variable.
Unix ~ Unix ~

View File

@ -1,4 +1,4 @@
*indent.txt* For Vim version 8.0. Last change: 2014 Dec 06 *indent.txt* For Vim version 8.0. Last change: 2018 Apr 04
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -414,10 +414,10 @@ The examples below assume a 'shiftwidth' of 4.
*cino-(* *cino-(*
(N When in unclosed parentheses, indent N characters from the line (N When in unclosed parentheses, indent N characters from the line
with the unclosed parentheses. Add a 'shiftwidth' for every with the unclosed parentheses. Add a 'shiftwidth' for every
unclosed parentheses. When N is 0 or the unclosed parentheses extra unclosed parentheses. When N is 0 or the unclosed
is the first non-white character in its line, line up with the parentheses is the first non-white character in its line, line
next non-white character after the unclosed parentheses. up with the next non-white character after the unclosed
(default 'shiftwidth' * 2). parentheses. (default 'shiftwidth' * 2).
cino= cino=(0 > cino= cino=(0 >
if (c1 && (c2 || if (c1 && (c2 || if (c1 && (c2 || if (c1 && (c2 ||
@ -428,7 +428,8 @@ The examples below assume a 'shiftwidth' of 4.
{ { { {
< <
*cino-u* *cino-u*
uN Same as (N, but for one level deeper. (default 'shiftwidth'). uN Same as (N, but for one nesting level deeper.
(default 'shiftwidth').
cino= cino=u2 > cino= cino=u2 >
if (c123456789 if (c123456789 if (c123456789 if (c123456789

View File

@ -1,4 +1,4 @@
*insert.txt* For Vim version 8.0. Last change: 2017 May 30 *insert.txt* For Vim version 8.0. Last change: 2018 Feb 10
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -433,7 +433,7 @@ An example for using CTRL-G U: >
inoremap ( ()<C-G>U<Left> inoremap ( ()<C-G>U<Left>
This makes it possible to use the cursor keys in Insert mode, without breaking This makes it possible to use the cursor keys in Insert mode, without breaking
the undo sequence and therefore using |.| (redo) will work as expected. the undo sequence and therefore using |.| (redo) will work as expected.
Also entering a text like (with the "(" mapping from above): > Also entering a text like (with the "(" mapping from above): >
Lorem ipsum (dolor Lorem ipsum (dolor
@ -1103,6 +1103,8 @@ items:
item with the same word is already present. item with the same word is already present.
empty when non-zero this match will be added even when it is empty when non-zero this match will be added even when it is
an empty string an empty string
user_data custom data which is associated with the item and
available in |v:completed_item|
All of these except "icase", "dup" and "empty" must be a string. If an item All of these except "icase", "dup" and "empty" must be a string. If an item
does not meet these requirements then an error message is given and further does not meet these requirements then an error message is given and further
@ -1196,6 +1198,8 @@ The menu is used when:
The 'pumheight' option can be used to set a maximum height. The default is to The 'pumheight' option can be used to set a maximum height. The default is to
use all space available. use all space available.
The 'pumwidth' option can be used to set a minimum width. The default is 15
characters.
There are three states: There are three states:
1. A complete match has been inserted, e.g., after using CTRL-N or CTRL-P. 1. A complete match has been inserted, e.g., after using CTRL-N or CTRL-P.
@ -1296,7 +1300,8 @@ it here: http://ctags.sourceforge.net/ Version 5.6 or later is recommended.
For version 5.5.4 you should add a patch that adds the "typename:" field: For version 5.5.4 you should add a patch that adds the "typename:" field:
ftp://ftp.vim.org/pub/vim/unstable/patches/ctags-5.5.4.patch ftp://ftp.vim.org/pub/vim/unstable/patches/ctags-5.5.4.patch
A compiled .exe for MS-Windows can be found at: A compiled .exe for MS-Windows can be found at:
http://georgevreilly.com/vim/ctags.html http://ctags.sourceforge.net/
https://github.com/universal-ctags/ctags-win32
If you want to complete system functions you can do something like this. Use If you want to complete system functions you can do something like this. Use
ctags to generate a tags file for all the system header files: > ctags to generate a tags file for all the system header files: >
@ -1472,7 +1477,7 @@ The completions provided by CTRL-X CTRL-O are sensitive to the context:
Notes: Notes:
- Vim will load/evaluate code in order to provide completions. This may - Vim will load/evaluate code in order to provide completions. This may
cause some code execution, which may be a concern. This is no longer cause some code execution, which may be a concern. This is no longer
enabled by default, to enable this feature add > enabled by default, to enable this feature add >
let g:rubycomplete_buffer_loading = 1 let g:rubycomplete_buffer_loading = 1
<- In context 1 above, Vim can parse the entire buffer to add a list of <- In context 1 above, Vim can parse the entire buffer to add a list of
@ -1528,15 +1533,15 @@ that begin with the filetype, "php", in this case. For example these syntax
groups are included by default with the PHP: phpEnvVar, phpIntVar, groups are included by default with the PHP: phpEnvVar, phpIntVar,
phpFunctions. phpFunctions.
If you wish non-filetype syntax items to also be included, you can use a If you wish non-filetype syntax items to also be included, you can use a
regular expression syntax (added in version 13.0 of autoload\syntaxcomplete.vim) regular expression syntax (added in version 13.0 of
to add items. Looking at the output from ":syntax list" while editing a PHP file autoload\syntaxcomplete.vim) to add items. Looking at the output from
I can see some of these entries: > ":syntax list" while editing a PHP file I can see some of these entries: >
htmlArg,htmlTag,htmlTagName,javaScriptStatement,javaScriptGlobalObjects htmlArg,htmlTag,htmlTagName,javaScriptStatement,javaScriptGlobalObjects
To pick up any JavaScript and HTML keyword syntax groups while editing a PHP To pick up any JavaScript and HTML keyword syntax groups while editing a PHP
file, you can use 3 different regexs, one for each language. Or you can file, you can use 3 different regexs, one for each language. Or you can
simply restrict the include groups to a particular value, without using simply restrict the include groups to a particular value, without using
a regex string: > a regex string: >
let g:omni_syntax_group_include_php = 'php\w\+,javaScript\w\+,html\w\+' let g:omni_syntax_group_include_php = 'php\w\+,javaScript\w\+,html\w\+'
let g:omni_syntax_group_include_php = 'phpFunctions,phpMethods' let g:omni_syntax_group_include_php = 'phpFunctions,phpMethods'
@ -1549,9 +1554,9 @@ highlight. These items will be available within the omni completion list.
Some people may find this list unwieldy or are only interested in certain Some people may find this list unwieldy or are only interested in certain
items. There are two ways to prune this list (if necessary). If you find items. There are two ways to prune this list (if necessary). If you find
certain syntax groups you do not wish displayed you can use two different certain syntax groups you do not wish displayed you can use two different
methods to identify these groups. The first specifically lists the syntax methods to identify these groups. The first specifically lists the syntax
groups by name. The second uses a regular expression to identify both groups by name. The second uses a regular expression to identify both
syntax groups. Simply add one the following to your vimrc: > syntax groups. Simply add one the following to your vimrc: >
let g:omni_syntax_group_exclude_php = 'phpCoreConstant,phpConstant' let g:omni_syntax_group_exclude_php = 'phpCoreConstant,phpConstant'
let g:omni_syntax_group_exclude_php = 'php\w*Constant' let g:omni_syntax_group_exclude_php = 'php\w*Constant'
@ -1574,22 +1579,22 @@ vimrc: >
For plugin developers, the plugin exposes a public function OmniSyntaxList. For plugin developers, the plugin exposes a public function OmniSyntaxList.
This function can be used to request a List of syntax items. When editing a This function can be used to request a List of syntax items. When editing a
SQL file (:e syntax.sql) you can use the ":syntax list" command to see the SQL file (:e syntax.sql) you can use the ":syntax list" command to see the
various groups and syntax items. For example: > various groups and syntax items. For example: >
syntax list syntax list
Yields data similar to this: > Yields data similar to this:
sqlOperator xxx some prior all like and any escape exists in is not sqlOperator xxx some prior all like and any escape exists in is not ~
or intersect minus between distinct or intersect minus between distinct ~
links to Operator links to Operator ~
sqlType xxx varbit varchar nvarchar bigint int uniqueidentifier sqlType xxx varbit varchar nvarchar bigint int uniqueidentifier ~
date money long tinyint unsigned xml text smalldate date money long tinyint unsigned xml text smalldate ~
double datetime nchar smallint numeric time bit char double datetime nchar smallint numeric time bit char ~
varbinary binary smallmoney varbinary binary smallmoney ~
image float integer timestamp real decimal image float integer timestamp real decimal ~
There are two syntax groups listed here: sqlOperator and sqlType. To retrieve There are two syntax groups listed here: sqlOperator and sqlType. To retrieve
a List of syntax items you can call OmniSyntaxList a number of different a List of syntax items you can call OmniSyntaxList a number of different
ways. To retrieve all syntax items regardless of syntax group: > ways. To retrieve all syntax items regardless of syntax group: >
echo OmniSyntaxList( [] ) echo OmniSyntaxList( [] )
@ -1606,7 +1611,6 @@ From within a plugin, you would typically assign the output to a List: >
let myKeywords = [] let myKeywords = []
let myKeywords = OmniSyntaxList( ['sqlKeyword'] ) let myKeywords = OmniSyntaxList( ['sqlKeyword'] )
SQL *ft-sql-omni* SQL *ft-sql-omni*

View File

@ -1,4 +1,4 @@
*intro.txt* For Vim version 8.0. Last change: 2017 Sep 04 *intro.txt* For Vim version 8.0. Last change: 2018 Jan 24
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -138,7 +138,7 @@ There are two ways to report bugs, both work:
see the message. If you don't want that, e.g. because it is a security see the message. If you don't want that, e.g. because it is a security
issue, send it to <bugs@vim.org>, this only goes to the Vim maintainer issue, send it to <bugs@vim.org>, this only goes to the Vim maintainer
(that's Bram). (that's Bram).
2. Open issue on GitHub: https://github.com/vim/vim/issues 2. Open an issue on GitHub: https://github.com/vim/vim/issues
The text will be forwarded to the vim-dev maillist. The text will be forwarded to the vim-dev maillist.
Please be brief; all the time that is spent on answering mail is subtracted Please be brief; all the time that is spent on answering mail is subtracted

View File

@ -1272,6 +1272,7 @@ By default, the arguments of user defined commands do not undergo completion.
However, by specifying one or the other of the following attributes, argument However, by specifying one or the other of the following attributes, argument
completion can be enabled: completion can be enabled:
-complete=arglist file names in argument list
-complete=augroup autocmd groups -complete=augroup autocmd groups
-complete=buffer buffer names -complete=buffer buffer names
-complete=behave :behave suboptions -complete=behave :behave suboptions

View File

@ -1,4 +1,4 @@
*mbyte.txt* For Vim version 8.0. Last change: 2016 Jul 21 *mbyte.txt* For Vim version 8.0. Last change: 2018 Jan 21
VIM REFERENCE MANUAL by Bram Moolenaar et al. VIM REFERENCE MANUAL by Bram Moolenaar et al.
@ -26,8 +26,9 @@ For changing the language of messages and menus see |mlang.txt|.
7. Input on X11 |mbyte-XIM| 7. Input on X11 |mbyte-XIM|
8. Input on MS-Windows |mbyte-IME| 8. Input on MS-Windows |mbyte-IME|
9. Input with a keymap |mbyte-keymap| 9. Input with a keymap |mbyte-keymap|
10. Using UTF-8 |mbyte-utf8| 10. Input with imactivatefunc() |mbyte-func|
11. Overview of options |mbyte-options| 11. Using UTF-8 |mbyte-utf8|
12. Overview of options |mbyte-options|
NOTE: This file contains UTF-8 characters. These may show up as strange NOTE: This file contains UTF-8 characters. These may show up as strange
characters or boxes when using another encoding. characters or boxes when using another encoding.
@ -1254,7 +1255,35 @@ Combining forms:
ﭏ 0xfb4f Xal alef-lamed ﭏ 0xfb4f Xal alef-lamed
============================================================================== ==============================================================================
10. Using UTF-8 *mbyte-utf8* *UTF-8* *utf-8* *utf8* 10. Input with imactivatefunc() *mbyte-func*
Vim has the 'imactivatefunc' and 'imstatusfunc' options. These are useful to
activate/deactivate the input method from Vim in any way, also with an external
command. For example, fcitx provide fcitx-remote command: >
set iminsert=2
set imsearch=2
set imcmdline
set imactivatefunc=ImActivate
function! ImActivate(active)
if a:active
call system('fcitx-remote -o')
else
call system('fcitx-remote -c')
endif
endfunction
set imstatusfunc=ImStatus
function! ImStatus()
return system('fcitx-remote')[0] is# '2'
endfunction
Using this script, you can activate/deactivate XIM via Vim even when it is not
compiled with |+xim|.
==============================================================================
11. Using UTF-8 *mbyte-utf8* *UTF-8* *utf-8* *utf8*
*Unicode* *unicode* *Unicode* *unicode*
The Unicode character set was designed to include all characters from other The Unicode character set was designed to include all characters from other
character sets. Therefore it is possible to write text in any language using character sets. Therefore it is possible to write text in any language using
@ -1402,7 +1431,7 @@ not everybody is able to type a composing character.
============================================================================== ==============================================================================
11. Overview of options *mbyte-options* 12. Overview of options *mbyte-options*
These options are relevant for editing multi-byte files. Check the help in These options are relevant for editing multi-byte files. Check the help in
options.txt for detailed information. options.txt for detailed information.

View File

@ -1,4 +1,4 @@
*message.txt* For Vim version 8.0. Last change: 2017 Oct 14 *message.txt* For Vim version 8.0. Last change: 2018 Feb 04
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -76,7 +76,7 @@ See `:messages` above.
LIST OF MESSAGES LIST OF MESSAGES
*E222* *E228* *E232* *E256* *E293* *E298* *E304* *E317* *E222* *E228* *E232* *E256* *E293* *E298* *E304* *E317*
*E318* *E356* *E438* *E439* *E440* *E316* *E320* *E322* *E318* *E356* *E438* *E439* *E440* *E316* *E320* *E322*
*E323* *E341* *E473* *E570* *E685* > *E323* *E341* *E473* *E570* *E685* *E950* >
Add to read buffer Add to read buffer
makemap: Illegal mode makemap: Illegal mode
Cannot create BalloonEval with both message and callback Cannot create BalloonEval with both message and callback
@ -97,6 +97,7 @@ LIST OF MESSAGES
Internal error Internal error
Internal error: {function} Internal error: {function}
fatal error in cs_manage_matches fatal error in cs_manage_matches
Invalid count for del_bytes(): {N}
This is an internal error. If you can reproduce it, please send in a bug This is an internal error. If you can reproduce it, please send in a bug
report. |bugs| report. |bugs|

View File

@ -1,4 +1,4 @@
*options.txt* For Vim version 8.0. Last change: 2017 Nov 18 *options.txt* For Vim version 8.0. Last change: 2018 Apr 14
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -50,7 +50,7 @@ achieve special effects. These options come in three forms:
:se[t] {option}&vi Reset option to its Vi default value. {not in Vi} :se[t] {option}&vi Reset option to its Vi default value. {not in Vi}
:se[t] {option}&vim Reset option to its Vim default value. {not in Vi} :se[t] {option}&vim Reset option to its Vim default value. {not in Vi}
:se[t] all& Set all options to their default value. The values of :se[t] all& Set all options to their default value. The values of
these options are not changed: these options are not changed:
all terminal options, starting with t_ all terminal options, starting with t_
'columns' 'columns'
@ -402,8 +402,8 @@ Setting the filetype
used to set the option value in, unless this is a help used to set the option value in, unless this is a help
window, in which case the window below help window is window, in which case the window below help window is
used (skipping the option-window). used (skipping the option-window).
{not available when compiled without the |+eval| or {not available when compiled without the |+eval|
|+autocmd| features} feature}
*$HOME* *$HOME*
Using "~" is like using "$HOME", but it is only recognized at the start of an Using "~" is like using "$HOME", but it is only recognized at the start of an
@ -1087,7 +1087,9 @@ A jump table for the options with a short description can be found at |Q_op|.
< Use 'backupdir' to put the backup in a different directory. < Use 'backupdir' to put the backup in a different directory.
*'backupskip'* *'bsk'* *'backupskip'* *'bsk'*
'backupskip' 'bsk' string (default: "/tmp/*,$TMPDIR/*,$TMP/*,$TEMP/*") 'backupskip' 'bsk' string (default: "$TMPDIR/*,$TMP/*,$TEMP/*"
Unix: "/tmp/*,$TMPDIR/*,$TMP/*,$TEMP/*"
Mac: "/private/tmp/*,$TMPDIR/*,$TMP/*,$TEMP/*")
global global
{not in Vi} {not in Vi}
{not available when compiled without the |+wildignore| {not available when compiled without the |+wildignore|
@ -1325,7 +1327,7 @@ A jump table for the options with a short description can be found at |Q_op|.
characters. It permits dynamic French paragraph characters. It permits dynamic French paragraph
indentation (negative) or emphasizing the line indentation (negative) or emphasizing the line
continuation (positive). continuation (positive).
sbr Display the 'showbreak' value before applying the sbr Display the 'showbreak' value before applying the
additional indent. additional indent.
The default value for min is 20 and shift is 0. The default value for min is 20 and shift is 0.
@ -1385,8 +1387,7 @@ A jump table for the options with a short description can be found at |Q_op|.
written written
nowrite buffer which will not be written nowrite buffer which will not be written
acwrite buffer which will always be written with BufWriteCmd acwrite buffer which will always be written with BufWriteCmd
autocommands. {not available when compiled without the autocommands.
|+autocmd| feature}
quickfix quickfix buffer, contains list of errors |:cwindow| quickfix quickfix buffer, contains list of errors |:cwindow|
or list of locations |:lwindow| or list of locations |:lwindow|
help help buffer (you are not supposed to set this help help buffer (you are not supposed to set this
@ -1808,7 +1809,7 @@ A jump table for the options with a short description can be found at |Q_op|.
'copyindent' + off don't copy indent structure 'copyindent' + off don't copy indent structure
'cpoptions' & (all flags) Vi-compatible flags 'cpoptions' & (all flags) Vi-compatible flags
'cscopepathcomp'+ 0 don't show directories in tags list 'cscopepathcomp'+ 0 don't show directories in tags list
'cscoperelative'+ off 'cscoperelative'+ off don't use basename of path as prefix
'cscopetag' + off don't use cscope for ":tag" 'cscopetag' + off don't use cscope for ":tag"
'cscopetagorder'+ 0 see |cscopetagorder| 'cscopetagorder'+ 0 see |cscopetagorder|
'cscopeverbose' + off see |cscopeverbose| 'cscopeverbose' + off see |cscopeverbose|
@ -2466,8 +2467,6 @@ A jump table for the options with a short description can be found at |Q_op|.
'cursorbind' 'crb' boolean (default off) 'cursorbind' 'crb' boolean (default off)
local to window local to window
{not in Vi} {not in Vi}
{not available when compiled without the |+cursorbind|
feature}
When this option is set, as the cursor in the current When this option is set, as the cursor in the current
window moves other cursorbound windows (windows that also have window moves other cursorbound windows (windows that also have
this option set) move their cursors to the corresponding line and this option set) move their cursors to the corresponding line and
@ -2634,6 +2633,9 @@ A jump table for the options with a short description can be found at |Q_op|.
vertical Start diff mode with vertical splits (unless vertical Start diff mode with vertical splits (unless
explicitly specified otherwise). explicitly specified otherwise).
hiddenoff Do not use diff mode for a buffer when it
becomes hidden.
foldcolumn:{n} Set the 'foldcolumn' option to {n} when foldcolumn:{n} Set the 'foldcolumn' option to {n} when
starting diff mode. Without this 2 is used. starting diff mode. Without this 2 is used.
@ -2915,8 +2917,6 @@ A jump table for the options with a short description can be found at |Q_op|.
'eventignore' 'ei' string (default "") 'eventignore' 'ei' string (default "")
global global
{not in Vi} {not in Vi}
{not available when compiled without the |+autocmd|
feature}
A list of autocommand event names, which are to be ignored. A list of autocommand event names, which are to be ignored.
When set to "all" or when "all" is one of the items, all autocommand When set to "all" or when "all" is one of the items, all autocommand
events are ignored, autocommands will not be executed. events are ignored, autocommands will not be executed.
@ -3165,8 +3165,6 @@ A jump table for the options with a short description can be found at |Q_op|.
'filetype' 'ft' string (default: "") 'filetype' 'ft' string (default: "")
local to buffer local to buffer
{not in Vi} {not in Vi}
{not available when compiled without the |+autocmd|
feature}
When this option is set, the FileType autocommand event is triggered. When this option is set, the FileType autocommand event is triggered.
All autocommands that match with the value of this option will be All autocommands that match with the value of this option will be
executed. Thus the value of 'filetype' is used in place of the file executed. Thus the value of 'filetype' is used in place of the file
@ -3465,7 +3463,7 @@ A jump table for the options with a short description can be found at |Q_op|.
when internal formatting is used. Make sure the cursor is kept in the when internal formatting is used. Make sure the cursor is kept in the
same spot relative to the text then! The |mode()| function will same spot relative to the text then! The |mode()| function will
return "i" or "R" in this situation. return "i" or "R" in this situation.
When the expression evaluates to non-zero Vim will fall back to using When the expression evaluates to non-zero Vim will fall back to using
the internal format mechanism. the internal format mechanism.
@ -3849,7 +3847,14 @@ A jump table for the options with a short description can be found at |Q_op|.
To avoid problems with flags that are added in the future, use the To avoid problems with flags that are added in the future, use the
"+=" and "-=" feature of ":set" |add-option-flags|. "+=" and "-=" feature of ":set" |add-option-flags|.
Valid letters are as follows: Valid characters are as follows:
*'go-!'*
'!' External commands are executed in a terminal window. Without
this flag the MS-Windows GUI will open a console window to
execute the command. The Unix GUI will simulate a dumb
terminal to list the command output.
The terminal window will be positioned at the bottom, and grow
upwards as needed.
*guioptions_a* *'go-a'* *guioptions_a* *'go-a'*
'a' Autoselect: If present, then whenever VISUAL mode is started, 'a' Autoselect: If present, then whenever VISUAL mode is started,
or the Visual area extended, Vim tries to become the owner of or the Visual area extended, Vim tries to become the owner of
@ -4256,10 +4261,10 @@ A jump table for the options with a short description can be found at |Q_op|.
'imactivatefunc' 'imaf' string (default "") 'imactivatefunc' 'imaf' string (default "")
global global
{not in Vi} {not in Vi}
{only available when compiled with |+xim| and {only available when compiled with |+mbyte|}
|+GUI_GTK|}
This option specifies a function that will be called to This option specifies a function that will be called to
activate/inactivate Input Method. activate or deactivate the Input Method.
It is not used in the GUI.
Example: > Example: >
function ImActivateFunc(active) function ImActivateFunc(active)
@ -4308,8 +4313,7 @@ A jump table for the options with a short description can be found at |Q_op|.
'imcmdline' 'imc' boolean (default off) 'imcmdline' 'imc' boolean (default off)
global global
{not in Vi} {not in Vi}
{only available when compiled with the |+xim|, {only available when compiled with |+mbyte|}
|+multi_byte_ime| or |global-ime| features}
When set the Input Method is always on when starting to edit a command When set the Input Method is always on when starting to edit a command
line, unless entering a search pattern (see 'imsearch' for that). line, unless entering a search pattern (see 'imsearch' for that).
Setting this option is useful when your input method allows entering Setting this option is useful when your input method allows entering
@ -4320,8 +4324,7 @@ A jump table for the options with a short description can be found at |Q_op|.
'imdisable' 'imd' boolean (default off, on for some systems (SGI)) 'imdisable' 'imd' boolean (default off, on for some systems (SGI))
global global
{not in Vi} {not in Vi}
{only available when compiled with the |+xim|, {only available when compiled with |+mbyte|}
|+multi_byte_ime| or |global-ime| features}
When set the Input Method is never used. This is useful to disable When set the Input Method is never used. This is useful to disable
the IM when it doesn't work properly. the IM when it doesn't work properly.
Currently this option is on by default for SGI/IRIX machines. This Currently this option is on by default for SGI/IRIX machines. This
@ -4336,8 +4339,6 @@ A jump table for the options with a short description can be found at |Q_op|.
0 :lmap is off and IM is off 0 :lmap is off and IM is off
1 :lmap is ON and IM is off 1 :lmap is ON and IM is off
2 :lmap is off and IM is ON 2 :lmap is off and IM is ON
2 is available only when compiled with the |+multi_byte_ime|, |+xim|
or |global-ime|.
To always reset the option to zero when leaving Insert mode with <Esc> To always reset the option to zero when leaving Insert mode with <Esc>
this can be used: > this can be used: >
:inoremap <ESC> <ESC>:set iminsert=0<CR> :inoremap <ESC> <ESC>:set iminsert=0<CR>
@ -4350,6 +4351,10 @@ A jump table for the options with a short description can be found at |Q_op|.
The value 0 may not work correctly with Athena and Motif with some XIM The value 0 may not work correctly with Athena and Motif with some XIM
methods. Use 'imdisable' to disable XIM then. methods. Use 'imdisable' to disable XIM then.
You can set 'imactivatefunc' and 'imstatusfunc' to handle IME/XIM
via external command if vim is not compiled with the |+xim|,
|+multi_byte_ime| or |global-ime|.
*'imsearch'* *'ims'* *'imsearch'* *'ims'*
'imsearch' 'ims' number (default -1) 'imsearch' 'ims' number (default -1)
local to buffer local to buffer
@ -4372,10 +4377,10 @@ A jump table for the options with a short description can be found at |Q_op|.
'imstatusfunc' 'imsf' string (default "") 'imstatusfunc' 'imsf' string (default "")
global global
{not in Vi} {not in Vi}
{only available when compiled with |+xim| and {only available when compiled with |+mbyte|}
|+GUI_GTK|}
This option specifies a function that is called to obtain the status This option specifies a function that is called to obtain the status
of Input Method. It must return a positive number when IME is active. of Input Method. It must return a positive number when IME is active.
It is not used in the GUI.
Example: > Example: >
function ImStatusFunc() function ImStatusFunc()
@ -4464,8 +4469,8 @@ A jump table for the options with a short description can be found at |Q_op|.
match may not be found. This is to avoid that Vim hangs while you match may not be found. This is to avoid that Vim hangs while you
are typing the pattern. are typing the pattern.
The highlighting can be set with the 'i' flag in 'highlight'. The highlighting can be set with the 'i' flag in 'highlight'.
When 'hlsearch' is on, all matched strings are highlighted too while typing When 'hlsearch' is on, all matched strings are highlighted too while
a search command. See also: 'hlsearch'. typing a search command. See also: 'hlsearch'.
If you don't want turn 'hlsearch' on, but want to highlight all matches If you don't want turn 'hlsearch' on, but want to highlight all matches
while searching, you can turn on and off 'hlsearch' with autocmd. while searching, you can turn on and off 'hlsearch' with autocmd.
Example: > Example: >
@ -5111,8 +5116,8 @@ A jump table for the options with a short description can be found at |Q_op|.
global or local to buffer |global-local| global or local to buffer |global-local|
{not in Vi} {not in Vi}
Program to use for the ":make" command. See |:make_makeprg|. Program to use for the ":make" command. See |:make_makeprg|.
This option may contain '%' and '#' characters (see |:_%| and |:_#|), This option may contain '%' and '#' characters (see |:_%| and |:_#|),
which are expanded to the current and alternate file name. Use |::S| which are expanded to the current and alternate file name. Use |::S|
to escape file names in case they contain special characters. to escape file names in case they contain special characters.
Environment variables are expanded |:set_env|. See |option-backslash| Environment variables are expanded |:set_env|. See |option-backslash|
about including spaces and backslashes. about including spaces and backslashes.
@ -5200,8 +5205,11 @@ A jump table for the options with a short description can be found at |Q_op|.
{not in Vi} {not in Vi}
Maximum amount of memory (in Kbyte) to use for one buffer. When this Maximum amount of memory (in Kbyte) to use for one buffer. When this
limit is reached allocating extra memory for a buffer will cause limit is reached allocating extra memory for a buffer will cause
other memory to be freed. The maximum usable value is about 2000000. other memory to be freed.
Use this to work without a limit. Also see 'maxmemtot'. The maximum usable value is about 2000000. Use this to work without a
limit.
The value is ignored when 'swapfile' is off.
Also see 'maxmemtot'.
*'maxmempattern'* *'mmp'* *'maxmempattern'* *'mmp'*
'maxmempattern' 'mmp' number (default 1000) 'maxmempattern' 'mmp' number (default 1000)
@ -5230,6 +5238,8 @@ A jump table for the options with a short description can be found at |Q_op|.
need more than 2 Gbyte for text editing? Keep in mind that text is need more than 2 Gbyte for text editing? Keep in mind that text is
stored in the swap file, one can edit files > 2 Gbyte anyway. We do stored in the swap file, one can edit files > 2 Gbyte anyway. We do
need the memory to store undo info. need the memory to store undo info.
Buffers with 'swapfile' off still count to the total amount of memory
used.
Also see 'maxmem'. Also see 'maxmem'.
*'menuitems'* *'mis'* *'menuitems'* *'mis'*
@ -5326,6 +5336,8 @@ A jump table for the options with a short description can be found at |Q_op|.
an explanation. an explanation.
When 'buftype' is "nowrite" or "nofile" this option may be set, but When 'buftype' is "nowrite" or "nofile" this option may be set, but
will be ignored. will be ignored.
Note that the text may actually be the same, e.g. 'modified' is set
when using "rA" on an "A".
*'more'* *'nomore'* *'more'* *'nomore'*
'more' boolean (Vim default: on, Vi default: off) 'more' boolean (Vim default: on, Vi default: off)
@ -5414,6 +5426,8 @@ A jump table for the options with a short description can be found at |Q_op|.
In the "popup" model the right mouse button produces a pop-up menu. In the "popup" model the right mouse button produces a pop-up menu.
You need to define this first, see |popup-menu|. You need to define this first, see |popup-menu|.
In a terminal the popup menu works if Vim is compiled with the
|+insert_expand| option.
Note that you can further refine the meaning of buttons with mappings. Note that you can further refine the meaning of buttons with mappings.
See |gui-mouse-mapping|. But mappings are NOT used for modeless See |gui-mouse-mapping|. But mappings are NOT used for modeless
@ -5746,11 +5760,11 @@ A jump table for the options with a short description can be found at |Q_op|.
copy of the original file will be kept. The name of the copy is the copy of the original file will be kept. The name of the copy is the
name of the original file with the string in the 'patchmode' option name of the original file with the string in the 'patchmode' option
appended. This option should start with a dot. Use a string like appended. This option should start with a dot. Use a string like
".org". 'backupdir' must not be empty for this to work (Detail: The ".orig" or ".org". 'backupdir' must not be empty for this to work
backup file is renamed to the patchmode file after the new file has (Detail: The backup file is renamed to the patchmode file after the
been successfully written, that's why it must be possible to write a new file has been successfully written, that's why it must be possible
backup file). If there was no file to be backed up, an empty file is to write a backup file). If there was no file to be backed up, an
created. empty file is created.
When the 'backupskip' pattern matches, a patchmode file is not made. When the 'backupskip' pattern matches, a patchmode file is not made.
Using 'patchmode' for compressed files appends the extension at the Using 'patchmode' for compressed files appends the extension at the
end (e.g., "file.gz.orig"), thus the resulting name isn't always end (e.g., "file.gz.orig"), thus the resulting name isn't always
@ -5952,6 +5966,15 @@ A jump table for the options with a short description can be found at |Q_op|.
Insert mode completion. When zero as much space as available is used. Insert mode completion. When zero as much space as available is used.
|ins-completion-menu|. |ins-completion-menu|.
*'pumwidth'* *'pw'*
'pumwidth' 'pw' number (default 15)
global
{not available when compiled without the
|+insert_expand| feature}
{not in Vi}
Determines the minimum width to use for the popup menu for Insert mode
completion. |ins-completion-menu|.
*'pythondll'* *'pythondll'*
'pythondll' string (default depends on the build) 'pythondll' string (default depends on the build)
global global
@ -5962,6 +5985,20 @@ A jump table for the options with a short description can be found at |Q_op|.
DYNAMIC_PYTHON_DLL, which was specified at compile time. DYNAMIC_PYTHON_DLL, which was specified at compile time.
Environment variables are expanded |:set_env|. Environment variables are expanded |:set_env|.
This option cannot be set from a |modeline| or in the |sandbox|, for This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
*'pythonhome'*
'pythonhome' string (default "")
global
{not in Vi}
{only available when compiled with the |+python/dyn|
feature}
Specifies the name of the Python 2.x home directory. When 'pythonhome'
and the PYTHONHOME environment variable are not set, PYTHON_HOME,
which was specified at compile time, will be used for the Python 2.x
home directory.
Environment variables are expanded |:set_env|.
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons. security reasons.
*'pythonthreedll'* *'pythonthreedll'*
@ -5974,6 +6011,20 @@ A jump table for the options with a short description can be found at |Q_op|.
DYNAMIC_PYTHON3_DLL, which was specified at compile time. DYNAMIC_PYTHON3_DLL, which was specified at compile time.
Environment variables are expanded |:set_env|. Environment variables are expanded |:set_env|.
This option cannot be set from a |modeline| or in the |sandbox|, for This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
*'pythonthreehome'*
'pythonthreehome' string (default "")
global
{not in Vi}
{only available when compiled with the |+python3/dyn|
feature}
Specifies the name of the Python 3 home directory. When
'pythonthreehome' and the PYTHONHOME environment variable are not set,
PYTHON3_HOME, which was specified at compile time, will be used for
the Python 3 home directory.
Environment variables are expanded |:set_env|.
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons. security reasons.
*'pyxversion'* *'pyx'* *'pyxversion'* *'pyx'*
@ -6077,7 +6128,7 @@ A jump table for the options with a short description can be found at |Q_op|.
characters are put before the number. characters are put before the number.
See |hl-LineNr| and |hl-CursorLineNr| for the highlighting used for See |hl-LineNr| and |hl-CursorLineNr| for the highlighting used for
the number. the number.
The number in front of the cursor line also depends on the value of The number in front of the cursor line also depends on the value of
'number', see |number_relativenumber| for all combinations of the two 'number', see |number_relativenumber| for all combinations of the two
options. options.
@ -6119,9 +6170,10 @@ A jump table for the options with a short description can be found at |Q_op|.
geom pixelGeometry int 0 - 2 (see below) geom pixelGeometry int 0 - 2 (see below)
renmode renderingMode int 0 - 6 (see below) renmode renderingMode int 0 - 6 (see below)
taamode textAntialiasMode int 0 - 3 (see below) taamode textAntialiasMode int 0 - 3 (see below)
scrlines Scroll Lines int (deprecated)
See this URL for detail: See this URL for detail (except for scrlines):
http://msdn.microsoft.com/en-us/library/dd368190.aspx https://msdn.microsoft.com/en-us/library/dd368190.aspx
For geom: structure of a device pixel. For geom: structure of a device pixel.
0 - DWRITE_PIXEL_GEOMETRY_FLAT 0 - DWRITE_PIXEL_GEOMETRY_FLAT
@ -6129,7 +6181,7 @@ A jump table for the options with a short description can be found at |Q_op|.
2 - DWRITE_PIXEL_GEOMETRY_BGR 2 - DWRITE_PIXEL_GEOMETRY_BGR
See this URL for detail: See this URL for detail:
http://msdn.microsoft.com/en-us/library/dd368114.aspx https://msdn.microsoft.com/en-us/library/dd368114.aspx
For renmode: method of rendering glyphs. For renmode: method of rendering glyphs.
0 - DWRITE_RENDERING_MODE_DEFAULT 0 - DWRITE_RENDERING_MODE_DEFAULT
@ -6141,7 +6193,7 @@ A jump table for the options with a short description can be found at |Q_op|.
6 - DWRITE_RENDERING_MODE_OUTLINE 6 - DWRITE_RENDERING_MODE_OUTLINE
See this URL for detail: See this URL for detail:
http://msdn.microsoft.com/en-us/library/dd368118.aspx https://msdn.microsoft.com/en-us/library/dd368118.aspx
For taamode: antialiasing mode used for drawing text. For taamode: antialiasing mode used for drawing text.
0 - D2D1_TEXT_ANTIALIAS_MODE_DEFAULT 0 - D2D1_TEXT_ANTIALIAS_MODE_DEFAULT
@ -6150,15 +6202,41 @@ A jump table for the options with a short description can be found at |Q_op|.
3 - D2D1_TEXT_ANTIALIAS_MODE_ALIASED 3 - D2D1_TEXT_ANTIALIAS_MODE_ALIASED
See this URL for detail: See this URL for detail:
http://msdn.microsoft.com/en-us/library/dd368170.aspx https://msdn.microsoft.com/en-us/library/dd368170.aspx
For scrlines:
This was used for optimizing scrolling behavior, however this
is now deprecated. If specified, it is simply ignored.
Example: > Example: >
set encoding=utf-8 set encoding=utf-8
set gfn=Ricty_Diminished:h12:cSHIFTJIS set gfn=Ricty_Diminished:h12
set rop=type:directx set rop=type:directx
< <
If select a raster font (Courier, Terminal or FixedSys) to If select a raster font (Courier, Terminal or FixedSys which
'guifont', it fallbacks to be drawn by GDI automatically. have ".fon" extension in file name) to 'guifont', it will be
drawn by GDI as a fallback.
NOTE: It is known that some fonts and options combination
causes trouble on drawing glyphs.
- 'renmode:5' and 'renmode:6' will not work with some
special made fonts (True-Type fonts which includes only
bitmap glyphs).
- 'taamode:3' will not work with some vector fonts.
NOTE: With this option, you can display colored emoji
(emoticon) in Windows 8.1 or later. To display colored emoji,
there are some conditions which you should notice.
- If your font includes non-colored emoji already, it will
be used.
- If your font doesn't have emoji, the system chooses an
alternative symbol font. On Windows 10, "Segoe UI Emoji"
will be used.
- When this alternative font didn't have fixed width glyph,
emoji might be rendered beyond the bounding box of drawing
cell.
Other render types are currently not supported. Other render types are currently not supported.
@ -6369,6 +6447,8 @@ A jump table for the options with a short description can be found at |Q_op|.
to find files which replace a distributed runtime files. You can put to find files which replace a distributed runtime files. You can put
a directory after $VIMRUNTIME to find files which add to distributed a directory after $VIMRUNTIME to find files which add to distributed
runtime files. runtime files.
When Vim is started with |--clean| the home directory entries are not
included.
This option cannot be set from a |modeline| or in the |sandbox|, for This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons. security reasons.
@ -6387,8 +6467,6 @@ A jump table for the options with a short description can be found at |Q_op|.
'scrollbind' 'scb' boolean (default off) 'scrollbind' 'scb' boolean (default off)
local to window local to window
{not in Vi} {not in Vi}
{not available when compiled without the |+scrollbind|
feature}
See also |scroll-binding|. When this option is set, the current See also |scroll-binding|. When this option is set, the current
window scrolls as other scrollbind windows (windows that also have window scrolls as other scrollbind windows (windows that also have
this option set) scroll. This option is useful for viewing the this option set) scroll. This option is useful for viewing the
@ -6426,8 +6504,6 @@ A jump table for the options with a short description can be found at |Q_op|.
*'scrollopt'* *'sbo'* *'scrollopt'* *'sbo'*
'scrollopt' 'sbo' string (default "ver,jump") 'scrollopt' 'sbo' string (default "ver,jump")
global global
{not available when compiled without the |+scrollbind|
feature}
{not in Vi} {not in Vi}
This is a comma-separated list of words that specifies how This is a comma-separated list of words that specifies how
'scrollbind' windows should behave. 'sbo' stands for ScrollBind 'scrollbind' windows should behave. 'sbo' stands for ScrollBind
@ -6517,7 +6593,7 @@ A jump table for the options with a short description can be found at |Q_op|.
*'sessionoptions'* *'ssop'* *'sessionoptions'* *'ssop'*
'sessionoptions' 'ssop' string (default: "blank,buffers,curdir,folds, 'sessionoptions' 'ssop' string (default: "blank,buffers,curdir,folds,
help,options,tabpages,winsize") help,options,tabpages,winsize,terminal")
global global
{not in Vi} {not in Vi}
{not available when compiled without the |+mksession| {not available when compiled without the |+mksession|
@ -6549,6 +6625,7 @@ A jump table for the options with a short description can be found at |Q_op|.
tabpages all tab pages; without this only the current tab page tabpages all tab pages; without this only the current tab page
is restored, so that you can make a session for each is restored, so that you can make a session for each
tab page separately tab page separately
terminal include terminal windows where the command can be restored
unix with Unix end-of-line format (single <NL>), even when unix with Unix end-of-line format (single <NL>), even when
on Windows or DOS on Windows or DOS
winpos position of the whole Vim window winpos position of the whole Vim window
@ -6572,14 +6649,21 @@ A jump table for the options with a short description can be found at |Q_op|.
It is allowed to give an argument to the command, e.g. "csh -f". It is allowed to give an argument to the command, e.g. "csh -f".
See |option-backslash| about including spaces and backslashes. See |option-backslash| about including spaces and backslashes.
Environment variables are expanded |:set_env|. Environment variables are expanded |:set_env|.
If the name of the shell contains a space, you might need to enclose If the name of the shell contains a space, you might need to enclose
it in quotes. Example: > it in quotes or escape the space. Example with quotes: >
:set shell=\"c:\program\ files\unix\sh.exe\"\ -f :set shell=\"c:\program\ files\unix\sh.exe\"\ -f
< Note the backslash before each quote (to avoid starting a comment) and < Note the backslash before each quote (to avoid starting a comment) and
each space (to avoid ending the option value). Also note that the each space (to avoid ending the option value). Also note that the
"-f" is not inside the quotes, because it is not part of the command "-f" is not inside the quotes, because it is not part of the command
name. And Vim automagically recognizes the backslashes that are path name. Vim automagically recognizes the backslashes that are path
separators. separators.
Example with escaped space (Vim will do this when initializing the
option from $SHELL): >
:set shell=/bin/with\\\ space/sh
< The resulting value of 'shell' is "/bin/with\ space/sh", two
backslashes are consumed by `:set`.
Under MS-Windows, when the executable ends in ".com" it must be Under MS-Windows, when the executable ends in ".com" it must be
included. Thus setting the shell to "command.com" or "4dos.com" included. Thus setting the shell to "command.com" or "4dos.com"
works, but "command" and "4dos" do not work for all commands (e.g., works, but "command" and "4dos" do not work for all commands (e.g.,
@ -7337,7 +7421,6 @@ A jump table for the options with a short description can be found at |Q_op|.
W F Preview window flag, text is ",PRV". W F Preview window flag, text is ",PRV".
y F Type of file in the buffer, e.g., "[vim]". See 'filetype'. y F Type of file in the buffer, e.g., "[vim]". See 'filetype'.
Y F Type of file in the buffer, e.g., ",VIM". See 'filetype'. Y F Type of file in the buffer, e.g., ",VIM". See 'filetype'.
{not available when compiled without |+autocmd| feature}
q S "[Quickfix List]", "[Location List]" or empty. q S "[Quickfix List]", "[Location List]" or empty.
k S Value of "b:keymap_name" or 'keymap' when |:lmap| mappings are k S Value of "b:keymap_name" or 'keymap' when |:lmap| mappings are
being used: "<keymap>" being used: "<keymap>"
@ -7482,6 +7565,7 @@ A jump table for the options with a short description can be found at |Q_op|.
Also see |swap-file| and |'swapsync'|. Also see |swap-file| and |'swapsync'|.
If you want to open a new buffer without creating a swap file for it, If you want to open a new buffer without creating a swap file for it,
use the |:noswapfile| modifier. use the |:noswapfile| modifier.
See 'directory' for where the swap file is created.
This option is used together with 'bufhidden' and 'buftype' to This option is used together with 'bufhidden' and 'buftype' to
specify special kinds of buffers. See |special-buffers|. specify special kinds of buffers. See |special-buffers|.
@ -7828,20 +7912,37 @@ A jump table for the options with a short description can be found at |Q_op|.
:set encoding=utf-8 :set encoding=utf-8
< You need to do this when your system has no locale support for UTF-8. < You need to do this when your system has no locale support for UTF-8.
*'termguicolors'* *'tgc'* *'termguicolors'* *'tgc'* *E954*
'termguicolors' 'tgc' boolean (default off) 'termguicolors' 'tgc' boolean (default off)
global global
{not in Vi} {not in Vi}
{not available when compiled without the {not available when compiled without the
|+termguicolors| feature} |+termguicolors| feature}
When on, uses |highlight-guifg| and |highlight-guibg| attributes in When on, uses |highlight-guifg| and |highlight-guibg| attributes in
the terminal (thus using 24-bit color). Requires a ISO-8613-3 the terminal (thus using 24-bit color).
compatible terminal.
If setting this option does not work (produces a colorless UI) Requires a ISO-8613-3 compatible terminal. If setting this option
reading |xterm-true-color| might help. does not work (produces a colorless UI) reading |xterm-true-color|
might help.
For Win32 console, Windows 10 version 1703 (Creators Update) or later
is required. Use this check to find out: >
if has('vcon')
< This requires Vim to be built with the |+vtp| feature.
Note that the "cterm" attributes are still used, not the "gui" ones. Note that the "cterm" attributes are still used, not the "gui" ones.
NOTE: This option is reset when 'compatible' is set. NOTE: This option is reset when 'compatible' is set.
*'terminalscroll'* *'tlsl'*
'terminalscroll' 'tlsl' number (default 10000)
global
{not in Vi}
{not available when compiled without the
|+terminal| feature}
Number of scrollback lines to keep. When going over this limit the
first 10% of the scrollback lines are deleted. This is just to reduce
the memory usage. See |Terminal-Normal|.
*'termkey'* *'tk'* *'termkey'* *'tk'*
'termkey' 'tk' string (default "") 'termkey' 'tk' string (default "")
local to window local to window
@ -7859,15 +7960,23 @@ A jump table for the options with a short description can be found at |Q_op|.
'termsize' 'tms' string (default "") 'termsize' 'tms' string (default "")
local to window local to window
{not in Vi} {not in Vi}
Size of the |terminal| window. Format: {rows}x{columns}. Size of the |terminal| window. Format: {rows}x{columns} or
{rows}*{columns}.
- When empty the terminal gets the size from the window. - When empty the terminal gets the size from the window.
- When set (e.g., "24x80") the terminal size is not adjusted to the - When set with a "x" (e.g., "24x80") the terminal size is not
window size. If the window is smaller only the top-left part is adjusted to the window size. If the window is smaller only the
displayed. top-left part is displayed.
When rows is zero then use the height of the window. - When set with a "*" (e.g., "10*50") the terminal size follows the
When columns is zero then use the width of the window. window size, but will not be smaller than the specified rows and/or
For example: "30x0" uses 30 rows with the current window width. columns.
Using "0x0" is the same as empty. - When rows is zero then use the height of the window.
- When columns is zero then use the width of the window.
- Using "0x0" or "0*0" is the same as empty.
Examples:
"30x0" uses 30 rows and the current window width.
"20*0" uses at least 20 rows and the current window width.
"0*40" uses the current window height and at least 40 columns.
Note that the command running in the terminal window may still change Note that the command running in the terminal window may still change
the size of the terminal. In that case the Vim window will be the size of the terminal. In that case the Vim window will be
adjusted to that size, if possible. adjusted to that size, if possible.
@ -7925,7 +8034,7 @@ A jump table for the options with a short description can be found at |Q_op|.
non-keyword characters (white space is preferred). Maximum line non-keyword characters (white space is preferred). Maximum line
length is 510 bytes. length is 510 bytes.
To obtain a file to be used here, check out this ftp site: To obtain a file to be used here, check out this ftp site:
[Sorry this link doesn't work anymore, do you know the right one?] [Sorry this link doesn't work anymore, do you know the right one?]
ftp://ftp.ox.ac.uk/pub/wordlists/ First get the README file. ftp://ftp.ox.ac.uk/pub/wordlists/ First get the README file.
To include a comma in a file name precede it with a backslash. Spaces To include a comma in a file name precede it with a backslash. Spaces
after a comma are ignored, otherwise spaces are included in the file after a comma are ignored, otherwise spaces are included in the file
@ -8232,7 +8341,7 @@ A jump table for the options with a short description can be found at |Q_op|.
number, more intelligent detection process runs. number, more intelligent detection process runs.
The "xterm2" value will be set if the xterm version is reported to be The "xterm2" value will be set if the xterm version is reported to be
from 95 to 276. The "sgr" value will be set if the xterm version is from 95 to 276. The "sgr" value will be set if the xterm version is
277 or highter and when Vim detects Mac Terminal.app or Iterm2. 277 or higher and when Vim detects Mac Terminal.app or iTerm2.
If you do not want 'ttymouse' to be set to "xterm2" or "sgr" If you do not want 'ttymouse' to be set to "xterm2" or "sgr"
automatically, set t_RV to an empty string: > automatically, set t_RV to an empty string: >
:set t_RV= :set t_RV=

View File

@ -1,4 +1,4 @@
*os_mac.txt* For Vim version 8.0. Last change: 2017 Apr 28 *os_mac.txt* For Vim version 8.0. Last change: 2018 Jan 21
VIM REFERENCE MANUAL by Bram Moolenaar et al. VIM REFERENCE MANUAL by Bram Moolenaar et al.
@ -165,7 +165,7 @@ and then run `make` to build Vim. The order of the options doesn't matter.
To make sure at runtime whether or not the darwin feature is compiled in, you To make sure at runtime whether or not the darwin feature is compiled in, you
can use `has('osxdarwin')` which returns 1 if the feature is compiled in; 0 can use `has('osxdarwin')` which returns 1 if the feature is compiled in; 0
otherwise. For backwards comptibility, you can still use `macunix` instead of otherwise. For backward compatibility, you can still use `macunix` instead of
`osxdarwin`. `osxdarwin`.
Notable use cases where `--disable-darwin` is turned out to be useful are: Notable use cases where `--disable-darwin` is turned out to be useful are:

View File

@ -1,4 +1,4 @@
*pattern.txt* For Vim version 8.0. Last change: 2017 Jun 05 *pattern.txt* For Vim version 8.0. Last change: 2018 Mar 13
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -905,7 +905,7 @@ $ At end of pattern or in front of "\|", "\)" or "\n" ('magic' on):
becomes invalid. Vim doesn't automatically update the matches. becomes invalid. Vim doesn't automatically update the matches.
Similar to moving the cursor for "\%#" |/\%#|. Similar to moving the cursor for "\%#" |/\%#|.
*/\%l* */\%>l* */\%<l* */\%l* */\%>l* */\%<l* *E951*
\%23l Matches in a specific line. \%23l Matches in a specific line.
\%<23l Matches above a specific line (lower line number). \%<23l Matches above a specific line (lower line number).
\%>23l Matches below a specific line (higher line number). \%>23l Matches below a specific line (higher line number).
@ -1166,7 +1166,8 @@ x A single character, with no special meaning, matches itself
- Matching with a collection can be slow, because each character in - Matching with a collection can be slow, because each character in
the text has to be compared with each character in the collection. the text has to be compared with each character in the collection.
Use one of the other atoms above when possible. Example: "\d" is Use one of the other atoms above when possible. Example: "\d" is
much faster than "[0-9]" and matches the same characters. much faster than "[0-9]" and matches the same characters. However,
the new |NFA| regexp engine deals with this better than the old one.
*/\%[]* *E69* *E70* *E369* */\%[]* *E69* *E70* *E369*
\%[] A sequence of optionally matched atoms. This always matches. \%[] A sequence of optionally matched atoms. This always matches.

View File

@ -1,4 +1,4 @@
*quickfix.txt* For Vim version 8.0. Last change: 2017 Sep 13 *quickfix.txt* For Vim version 8.0. Last change: 2018 Mar 29
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -64,6 +64,14 @@ When a window with a location list is split, the new window gets a copy of the
location list. When there are no longer any references to a location list, location list. When there are no longer any references to a location list,
the location list is destroyed. the location list is destroyed.
*quickfix-changedtick*
Every quickfix and location list has a read-only changedtick variable that
tracks the total number of changes made to the list. Every time the quickfix
list is modified, this count is incremented. This can be used to perform an
action only when the list has changed. The getqflist() and getloclist()
functions can be used to query the current value of changedtick. You cannot
change the changedtick variable.
The following quickfix commands can be used. The location list commands are The following quickfix commands can be used. The location list commands are
similar to the quickfix commands, replacing the 'c' prefix in the quickfix similar to the quickfix commands, replacing the 'c' prefix in the quickfix
command with 'l'. command with 'l'.
@ -322,9 +330,9 @@ deleted for some reason, the message "line changed" is shown to warn you that
the error location may not be correct. If you quit Vim and start again the the error location may not be correct. If you quit Vim and start again the
marks are lost and the error locations may not be correct anymore. marks are lost and the error locations may not be correct anymore.
If vim is built with |+autocmd| support, two autocommands are available for Two autocommands are available for running commands before and after a
running commands before and after a quickfix command (':make', ':grep' and so quickfix command (':make', ':grep' and so on) is executed. See
on) is executed. See |QuickFixCmdPre| and |QuickFixCmdPost| for details. |QuickFixCmdPre| and |QuickFixCmdPost| for details.
*QuickFixCmdPost-example* *QuickFixCmdPost-example*
When 'encoding' differs from the locale, the error messages may have a When 'encoding' differs from the locale, the error messages may have a
@ -341,6 +349,50 @@ use this code: >
au QuickfixCmdPost make call QfMakeConv() au QuickfixCmdPost make call QfMakeConv()
Another option is using 'makeencoding'. Another option is using 'makeencoding'.
*quickfix-title*
Every quickfix and location list has a title. By default the title is set to
the command that created the list. The |getqflist()| and |getloclist()|
functions can be used to get the title of a quickfix and a location list
respectively. The |setqflist()| and |setloclist()| functions can be used to
modify the title of a quickfix and location list respectively. Examples: >
call setqflist([], 'a', {'title' : 'Cmd output'})
echo getqflist({'title' : 1})
call setloclist(3, [], 'a', {'title' : 'Cmd output'})
echo getloclist(3, {'title' : 1})
<
*quickfix-size*
You can get the number of entries (size) in a quickfix and a location list
using the |getqflist()| and |getloclist()| functions respectively. Examples: >
echo getqflist({'size' : 1})
echo getloclist(5, {'size' : 1})
<
*quickfix-context*
Any Vim type can be associated as a context with a quickfix or location list.
The |setqflist()| and the |setloclist()| functions can be used to associate a
context with a quickfix and a location list respectively. The |getqflist()|
and the |getloclist()| functions can be used to retrieve the context of a
quickfix and a location list respectively. This is useful for a Vim plugin
dealing with multiple quickfix/location lists.
Examples: >
let somectx = {'name' : 'Vim', 'type' : 'Editor'}
call setqflist([], 'a', {'context' : somectx})
echo getqflist({'context' : 1})
let newctx = ['red', 'green', 'blue']
call setloclist(2, [], 'a', {'id' : qfid, 'context' : newctx})
echo getloclist(2, {'id' : qfid, 'context' : 1})
<
*quickfix-parse*
You can parse a list of lines using 'errorformat' without creating or
modifying a quickfix list using the |getqflist()| function. Examples: >
echo getqflist({'lines' : ["F1:10:Line10", "F2:20:Line20"]})
echo getqflist({'lines' : systemlist('grep -Hn quickfix *')})
This returns a dictionary where the 'items' key contains the list of quickfix
entries parsed from lines. The following shows how to use a custom
'errorformat' to parse the lines without modifying the 'errorformat' option: >
echo getqflist({'efm' : '%f#%l#%m', 'lines' : ['F1#10#Line']})
<
EXECUTE A COMMAND IN ALL THE BUFFERS IN QUICKFIX OR LOCATION LIST: EXECUTE A COMMAND IN ALL THE BUFFERS IN QUICKFIX OR LOCATION LIST:
*:cdo* *:cdo*
@ -367,8 +419,7 @@ EXECUTE A COMMAND IN ALL THE BUFFERS IN QUICKFIX OR LOCATION LIST:
autocommand event is disabled by adding it to autocommand event is disabled by adding it to
'eventignore'. This considerably speeds up editing 'eventignore'. This considerably speeds up editing
each buffer. each buffer.
{not in Vi} {not available when compiled without the {not in Vi}
|+listcmds| feature}
Also see |:bufdo|, |:tabdo|, |:argdo|, |:windo|, Also see |:bufdo|, |:tabdo|, |:argdo|, |:windo|,
|:ldo|, |:cfdo| and |:lfdo|. |:ldo|, |:cfdo| and |:lfdo|.
@ -381,8 +432,7 @@ EXECUTE A COMMAND IN ALL THE BUFFERS IN QUICKFIX OR LOCATION LIST:
:{cmd} :{cmd}
etc. etc.
< Otherwise it works the same as `:cdo`. < Otherwise it works the same as `:cdo`.
{not in Vi} {not available when compiled without the {not in Vi}
|+listcmds| feature}
*:ldo* *:ldo*
:ld[o][!] {cmd} Execute {cmd} in each valid entry in the location list :ld[o][!] {cmd} Execute {cmd} in each valid entry in the location list
@ -395,8 +445,7 @@ EXECUTE A COMMAND IN ALL THE BUFFERS IN QUICKFIX OR LOCATION LIST:
etc. etc.
< Only valid entries in the location list are used. < Only valid entries in the location list are used.
Otherwise it works the same as `:cdo`. Otherwise it works the same as `:cdo`.
{not in Vi} {not available when compiled without the {not in Vi}
|+listcmds| feature}
*:lfdo* *:lfdo*
:lfdo[!] {cmd} Execute {cmd} in each file in the location list for :lfdo[!] {cmd} Execute {cmd} in each file in the location list for
@ -408,8 +457,7 @@ EXECUTE A COMMAND IN ALL THE BUFFERS IN QUICKFIX OR LOCATION LIST:
:{cmd} :{cmd}
etc. etc.
< Otherwise it works the same as `:ldo`. < Otherwise it works the same as `:ldo`.
{not in Vi} {not available when compiled without the {not in Vi}
|+listcmds| feature}
============================================================================= =============================================================================
2. The error window *quickfix-window* 2. The error window *quickfix-window*
@ -542,6 +590,13 @@ In all of the above cases, if the location list for the selected window is not
yet set, then it is set to the location list displayed in the location list yet set, then it is set to the location list displayed in the location list
window. window.
*quickfix-window-ID*
You can use the |getqflist()| and |getloclist()| functions to obtain the
window ID of the quickfix window and location list window respectively (if
present). Examples: >
echo getqflist({'winid' : 1}).winid
echo getloclist(2, {'winid' : 1}).winid
<
============================================================================= =============================================================================
3. Using more than one list of errors *quickfix-error-lists* 3. Using more than one list of errors *quickfix-error-lists*
@ -586,12 +641,20 @@ list, one newer list is overwritten. This is especially useful if you are
browsing with ":grep" |grep|. If you want to keep the more recent error browsing with ":grep" |grep|. If you want to keep the more recent error
lists, use ":cnewer 99" first. lists, use ":cnewer 99" first.
To get the number of lists in the quickfix and location list stack, you can
use the |getqflist()| and |getloclist()| functions respectively with the list
number set to the special value '$'. Examples: >
echo getqflist({'nr' : '$'}).nr
echo getloclist(3, {'nr' : '$'}).nr
To get the number of the current list in the stack: >
echo getqflist({'nr' : 0}).nr
<
============================================================================= =============================================================================
4. Using :make *:make_makeprg* 4. Using :make *:make_makeprg*
*:mak* *:make* *:mak* *:make*
:mak[e][!] [arguments] 1. If vim was built with |+autocmd|, all relevant :mak[e][!] [arguments] 1. All relevant |QuickFixCmdPre| autocommands are
|QuickFixCmdPre| autocommands are executed. executed.
2. If the 'autowrite' option is on, write any changed 2. If the 'autowrite' option is on, write any changed
buffers buffers
3. An errorfile name is made from 'makeef'. If 3. An errorfile name is made from 'makeef'. If
@ -603,9 +666,8 @@ lists, use ":cnewer 99" first.
errorfile (for Unix it is also echoed on the errorfile (for Unix it is also echoed on the
screen). screen).
5. The errorfile is read using 'errorformat'. 5. The errorfile is read using 'errorformat'.
6. If vim was built with |+autocmd|, all relevant 6. All relevant |QuickFixCmdPost| autocommands are
|QuickFixCmdPost| autocommands are executed. executed. See example below.
See example below.
7. If [!] is not given the first error is jumped to. 7. If [!] is not given the first error is jumped to.
8. The errorfile is deleted. 8. The errorfile is deleted.
9. You can now move through the errors with commands 9. You can now move through the errors with commands

View File

@ -1,4 +1,4 @@
*quickref.txt* For Vim version 8.0. Last change: 2017 Oct 19 *quickref.txt* For Vim version 8.0. Last change: 2018 Feb 11
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -618,7 +618,8 @@ Short explanation of each option: *option-list*
'backupext' 'bex' extension used for the backup file 'backupext' 'bex' extension used for the backup file
'backupskip' 'bsk' no backup for files that match these patterns 'backupskip' 'bsk' no backup for files that match these patterns
'balloondelay' 'bdlay' delay in mS before a balloon may pop up 'balloondelay' 'bdlay' delay in mS before a balloon may pop up
'ballooneval' 'beval' switch on balloon evaluation 'ballooneval' 'beval' switch on balloon evaluation in the GUI
'balloonevalterm' 'bevalterm' switch on balloon evaluation in the terminal
'balloonexpr' 'bexpr' expression to show in balloon 'balloonexpr' 'bexpr' expression to show in balloon
'belloff' 'bo' do not ring the bell for these reasons 'belloff' 'bo' do not ring the bell for these reasons
'binary' 'bin' read/write/edit file in binary mode 'binary' 'bin' read/write/edit file in binary mode
@ -837,8 +838,11 @@ Short explanation of each option: *option-list*
'printoptions' 'popt' controls the format of :hardcopy output 'printoptions' 'popt' controls the format of :hardcopy output
'prompt' 'prompt' enable prompt in Ex mode 'prompt' 'prompt' enable prompt in Ex mode
'pumheight' 'ph' maximum height of the popup menu 'pumheight' 'ph' maximum height of the popup menu
'pumwidth' 'pw' minimum width of the popup menu
'pythondll' name of the Python 2 dynamic library 'pythondll' name of the Python 2 dynamic library
'pythonhome' name of the Python 2 home directory
'pythonthreedll' name of the Python 3 dynamic library 'pythonthreedll' name of the Python 3 dynamic library
'pythonthreehome' name of the Python 3 home directory
'pyxversion' 'pyx' Python version used for pyx* commands 'pyxversion' 'pyx' Python version used for pyx* commands
'quoteescape' 'qe' escape characters used in a string 'quoteescape' 'qe' escape characters used in a string
'readonly' 'ro' disallow writing the buffer 'readonly' 'ro' disallow writing the buffer

View File

@ -1,4 +1,4 @@
*quotes.txt* For Vim version 8.0. Last change: 2010 Nov 03 *quotes.txt* For Vim version 8.0. Last change: 2018 Mar 29
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -18,7 +18,7 @@ Coming with a very GUI mindset from Windows, I always thought of people using
Vi as some kind of outer space alien in human clothes. Once I tried I really Vi as some kind of outer space alien in human clothes. Once I tried I really
got addicted by its power and now I found myself typing Vim keypresses in the got addicted by its power and now I found myself typing Vim keypresses in the
oddest places! That's why I would like to see Vim embedded in every oddest places! That's why I would like to see Vim embedded in every
application which deals with text editing. (Jos<EFBFBD> Fonseca) application which deals with text editing. (José Fonseca)
I was a 12-year emacs user who switched to Vim about a year ago after finally I was a 12-year emacs user who switched to Vim about a year ago after finally
giving up on the multiple incompatible versions, flaky contributed packages, giving up on the multiple incompatible versions, flaky contributed packages,

View File

@ -1,4 +1,4 @@
*remote.txt* For Vim version 8.0. Last change: 2017 Aug 01 *remote.txt* For Vim version 8.0. Last change: 2017 Nov 12
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -181,7 +181,8 @@ name on the 'VimRegistry' property on the root window.
A non GUI Vim with access to the X11 display (|xterm-clipboard| enabled), can A non GUI Vim with access to the X11 display (|xterm-clipboard| enabled), can
also act as a command server if a server name is explicitly given with the also act as a command server if a server name is explicitly given with the
--servername argument. --servername argument, or when Vim was build with the |+autoservername|
feature.
An empty --servername argument will cause the command server to be disabled. An empty --servername argument will cause the command server to be disabled.

View File

@ -1,4 +1,4 @@
*repeat.txt* For Vim version 8.0. Last change: 2017 Jun 10 *repeat.txt* For Vim version 8.0. Last change: 2018 Mar 04
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -242,6 +242,10 @@ For writing a Vim script, see chapter 41 of the user manual |usr_41.txt|.
If the directory pack/*/opt/{name}/after exists it is If the directory pack/*/opt/{name}/after exists it is
added at the end of 'runtimepath'. added at the end of 'runtimepath'.
If loading packages from "pack/*/start" was skipped,
then this directory is searched first:
pack/*/start/{name} ~
Note that {name} is the directory name, not the name Note that {name} is the directory name, not the name
of the .vim file. All the files matching the pattern of the .vim file. All the files matching the pattern
pack/*/opt/{name}/plugin/**/*.vim ~ pack/*/opt/{name}/plugin/**/*.vim ~
@ -261,6 +265,7 @@ For writing a Vim script, see chapter 41 of the user manual |usr_41.txt|.
loaded during initialization, see |load-plugins|. loaded during initialization, see |load-plugins|.
Also see |pack-add|. Also see |pack-add|.
{only available when compiled with +eval}
*:packl* *:packloadall* *:packl* *:packloadall*
:packl[oadall][!] Load all packages in the "start" directory under each :packl[oadall][!] Load all packages in the "start" directory under each
@ -284,6 +289,7 @@ For writing a Vim script, see chapter 41 of the user manual |usr_41.txt|.
An error only causes sourcing the script where it An error only causes sourcing the script where it
happens to be aborted, further plugins will be loaded. happens to be aborted, further plugins will be loaded.
See |packages|. See |packages|.
{only available when compiled with +eval}
:scripte[ncoding] [encoding] *:scripte* *:scriptencoding* *E167* :scripte[ncoding] [encoding] *:scripte* *:scriptencoding* *E167*
Specify the character encoding used in the script. Specify the character encoding used in the script.
@ -802,6 +808,19 @@ DEFINING BREAKPOINTS
< Note that this only works for commands that are executed when < Note that this only works for commands that are executed when
sourcing the file, not for a function defined in that file. sourcing the file, not for a function defined in that file.
:breaka[dd] expr {expression}
Sets a breakpoint, that will break whenever the {expression}
evaluates to a different value. Example: >
:breakadd expr g:lnum
< Will break, whenever the global variable lnum changes.
Note if you watch a |script-variable| this will break
when switching scripts, since the script variable is only
valid in the script where it has been defined and if that
script is called from several other scripts, this will stop
whenever that particular variable will become visible or
unaccessible again.
The [lnum] is the line number of the breakpoint. Vim will stop at or after The [lnum] is the line number of the breakpoint. Vim will stop at or after
this line. When omitted line 1 is used. this line. When omitted line 1 is used.

View File

@ -1,4 +1,4 @@
*spell.txt* For Vim version 8.0. Last change: 2017 Oct 26 *spell.txt* For Vim version 8.0. Last change: 2018 Mar 29
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -907,9 +907,9 @@ when using "cp1250" on Unix.
*spell-LOW* *spell-UPP* *spell-LOW* *spell-UPP*
Three lines in the affix file are needed. Simplistic example: Three lines in the affix file are needed. Simplistic example:
FOL <EFBFBD><EFBFBD><EFBFBD> ~ FOL áëñ ~
LOW <EFBFBD><EFBFBD><EFBFBD> ~ LOW áëñ ~
UPP <EFBFBD><EFBFBD><EFBFBD> ~ UPP ÁËÑ ~
All three lines must have exactly the same number of characters. All three lines must have exactly the same number of characters.
@ -924,9 +924,9 @@ The "UPP" line specifies the characters with upper-case. That is, a character
is upper-case where it's different from the character at the same position in is upper-case where it's different from the character at the same position in
"FOL". "FOL".
An exception is made for the German sharp s <EFBFBD>. The upper-case version is An exception is made for the German sharp s ß. The upper-case version is
"SS". In the FOL/LOW/UPP lines it should be included, so that it's recognized "SS". In the FOL/LOW/UPP lines it should be included, so that it's recognized
as a word character, but use the <EFBFBD> character in all three. as a word character, but use the ß character in all three.
ASCII characters should be omitted, Vim always handles these in the same way. ASCII characters should be omitted, Vim always handles these in the same way.
When the encoding is UTF-8 no word characters need to be specified. When the encoding is UTF-8 no word characters need to be specified.
@ -1397,7 +1397,7 @@ suggestions would spend most time trying all kind of weird compound words.
*spell-SYLLABLE* *spell-SYLLABLE*
The SYLLABLE item defines characters or character sequences that are used to The SYLLABLE item defines characters or character sequences that are used to
count the number of syllables in a word. Example: count the number of syllables in a word. Example:
SYLLABLE a<EFBFBD>e<EFBFBD>i<EFBFBD>o<EFBFBD><EFBFBD><EFBFBD>u<EFBFBD><EFBFBD><EFBFBD>y/aa/au/ea/ee/ei/ie/oa/oe/oo/ou/uu/ui ~ SYLLABLE aáeéiíoóöõuúüûy/aa/au/ea/ee/ei/ie/oa/oe/oo/ou/uu/ui ~
Before the first slash is the set of characters that are counted for one Before the first slash is the set of characters that are counted for one
syllable, also when repeated and mixed, until the next character that is not syllable, also when repeated and mixed, until the next character that is not
@ -1478,8 +1478,8 @@ alike. This is mostly used for a letter with different accents. This is used
to prefer suggestions with these letters substituted. Example: to prefer suggestions with these letters substituted. Example:
MAP 2 ~ MAP 2 ~
MAP e<EFBFBD><EFBFBD><EFBFBD><EFBFBD> ~ MAP eéëêè ~
MAP u<EFBFBD><EFBFBD><EFBFBD><EFBFBD> ~ MAP uüùúû ~
The first line specifies the number of MAP lines following. Vim ignores the The first line specifies the number of MAP lines following. Vim ignores the
number, but the line must be there. number, but the line must be there.

View File

@ -1,4 +1,4 @@
*starting.txt* For Vim version 8.0. Last change: 2017 Nov 11 *starting.txt* For Vim version 8.0. Last change: 2018 Mar 14
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -58,9 +58,9 @@ filename One or more file names. The first one will be the current
that is read from stdin. The commands that would normally be that is read from stdin. The commands that would normally be
read from stdin will now be read from stderr. Example: > read from stdin will now be read from stderr. Example: >
find . -name "*.c" -print | vim - find . -name "*.c" -print | vim -
< The buffer will be marked modified, because it contains text < The buffer will not be marked as modified, so that it's easy
that needs to be saved. Except when in readonly mode, then to exit. Be careful to mark it as modified if you don't want
the buffer is not marked modified. Example: > to accidentally lose it. Example: >
ls | view - ls | view -
< <
Starting in Ex mode: > Starting in Ex mode: >
@ -421,7 +421,9 @@ a slash. Thus "-R" means recovery and "-/R" readonly.
*--not-a-term* *--not-a-term*
--not-a-term Tells Vim that the user knows that the input and/or output is --not-a-term Tells Vim that the user knows that the input and/or output is
not connected to a terminal. This will avoid the warning and not connected to a terminal. This will avoid the warning and
the two second delay that would happen. {not in Vi} the two second delay that would happen.
Also avoids the "Reading from stdin..." message.
{not in Vi}
*--ttyfail* *--ttyfail*
--ttyfail When the stdin or stdout is not a terminal (tty) then exit --ttyfail When the stdin or stdout is not a terminal (tty) then exit
@ -508,12 +510,14 @@ a slash. Thus "-R" means recovery and "-/R" readonly.
{not in Vi} {not in Vi}
*--clean* *--clean*
--clean Equal to "-u DEFAULTS -i NONE": --clean Equal to "-u DEFAULTS -U NONE -i NONE":
- initializations from files and environment variables is - initializations from files and environment variables is
skipped skipped
- the |defaults.vim| script is loaded, which implies - the |defaults.vim| script is loaded, which implies
'nocompatible': use Vim defaults 'nocompatible': use Vim defaults
- no |gvimrc| script is loaded
- no viminfo file is read or written - no viminfo file is read or written
- the home directory is excluded from 'runtimepath'
*-x* *-x*
-x Use encryption to read/write files. Will prompt for a key, -x Use encryption to read/write files. Will prompt for a key,
which is then stored in the 'key' option. All writes will which is then stored in the 'key' option. All writes will
@ -1008,14 +1012,13 @@ Vi compatible default value ~
When Vim starts, the 'compatible' option is on. This will be used when Vim When Vim starts, the 'compatible' option is on. This will be used when Vim
starts its initializations. But as soon as: starts its initializations. But as soon as:
- a user vimrc file is found, or - a user vimrc file is found, or
- a vimrc file in the current directory, or - a vimrc file in the current directory is found, or
- the "VIMINIT" environment variable is set, or - the "VIMINIT" environment variable is set, or
- the "-N" command line argument is given, or - the "-N" command line argument is given, or
- the "--clean" command line argument is given, or - the "--clean" command line argument is given, or
even when no vimrc file exists.
- the |defaults.vim| script is loaded, or - the |defaults.vim| script is loaded, or
- gvimrc file was found, - a gvimrc file was found,
then it will be set to 'nocompatible'. then the option will be set to 'nocompatible'.
Note that this does NOT happen when a system-wide vimrc file was found. Note that this does NOT happen when a system-wide vimrc file was found.
@ -1041,7 +1044,7 @@ giving the mapping.
Defaults without a .vimrc file ~ Defaults without a .vimrc file ~
*defaults.vim* *defaults.vim*
If Vim is started normally and no user vimrc file is found, the If Vim is started normally and no user vimrc file is found, the
$VIMRUTIME/defaults.vim script is loaded. This will set 'compatible' off, $VIMRUNTIME/defaults.vim script is loaded. This will set 'compatible' off,
switch on syntax highlighting and a few more things. See the script for switch on syntax highlighting and a few more things. See the script for
details. NOTE: this is done since Vim 8.0, not in Vim 7.4. (it was added in details. NOTE: this is done since Vim 8.0, not in Vim 7.4. (it was added in
patch 7.4.2111 to be exact). patch 7.4.2111 to be exact).

View File

@ -1,4 +1,4 @@
*syntax.txt* For Vim version 8.0. Last change: 2017 Sep 30 *syntax.txt* For Vim version 8.0. Last change: 2018 Jan 31
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -2779,13 +2779,10 @@ Ruby syntax will perform spellchecking of strings if you define
SCHEME *scheme.vim* *ft-scheme-syntax* SCHEME *scheme.vim* *ft-scheme-syntax*
By default only R5RS keywords are highlighted and properly indented. By default only R7RS keywords are highlighted and properly indented.
MzScheme-specific stuff will be used if b:is_mzscheme or g:is_mzscheme scheme.vim also supports extensions of the CHICKEN Scheme->C compiler.
variables are defined. Define b:is_chicken or g:is_chicken, if you need them.
Also scheme.vim supports keywords of the Chicken Scheme->C compiler. Define
b:is_chicken or g:is_chicken, if you need them.
SDL *sdl.vim* *ft-sdl-syntax* SDL *sdl.vim* *ft-sdl-syntax*
@ -5025,12 +5022,19 @@ StatusLine status line of current window
StatusLineNC status lines of not-current windows StatusLineNC status lines of not-current windows
Note: if this is equal to "StatusLine" Vim will use "^^^" in Note: if this is equal to "StatusLine" Vim will use "^^^" in
the status line of the current window. the status line of the current window.
*hl-StatusLineTerm*
StatusLineTerm status line of current window, if it is a |terminal| window.
*hl-StatusLineTermNC*
StatusLineTermNC status lines of not-current windows that is a |terminal|
window.
*hl-TabLine* *hl-TabLine*
TabLine tab pages line, not active tab page label TabLine tab pages line, not active tab page label
*hl-TabLineFill* *hl-TabLineFill*
TabLineFill tab pages line, where there are no labels TabLineFill tab pages line, where there are no labels
*hl-TabLineSel* *hl-TabLineSel*
TabLineSel tab pages line, active tab page label TabLineSel tab pages line, active tab page label
*hl-Terminal*
Terminal |terminal| window (see |terminal-size-color|)
*hl-Title* *hl-Title*
Title titles for output from ":set all", ":autocmd" etc. Title titles for output from ":set all", ":autocmd" etc.
*hl-Visual* *hl-Visual*

View File

@ -1,4 +1,4 @@
*tabpage.txt* For Vim version 8.0. Last change: 2016 Oct 20 *tabpage.txt* For Vim version 8.0. Last change: 2018 Mar 29
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -286,8 +286,7 @@ LOOPING OVER TAB PAGES:
current tab page. current tab page.
{cmd} can contain '|' to concatenate several commands. {cmd} can contain '|' to concatenate several commands.
{cmd} must not open or close tab pages or reorder them. {cmd} must not open or close tab pages or reorder them.
{not in Vi} {not available when compiled without the {not in Vi}
|+listcmds| feature}
Also see |:windo|, |:argdo|, |:bufdo|, |:cdo|, |:ldo|, |:cfdo| Also see |:windo|, |:argdo|, |:bufdo|, |:cdo|, |:ldo|, |:cfdo|
and |:lfdo| and |:lfdo|

View File

@ -74,12 +74,14 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
'backupskip' options.txt /*'backupskip'* 'backupskip' options.txt /*'backupskip'*
'balloondelay' options.txt /*'balloondelay'* 'balloondelay' options.txt /*'balloondelay'*
'ballooneval' options.txt /*'ballooneval'* 'ballooneval' options.txt /*'ballooneval'*
'balloonevalterm' options.txt /*'balloonevalterm'*
'balloonexpr' options.txt /*'balloonexpr'* 'balloonexpr' options.txt /*'balloonexpr'*
'bdir' options.txt /*'bdir'* 'bdir' options.txt /*'bdir'*
'bdlay' options.txt /*'bdlay'* 'bdlay' options.txt /*'bdlay'*
'beautify' vi_diff.txt /*'beautify'* 'beautify' vi_diff.txt /*'beautify'*
'belloff' options.txt /*'belloff'* 'belloff' options.txt /*'belloff'*
'beval' options.txt /*'beval'* 'beval' options.txt /*'beval'*
'bevalterm' options.txt /*'bevalterm'*
'bex' options.txt /*'bex'* 'bex' options.txt /*'bex'*
'bexpr' options.txt /*'bexpr'* 'bexpr' options.txt /*'bexpr'*
'bf' vi_diff.txt /*'bf'* 'bf' vi_diff.txt /*'bf'*
@ -292,6 +294,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
'gfw' options.txt /*'gfw'* 'gfw' options.txt /*'gfw'*
'ghr' options.txt /*'ghr'* 'ghr' options.txt /*'ghr'*
'go' options.txt /*'go'* 'go' options.txt /*'go'*
'go-!' options.txt /*'go-!'*
'go-A' options.txt /*'go-A'* 'go-A' options.txt /*'go-A'*
'go-F' options.txt /*'go-F'* 'go-F' options.txt /*'go-F'*
'go-L' options.txt /*'go-L'* 'go-L' options.txt /*'go-L'*
@ -505,7 +508,9 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
'noawa' options.txt /*'noawa'* 'noawa' options.txt /*'noawa'*
'nobackup' options.txt /*'nobackup'* 'nobackup' options.txt /*'nobackup'*
'noballooneval' options.txt /*'noballooneval'* 'noballooneval' options.txt /*'noballooneval'*
'noballoonevalterm' options.txt /*'noballoonevalterm'*
'nobeval' options.txt /*'nobeval'* 'nobeval' options.txt /*'nobeval'*
'nobevalterm' options.txt /*'nobevalterm'*
'nobin' options.txt /*'nobin'* 'nobin' options.txt /*'nobin'*
'nobinary' options.txt /*'nobinary'* 'nobinary' options.txt /*'nobinary'*
'nobiosk' options.txt /*'nobiosk'* 'nobiosk' options.txt /*'nobiosk'*
@ -778,10 +783,14 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
'prompt' options.txt /*'prompt'* 'prompt' options.txt /*'prompt'*
'pt' options.txt /*'pt'* 'pt' options.txt /*'pt'*
'pumheight' options.txt /*'pumheight'* 'pumheight' options.txt /*'pumheight'*
'pumwidth' options.txt /*'pumwidth'*
'pvh' options.txt /*'pvh'* 'pvh' options.txt /*'pvh'*
'pvw' options.txt /*'pvw'* 'pvw' options.txt /*'pvw'*
'pw' options.txt /*'pw'*
'pythondll' options.txt /*'pythondll'* 'pythondll' options.txt /*'pythondll'*
'pythonhome' options.txt /*'pythonhome'*
'pythonthreedll' options.txt /*'pythonthreedll'* 'pythonthreedll' options.txt /*'pythonthreedll'*
'pythonthreehome' options.txt /*'pythonthreehome'*
'pyx' options.txt /*'pyx'* 'pyx' options.txt /*'pyx'*
'pyxversion' options.txt /*'pyxversion'* 'pyxversion' options.txt /*'pyxversion'*
'qe' options.txt /*'qe'* 'qe' options.txt /*'qe'*
@ -1223,7 +1232,9 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
+acl various.txt /*+acl* +acl various.txt /*+acl*
+arabic various.txt /*+arabic* +arabic various.txt /*+arabic*
+autocmd various.txt /*+autocmd* +autocmd various.txt /*+autocmd*
+autoservername various.txt /*+autoservername*
+balloon_eval various.txt /*+balloon_eval* +balloon_eval various.txt /*+balloon_eval*
+balloon_eval_term various.txt /*+balloon_eval_term*
+browse various.txt /*+browse* +browse various.txt /*+browse*
+builtin_terms various.txt /*+builtin_terms* +builtin_terms various.txt /*+builtin_terms*
+byte_offset various.txt /*+byte_offset* +byte_offset various.txt /*+byte_offset*
@ -1347,6 +1358,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
+visual various.txt /*+visual* +visual various.txt /*+visual*
+visualextra various.txt /*+visualextra* +visualextra various.txt /*+visualextra*
+vreplace various.txt /*+vreplace* +vreplace various.txt /*+vreplace*
+vtp various.txt /*+vtp*
+wildignore various.txt /*+wildignore* +wildignore various.txt /*+wildignore*
+wildmenu various.txt /*+wildmenu* +wildmenu various.txt /*+wildmenu*
+windows various.txt /*+windows* +windows various.txt /*+windows*
@ -3658,6 +3670,7 @@ Cmd-event autocmd.txt /*Cmd-event*
CmdUndefined autocmd.txt /*CmdUndefined* CmdUndefined autocmd.txt /*CmdUndefined*
Cmdline cmdline.txt /*Cmdline* Cmdline cmdline.txt /*Cmdline*
Cmdline-mode cmdline.txt /*Cmdline-mode* Cmdline-mode cmdline.txt /*Cmdline-mode*
CmdlineChanged autocmd.txt /*CmdlineChanged*
CmdlineEnter autocmd.txt /*CmdlineEnter* CmdlineEnter autocmd.txt /*CmdlineEnter*
CmdlineLeave autocmd.txt /*CmdlineLeave* CmdlineLeave autocmd.txt /*CmdlineLeave*
CmdwinEnter autocmd.txt /*CmdwinEnter* CmdwinEnter autocmd.txt /*CmdwinEnter*
@ -3682,6 +3695,7 @@ Dictionaries eval.txt /*Dictionaries*
Dictionary eval.txt /*Dictionary* Dictionary eval.txt /*Dictionary*
Dictionary-function eval.txt /*Dictionary-function* Dictionary-function eval.txt /*Dictionary-function*
Digraphs digraph.txt /*Digraphs* Digraphs digraph.txt /*Digraphs*
DirChanged autocmd.txt /*DirChanged*
E motion.txt /*E* E motion.txt /*E*
E10 message.txt /*E10* E10 message.txt /*E10*
E100 diff.txt /*E100* E100 diff.txt /*E100*
@ -4569,7 +4583,13 @@ E945 pattern.txt /*E945*
E946 terminal.txt /*E946* E946 terminal.txt /*E946*
E947 terminal.txt /*E947* E947 terminal.txt /*E947*
E948 terminal.txt /*E948* E948 terminal.txt /*E948*
E949 editing.txt /*E949*
E95 message.txt /*E95* E95 message.txt /*E95*
E950 message.txt /*E950*
E951 pattern.txt /*E951*
E952 autocmd.txt /*E952*
E953 eval.txt /*E953*
E954 options.txt /*E954*
E96 diff.txt /*E96* E96 diff.txt /*E96*
E97 diff.txt /*E97* E97 diff.txt /*E97*
E98 diff.txt /*E98* E98 diff.txt /*E98*
@ -4581,6 +4601,7 @@ EncodingChanged autocmd.txt /*EncodingChanged*
Eterm syntax.txt /*Eterm* Eterm syntax.txt /*Eterm*
Ex intro.txt /*Ex* Ex intro.txt /*Ex*
Ex-mode intro.txt /*Ex-mode* Ex-mode intro.txt /*Ex-mode*
ExitPre autocmd.txt /*ExitPre*
Exuberant_ctags tagsrch.txt /*Exuberant_ctags* Exuberant_ctags tagsrch.txt /*Exuberant_ctags*
F motion.txt /*F* F motion.txt /*F*
FALSE eval.txt /*FALSE* FALSE eval.txt /*FALSE*
@ -4811,8 +4832,11 @@ Tcl if_tcl.txt /*Tcl*
TermChanged autocmd.txt /*TermChanged* TermChanged autocmd.txt /*TermChanged*
TermResponse autocmd.txt /*TermResponse* TermResponse autocmd.txt /*TermResponse*
Terminal-mode terminal.txt /*Terminal-mode* Terminal-mode terminal.txt /*Terminal-mode*
TerminalOpen autocmd.txt /*TerminalOpen*
TextChanged autocmd.txt /*TextChanged* TextChanged autocmd.txt /*TextChanged*
TextChangedI autocmd.txt /*TextChangedI* TextChangedI autocmd.txt /*TextChangedI*
TextChangedP autocmd.txt /*TextChangedP*
TextYankPost autocmd.txt /*TextYankPost*
Transact-SQL ft_sql.txt /*Transact-SQL* Transact-SQL ft_sql.txt /*Transact-SQL*
U undo.txt /*U* U undo.txt /*U*
UTF-8 mbyte.txt /*UTF-8* UTF-8 mbyte.txt /*UTF-8*
@ -5072,7 +5096,9 @@ asin() eval.txt /*asin()*
asm.vim syntax.txt /*asm.vim* asm.vim syntax.txt /*asm.vim*
asm68k syntax.txt /*asm68k* asm68k syntax.txt /*asm68k*
asmh8300.vim syntax.txt /*asmh8300.vim* asmh8300.vim syntax.txt /*asmh8300.vim*
assert_beeps() eval.txt /*assert_beeps()*
assert_equal() eval.txt /*assert_equal()* assert_equal() eval.txt /*assert_equal()*
assert_equalfile() eval.txt /*assert_equalfile()*
assert_exception() eval.txt /*assert_exception()* assert_exception() eval.txt /*assert_exception()*
assert_fails() eval.txt /*assert_fails()* assert_fails() eval.txt /*assert_fails()*
assert_false() eval.txt /*assert_false()* assert_false() eval.txt /*assert_false()*
@ -5145,6 +5171,7 @@ backup-extension version4.txt /*backup-extension*
backup-table editing.txt /*backup-table* backup-table editing.txt /*backup-table*
balloon-eval debugger.txt /*balloon-eval* balloon-eval debugger.txt /*balloon-eval*
balloon_show() eval.txt /*balloon_show()* balloon_show() eval.txt /*balloon_show()*
balloon_split() eval.txt /*balloon_split()*
bar motion.txt /*bar* bar motion.txt /*bar*
bars help.txt /*bars* bars help.txt /*bars*
base_font_name_list mbyte.txt /*base_font_name_list* base_font_name_list mbyte.txt /*base_font_name_list*
@ -5861,6 +5888,7 @@ eval() eval.txt /*eval()*
eval-examples eval.txt /*eval-examples* eval-examples eval.txt /*eval-examples*
eval-sandbox eval.txt /*eval-sandbox* eval-sandbox eval.txt /*eval-sandbox*
eval.txt eval.txt /*eval.txt* eval.txt eval.txt /*eval.txt*
event-variable eval.txt /*event-variable*
eventhandler() eval.txt /*eventhandler()* eventhandler() eval.txt /*eventhandler()*
eview starting.txt /*eview* eview starting.txt /*eview*
evim starting.txt /*evim* evim starting.txt /*evim*
@ -6222,6 +6250,7 @@ ft-vb-syntax syntax.txt /*ft-vb-syntax*
ft-verilog-indent indent.txt /*ft-verilog-indent* ft-verilog-indent indent.txt /*ft-verilog-indent*
ft-vhdl-indent indent.txt /*ft-vhdl-indent* ft-vhdl-indent indent.txt /*ft-vhdl-indent*
ft-vim-indent indent.txt /*ft-vim-indent* ft-vim-indent indent.txt /*ft-vim-indent*
ft-vim-plugin filetype.txt /*ft-vim-plugin*
ft-vim-syntax syntax.txt /*ft-vim-syntax* ft-vim-syntax syntax.txt /*ft-vim-syntax*
ft-xf86conf-syntax syntax.txt /*ft-xf86conf-syntax* ft-xf86conf-syntax syntax.txt /*ft-xf86conf-syntax*
ft-xhtml-omni insert.txt /*ft-xhtml-omni* ft-xhtml-omni insert.txt /*ft-xhtml-omni*
@ -6229,6 +6258,7 @@ ft-xml-omni insert.txt /*ft-xml-omni*
ft-xml-syntax syntax.txt /*ft-xml-syntax* ft-xml-syntax syntax.txt /*ft-xml-syntax*
ft-xpm-syntax syntax.txt /*ft-xpm-syntax* ft-xpm-syntax syntax.txt /*ft-xpm-syntax*
ft-yaml-syntax syntax.txt /*ft-yaml-syntax* ft-yaml-syntax syntax.txt /*ft-yaml-syntax*
ft-zimbu-plugin filetype.txt /*ft-zimbu-plugin*
ft-zsh-syntax syntax.txt /*ft-zsh-syntax* ft-zsh-syntax syntax.txt /*ft-zsh-syntax*
ft_ada.txt ft_ada.txt /*ft_ada.txt* ft_ada.txt ft_ada.txt /*ft_ada.txt*
ft_rust.txt ft_rust.txt /*ft_rust.txt* ft_rust.txt ft_rust.txt /*ft_rust.txt*
@ -6543,6 +6573,7 @@ get-ms-debuggers debug.txt /*get-ms-debuggers*
getbufinfo() eval.txt /*getbufinfo()* getbufinfo() eval.txt /*getbufinfo()*
getbufline() eval.txt /*getbufline()* getbufline() eval.txt /*getbufline()*
getbufvar() eval.txt /*getbufvar()* getbufvar() eval.txt /*getbufvar()*
getchangelist() eval.txt /*getchangelist()*
getchar() eval.txt /*getchar()* getchar() eval.txt /*getchar()*
getcharmod() eval.txt /*getcharmod()* getcharmod() eval.txt /*getcharmod()*
getcharsearch() eval.txt /*getcharsearch()* getcharsearch() eval.txt /*getcharsearch()*
@ -6558,6 +6589,7 @@ getfperm() eval.txt /*getfperm()*
getfsize() eval.txt /*getfsize()* getfsize() eval.txt /*getfsize()*
getftime() eval.txt /*getftime()* getftime() eval.txt /*getftime()*
getftype() eval.txt /*getftype()* getftype() eval.txt /*getftype()*
getjumplist() eval.txt /*getjumplist()*
getlatestvimscripts-install pi_getscript.txt /*getlatestvimscripts-install* getlatestvimscripts-install pi_getscript.txt /*getlatestvimscripts-install*
getline() eval.txt /*getline()* getline() eval.txt /*getline()*
getloclist() eval.txt /*getloclist()* getloclist() eval.txt /*getloclist()*
@ -6577,6 +6609,7 @@ gettabinfo() eval.txt /*gettabinfo()*
gettabvar() eval.txt /*gettabvar()* gettabvar() eval.txt /*gettabvar()*
gettabwinvar() eval.txt /*gettabwinvar()* gettabwinvar() eval.txt /*gettabwinvar()*
getwininfo() eval.txt /*getwininfo()* getwininfo() eval.txt /*getwininfo()*
getwinpos() eval.txt /*getwinpos()*
getwinposx() eval.txt /*getwinposx()* getwinposx() eval.txt /*getwinposx()*
getwinposy() eval.txt /*getwinposy()* getwinposy() eval.txt /*getwinposy()*
getwinvar() eval.txt /*getwinvar()* getwinvar() eval.txt /*getwinvar()*
@ -6813,9 +6846,12 @@ hl-SpellLocal syntax.txt /*hl-SpellLocal*
hl-SpellRare syntax.txt /*hl-SpellRare* hl-SpellRare syntax.txt /*hl-SpellRare*
hl-StatusLine syntax.txt /*hl-StatusLine* hl-StatusLine syntax.txt /*hl-StatusLine*
hl-StatusLineNC syntax.txt /*hl-StatusLineNC* hl-StatusLineNC syntax.txt /*hl-StatusLineNC*
hl-StatusLineTerm syntax.txt /*hl-StatusLineTerm*
hl-StatusLineTermNC syntax.txt /*hl-StatusLineTermNC*
hl-TabLine syntax.txt /*hl-TabLine* hl-TabLine syntax.txt /*hl-TabLine*
hl-TabLineFill syntax.txt /*hl-TabLineFill* hl-TabLineFill syntax.txt /*hl-TabLineFill*
hl-TabLineSel syntax.txt /*hl-TabLineSel* hl-TabLineSel syntax.txt /*hl-TabLineSel*
hl-Terminal syntax.txt /*hl-Terminal*
hl-Title syntax.txt /*hl-Title* hl-Title syntax.txt /*hl-Title*
hl-Tooltip syntax.txt /*hl-Tooltip* hl-Tooltip syntax.txt /*hl-Tooltip*
hl-User1 syntax.txt /*hl-User1* hl-User1 syntax.txt /*hl-User1*
@ -6826,6 +6862,8 @@ hl-Visual syntax.txt /*hl-Visual*
hl-VisualNOS syntax.txt /*hl-VisualNOS* hl-VisualNOS syntax.txt /*hl-VisualNOS*
hl-WarningMsg syntax.txt /*hl-WarningMsg* hl-WarningMsg syntax.txt /*hl-WarningMsg*
hl-WildMenu syntax.txt /*hl-WildMenu* hl-WildMenu syntax.txt /*hl-WildMenu*
hl-debugBreakpoint terminal.txt /*hl-debugBreakpoint*
hl-debugPC terminal.txt /*hl-debugPC*
hlID() eval.txt /*hlID()* hlID() eval.txt /*hlID()*
hlexists() eval.txt /*hlexists()* hlexists() eval.txt /*hlexists()*
hlsearch-variable eval.txt /*hlsearch-variable* hlsearch-variable eval.txt /*hlsearch-variable*
@ -7338,6 +7376,7 @@ mbyte-encoding mbyte.txt /*mbyte-encoding*
mbyte-first mbyte.txt /*mbyte-first* mbyte-first mbyte.txt /*mbyte-first*
mbyte-fonts-MSwin mbyte.txt /*mbyte-fonts-MSwin* mbyte-fonts-MSwin mbyte.txt /*mbyte-fonts-MSwin*
mbyte-fonts-X11 mbyte.txt /*mbyte-fonts-X11* mbyte-fonts-X11 mbyte.txt /*mbyte-fonts-X11*
mbyte-func mbyte.txt /*mbyte-func*
mbyte-keymap mbyte.txt /*mbyte-keymap* mbyte-keymap mbyte.txt /*mbyte-keymap*
mbyte-locale mbyte.txt /*mbyte-locale* mbyte-locale mbyte.txt /*mbyte-locale*
mbyte-options mbyte.txt /*mbyte-options* mbyte-options mbyte.txt /*mbyte-options*
@ -7817,6 +7856,8 @@ option-backslash options.txt /*option-backslash*
option-list quickref.txt /*option-list* option-list quickref.txt /*option-list*
option-summary options.txt /*option-summary* option-summary options.txt /*option-summary*
option-window options.txt /*option-window* option-window options.txt /*option-window*
option_restore() eval.txt /*option_restore()*
option_save() eval.txt /*option_save()*
options options.txt /*options* options options.txt /*options*
options-changed version5.txt /*options-changed* options-changed version5.txt /*options-changed*
options-in-terminal terminal.txt /*options-in-terminal* options-in-terminal terminal.txt /*options-in-terminal*
@ -8049,14 +8090,20 @@ quake.vim syntax.txt /*quake.vim*
quickfix quickfix.txt /*quickfix* quickfix quickfix.txt /*quickfix*
quickfix-6 version6.txt /*quickfix-6* quickfix-6 version6.txt /*quickfix-6*
quickfix-ID quickfix.txt /*quickfix-ID* quickfix-ID quickfix.txt /*quickfix-ID*
quickfix-changedtick quickfix.txt /*quickfix-changedtick*
quickfix-context quickfix.txt /*quickfix-context*
quickfix-directory-stack quickfix.txt /*quickfix-directory-stack* quickfix-directory-stack quickfix.txt /*quickfix-directory-stack*
quickfix-error-lists quickfix.txt /*quickfix-error-lists* quickfix-error-lists quickfix.txt /*quickfix-error-lists*
quickfix-functions usr_41.txt /*quickfix-functions* quickfix-functions usr_41.txt /*quickfix-functions*
quickfix-gcc quickfix.txt /*quickfix-gcc* quickfix-gcc quickfix.txt /*quickfix-gcc*
quickfix-manx quickfix.txt /*quickfix-manx* quickfix-manx quickfix.txt /*quickfix-manx*
quickfix-parse quickfix.txt /*quickfix-parse*
quickfix-perl quickfix.txt /*quickfix-perl* quickfix-perl quickfix.txt /*quickfix-perl*
quickfix-size quickfix.txt /*quickfix-size*
quickfix-title quickfix.txt /*quickfix-title*
quickfix-valid quickfix.txt /*quickfix-valid* quickfix-valid quickfix.txt /*quickfix-valid*
quickfix-window quickfix.txt /*quickfix-window* quickfix-window quickfix.txt /*quickfix-window*
quickfix-window-ID quickfix.txt /*quickfix-window-ID*
quickfix.txt quickfix.txt /*quickfix.txt* quickfix.txt quickfix.txt /*quickfix.txt*
quickref quickref.txt /*quickref* quickref quickref.txt /*quickref*
quickref.txt quickref.txt /*quickref.txt* quickref.txt quickref.txt /*quickref.txt*
@ -8868,6 +8915,9 @@ term++open terminal.txt /*term++open*
term-dependent-settings term.txt /*term-dependent-settings* term-dependent-settings term.txt /*term-dependent-settings*
term-list syntax.txt /*term-list* term-list syntax.txt /*term-list*
term.txt term.txt /*term.txt* term.txt term.txt /*term.txt*
term_dumpdiff() eval.txt /*term_dumpdiff()*
term_dumpload() eval.txt /*term_dumpload()*
term_dumpwrite() eval.txt /*term_dumpwrite()*
term_getaltscreen() eval.txt /*term_getaltscreen()* term_getaltscreen() eval.txt /*term_getaltscreen()*
term_getattr() eval.txt /*term_getattr()* term_getattr() eval.txt /*term_getattr()*
term_getcursor() eval.txt /*term_getcursor()* term_getcursor() eval.txt /*term_getcursor()*
@ -8881,6 +8931,8 @@ term_gettty() eval.txt /*term_gettty()*
term_list() eval.txt /*term_list()* term_list() eval.txt /*term_list()*
term_scrape() eval.txt /*term_scrape()* term_scrape() eval.txt /*term_scrape()*
term_sendkeys() eval.txt /*term_sendkeys()* term_sendkeys() eval.txt /*term_sendkeys()*
term_setkill() eval.txt /*term_setkill()*
term_setrestore() eval.txt /*term_setrestore()*
term_setsize() eval.txt /*term_setsize()* term_setsize() eval.txt /*term_setsize()*
term_start() eval.txt /*term_start()* term_start() eval.txt /*term_start()*
term_wait() eval.txt /*term_wait()* term_wait() eval.txt /*term_wait()*
@ -8898,10 +8950,18 @@ termdebug-example terminal.txt /*termdebug-example*
termdebug-starting terminal.txt /*termdebug-starting* termdebug-starting terminal.txt /*termdebug-starting*
termdebug-stepping terminal.txt /*termdebug-stepping* termdebug-stepping terminal.txt /*termdebug-stepping*
termdebug-variables terminal.txt /*termdebug-variables* termdebug-variables terminal.txt /*termdebug-variables*
termdebug_popup terminal.txt /*termdebug_popup*
termdebug_wide terminal.txt /*termdebug_wide*
terminal terminal.txt /*terminal* terminal terminal.txt /*terminal*
terminal-api terminal.txt /*terminal-api*
terminal-client-server terminal.txt /*terminal-client-server*
terminal-colors os_unix.txt /*terminal-colors* terminal-colors os_unix.txt /*terminal-colors*
terminal-communication terminal.txt /*terminal-communication*
terminal-cursor-style terminal.txt /*terminal-cursor-style* terminal-cursor-style terminal.txt /*terminal-cursor-style*
terminal-debug terminal.txt /*terminal-debug* terminal-debug terminal.txt /*terminal-debug*
terminal-diff terminal.txt /*terminal-diff*
terminal-diffscreendump terminal.txt /*terminal-diffscreendump*
terminal-dumptest terminal.txt /*terminal-dumptest*
terminal-functions usr_41.txt /*terminal-functions* terminal-functions usr_41.txt /*terminal-functions*
terminal-info term.txt /*terminal-info* terminal-info term.txt /*terminal-info*
terminal-key-codes term.txt /*terminal-key-codes* terminal-key-codes term.txt /*terminal-key-codes*
@ -8909,9 +8969,12 @@ terminal-ms-windows terminal.txt /*terminal-ms-windows*
terminal-options term.txt /*terminal-options* terminal-options term.txt /*terminal-options*
terminal-output-codes term.txt /*terminal-output-codes* terminal-output-codes term.txt /*terminal-output-codes*
terminal-resizing terminal.txt /*terminal-resizing* terminal-resizing terminal.txt /*terminal-resizing*
terminal-screendump terminal.txt /*terminal-screendump*
terminal-session terminal.txt /*terminal-session*
terminal-size-color terminal.txt /*terminal-size-color* terminal-size-color terminal.txt /*terminal-size-color*
terminal-special-keys terminal.txt /*terminal-special-keys* terminal-special-keys terminal.txt /*terminal-special-keys*
terminal-testing terminal.txt /*terminal-testing* terminal-testing terminal.txt /*terminal-testing*
terminal-to-job terminal.txt /*terminal-to-job*
terminal-typing terminal.txt /*terminal-typing* terminal-typing terminal.txt /*terminal-typing*
terminal-unix terminal.txt /*terminal-unix* terminal-unix terminal.txt /*terminal-unix*
terminal-use terminal.txt /*terminal-use* terminal-use terminal.txt /*terminal-use*
@ -8983,6 +9046,7 @@ tolower() eval.txt /*tolower()*
toolbar-icon gui.txt /*toolbar-icon* toolbar-icon gui.txt /*toolbar-icon*
toupper() eval.txt /*toupper()* toupper() eval.txt /*toupper()*
tr() eval.txt /*tr()* tr() eval.txt /*tr()*
trim() eval.txt /*trim()*
trojan-horse starting.txt /*trojan-horse* trojan-horse starting.txt /*trojan-horse*
true-variable eval.txt /*true-variable* true-variable eval.txt /*true-variable*
trunc() eval.txt /*trunc()* trunc() eval.txt /*trunc()*
@ -9095,6 +9159,7 @@ v:ctype eval.txt /*v:ctype*
v:dying eval.txt /*v:dying* v:dying eval.txt /*v:dying*
v:errmsg eval.txt /*v:errmsg* v:errmsg eval.txt /*v:errmsg*
v:errors eval.txt /*v:errors* v:errors eval.txt /*v:errors*
v:event eval.txt /*v:event*
v:exception eval.txt /*v:exception* v:exception eval.txt /*v:exception*
v:false eval.txt /*v:false* v:false eval.txt /*v:false*
v:fcs_choice eval.txt /*v:fcs_choice* v:fcs_choice eval.txt /*v:fcs_choice*
@ -9462,6 +9527,7 @@ win_getid() eval.txt /*win_getid()*
win_gotoid() eval.txt /*win_gotoid()* win_gotoid() eval.txt /*win_gotoid()*
win_id2tabwin() eval.txt /*win_id2tabwin()* win_id2tabwin() eval.txt /*win_id2tabwin()*
win_id2win() eval.txt /*win_id2win()* win_id2win() eval.txt /*win_id2win()*
win_screenpos() eval.txt /*win_screenpos()*
winbufnr() eval.txt /*winbufnr()* winbufnr() eval.txt /*winbufnr()*
wincol() eval.txt /*wincol()* wincol() eval.txt /*wincol()*
window windows.txt /*window* window windows.txt /*window*

View File

@ -1,4 +1,4 @@
*terminal.txt* For Vim version 8.0. Last change: 2017 Nov 17 *terminal.txt* For Vim version 8.0. Last change: 2018 Apr 05
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -7,36 +7,42 @@
Terminal window support *terminal* Terminal window support *terminal*
WARNING: THIS IS ONLY PARTLY IMPLEMENTED, ANYTHING CAN STILL CHANGE
The terminal feature is optional, use this to check if your Vim has it: > The terminal feature is optional, use this to check if your Vim has it: >
echo has('terminal') echo has('terminal')
If the result is "1" you have it. If the result is "1" you have it.
1. Basic use |terminal-use| 1. Basic use |terminal-use|
Typing |terminal-typing| Typing |terminal-typing|
Size and color |terminal-size-color| Size and color |terminal-size-color|
Syntax |:terminal| Syntax |:terminal|
Resizing |terminal-resizing| Resizing |terminal-resizing|
Terminal Modes |Terminal-mode| Terminal Modes |Terminal-mode|
Cursor style |terminal-cursor-style| Cursor style |terminal-cursor-style|
Special keys |terminal-special-keys| Special keys |terminal-special-keys|
Unix |terminal-unix| Session |terminal-session|
MS-Windows |terminal-ms-windows| Unix |terminal-unix|
2. Remote testing |terminal-testing| MS-Windows |terminal-ms-windows|
3. Debugging |terminal-debug| 2. Terminal communication |terminal-communication|
Starting |termdebug-starting| Vim to job: term_sendkeys() |terminal-to-job|
Example session |termdebug-example| Job to Vim: JSON API |terminal-api|
Stepping through code |termdebug-stepping| Using the client-server feature |terminal-client-server|
Inspecting variables |termdebug-variables| 3. Remote testing |terminal-testing|
Other commands |termdebug-commands| 4. Diffing screen dumps |terminal-diff|
Communication |termdebug-communication| Writing a screen dump test for Vim |terminal-dumptest|
Customizing |termdebug-customizing| Creating a screen dump |terminal-screendump|
Comparing screen dumps |terminal-diffscreendump|
5. Debugging |terminal-debug|
Starting |termdebug-starting|
Example session |termdebug-example|
Stepping through code |termdebug-stepping|
Inspecting variables |termdebug-variables|
Other commands |termdebug-commands|
Communication |termdebug-communication|
Customizing |termdebug-customizing|
{Vi does not have any of these commands} {Vi does not have any of these commands}
{only available when compiled with the |+terminal| feature} {only available when compiled with the |+terminal| feature}
The terminal feature requires the |+multi_byte|, |+job| and |+channel| features. The terminal feature requires the |+multi_byte|, |+job| and |+channel| features.
============================================================================== ==============================================================================
@ -66,6 +72,7 @@ See |CTRL-W| for more commands.
Special in the terminal window: *CTRL-W_.* *CTRL-W_N* Special in the terminal window: *CTRL-W_.* *CTRL-W_N*
CTRL-W . send a CTRL-W to the job in the terminal CTRL-W . send a CTRL-W to the job in the terminal
CTRL-W CTRL-\ send a CTRL-\ to the job in the terminal
CTRL-W N go to Terminal-Normal mode, see |Terminal-mode| CTRL-W N go to Terminal-Normal mode, see |Terminal-mode|
CTRL-\ CTRL-N go to Terminal-Normal mode, see |Terminal-mode| CTRL-\ CTRL-N go to Terminal-Normal mode, see |Terminal-mode|
CTRL-W " {reg} paste register {reg} *CTRL-W_quote* CTRL-W " {reg} paste register {reg} *CTRL-W_quote*
@ -97,9 +104,14 @@ themselves (like Vim does).
To change the keys you type use terminal mode mappings, see |:tmap|. To change the keys you type use terminal mode mappings, see |:tmap|.
These are defined like any mapping, but apply only when typing keys that are These are defined like any mapping, but apply only when typing keys that are
sent to the job running in the terminal. For example, to make Escape switch sent to the job running in the terminal. For example, to make F1 switch
to Terminal-Normal mode: > to Terminal-Normal mode: >
tnoremap <F1> <C-W>N
You can use Esc, but you need to make sure it won't cause other keys to
break: >
tnoremap <Esc> <C-W>N tnoremap <Esc> <C-W>N
set notimeout ttimeout timeoutlen=100
< *options-in-terminal* < *options-in-terminal*
After opening the terminal window and setting 'buftype' to "terminal" the After opening the terminal window and setting 'buftype' to "terminal" the
BufWinEnter autocommand event is triggered. This makes it possible to set BufWinEnter autocommand event is triggered. This makes it possible to set
@ -122,8 +134,19 @@ and background colors are taken from Vim, the Normal highlight group.
For a color terminal the 'background' option is used to decide whether the For a color terminal the 'background' option is used to decide whether the
terminal window will start with a white or black background. terminal window will start with a white or black background.
To use a different color the Terminal highlight group can be used: > To use a different color the Terminal highlight group can be used, for
example: >
hi Terminal ctermbg=lightgrey ctermfg=blue guibg=lightgrey guifg=blue hi Terminal ctermbg=lightgrey ctermfg=blue guibg=lightgrey guifg=blue
<
*g:terminal_ansi_colors*
In GUI mode or with |termguicolors|, the 16 ANSI colors used by default in new
terminal windows may be configured using the variable
`g:terminal_ansi_colors`, which should be a list of 16 color names or
hexadecimal color codes, similar to those accepted by |highlight-guifg|. When
not using GUI colors, the terminal window always uses the 16 ANSI colors of
the underlying terminal.
The |term_setansicolors()| function can be used to change the colors, and
|term_getansicolors()| to get the currently used colors.
Syntax ~ Syntax ~
@ -137,6 +160,13 @@ Syntax ~
if [command] is NONE no job is started, the pty of the if [command] is NONE no job is started, the pty of the
terminal can be used by a command like gdb. terminal can be used by a command like gdb.
If [command] is missing the default behavior is to
close the terminal when the shell exits. This can be
changed with the ++noclose argument.
If [command] is present the default behavior is to
keep the terminal open in Terminal-Normal mode. This
can be changed with the ++close argument.
A new buffer will be created, using [command] or A new buffer will be created, using [command] or
'shell' as the name, prefixed with a "!". If a buffer 'shell' as the name, prefixed with a "!". If a buffer
by this name already exists a number is added in by this name already exists a number is added in
@ -148,28 +178,39 @@ Syntax ~
keys in the terminal window. For MS-Windows see the keys in the terminal window. For MS-Windows see the
++eof argument below. ++eof argument below.
Two comma separated numbers are used as "rows,cols".
E.g. `:24,80gdb` opens a terminal with 24 rows and 80
columns. However, if the terminal window spans the
Vim window with, there is no vertical split, the Vim
window width is used.
*term++close* *term++open* *term++close* *term++open*
Supported [options] are: Supported [options] are:
++close The terminal window will close ++close The terminal window will close
automatically when the job terminates. automatically when the job terminates.
++noclose The terminal window will NOT close
automatically when the job terminates.
++open When the job terminates and no window ++open When the job terminates and no window
shows it, a window will be opened. shows it, a window will be opened.
Note that this can be interruptive. Note that this can be interruptive.
The last of ++close, ++noclose and ++open
matters and rules out earlier arguments.
++curwin Open the terminal in the current ++curwin Open the terminal in the current
window, do not split the current window, do not split the current
window. Fails if the current buffer window. Fails if the current buffer
cannot be |abandon|ed. cannot be |abandon|ed.
++hidden Open the terminal in a hidden buffer, ++hidden Open the terminal in a hidden buffer,
no window will be used. no window will be used.
++norestore Do not include this terminal window
in a session file.
++kill={how} When trying to close the terminal
window kill the job with {how}. See
|term_setkill()| for the values.
++rows={height} Use {height} for the terminal window ++rows={height} Use {height} for the terminal window
height. height. If the terminal uses the full
Vim height (no window above or below
th terminal window) the command line
height will be reduced as needed.
++cols={width} Use {width} for the terminal window ++cols={width} Use {width} for the terminal window
width. width. If the terminal uses the full
Vim width (no window left or right of
the terminal window) this value is
ignored.
++eof={text} when using [range]: text to send after ++eof={text} when using [range]: text to send after
the last line was written. Cannot the last line was written. Cannot
contain white space. A CR is contain white space. A CR is
@ -183,8 +224,12 @@ Syntax ~
If you want to use more options use the |term_start()| If you want to use more options use the |term_start()|
function. function.
When the buffer associated with the terminal is unloaded or wiped out the job When the buffer associated with the terminal is forcibly unloaded or wiped out
is killed, similar to calling `job_stop(job, "kill")` the job is killed, similar to calling `job_stop(job, "kill")` .
Closing the window normally results in |E947|. When a kill method was set
with "++kill={how}" or |term_setkill()| then closing the window will use that
way to kill or interrupt the job. For example: >
:term ++kill=term tail -f /tmp/log
So long as the job is running the window behaves like it contains a modified So long as the job is running the window behaves like it contains a modified
buffer. Trying to close the window with `CTRL-W :quit` fails. When using buffer. Trying to close the window with `CTRL-W :quit` fails. When using
@ -243,7 +288,7 @@ not when 'termsize' is "rowsXcols".
Terminal-Job and Terminal-Normal mode ~ Terminal-Job and Terminal-Normal mode ~
*Terminal-mode* *Terminal-mode* *Terminal-Job*
When the job is running the contents of the terminal is under control of the When the job is running the contents of the terminal is under control of the
job. That includes the cursor position. Typed keys are sent to the job. job. That includes the cursor position. Typed keys are sent to the job.
The terminal contents can change at any time. This is called Terminal-Job The terminal contents can change at any time. This is called Terminal-Job
@ -256,7 +301,9 @@ suspended. CTRL-\ CTRL-N does the same.
Terminal-Job mode is where |:tmap| mappings are applied. Keys sent by Terminal-Job mode is where |:tmap| mappings are applied. Keys sent by
|term_sendkeys()| are not subject to tmap, but keys from |feedkeys()| are. |term_sendkeys()| are not subject to tmap, but keys from |feedkeys()| are.
*E946* It is not possible to enter Insert mode from Terminal-Job mode.
*Terminal-Normal* *E946*
In Terminal-Normal mode you can move the cursor around with the usual Vim In Terminal-Normal mode you can move the cursor around with the usual Vim
commands, Visually mark text, yank text, etc. But you cannot change the commands, Visually mark text, yank text, etc. But you cannot change the
contents of the buffer. The commands that would start insert mode, such as contents of the buffer. The commands that would start insert mode, such as
@ -267,7 +314,10 @@ In Terminal-Normal mode the statusline and window title show "(Terminal)". If
the job ends while in Terminal-Normal mode this changes to the job ends while in Terminal-Normal mode this changes to
"(Terminal-finished)". "(Terminal-finished)".
It is not possible to enter Insert mode from Terminal-Job mode. When the job outputs lines in the terminal, such that the contents scrolls off
the top, those lines are remembered and can be seen in Terminal-Normal mode.
The number of lines is limited by the 'terminalscroll' option. When going over
this limit, the first 10% of the scrolled lins are deleted and are lost.
Cursor style ~ Cursor style ~
@ -283,6 +333,22 @@ is inverted. Since Vim cannot detect this, the terminal window cursor
blinking will also be inverted. blinking will also be inverted.
Session ~
*terminal-session*
A terminal window will be restored when using a session file, if possible and
wanted.
If "terminal" was removed from 'sessionoptions' then no terminal windows will
be restored.
If the job in the terminal was finished the window will not be restored.
If the terminal can be restored, the command that was used to open it will be
used again. To change this use the |term_setrestore()| function. This can
also be used to not restore a specific terminal by setting the command to
"NONE".
Special keys ~ Special keys ~
*terminal-special-keys* *terminal-special-keys*
Since the terminal emulator simulates an xterm, only escape sequences that Since the terminal emulator simulates an xterm, only escape sequences that
@ -302,22 +368,15 @@ On Unix a pty is used to make it possible to run all kinds of commands. You
can even run Vim in the terminal! That's used for debugging, see below. can even run Vim in the terminal! That's used for debugging, see below.
Environment variables are used to pass information to the running job: Environment variables are used to pass information to the running job:
TERM name of the terminal, 'term' TERM the name of the terminal, from the 'term' option or
$TERM in the GUI; falls back to "xterm" if it does not
start with "xterm"
ROWS number of rows in the terminal initially ROWS number of rows in the terminal initially
LINES same as ROWS LINES same as ROWS
COLUMNS number of columns in the terminal initially COLUMNS number of columns in the terminal initially
COLORS number of colors, 't_Co' (256*256*256 in the GUI) COLORS number of colors, 't_Co' (256*256*256 in the GUI)
VIM_SERVERNAME v:servername VIM_SERVERNAME v:servername
The |client-server| feature can be used to communicate with the Vim instance
where the job was started. This only works when v:servername is not empty.
If needed you can set it with: >
call remote_startserver('vim-server')
In the job you can then do something like: >
vim --servername $VIM_SERVERNAME --remote +123 some_file.c
This will open the file "some_file.c" and put the cursor on line 123.
MS-Windows ~ MS-Windows ~
*terminal-ms-windows* *terminal-ms-windows*
@ -343,7 +402,111 @@ Environment variables are used to pass information to the running job:
VIM_SERVERNAME v:servername VIM_SERVERNAME v:servername
============================================================================== ==============================================================================
2. Remote testing *terminal-testing* 2. Terminal communication *terminal-communication*
There are several ways to communicate with the job running in a terminal:
- Use |term_sendkeys()| to send text and escape sequences from Vim to the job.
- Use the JSON API to send encoded commands from the job to Vim.
- Use the |client-server| mechanism. This works on machines with an X server
and on MS-Windows.
Vim to job: term_sendkeys() ~
*terminal-to-job*
This allows for remote controlling the job running in the terminal. It is a
one-way mechanism. The job can update the display to signal back to Vim.
For example, if a shell is running in a terminal, you can do: >
call term_sendkeys(buf, "ls *.java\<CR>")
This requires for the job to be in the right state where it will do the right
thing when receiving the keys. For the above example, the shell must be
waiting for a command to be typed.
For a job that was written for the purpose, you can use the JSON API escape
sequence in the other direction. E.g.: >
call term_sendkeys(buf, "\<Esc>]51;["response"]\x07")
Job to Vim: JSON API ~
*terminal-api*
The job can send JSON to Vim, using a special escape sequence. The JSON
encodes a command that Vim understands. Example of such a message: >
<Esc>]51;["drop", "README.md"]<07>
The body is always a list, making it easy to find the end: ]<07>.
The <Esc>]51;msg<07> sequence is reserved by xterm for "Emacs shell", which is
similar to what we are doing here.
Currently supported commands:
call {funcname} {argument}
Call a user defined function with {argument}.
The function is called with two arguments: the buffer number
of the terminal and {argument}, the decoded JSON argument.
The function name must start with "Tapi_" to avoid
accidentally calling a function not meant to be used for the
terminal API
The user function should sanity check the argument.
The function can use |term_sendkeys()| to send back a reply.
Example in JSON: >
["call", "Tapi_Impression", ["play", 14]]
< Calls a function defined like this: >
function Tapi_Impression(bufnum, arglist)
if len(a:arglist) == 2
echomsg "impression " . a:arglist[0]
echomsg "count " . a:arglist[1]
endif
endfunc
< Output from `:echo` may be erased by a redraw, use `:echomsg`
to be able to see it with `:messages`.
drop {filename} [options]
Let Vim open a file, like the `:drop` command. If {filename}
is already open in a window, switch to that window. Otherwise
open a new window to edit {filename}.
[options] is only used when opening a new window. If present,
it must be a Dict. Similarly to |++opt|, These entries are recognized:
"ff" file format: "dos", "mac" or "unix"
"fileformat" idem
"enc" overrides 'fileencoding'
"encoding" idem
"bin" sets 'binary'
"binary" idem
"nobin" resets 'binary'
"nobinary" idem
"bad" specifies behavior for bad characters, see
|++bad|
Example in JSON: >
["drop", "path/file.txt", {"ff": "dos"}]
A trick to have Vim send this escape sequence: >
exe "set t_ts=\<Esc>]51; t_fs=\x07"
let &titlestring = '["call","Tapi_TryThis",["hello",123]]'
redraw
set t_ts& t_fs&
Rationale: Why not allow for any command or expression? Because that might
create a security problem.
Using the client-server feature ~
*terminal-client-server*
This only works when v:servername is not empty. If needed you can set it,
before opening the terminal, with: >
call remote_startserver('vim-server')
$VIM_SERVERNAME is set in the terminal to pass on the server name.
In the job you can then do something like: >
vim --servername $VIM_SERVERNAME --remote +123 some_file.c
This will open the file "some_file.c" and put the cursor on line 123.
==============================================================================
3. Remote testing *terminal-testing*
Most Vim tests execute a script inside Vim. For some tests this does not Most Vim tests execute a script inside Vim. For some tests this does not
work, running the test interferes with the code being tested. To avoid this work, running the test interferes with the code being tested. To avoid this
@ -358,7 +521,97 @@ term_scrape() inspect terminal screen
============================================================================== ==============================================================================
3. Debugging *terminal-debug* 4. Diffing screen dumps *terminal-diff*
In some cases it can be bothersome to test that Vim displays the right
characters on the screen. E.g. with syntax highlighting. To make this
simpler it is possible to take a screen dump of a terminal and compare it to
an expected screen dump.
Vim uses the window size, text, color and other attributes as displayed. The
Vim screen size, font and other properties do not matter. Therefore this
mechanism is portable across systems. A conventional screenshot would reflect
all differences, including font size and family.
Writing a screen dump test for Vim ~
*terminal-dumptest*
For an example see the Test_syntax_c() function in
src/testdir/test_syntax.vim. The main parts are:
- Write a file you want to test with. This is useful for testing syntax
highlighting. You can also start Vim with en empty buffer.
- Run Vim in a terminal with a specific size. The default is 20 lines of 75
characters. This makes sure the dump is always this size. The function
RunVimInTerminal() takes care of this. Pass it the arguments for the Vim
command.
- Send any commands to Vim using term_sendkeys(). For example: >
call term_sendkeys(buf, ":echo &lines &columns\<CR>")
- Check that the screen is now in the expected state, using
VerifyScreenDump(). This expects the reference screen dump to be in the
src/testdir/dumps/ directory. Pass the name without ".dump". It is
recommended to use the name of the test function and a sequence number, so
that we know what test is using the file.
- Repeat sending commands and checking the state.
- Finally stop Vim by calling StopVimInTerminal().
The first time you do this you won't have a screen dump yet. Create an empty
file for now, e.g.: >
touch src/testdir/dumps/Test_function_name_01.dump
The test will then fail, giving you the command to compare the reference dump
and the failed dump, e.g.: >
call term_dumpdiff("Test_func.dump.failed", "dumps/Test_func.dump")
Use this command in Vim, with the current directory set to src/testdir.
Once you are satisfied with the test, move the failed dump in place of the
reference: >
:!mv Test_func.dump.failed dumps/Test_func.dump
Creating a screen dump ~
*terminal-screendump*
To create the screen dump, run Vim (or any other program) in a terminal and
make it show the desired state. Then use the term_dumpwrite() function to
create a screen dump file. For example: >
:call term_dumpwrite(77, "mysyntax.dump")
Here "77" is the buffer number of the terminal. Use `:ls!` to see it.
You can view the screen dump with term_dumpload(): >
:call term_dumpload("mysyntax.dump")
To verify that Vim still shows exactly the same screen, run Vim again with
exactly the same way to show the desired state. Then create a screen dump
again, using a different file name: >
:call term_dumpwrite(88, "test.dump")
To assert that the files are exactly the same use assert_equalfile(): >
call assert_equalfile("mysyntax.dump", "test.dump")
If there are differences then v:errors will contain the error message.
Comparing screen dumps ~
*terminal-diffscreendump*
assert_equalfile() does not make it easy to see what is different.
To spot the problem use term_dumpdiff(): >
call term_dumpdiff("mysyntax.dump", "test.dump")
This will open a window consisting of three parts:
1. The contents of the first dump
2. The difference between the first and second dump
3. The contents of the second dump
You can usually see what differs in the second part. Use the 'ruler' to
relate it to the position in the first or second dump.
Alternatively, press "s" to swap the first and second dump. Do this several
times so that you can spot the difference in the context of the text.
==============================================================================
5. Debugging *terminal-debug*
The Terminal debugging plugin can be used to debug a program with gdb and view The Terminal debugging plugin can be used to debug a program with gdb and view
the source code in a Vim window. Since this is completely contained inside the source code in a Vim window. Since this is completely contained inside
@ -370,12 +623,15 @@ Starting ~
Load the plugin with this command: > Load the plugin with this command: >
packadd termdebug packadd termdebug
< *:Termdebug* < *:Termdebug*
To start debugging use `:TermDebug` folowed by the command name, for example: > To start debugging use `:Termdebug` or `:TermdebugCommand`` followed by the
command name, for example: >
:Termdebug vim :Termdebug vim
This opens two windows: This opens two windows:
gdb window A terminal window in which "gdb vim" is executed. Here you gdb window A terminal window in which "gdb vim" is executed. Here you
can directly interact with gdb. The buffer name is "!gdb". can directly interact with gdb. The buffer name is "!gdb".
program window A terminal window for the executed program. When "run" is program window A terminal window for the executed program. When "run" is
used in gdb the program I/O will happen in this window, so used in gdb the program I/O will happen in this window, so
that it does not interfere with controlling gdb. The buffer that it does not interfere with controlling gdb. The buffer
@ -383,10 +639,11 @@ program window A terminal window for the executed program. When "run" is
The current window is used to show the source code. When gdb pauses the The current window is used to show the source code. When gdb pauses the
source file location will be displayed, if possible. A sign is used to source file location will be displayed, if possible. A sign is used to
highlight the current position (using highlight group debugPC). highlight the current position, using highlight group debugPC.
If the buffer in the current window is modified, another window will be opened If the buffer in the current window is modified, another window will be opened
to display the current gdb position. to display the current gdb position. You can use `:Winbar` to add a window
toolbar there.
Focus the terminal of the executed program to interact with it. This works Focus the terminal of the executed program to interact with it. This works
the same as any command running in a terminal window. the same as any command running in a terminal window.
@ -394,6 +651,26 @@ the same as any command running in a terminal window.
When the debugger ends, typically by typing "quit" in the gdb window, the two When the debugger ends, typically by typing "quit" in the gdb window, the two
opened windows are closed. opened windows are closed.
Only one debugger can be active at a time.
*:TermdebugCommand*
If you want to give specific commands to the command being debugged, you can
use the `:TermdebugCommand` command followed by the command name and
additional parameters. >
:TermdebugCommand vim --clean -c ':set nu'
Both the `:Termdebug` and `:TermdebugCommand` support an optional "!" bang
argument to start the command right away, without pausing at the gdb window
(and cursor will be in the debugged window). For example: >
:TermdebugCommand! vim --clean
To attach gdb to an already running executable or use a core file, pass extra
arguments. E.g.: >
:Termdebug vim core
:Termdebug vim 98343
If no argument is given, you'll end up in a gdb window, in which you need to
specify which command to run using e.g. the gdb `file` command.
Example session ~ Example session ~
*termdebug-example* *termdebug-example*
@ -408,6 +685,7 @@ You should now have three windows:
source - where you started, has a window toolbar with buttons source - where you started, has a window toolbar with buttons
gdb - you can type gdb commands here gdb - you can type gdb commands here
program - the executed program will use this window program - the executed program will use this window
You can use CTRL-W CTRL-W or the mouse to move focus between windows. You can use CTRL-W CTRL-W or the mouse to move focus between windows.
Put focus on the gdb window and type: > Put focus on the gdb window and type: >
break ex_help break ex_help
@ -428,6 +706,8 @@ displayed:
This way you can inspect the value of local variables. You can also focus the This way you can inspect the value of local variables. You can also focus the
gdb window and use a "print" command, e.g.: > gdb window and use a "print" command, e.g.: >
print *eap print *eap
If mouse pointer movements are working, Vim will also show a balloon when the
mouse rests on text that can be evaluated by gdb.
Now go back to the source window and put the cursor on the first line after Now go back to the source window and put the cursor on the first line after
the for loop, then type: > the for loop, then type: >
@ -463,43 +743,57 @@ Put focus on the gdb window to type commands there. Some common ones are:
- frame N go to the Nth stack frame - frame N go to the Nth stack frame
- continue continue execution - continue continue execution
In the window showing the source code these commands can used to control gdb: *:Run* *:Arguments*
:Run [args] run the program with [args] or the previous arguments In the window showing the source code these commands can be used to control
:Arguments {args} set arguments for the next :Run gdb:
`:Run` [args] run the program with [args] or the previous arguments
`:Arguments` {args} set arguments for the next `:Run`
:Break set a breakpoint at the current line; a sign will be displayed *:Break* set a breakpoint at the current line; a sign will be displayed
:Delete delete a breakpoint at the current line *:Clear* delete the breakpoint at the current line
:Step execute the gdb "step" command *:Step* execute the gdb "step" command
:Over execute the gdb "next" command (:Next is a Vim command) *:Over* execute the gdb "next" command (`:Next` is a Vim command)
:Finish execute the gdb "finish" command *:Finish* execute the gdb "finish" command
:Continue execute the gdb "continue" command *:Continue* execute the gdb "continue" command
:Stop interrupt the program *:Stop* interrupt the program
The plugin adds a window toolbar with these entries: If 'mouse' is set the plugin adds a window toolbar with these entries:
Step :Step Step `:Step`
Next :Over Next `:Over`
Finish :Finish Finish `:Finish`
Cont :Continue Cont `:Continue`
Stop :Stop Stop `:Stop`
Eval :Evaluate Eval `:Evaluate`
This way you can use the mouse to perform the most common commands. This way you can use the mouse to perform the most common commands. You need
to have the 'mouse' option set to enable mouse clicks.
*:Winbar*
You can add the window toolbar in other windows you open with: >
:Winbar
If gdb stops at a source line and there is no window currently showing the
source code, a new window will be created for the source code. This also
happens if the buffer in the source code window has been modified and can't be
abandoned.
Inspecting variables ~ Inspecting variables ~
*termdebug-variables* *termdebug-variables* *:Evaluate*
:Evaluate evaluate the expression under the cursor `:Evaluate` evaluate the expression under the cursor
K same `K` same
:Evaluate {expr} evaluate {expr} `:Evaluate` {expr} evaluate {expr}
:'<,'>Evaluate evaluate the Visually selected text `:'<,'>Evaluate` evaluate the Visually selected text
This is similar to using "print" in the gdb window. This is similar to using "print" in the gdb window.
You can usually shorten `:Evaluate` to `:Ev`.
Other commands ~ Other commands ~
*termdebug-commands* *termdebug-commands*
:Gdb jump to the gdb window *:Gdb* jump to the gdb window
:Program jump to the window with the running program *:Program* jump to the window with the running program
*:Source* jump to the window with the source code, create it if there
isn't one
Communication ~ Communication ~
@ -510,16 +804,22 @@ will break the debugger.
Customizing ~ Customizing ~
*termdebug-customizing*
GDB command *termdebug-customizing*
To change the name of the gdb command, set the "termdebugger" variable before To change the name of the gdb command, set the "termdebugger" variable before
invoking `:Termdebug`: > invoking `:Termdebug`: >
let termdebugger = "mygdb" let termdebugger = "mygdb"
< *gdb-version* < *gdb-version*
Only debuggers fully compatible with gdb will work. Vim uses the GDB/MI Only debuggers fully compatible with gdb will work. Vim uses the GDB/MI
interface. This probably requires gdb version 7.12. if you get this error: interface. The "new-ui" command requires gdb version 7.12 or later. if you
get this error:
Undefined command: "new-ui". Try "help".~ Undefined command: "new-ui". Try "help".~
Then your gdb is too old. Then your gdb is too old.
Colors *hl-debugPC* *hl-debugBreakpoint*
The color of the signs can be adjusted with these highlight groups: The color of the signs can be adjusted with these highlight groups:
- debugPC the current position - debugPC the current position
- debugBreakpoint a breakpoint - debugBreakpoint a breakpoint
@ -532,6 +832,20 @@ When 'background' is "dark":
hi debugPC term=reverse ctermbg=darkblue guibg=darkblue hi debugPC term=reverse ctermbg=darkblue guibg=darkblue
hi debugBreakpoint term=reverse ctermbg=red guibg=red hi debugBreakpoint term=reverse ctermbg=red guibg=red
Popup menu *termdebug_popup*
By default the Termdebug plugin sets 'mousemodel' to "popup_setpos" and adds
these entries to the popup menu:
Set breakpoint `:Break`
Clear breakpoint `:Clear`
Evaluate `:Evaluate`
If you don't want this then disable it with: >
let g:termdebug_popup = 0
Vim window width *termdebug_wide*
To change the width of the Vim window when debugging starts, and use a To change the width of the Vim window when debugging starts, and use a
vertical split: > vertical split: >
let g:termdebug_wide = 163 let g:termdebug_wide = 163

68
runtime/doc/test_urls.vim Normal file
View File

@ -0,0 +1,68 @@
" Test for URLs in help documents.
"
" Opens a new window with all found URLS followed by return code from curl
" (anything other than 0 means unreachable)
"
" Written by Christian Brabandt.
func Test_check_URLs()
if has("win32")
echoerr "Doesn't work on MS-Windows"
return
endif
if executable('curl')
" Note: does not follow redirects!
let s:command = 'curl --silent --fail --output /dev/null --head '
elseif executable('wget')
" Note: only allow a couple of redirects
let s:command = 'wget --quiet -S --spider --max-redirect=2 --timeout=5 --tries=2 -O /dev/null '
else
echoerr 'Only works when "curl" or "wget" is available'
return
endif
let pat='\(https\?\|ftp\)://[^\t* ]\+'
exe 'helpgrep' pat
helpclose
let urls = map(getqflist(), 'v:val.text')
" do not use submatch(1)!
let urls = map(urls, {key, val -> matchstr(val, pat)})
" remove examples like user@host (invalid urls)
let urls = filter(urls, 'v:val !~ "@"')
" Remove example URLs which are invalid
let urls = filter(urls, {key, val -> val !~ '\<\(\(my\|some\)\?host\|machine\|hostname\|file\)\>'})
new
put =urls
" remove some more invalid items
" empty lines
v/./d
" remove # anchors
%s/#.*$//e
" remove trailing stuff (parenthesis, dot, comma, quotes), but only for HTTP
" links
g/^h/s#[.,)'"/>][:.]\?$##
g#^[hf]t\?tp:/\(/\?\.*\)$#d
silent! g/ftp://,$/d
silent! g/=$/d
let a = getline(1,'$')
let a = uniq(sort(a))
%d
call setline(1, a)
" Do the testing.
set nomore
%s/.*/\=TestURL(submatch(0))/
" highlight the failures
/.* \([0-9]*[1-9]\|[0-9]\{2,}\)$
endfunc
func TestURL(url)
" Relies on the return code to determine whether a page is valid
echom printf("Testing URL: %d/%d %s", line('.'), line('$'), a:url)
call system(s:command . shellescape(a:url))
return printf("%s %d", a:url, v:shell_error)
endfunc
call Test_check_URLs()

View File

@ -1,4 +1,4 @@
*todo.txt* For Vim version 8.0. Last change: 2017 Nov 11 *todo.txt* For Vim version 8.0. Last change: 2018 Apr 05
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -35,132 +35,148 @@ entered there will not be repeated below, unless there is extra information.
*known-bugs* *known-bugs*
-------------------- Known bugs and current work ----------------------- -------------------- Known bugs and current work -----------------------
Permission of viminfo tempfile can be wrong. (Simon Ruderich)
Always use 600 ? Also avoids groups problem.
patch from Simon Ruderich, Nov 8
No maintainer for Vietnamese translations.
No maintainer for Simplified Chinese translations.
Terminal emulator window: Terminal emulator window:
- Lots of stuff to implement, see src/terminal.c - dump diff sometimes creates a different way of repeating.
- Improve debugger interface: Example: https://api.travis-ci.org/v3/job/359102504/log.txt
Include all debug features of Agide. unclear why this can happen.
- Implement the right-click popup menu for the terminal. Can use the - Passing 'term' as $TERM doesn't work in GUI.
completion popup menu code and mouse dragging. - Still some stuff to implement and bugs to fix, see src/terminal.c
Use it for "set breakpoint", "remove breakpoint", etc. - GUI: problem with split window and sourcing the current buffer into python?
- make showballoon() work in a terminal. Requires getting mouse-move (Blay263, 2018 Mar 31)
events. - Terminal debugger: need a way to (re) open the source window, where current
- send 'balloonText' events for the cursor position (using CursorHold ?) position is displayed.
in terminal mode.
- get ideas from http://clewn.sf.net
- Look into the idevim plugin/script.
- Improve testing:
Make a screenshot of a terminal, store in a file.
Display a stored screenshot, display diff with another one.
Make a test that puts Vim in a specific state, make a screenshot and compare
with the expected screenshot. Set t_Co to 256.
+channel: Mode message isn't updated on vertical split. (Alexei Averchenko, 2018 Feb 2,
- Add a separate timeout for opening a socket. Currently it's fixed at 50 #2611)
msec, which is too small for a remote connection. (tverniquet, #2130)
- Try out background make plugin:
https://github.com/AndrewVos/vim-make-background
- Problem with stderr on Windows? (Vincent Rischmann, 2016 Aug 31, #1026)
- Writing raw mode to a buffer should still handle NL characters as line
breaks. (Dmitry Zotikov, 2017 Aug 16)
- When out_cb executes :sleep, the close_cb may be invoked. (Daniel Hahler,
2016 Dec 11, #1320)
- Implement |job-term| ?
- Channel test fails with Motif. Sometimes kills the X11 server.
- When a message in the queue but there is no callback, drop it after a while?
Add timestamp to queued messages and callbacks with ID, remove after a
minute. Option to set the droptime.
- Add an option to drop text of very long lines? Default to 1 Mbyte.
- Add remark about undo sync, is there a way to force it?
- When starting a job, have an option to open the server socket, so we know
the port, and pass it to the command with --socket-fd {nr}. (Olaf Dabrunz,
Feb 9) How to do this on MS-Windows?
- For connection to server, a "keep open" flag would be useful. Retry
connecting in the main loop with zero timeout.
- job_start(): run job in a newly opened terminal (not a terminal window).
With xterm could use -S{pty}.
Although user could use "xterm -e 'cmd arg'".
Regexp problems: Patch to fix vimgrep adding to wrong quickfix list. (Yegappan, 2018 Mar 25)
- [:space:] only matches ASCII spaces. Add [:white:] for all space-like
characters, esp. including 0xa0. Use character class zero.
- Since 7.4.704 the old regex engine fails to match [[:print:]] in 0xf6.
(Manuel Ortega, 2016 Apr 24)
Test fails on Mac. Avoid using isalpha(), isalnum(), etc? Depends on
LC_CTYPE
- The old engine does not find a match for "/\%#=1\(\)\{80}", the new engine
matches everywhere.
- Using win_linetabsize() can still be slow. Cache the result, store col and
vcol. Reset them when moving to another line.
- Very slow with a long line and Ruby highlighting. (John Whitley, 2014 Dec 4)
- Bug with pattern: '\vblock (\d+)\.\n.*\d+%(\1)@<!\.$'
(Lech Lorens, 2014 Feb 3)
- Issue 164: freeze on regexp search.
- Ignorecase not handled properly for multi-byte characters. (Axel Bender,
2013 Dec 11)
- Using \@> and \?. (Brett Stahlman, 2013 Dec 21) Remark from Marcin
Szamotulski; Remark from Brett 2014 Jan 6 and 7.
- NFA regexp doesn't handle \%<v correctly. (Ingo Karkat, 2014 May 12)
- Does not work with NFA regexp engine:
\%u, \%x, \%o, \%d followed by a composing character
- Search for \%d0\+ may fail with E363. (Christian Brabandt, 2016 Oct 4)
- \%'[ does not work. '%'] does work. (Masaaki Nakamura, 2016 Apr 4)
- Bug relating to back references. (Ingo Karkat, 2014 Jul 24)
- New RE does not give an error for empty group: "\(\)\{2}" (Dominique Pelle,
2015 Feb 7)
- Using back reference before the capturing group sometimes works with the old
engine, can we do this with the new engine? E.g. with
"/\%(<\1>\)\@<=.*\%(<\/\(\w\+\)>\)\@=" matching text inside HTML tags.
This problem is probably the same: "\%(^\1.*$\n\)\@<=\(\d\+\).*$".
(guotuofeng, 2015 Jun 22)
- Strange matching with "\(Hello\n\)\@<=A". (Anas Syed, 2015 Feb 12)
- Problem with \v(A)@<=b+\1c. (Issue 334)
- Diff highlighting can be very slow. (Issue 309)
- Using %> for a virtual column has a check based on 'tabsize'. Better would
be to cache the result of win_linetabsize(col), storing both col and vcol,
and use them to decide whether win_linetabsize() needs to be called. Reset
col and vcol when moving to another line.
- this doesn't work: "syntax match ErrorMsg /.\%9l\%>20c\&\%<28c/". Leaving
out the \& works. Seems any column check after \& fails.
- Difference between two engines: ".*\zs\/\@>\/" on text "///"
(Chris Paul, 2016 Nov 13) New engine not greedy enough?
Another one: echom matchstr(" sdfsfsf\n sfdsdfsdf",'[^\n]*')
(2017 May 15, #1252)
Include a few color schemes, based on popularity: Problem with sudo. #2758
http://www.vim.org/scripts/script_search_results.php?keywords=&script_type=color+scheme&order_by=rating&direction=descending&search=search
http://vimawesome.com/?q=tag:color-scheme Code refactoring, macro for message, #2729
Use names that indicate their apperance (Christian Brabandt, 2017 Aug 3)
- monokai - Xia Crusoe (2017 Aug 4) Fix for crash with non-dict argument to job options. (ichizok, #2765)
- seoul256 - Christian Brabandt (2017 Aug 3)
- gruvbox - Christian Brabandt (2017 Aug 3) Patch to enforce c89 compliance. (James McCoy, #2735)
- janah - Marco Hinz (2017 Aug 4) With fix for Mac from Kazunobu.
- apprentice - Romain Lafourcade (2017 Aug 6) remarks about help file #1964
Suggested by Hiroki Kokubun: Block insert doesn't work if the first line is auto-indented. (Christian
- [Iceberg](https://github.com/cocopon/iceberg.vim) (my one) Brabandt, 2018 Apr 4, #2778)
- [hybrid](https://github.com/w0ng/vim-hybrid)
Include solarized color scheme?, it does not support termguicolors. Errors found with random data:
-> Make check for colorscheme that it's sane. heap-buffer-overflow in alist_add (#2472)
Patch to avoid bad highlighting caused by #if. (ichizok, #2731)
Patch to make mkdir() more like the shell command. (James McCoy, #2775)
Implement option_save() and option_restore()? Or remove the help.
Patch for static analysis warnings. (Christian Brabandt, 2018 Apr 1, #2770)
Patch to refactor ex_helpgrep. (Yegappan, #2766, 2018 Mar 30)
Also in email, take the one with a test.
Looks like an error for inserting register makes ":file other" not work.
(Tom M, 2018 Mar 28) Reset did_emsg after inserting a register.
Or at the top of the loop? (Apr 4)
Patch to fix mouse pointer after :tselect. (Hirohito Higashi, #2709)
How to reproduce the problem?
Patch to avoid job killed when I/O is disconnected. (ichizok, #2734)
When opening foo/x.txt and bar/x.txt get swap file warning. Should check the
file name. (Juergen Weigert)
Compiler warnings (geeknik, 2017 Oct 26): Compiler warnings (geeknik, 2017 Oct 26):
- signed integer overflow in do_sub() (#2249) - signed integer overflow in do_sub() (#2249)
- signed integer overflow in get_address() (#2248) - signed integer overflow in get_address() (#2248)
- signed integer overflow in getdecchrs() (#2254) - signed integer overflow in getdecchrs() (#2254)
- signed integer overflow in nfa_regatom() (#2251)
- undefined left shift in get_string_tv() (#2250) - undefined left shift in get_string_tv() (#2250)
When starting with --clean packages under "start" are not loaded. Make this Tests failing for "make testgui" with GTK:
work: :packadd START {name} similar to :runtime START name - Test_setbufvar_options()
- Test_exit_callback_interval()
Mouse pointer sticks to stop shape. Only on Windows GUI? #2709
Patch to make log_tr() use variable arguments. (Ichizok, 2018 Mar 20, #2730)
balloon_show() does not work properly in the terminal. (Ben Jackson, 2017 Dec
20, #2481)
Also see #2352, want better control over balloon, perhaps set the position.
Try out background make plugin:
https://github.com/AndrewVos/vim-make-background
or asyncmake:
https://github.com/yegappan/asyncmake
Add a ModeChanged autocommand that has an argument indicating the old and new
mode. Also used for switching Terminal mode.
Cursor in status line after search. (#2530)
Patch to fix that an empty buffer remains when using :argedit. (Christian,
#2713) Updated patch.
Patch to fix interaction between 'virtualedit' and i_CTRL-G_j. (Christian
Brabandt, #2743)
Cursor in wrong position when line wraps. (#2540)
Add an option similar to 'lazyredraw' to skip redrawing while executing a
script or function.
Alternative manpager.vim. (Enno, 2018 Jan 5, #2529)
Patch to add more flags to :ls. (Marcin Szamotulski, #2751)
Does setting 'cursorline' cause syntax highlighting to slow down? Perhaps is
mess up the cache? (Mike Lee Williams, 2018 Jan 27, #2539)
Also: 'foldtext' is evaluated too often. (Daniel Hahler, #2773)
When using :packadd files under "later" are not used, which is inconsistent When using :packadd files under "later" are not used, which is inconsistent
with packages under "start". (xtal8, #1994) with packages under "start". (xtal8, #1994)
Column number is wrong when using 'linebreak' and 'wrap'. (Keith Smiley, 2018
Jan 15, #2555)
":bufdo e" disabled syntax HL in windows other than the current. (BPJ)
Check argument of systemlist(). (Pavlov)
Patch to add reg_executing() and reg_recording(). (Hirohito Higashi, #2745)
No maintainer for Vietnamese translations.
No maintainer for Simplified Chinese translations.
When 'inchsearch' and 'hlsearch' are set /\v highlights everything.
Also see #2337
Starting job with cwd option, when the directory does not exist, gives a
confusing error message. (Wang Shidong, 2018 Jan 2, #2519)
Patch to add "module" to quickfix entries. (Marcin Szamotulski, Coot, 2017 Jun
8, #1757) Now part of #2322. Or #2327? #1757 was re-opened, include that
first.
Add the debug command line history to viminfo.
Avoid that "sign unplace id" does a redraw right away, esp. when there is a
sequence of these commands. (Andy Stewart, 2018 Mar 16)
ch_sendraw() with long string does not try to read inbetween, which may cause
a deadlock if the reading side is waiting for the write to finish. (Nate
Bosch, 2018 Jan 13, #2548)
Add Makefiles to the runtime/spell directory tree, since nobody uses Aap.
Will have to explain the manual steps (downloading the .aff and .dic files,
applying the diff, etc.
User dictionary ~/.vim/spell/lang.utf-8.add not used for spell checking until a
word is re-added to it. (Matej Cepl, 2018 Feb 6)
Fold at end of the buffer behaves inconsistently. (James McCoy, 2017 Oct 9) Fold at end of the buffer behaves inconsistently. (James McCoy, 2017 Oct 9)
With foldmethod=syntax and nofoldenable comment highlighting isn't removed. With foldmethod=syntax and nofoldenable comment highlighting isn't removed.
@ -169,6 +185,9 @@ With foldmethod=syntax and nofoldenable comment highlighting isn't removed.
Using 'wildignore' also applies to literally entered file name. Also with Using 'wildignore' also applies to literally entered file name. Also with
:drop (remote commands). :drop (remote commands).
Patch to use the xdiff library instead of external diff. (Christian Brabandt,
2018 Mar 20, #2732)
"gvim --remote" from a directory with non-word characters changes the current "gvim --remote" from a directory with non-word characters changes the current
directory (Paulo Marcel Coelho Arabic, 2017 Oct 30, #2266) directory (Paulo Marcel Coelho Arabic, 2017 Oct 30, #2266)
Also see #1689. Also see #1689.
@ -176,19 +195,87 @@ Also see #1689.
ml_get error when using a Python. (Yggdroot, 2017 Jun 1, #1737) ml_get error when using a Python. (Yggdroot, 2017 Jun 1, #1737)
Lemonboy can reproduce (2017 Jun 5) Lemonboy can reproduce (2017 Jun 5)
crash when removing an element while inside map(). (Nikolai Pavlov, 2018 Feb
17, #2652)
When 'virtualedit' is "all" and 'cursorcolumn' is set, the wrong column may be
highlighted. (van-de-bugger, 2018 Jan 23, #2576)
Patch to parse ":line" in tags file and use it for search. (Daniel Hahler,
#2546) Fixes #1057. Missing a test.
Patch to add winlayout() function. (Yegappan Lakshmanan, 2018 Jan 4)
No profile information for function that executes ":quit". (Daniel Hahler,
2017 Dec 26, #2501)
Get a "No Name" buffer when 'hidden' is set and opening a new window from the
quickfix list. (bfrg, 2018 Jan 22, #2574)
CTRL-X on zero gets stuck on 0xfffffffffffffffe. (Hengyang Zhao, #2746)
A function on a dictionary is not profiled. (ZyX, 2010 Dec 25)
Patch to fix E806. (Dominique, 2017 Nov 22, #2368)
Kazunobu Kuriyama: caused by XtSetLanguageProc().
Patch to fix GUI find/replace dialog. (kiloliter, 2017 Dec 11, report in
#2418, fix in #2435)
Invalid range error when using BufWinLeave for closing terminal.
(Gabriel Barta, 2017 Nov 15, #2339)
Using an external diff is inefficient. Not all systems have a good diff
program available (esp. MS-Windows). Would be nice to have in internal diff
implementation. Can then also use this for displaying changes within a line.
Olaf Dabrunz is working on this. (10 Jan 2016)
9 Instead invoking an external diff program, use builtin code. One can be
found here: http://www.ioplex.com/~miallen/libmba/dl/src/diff.c
It's complicated and badly documented.
Alternative: use the xdiff library. Patch from Christian Brabandt, 2018 Mar
2018, #2732)
ml_get errors with buggy script. (Dominique, 2017 Apr 30) ml_get errors with buggy script. (Dominique, 2017 Apr 30)
Error in emsg with buggy script. (Dominique, 2017 Apr 30) Error in emsg with buggy script. (Dominique, 2017 Apr 30)
Using CTRL-G j in insert mode in combination with 'virtualedit' doesn't work
as expected. (Rich, 2018 March 23, #2743)
Patch to fix encoding in print document name (Yasuhiro Matsumoto, 2017 Dec 20,
#2478)
Patch to copy buffer-local options before buffer leaves the window. (Bjorn
Linse, 2017 Nov 14, #2336)
Join truncates xml comment. (Dmitrii Tcyganok, 2017 Dec 24, #2494)
Requires 'formatoptions' to include "j". (Gary Johnson, 2017 Dec 24)
Patch to support hunspell. (Matej Cepl, Jan 2018, #2500) Based on older patch
in #846)
Doesn't work on Windows yet. Not ready to included, hard coded paths.
When a timer is running and typing CTRL-R on the command line, it is not When a timer is running and typing CTRL-R on the command line, it is not
redrawn properly. (xtal8, 2017 Oct 23, #2241) redrawn properly. (xtal8, 2017 Oct 23, #2241)
In an optional package the "after" directory is not scanned?
(Renato Fabbri, 2018 Feb 22)
Universal solution to detect if t_RS is working, using cursor position. Universal solution to detect if t_RS is working, using cursor position.
Koichi Iwamoto, #2126 Koichi Iwamoto, #2126
Patch to fix cmdline abbreviation after '<,'>. (Christian Brabandt, 2017 Nov
13, on issue #2320)
Patch for Neovim concerning restoring when closing help window. (glacambre
neovim #7431)
Default install on MS-Windows should source defaults.vim. Default install on MS-Windows should source defaults.vim.
Ask whether to use Windows or Vim key behavior? Ask whether to use Windows or Vim key behavior?
Patch for improving detecting Ruby on Mac in configure. (Ilya Mikhaltsou, 2017
Nov 21)
When using command line window, CmdlineLeave is triggered without When using command line window, CmdlineLeave is triggered without
CmdlineEnter. (xtal8, 2017 Oct 30, #2263) CmdlineEnter. (xtal8, 2017 Oct 30, #2263)
Add some way to get the nested state. Although CmdwinEnter is obviously Add some way to get the nested state. Although CmdwinEnter is obviously
@ -196,14 +283,26 @@ always nested.
matchit hasn't been maintained for a long time. #955. matchit hasn't been maintained for a long time. #955.
MS-Windows: buffer completetion doesn't work when using backslash (or slash) Patch to add variable name after "scope add". (Eddie Lebow, 2018 Feb 7, #2620)
Maybe not needed?
Problem with 'delcombine'. (agguser, 2017 Nov 10, #2313)
MS-Windows: buffer completion doesn't work when using backslash (or slash)
for a path separator. (xtal8, #2201) for a path separator. (xtal8, #2201)
Patch to adjust to DPI setting for GTK. (Roel van de Kraats, 2017 Nov 20,
#2357)
Test runtime files. Test runtime files.
Start with filetype detection: testdir/test_filetype.vim Start with filetype detection: testdir/test_filetype.vim
Window not closed when deleting buffer. (Harm te Hennepe, 2017 Aug 27, #2029) Window not closed when deleting buffer. (Harm te Hennepe, 2017 Aug 27, #2029)
Duplication of completion suggestions for ":!hom". Issue #539.
Patch by Christian, 2016 Jan 29
Another patch in #2733.
>
Add options_default() / options_restore() to set several options to Vim Add options_default() / options_restore() to set several options to Vim
defaults for a plugin. Comments from Zyx, 2017 May 10. defaults for a plugin. Comments from Zyx, 2017 May 10.
Perhaps use a vimcontext / endvimcontext command block. Perhaps use a vimcontext / endvimcontext command block.
@ -217,15 +316,19 @@ Still happens (2017 Jul 9)
When bracketed paste is used, pasting at the ":append" prompt does not get the When bracketed paste is used, pasting at the ":append" prompt does not get the
line breaks. (Ken Takata, 2017 Aug 22) line breaks. (Ken Takata, 2017 Aug 22)
Patch for 24 bit color support in MS-Windows console, using vcon. (Nobuhiro The ":move" command does not honor closed folds. (Ryan Lue, #2351)
Takasaki, 2017 Oct 1, #2060). Ready to include now?
Patch to fix increment/decrement not working properly when 'virtualedit' is
set. (Hirohito Higashi, 2016 Aug 1, #923)
Memory leaks in test_channel? (or is it because of fork()) Memory leaks in test_channel? (or is it because of fork())
Memory leak in test_arabic.
Using uninitialized value in test_crypt. Using uninitialized value in test_crypt.
Memory leaks in test_escaped_glob
Patch to make gM move to middle of line. (Yasuhiro Matsumoto, Sep 8, #2070) Patch to make gM move to middle of line. (Yasuhiro Matsumoto, Sep 8, #2070)
Cannot copy modeless selection when cursor is inside it. (lkintact, #2300)
Include Haiku port. (Adrien Destugues, Siarzhuk Zharski, 2013 Oct 24) Include Haiku port. (Adrien Destugues, Siarzhuk Zharski, 2013 Oct 24)
It can replace the BeOS code, which is likely not used anymore. It can replace the BeOS code, which is likely not used anymore.
Now on github: #1856. Updated Oct 2017 Now on github: #1856. Updated Oct 2017
@ -252,6 +355,9 @@ Alternatives for ~:
The ++ options for the :edit command are also useful on the Vim command line. The ++ options for the :edit command are also useful on the Vim command line.
When recovering a file, put the swap file name in b:recovered_swapfile. Then
a command can delete it.
Overlong utf-8 sequence is displayed wrong. (Harm te Hennepe, 2017 Sep 14, Overlong utf-8 sequence is displayed wrong. (Harm te Hennepe, 2017 Sep 14,
#2089) Patch with possible solution by Björn Linse. #2089) Patch with possible solution by Björn Linse.
@ -266,6 +372,22 @@ Seems to happen when the selection is requested the second time, but before
clip_x11_convert_selection_cb() is invoked, thus in X library code. clip_x11_convert_selection_cb() is invoked, thus in X library code.
Kazunobu Kuriyama is working on a proper fix. (2017 Jul 25) Kazunobu Kuriyama is working on a proper fix. (2017 Jul 25)
Include a few color schemes, based on popularity:
http://www.vim.org/scripts/script_search_results.php?keywords=&script_type=color+scheme&order_by=rating&direction=descending&search=search
http://vimawesome.com/?q=tag:color-scheme
Use names that indicate their appearance (Christian Brabandt, 2017 Aug 3)
- monokai - Xia Crusoe (2017 Aug 4)
- seoul256 - Christian Brabandt (2017 Aug 3)
- gruvbox - Christian Brabandt (2017 Aug 3) (simplified version from
Lifepillar, 2018 Jan 22, #2573)
- janah - Marco Hinz (2017 Aug 4)
- apprentice - Romain Lafourcade (2017 Aug 6) remarks about help file #1964
Suggested by Hiroki Kokubun:
- [Iceberg](https://github.com/cocopon/iceberg.vim) (my one)
- [hybrid](https://github.com/w0ng/vim-hybrid)
Include solarized color scheme?, it does not support termguicolors.
- Sanitized version of pablo (Lifepillar, 2017 Nov 21)
Problem with three-piece comment. (Michael Lee, 2017 May 11, #1696) Problem with three-piece comment. (Michael Lee, 2017 May 11, #1696)
Creating a partial with an autoload function is confused about the "self" Creating a partial with an autoload function is confused about the "self"
@ -290,8 +412,11 @@ Patch to add argument to :cquit. (Thinca, 2014 Oct 12)
Python: After "import vim" error messages only show the first line of the Python: After "import vim" error messages only show the first line of the
stack trace. (Yggdroot, 2017 Jul 28, #1887) stack trace. (Yggdroot, 2017 Jul 28, #1887)
Patch to add "module" to quickfix entries. (Marcin Szamotulski, Coot, 2017 Jun Profile of a dict function is lost when the dict is deleted. Would it be
8, #1757) possible to collect this? (Daniel Hahler, #2350)
Add `:filter` support for various commands (Marcin Szamotulski, 2017 Nov 12
#2322) Now in #2327?
When checking if a bufref is valid, also check the buffer number, to catch the When checking if a bufref is valid, also check the buffer number, to catch the
case of :bwipe followed by :new. case of :bwipe followed by :new.
@ -367,7 +492,7 @@ Perhaps simpler: actually delete the mappings. Use maplist() to list matching
mappings (with a lhs prefix, like maparg()), mapdelete() to delete, mappings (with a lhs prefix, like maparg()), mapdelete() to delete,
maprestore() to restore (using the output of maplist()). maprestore() to restore (using the output of maplist()).
Add an argument to :mkvimrc (or add aother command) to skip mappings from Add an argument to :mkvimrc (or add another command) to skip mappings from
plugins (source is a Vim script). No need to put these in a .vimrc, they will plugins (source is a Vim script). No need to put these in a .vimrc, they will
be defined when the plugin is loaded. be defined when the plugin is loaded.
@ -506,14 +631,6 @@ Patch to be able to separately map CTRL-H and BS on Windows.
When 'completeopt' has "noselect" does not insert a newline. (Lifepillar, 2017 When 'completeopt' has "noselect" does not insert a newline. (Lifepillar, 2017
Apr 23, #1653) Apr 23, #1653)
Using an external diff is inefficient. Not all systems have a good diff
program available (esp. MS-Windows). Would be nice to have in internal diff
implementation. Can then also use this for displaying changes within a line.
Olaf Dabrunz is working on this. (10 Jan 2016)
9 Instead invoking an external diff program, use builtin code. One can be
found here: http://www.ioplex.com/~miallen/libmba/dl/src/diff.c
It's complicated and badly documented.
Window resizing with 'winfixheight': With a vertical split the height changes Window resizing with 'winfixheight': With a vertical split the height changes
anyway. (Tommy allen, 2017 Feb 21, #1502) anyway. (Tommy allen, 2017 Feb 21, #1502)
@ -529,8 +646,6 @@ Patch to make it possible to extend a list with itself.
Patch to add Zstandard compressed file support. (Nick Terrell, 2016 Oct 24) Patch to add Zstandard compressed file support. (Nick Terrell, 2016 Oct 24)
Patch to add trim() function. (Bukn, 2016 Nov 25, #1280)
Patch to add MODIFIED_BY to MSVC build file. (Chen Lei, 2016 Nov 24, #1275) Patch to add MODIFIED_BY to MSVC build file. (Chen Lei, 2016 Nov 24, #1275)
Patch to change argument of :marks. (LemonBoy, 2017 Jan 29, #1426) Patch to change argument of :marks. (LemonBoy, 2017 Jan 29, #1426)
@ -553,6 +668,78 @@ no longer support.
sort() is not stable when using numeric/float sort (Nikolay Pavlov, 2016 Sep sort() is not stable when using numeric/float sort (Nikolay Pavlov, 2016 Sep
4#1038) 4#1038)
+channel:
- Add a separate timeout for opening a socket. Currently it's fixed at 50
msec, which is too small for a remote connection. (tverniquet, #2130)
- Problem with stderr on Windows? (Vincent Rischmann, 2016 Aug 31, #1026)
- Writing raw mode to a buffer should still handle NL characters as line
breaks. (Dmitry Zotikov, 2017 Aug 16)
- When out_cb executes :sleep, the close_cb may be invoked. (Daniel Hahler,
2016 Dec 11, #1320)
- Implement |job-term| ?
- Channel test fails with Motif. Sometimes kills the X11 server.
- When a message in the queue but there is no callback, drop it after a while?
Add timestamp to queued messages and callbacks with ID, remove after a
minute. Option to set the droptime.
- Add an option to drop text of very long lines? Default to 1 Mbyte.
- Add remark about undo sync, is there a way to force it?
- When starting a job, have an option to open the server socket, so we know
the port, and pass it to the command with --socket-fd {nr}. (Olaf Dabrunz,
Feb 9) How to do this on MS-Windows?
- For connection to server, a "keep open" flag would be useful. Retry
connecting in the main loop with zero timeout.
- job_start(): run job in a newly opened terminal (not a terminal window).
With xterm could use -S{pty}.
Although user could use "xterm -e 'cmd arg'".
Regexp problems:
- When search pattern has the base character both with and without combining
character, search fails. E.g. "รรีบ" in "การรีบรักใคร". (agguser, #2312)
- [:space:] only matches ASCII spaces. Add [:white:] for all space-like
characters, esp. including 0xa0. Use character class zero.
- Since 7.4.704 the old regex engine fails to match [[:print:]] in 0xf6.
(Manuel Ortega, 2016 Apr 24)
Test fails on Mac. Avoid using isalpha(), isalnum(), etc? Depends on
LC_CTYPE
- The old engine does not find a match for "/\%#=1\(\)\{80}", the new engine
matches everywhere.
- Using win_linetabsize() can still be slow. Cache the result, store col and
vcol. Reset them when moving to another line.
- Very slow with a long line and Ruby highlighting. (John Whitley, 2014 Dec 4)
- Bug with pattern: '\vblock (\d+)\.\n.*\d+%(\1)@<!\.$'
(Lech Lorens, 2014 Feb 3)
- Issue 164: freeze on regexp search.
- Ignorecase not handled properly for multi-byte characters. (Axel Bender,
2013 Dec 11)
- Using \@> and \?. (Brett Stahlman, 2013 Dec 21) Remark from Marcin
Szamotulski; Remark from Brett 2014 Jan 6 and 7.
- NFA regexp doesn't handle \%<v correctly. (Ingo Karkat, 2014 May 12)
- Does not work with NFA regexp engine:
\%u, \%x, \%o, \%d followed by a composing character
- Search for \%d0\+ may fail with E363. (Christian Brabandt, 2016 Oct 4)
- \%'[ does not work. '%'] does work. (Masaaki Nakamura, 2016 Apr 4)
- Bug relating to back references. (Ingo Karkat, 2014 Jul 24)
- New RE does not give an error for empty group: "\(\)\{2}" (Dominique Pelle,
2015 Feb 7)
- Using back reference before the capturing group sometimes works with the old
engine, can we do this with the new engine? E.g. with
"/\%(<\1>\)\@<=.*\%(<\/\(\w\+\)>\)\@=" matching text inside HTML tags.
This problem is probably the same: "\%(^\1.*$\n\)\@<=\(\d\+\).*$".
(guotuofeng, 2015 Jun 22)
- Strange matching with "\(Hello\n\)\@<=A". (Anas Syed, 2015 Feb 12)
- Problem with \v(A)@<=b+\1c. (Issue 334)
- Diff highlighting can be very slow. (Issue 309)
- Using %> for a virtual column has a check based on 'tabsize'. Better would
be to cache the result of win_linetabsize(col), storing both col and vcol,
and use them to decide whether win_linetabsize() needs to be called. Reset
col and vcol when moving to another line.
- this doesn't work: "syntax match ErrorMsg /.\%9l\%>20c\&\%<28c/". Leaving
out the \& works. Seems any column check after \& fails.
- Difference between two engines: ".*\zs\/\@>\/" on text "///"
(Chris Paul, 2016 Nov 13) New engine not greedy enough?
Another one: echom matchstr(" sdfsfsf\n sfdsdfsdf",'[^\n]*')
(2017 May 15, #1252)
Patch to add "cmdline" completion to getcompletion(). (Shougo, Oct 1, #1140) Patch to add "cmdline" completion to getcompletion(). (Shougo, Oct 1, #1140)
Feature request: Complete members of a dictionary. (Luc Hermitte, 2017 Jan 4, Feature request: Complete members of a dictionary. (Luc Hermitte, 2017 Jan 4,
@ -582,7 +769,7 @@ Probably list of keystrokes, with some annotations for mode changes.
Could store in logfile to be able to analyse it with an external command. Could store in logfile to be able to analyse it with an external command.
E.g. to see when's the last time a plugin command was used. E.g. to see when's the last time a plugin command was used.
execute() cannot be used with command completeion. (Daniel Hahler, 2016 Oct 1, execute() cannot be used with command completion. (Daniel Hahler, 2016 Oct 1,
#1141) #1141)
cmap using execute() has side effects. (Killthemule, 2016 Aug 17, #983) cmap using execute() has side effects. (Killthemule, 2016 Aug 17, #983)
@ -636,9 +823,6 @@ Repeating 'opfunc' in a function only works once. (Tarmean, 2016 Jul 15, #925)
Have a way to get the call stack, in a function and from an exception. Have a way to get the call stack, in a function and from an exception.
#1125 #1125
Patch to add 'pythonhome' and 'pythonthreehome' options. (Kazuki Sakamoto,
2016 Nov 21, #1266)
Second problem in #966: ins_compl_add_tv() uses get_dict_string() multiple Second problem in #966: ins_compl_add_tv() uses get_dict_string() multiple
times, overwrites the one buffer. (Nikolay Pavlov, 2016 Aug 5) times, overwrites the one buffer. (Nikolay Pavlov, 2016 Aug 5)
@ -664,9 +848,6 @@ emoji_width table has only one entry.
It's possible to add ",," to 'wildignore', an empty entry. Causes problems. It's possible to add ",," to 'wildignore', an empty entry. Causes problems.
Reject the value? #710. Reject the value? #710.
Patch to fix increment/decrement not working properly when 'virtualedit' is
set. (Hirohito Higashi, 2016 Aug 1, #923)
When doing "vi buf.md" a BufNew autocommand for *.md is not triggered. When doing "vi buf.md" a BufNew autocommand for *.md is not triggered.
Because of using the initial buffer? (Dun Peal, 2016 May 12) Because of using the initial buffer? (Dun Peal, 2016 May 12)
@ -696,9 +877,6 @@ Appveyor build with self-installing executable, includes getting most
interfaces: https://github.com/k-takata/vim/tree/chrisbra-appveyor-build interfaces: https://github.com/k-takata/vim/tree/chrisbra-appveyor-build
result: https://ci.appveyor.com/project/k-takata/vim/history result: https://ci.appveyor.com/project/k-takata/vim/history
Duplication of completion suggestions for ":!hom". Issue 539.
Patch by Christian, 2016 Jan 29
>
Problem that a previous silent ":throw" causes a following try/catch not to Problem that a previous silent ":throw" causes a following try/catch not to
work. (ZyX, 2013 Sep 28) With examples: (Malcolm Rowe, 2015 Dec 24) work. (ZyX, 2013 Sep 28) With examples: (Malcolm Rowe, 2015 Dec 24)
@ -753,12 +931,6 @@ directory exists. (Sergio Gallelli, 2013 Dec 29)
In debug mode one can inspect variables, but not the function parameters In debug mode one can inspect variables, but not the function parameters
(starting with a:). (Luc Hermitte, 2017 Jan 4, #1352) (starting with a:). (Luc Hermitte, 2017 Jan 4, #1352)
7 Add a watchpoint in the debug mode: An expression that breaks execution
when evaluating to non-zero. Add the "watchadd expr" command, stop when
the value of the expression changes. ":watchdel" deletes an item,
":watchlist" lists the items. (Charles Campbell)
Patch by Christian Brabandt, 2016 Jun 10, #859
If ":bd" also closes a Tab page then the " mark is not set. (Harm te Hennepe, If ":bd" also closes a Tab page then the " mark is not set. (Harm te Hennepe,
2016 Apr 25, #780) 2016 Apr 25, #780)
@ -887,9 +1059,6 @@ Update Aug 14.
When using --remote-tab on MS-Windows 'encoding' hasn't been initialized yet, When using --remote-tab on MS-Windows 'encoding' hasn't been initialized yet,
the file name ends up encoded wrong. (Raul Coronado, 2015 Dec 21) the file name ends up encoded wrong. (Raul Coronado, 2015 Dec 21)
Patch for problem with restoring screen on Windows. (Nobuhiro Takasaki, 2015
Sep 10)
Example in editing.txt uses $HOME with the expectation that it ends in a Example in editing.txt uses $HOME with the expectation that it ends in a
slash. For me it does, but perhaps not for everybody. Add a function that slash. For me it does, but perhaps not for everybody. Add a function that
inserts a slash when needed? pathconcat(dir, path) (Thilo Six, 2015 Aug 12) inserts a slash when needed? pathconcat(dir, path) (Thilo Six, 2015 Aug 12)
@ -936,9 +1105,6 @@ Doesn't work completely (Dominique Orban)
Patch to add a "literal" argument to bufnr(). (Olaf Dabrunz, 2015 Aug 4) Patch to add a "literal" argument to bufnr(). (Olaf Dabrunz, 2015 Aug 4)
Cannot execute the shell when it's in a directory with a space.
Issue #459.
When a session file is created and there are "nofile" buffers, these are not When a session file is created and there are "nofile" buffers, these are not
filled. Need to trigger BufReadCmd autocommands. Also handle deleting the filled. Need to trigger BufReadCmd autocommands. Also handle deleting the
initial empty buffer better. (ZyX, 2015 March 8) initial empty buffer better. (ZyX, 2015 March 8)
@ -995,13 +1161,11 @@ Patch to open folds for 'incsearch'. (Christian Brabandt, 2015 Jan 6)
Patch for building a 32bit Vim with 64bit MingW compiler. Patch for building a 32bit Vim with 64bit MingW compiler.
(Michael Soyka, 2014 Oct 15) (Michael Soyka, 2014 Oct 15)
Delete old code in os_msdos.c, mch_FullName().
Patch: On MS-Windows shellescape() may have to triple double quotes. Patch: On MS-Windows shellescape() may have to triple double quotes.
(Ingo Karkat, 2015 Jan 16) (Ingo Karkat, 2015 Jan 16)
Patch for variable tabstops. On github (Christian Brabandt, 2014 May 15) Patch for variable tabstops. On github (Christian Brabandt, 2014 May 15)
Update 2016 Jun 10, # 857 Update 2018 March 12, #2711
Redo only remembers the last change. Could use "{count}g." to redo an older Redo only remembers the last change. Could use "{count}g." to redo an older
change. How does the user know which change? At least have a way to list change. How does the user know which change? At least have a way to list
@ -1189,13 +1353,6 @@ Patch to allow more types in remote_expr(). (Lech Lorens, 2014 Jan 5)
Doesn't work for string in list. Other way to pass all types of variables Doesn't work for string in list. Other way to pass all types of variables
reliably? reliably?
Using ":call foo#d.f()" doesn't autoload the "foo.vim" file.
That is, calling a dictionary function on an autoloaded dict.
Works OK for echo, just not for ":call" and ":call call()". (Ted, 2011 Mar
17)
Patch by Christian Brabandt, 2013 Mar 23.
Not 100% sure this is the right solution.
Patch to add {lhs} to :mapclear: clear all maps starting with {lhs}. Patch to add {lhs} to :mapclear: clear all maps starting with {lhs}.
(Christian Brabandt, 2013 Dec 9) (Christian Brabandt, 2013 Dec 9)
@ -1464,9 +1621,6 @@ doesn't jump to the correct line with :cfirst. (ZyX, 2011 Sep 18)
Behavior of i" and a" text objects isn't logical. (Ben Fritz, 2013 Nov 19) Behavior of i" and a" text objects isn't logical. (Ben Fritz, 2013 Nov 19)
7 Make "ga" show the digraph for a character, if it exists.
Patch from Christian Brabandt, 2011 Aug 19.
maparg() does not show the <script> flag. When temporarily changing a maparg() does not show the <script> flag. When temporarily changing a
mapping, how to restore the script ID? mapping, how to restore the script ID?
@ -1484,9 +1638,6 @@ Build problem with small features on Mac OS X 10.6. (Rainer, 2011 Jan 24)
"0g@$" puts '] on last byte of multi-byte. (ZyX, 2011 Jan 22) "0g@$" puts '] on last byte of multi-byte. (ZyX, 2011 Jan 22)
Patch to add TextDeletePost and TextYankPost events. (Philippe Vaucher, 2011
May 24) Update May 26.
Patch for :tabrecently. (Hirokazu Yoshida, 2012 Jan 30) Patch for :tabrecently. (Hirokazu Yoshida, 2012 Jan 30)
Problem with "syn sync grouphere". (Gustavo Niemeyer, 2011 Jan 27) Problem with "syn sync grouphere". (Gustavo Niemeyer, 2011 Jan 27)
@ -1866,8 +2017,6 @@ Haskell, 2010 Aug 24)
This does not work yet: "a\(%C\)" (get composing characters into a submatch). This does not work yet: "a\(%C\)" (get composing characters into a submatch).
A function on a dictionary is not profiled. (ZyX, 2010 Dec 25)
Inconsistent: starting with $LANG set to es_ES.utf-8 gives Spanish Inconsistent: starting with $LANG set to es_ES.utf-8 gives Spanish
messages, even though locale is not supported. But ":lang messages messages, even though locale is not supported. But ":lang messages
es_ES.utf-8" gives an error and doesn't switch messages. (Dominique Pelle, es_ES.utf-8" gives an error and doesn't switch messages. (Dominique Pelle,
@ -4232,6 +4381,8 @@ Perl interface:
Shared libraries: Shared libraries:
8 libcall() can keep the library around instead of always calling dlclose().
(Jason Felice, 2018 Mar 20)
6 Add support for loading shared libraries, and calling functions in it. 6 Add support for loading shared libraries, and calling functions in it.
:libload internal-name libname :libload internal-name libname
:libunload internal-name :libunload internal-name
@ -4454,8 +4605,6 @@ Autocommands:
Error - When an error happens Error - When an error happens
NormalEnter - Entering Normal mode NormalEnter - Entering Normal mode
ReplaceEnter - Entering Replace mode ReplaceEnter - Entering Replace mode
CmdEnter - Entering Cmdline mode (with type of cmdline to allow
different mapping)
VisualEnter - Entering Visual mode VisualEnter - Entering Visual mode
*Leave - Leaving a mode (in pair with the above *Enter) *Leave - Leaving a mode (in pair with the above *Enter)
VimLeaveCheck - Before Vim decides to exit, so that it can be cancelled VimLeaveCheck - Before Vim decides to exit, so that it can be cancelled
@ -4653,7 +4802,7 @@ Command line history:
- Add "KeyWasTyped" flag: It's reset before each command and set when a - Add "KeyWasTyped" flag: It's reset before each command and set when a
character from the keyboard is consumed. Value is used to decide to put a character from the keyboard is consumed. Value is used to decide to put a
command line in history or not. Put line in history if it didn't command line in history or not. Put line in history if it didn't
completely resulted from one mapping. completely result from one mapping.
- When using ":browse", also put the resulting edit command in the history, - When using ":browse", also put the resulting edit command in the history,
so that it can be repeated. (Demirel) so that it can be repeated. (Demirel)

View File

@ -1,4 +1,4 @@
*usr_05.txt* For Vim version 8.0. Last change: 2016 Mar 28 *usr_05.txt* For Vim version 8.0. Last change: 2018 Feb 20
VIM USER MANUAL - by Bram Moolenaar VIM USER MANUAL - by Bram Moolenaar
@ -48,6 +48,14 @@ For MS-DOS and MS-Windows you can use one of these:
$HOME/_vimrc ~ $HOME/_vimrc ~
$VIM/_vimrc ~ $VIM/_vimrc ~
If you are creating the vimrc file for the first time, it is recommended to
put this line at the top: >
source $VIMRUNTIME/defaults.vim
This initializes Vim for new users (as opposed to traditional Vi users). See
|defaults.vim| for the details.
The vimrc file can contain all the commands that you type after a colon. The The vimrc file can contain all the commands that you type after a colon. The
most simple ones are for setting options. For example, if you want Vim to most simple ones are for setting options. For example, if you want Vim to
always start with the 'incsearch' option on, add this line your vimrc file: > always start with the 'incsearch' option on, add this line your vimrc file: >

View File

@ -1,4 +1,4 @@
*usr_24.txt* For Vim version 8.0. Last change: 2006 Jul 23 *usr_24.txt* For Vim version 8.0. Last change: 2018 Mar 18
VIM USER MANUAL - by Bram Moolenaar VIM USER MANUAL - by Bram Moolenaar
@ -538,8 +538,8 @@ a 16 bit and a 32 bit number (e.g., for a Unicode character): >
*24.9* Digraphs *24.9* Digraphs
Some characters are not on the keyboard. For example, the copyright character Some characters are not on the keyboard. For example, the copyright character
(<EFBFBD>). To type these characters in Vim, you use digraphs, where two characters (©). To type these characters in Vim, you use digraphs, where two characters
represent one. To enter a <EFBFBD>, for example, you press three keys: > represent one. To enter a ©, for example, you press three keys: >
CTRL-K Co CTRL-K Co
@ -549,12 +549,12 @@ To find out what digraphs are available, use the following command: >
Vim will display the digraph table. Here are three lines of it: Vim will display the digraph table. Here are three lines of it:
AC ~_ 159 NS | 160 !I <EFBFBD> 161 Ct <EFBFBD> 162 Pd <EFBFBD> 163 Cu <EFBFBD> 164 Ye <EFBFBD> 165 ~ AC ~_ 159 NS | 160 !I ¡ 161 Ct ¢ 162 Pd £ 163 Cu ¤ 164 Ye ¥ 165 ~
BB <EFBFBD> 166 SE <EFBFBD> 167 ': <EFBFBD> 168 Co <EFBFBD> 169 -a <EFBFBD> 170 << <EFBFBD> 171 NO <EFBFBD> 172 ~ BB ¦ 166 SE § 167 ': ¨ 168 Co © 169 -a ª 170 << « 171 NO ¬ 172 ~
-- <EFBFBD> 173 Rg <EFBFBD> 174 'm <EFBFBD> 175 DG <EFBFBD> 176 +- <EFBFBD> 177 2S <EFBFBD> 178 3S <EFBFBD> 179 ~ -- ­ 173 Rg ® 174 'm ¯ 175 DG ° 176 +- ± 177 2S ² 178 3S ³ 179 ~
This shows, for example, that the digraph you get by typing CTRL-K Pd is the This shows, for example, that the digraph you get by typing CTRL-K Pd is the
character (<EFBFBD>). This is character number 163 (decimal). character (£). This is character number 163 (decimal).
Pd is short for Pound. Most digraphs are selected to give you a hint about Pd is short for Pound. Most digraphs are selected to give you a hint about
the character they will produce. If you look through the list you will the character they will produce. If you look through the list you will
understand the logic. understand the logic.
@ -569,9 +569,9 @@ that combination. Thus CTRL-K dP also works. Since there is no digraph for
You can define your own digraphs. Example: > You can define your own digraphs. Example: >
:digraph a" <EFBFBD> :digraph a" ä
This defines that CTRL-K a" inserts an <EFBFBD> character. You can also specify the This defines that CTRL-K a" inserts an ä character. You can also specify the
character with a decimal number. This defines the same digraph: > character with a decimal number. This defines the same digraph: >
:digraph a" 228 :digraph a" 228

View File

@ -1,4 +1,4 @@
*usr_27.txt* For Vim version 8.0. Last change: 2010 Mar 28 *usr_27.txt* For Vim version 8.0. Last change: 2018 Jan 26
VIM USER MANUAL - by Bram Moolenaar VIM USER MANUAL - by Bram Moolenaar
@ -225,9 +225,9 @@ specify a line offset, this can cause trouble. For example: >
/const/-2 /const/-2
This finds the next word "const" and then moves two lines up. If you This finds the next word "const" and then moves two lines up. If you
use "n" to search again, Vim could start at the current position and find the same use "n" to search again, Vim could start at the current position and find the
"const" match. Then using the offset again, you would be back where you started. same "const" match. Then using the offset again, you would be back where you
You would be stuck! started. You would be stuck!
It could be worse: Suppose there is another match with "const" in the next It could be worse: Suppose there is another match with "const" in the next
line. Then repeating the forward search would find this match and move two line. Then repeating the forward search would find this match and move two
lines up. Thus you would actually move the cursor back! lines up. Thus you would actually move the cursor back!

View File

@ -1,4 +1,4 @@
*usr_41.txt* For Vim version 8.0. Last change: 2017 Oct 15 *usr_41.txt* For Vim version 8.0. Last change: 2018 Mar 03
VIM USER MANUAL - by Bram Moolenaar VIM USER MANUAL - by Bram Moolenaar
@ -807,6 +807,8 @@ Buffers, windows and the argument list:
getbufinfo() get a list with buffer information getbufinfo() get a list with buffer information
gettabinfo() get a list with tab page information gettabinfo() get a list with tab page information
getwininfo() get a list with window information getwininfo() get a list with window information
getchangelist() get a list of change list entries
getjumplist() get a list of jump list entries
Command line: *command-line-functions* Command line: *command-line-functions*
getcmdline() get the current command line getcmdline() get the current command line
@ -883,9 +885,11 @@ Interactive: *interactive-functions*
GUI: *gui-functions* GUI: *gui-functions*
getfontname() get name of current font being used getfontname() get name of current font being used
getwinposx() X position of the GUI Vim window getwinpos() position of the Vim window
getwinposy() Y position of the GUI Vim window getwinposx() X position of the Vim window
getwinposy() Y position of the Vim window
balloon_show() set the balloon content balloon_show() set the balloon content
balloon_split() split a message for a balloon
Vim server: *server-functions* Vim server: *server-functions*
serverlist() return the list of server names serverlist() return the list of server names
@ -901,6 +905,7 @@ Vim server: *server-functions*
Window size and position: *window-size-functions* Window size and position: *window-size-functions*
winheight() get height of a specific window winheight() get height of a specific window
winwidth() get width of a specific window winwidth() get width of a specific window
win_screenpos() get screen position of a window
winrestcmd() return command to restore window sizes winrestcmd() return command to restore window sizes
winsaveview() get view of current window winsaveview() get view of current window
winrestview() restore saved view of current window winrestview() restore saved view of current window
@ -920,7 +925,8 @@ Testing: *test-functions*
assert_false() assert that an expression is false assert_false() assert that an expression is false
assert_true() assert that an expression is true assert_true() assert that an expression is true
assert_exception() assert that a command throws an exception assert_exception() assert that a command throws an exception
assert_fails() assert that a function call fails assert_beeps() assert that a command beeps
assert_fails() assert that a command fails
assert_report() report a test failure assert_report() report a test failure
test_alloc_fail() make memory allocation fail test_alloc_fail() make memory allocation fail
test_autochdir() enable 'autochdir' during startup test_autochdir() enable 'autochdir' during startup

View File

@ -1,4 +1,4 @@
*various.txt* For Vim version 8.0. Last change: 2017 Sep 16 *various.txt* For Vim version 8.0. Last change: 2018 Mar 29
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -40,23 +40,35 @@ CTRL-L Clear and redraw the screen. The redraw may happen
:as[cii] or *ga* *:as* *:ascii* :as[cii] or *ga* *:as* *:ascii*
ga Print the ascii value of the character under the ga Print the ascii value of the character under the
cursor in decimal, hexadecimal and octal. For cursor in decimal, hexadecimal and octal.
example, when the cursor is on a 'R': Mnemonic: Get Ascii value.
For example, when the cursor is on a 'R':
<R> 82, Hex 52, Octal 122 ~ <R> 82, Hex 52, Octal 122 ~
When the character is a non-standard ASCII character, When the character is a non-standard ASCII character,
but printable according to the 'isprint' option, the but printable according to the 'isprint' option, the
non-printable version is also given. When the non-printable version is also given.
character is larger than 127, the <M-x> form is also
printed. For example: When the character is larger than 127, the <M-x> form
is also printed. For example:
<~A> <M-^A> 129, Hex 81, Octal 201 ~ <~A> <M-^A> 129, Hex 81, Octal 201 ~
<p> <|~> <M-~> 254, Hex fe, Octal 376 ~ <p> <|~> <M-~> 254, Hex fe, Octal 376 ~
(where <p> is a special character) (where <p> is a special character)
The <Nul> character in a file is stored internally as The <Nul> character in a file is stored internally as
<NL>, but it will be shown as: <NL>, but it will be shown as:
<^@> 0, Hex 00, Octal 000 ~ <^@> 0, Hex 00, Octal 000 ~
If the character has composing characters these are If the character has composing characters these are
also shown. The value of 'maxcombine' doesn't matter. also shown. The value of 'maxcombine' doesn't matter.
Mnemonic: Get Ascii value. {not in Vi}
If the character can be inserted as a digraph, also
output the two characters that can be used to create
the character:
<ö> 246, Hex 00f6, Oct 366, Digr o: ~
This shows you can type CTRL-K o : to insert ö.
{not in Vi}
*g8* *g8*
g8 Print the hex values of the bytes used in the g8 Print the hex values of the bytes used in the
@ -294,7 +306,7 @@ g8 Print the hex values of the bytes used in the
Here is an overview of the features. Here is an overview of the features.
The first column shows the smallest version in which The first column shows the smallest version in which
they are included: they are included:
T tiny T tiny (always)
S small S small
N normal N normal
B big B big
@ -308,11 +320,14 @@ g8 Print the hex values of the bytes used in the
*+acl* |ACL| support included *+acl* |ACL| support included
*+ARP* Amiga only: ARP support included *+ARP* Amiga only: ARP support included
B *+arabic* |Arabic| language support B *+arabic* |Arabic| language support
N *+autocmd* |:autocmd|, automatic commands T *+autocmd* |:autocmd|, automatic commands
H *+autoservername* Automatically enable |clientserver| H *+autoservername* Automatically enable |clientserver|
m *+balloon_eval* |balloon-eval| support. Included when compiling with m *+balloon_eval* |balloon-eval| support in the GUI. Included when
supported GUI (Motif, GTK, GUI) and either compiling with supported GUI (Motif, GTK, GUI) and
Netbeans/Sun Workshop integration or |+eval| feature. either Netbeans/Sun Workshop integration or |+eval|
feature.
H *+balloon_eval_term* |balloon-eval| support in the terminal,
'balloonevalterm'
N *+browse* |:browse| command N *+browse* |:browse| command
N *+builtin_terms* some terminals builtin |builtin-terms| N *+builtin_terms* some terminals builtin |builtin-terms|
B *++builtin_terms* maximal terminals builtin |builtin-terms| B *++builtin_terms* maximal terminals builtin |builtin-terms|
@ -329,7 +344,7 @@ N *+comments* |'comments'| support
B *+conceal* "conceal" support, see |conceal| |:syn-conceal| etc. B *+conceal* "conceal" support, see |conceal| |:syn-conceal| etc.
N *+cryptv* encryption support |encryption| N *+cryptv* encryption support |encryption|
B *+cscope* |cscope| support B *+cscope* |cscope| support
m *+cursorbind* |'cursorbind'| support T *+cursorbind* |'cursorbind'| support
m *+cursorshape* |termcap-cursor-shape| support m *+cursorshape* |termcap-cursor-shape| support
m *+debug* Compiled for debugging. m *+debug* Compiled for debugging.
N *+dialog_gui* Support for |:confirm| with GUI dialog. N *+dialog_gui* Support for |:confirm| with GUI dialog.
@ -337,7 +352,7 @@ N *+dialog_con* Support for |:confirm| with console dialog.
N *+dialog_con_gui* Support for |:confirm| with GUI and console dialog. N *+dialog_con_gui* Support for |:confirm| with GUI and console dialog.
N *+diff* |vimdiff| and 'diff' N *+diff* |vimdiff| and 'diff'
N *+digraphs* |digraphs| *E196* N *+digraphs* |digraphs| *E196*
m *+directx* Win32 GUI only: DirectX and |'renderoptions'| *+directx* Win32 GUI only: DirectX and |'renderoptions'|
*+dnd* Support for DnD into the "~ register |quote_~|. *+dnd* Support for DnD into the "~ register |quote_~|.
B *+emacs_tags* |emacs-tags| files B *+emacs_tags* |emacs-tags| files
N *+eval* expression evaluation |eval.txt| N *+eval* expression evaluation |eval.txt|
@ -369,7 +384,7 @@ B *+langmap* |'langmap'|
N *+libcall* |libcall()| N *+libcall* |libcall()|
N *+linebreak* |'linebreak'|, |'breakat'| and |'showbreak'| N *+linebreak* |'linebreak'|, |'breakat'| and |'showbreak'|
N *+lispindent* |'lisp'| N *+lispindent* |'lisp'|
N *+listcmds* Vim commands for the list of buffers |buffer-hidden| T *+listcmds* Vim commands for the list of buffers |buffer-hidden|
and argument list |:argdelete| and argument list |:argdelete|
N *+localmap* Support for mappings local to a buffer |:map-local| N *+localmap* Support for mappings local to a buffer |:map-local|
m *+lua* |Lua| interface m *+lua* |Lua| interface
@ -414,7 +429,7 @@ N *+reltime* |reltime()| function, 'hlsearch'/'incsearch' timeout,
B *+rightleft* Right to left typing |'rightleft'| B *+rightleft* Right to left typing |'rightleft'|
m *+ruby* Ruby interface |ruby| m *+ruby* Ruby interface |ruby|
m *+ruby/dyn* Ruby interface |ruby-dynamic| |/dyn| m *+ruby/dyn* Ruby interface |ruby-dynamic| |/dyn|
N *+scrollbind* |'scrollbind'| T *+scrollbind* |'scrollbind'|
B *+signs* |:sign| B *+signs* |:sign|
N *+smartindent* |'smartindent'| N *+smartindent* |'smartindent'|
N *+startuptime* |--startuptime| argument N *+startuptime* |--startuptime| argument
@ -446,6 +461,7 @@ N *+virtualedit* |'virtualedit'|
S *+visual* Visual mode |Visual-mode| Always enabled since 7.4.200. S *+visual* Visual mode |Visual-mode| Always enabled since 7.4.200.
N *+visualextra* extra Visual mode commands |blockwise-operators| N *+visualextra* extra Visual mode commands |blockwise-operators|
N *+vreplace* |gR| and |gr| N *+vreplace* |gR| and |gr|
*+vtp* on MS-Windows console: support for 'termguicolors'
N *+wildignore* |'wildignore'| N *+wildignore* |'wildignore'|
N *+wildmenu* |'wildmenu'| N *+wildmenu* |'wildmenu'|
*+windows* more than one window; Always enabled since 8.0.1118. *+windows* more than one window; Always enabled since 8.0.1118.

View File

@ -1,4 +1,4 @@
*version6.txt* For Vim version 8.0. Last change: 2014 Aug 29 *version6.txt* For Vim version 8.0. Last change: 2018 Mar 18
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -6103,7 +6103,7 @@ New tutor translations:
Slovak (Lubos Celko) Slovak (Lubos Celko)
Greek (Christos Kontas) Greek (Christos Kontas)
German (Joachim Hofmann) German (Joachim Hofmann)
Norwegian (<EFBFBD>yvind Holm) Norwegian (Øyvind Holm)
New filetype plugins: New filetype plugins:
Occam (Mario Schweigler) Occam (Mario Schweigler)
@ -6121,13 +6121,13 @@ New compiler plugins:
Modelsim vcom (Paul Baleme) Modelsim vcom (Paul Baleme)
New menu translations: New menu translations:
Brazilian (Jos<EFBFBD> de Paula) Brazilian (José de Paula)
British (Mike Williams) British (Mike Williams)
Korean in UTF-8. (Nam SungHyun) Korean in UTF-8. (Nam SungHyun)
Norwegian (<EFBFBD>yvind Holm) Norwegian (Øyvind Holm)
Serbian (Aleksandar Jelenak) Serbian (Aleksandar Jelenak)
New message translation for Norwegian. (<EFBFBD>yvind Holm) New message translation for Norwegian. (Øyvind Holm)
New color scheme: New color scheme:
desert (Hans Fugal) desert (Hans Fugal)
@ -10066,7 +10066,7 @@ Files: src/os_unix.c
Patch 6.2.019 (lang) Patch 6.2.019 (lang)
Problem: Loading the Portuguese menu causes an error message. Problem: Loading the Portuguese menu causes an error message.
Solution: Join two lines. (Jose Pedro Oliveira, Jos<EFBFBD> de Paula) Solution: Join two lines. (Jose Pedro Oliveira, José de Paula)
Files: runtime/lang/menu_pt_br.vim Files: runtime/lang/menu_pt_br.vim
Patch 6.2.020 Patch 6.2.020
@ -12418,7 +12418,7 @@ Files: src/message.c
Patch 6.2.376 Patch 6.2.376
Problem: Win32: Ruby interface cannot be dynamically linked with Ruby 1.6. Problem: Win32: Ruby interface cannot be dynamically linked with Ruby 1.6.
Solution: Add #ifdefs around use of rb_w32_snprintf(). (Beno<EFBFBD>t Cerrina) Solution: Add #ifdefs around use of rb_w32_snprintf(). (Benoît Cerrina)
Files: src/if_ruby.c Files: src/if_ruby.c
Patch 6.2.377 (after 6.2.372) Patch 6.2.377 (after 6.2.372)
@ -14320,7 +14320,7 @@ Files: src/edit.c
Patch 6.3.061 Patch 6.3.061
Problem: When editing a utf-8 file in an utf-8 xterm and there is a Problem: When editing a utf-8 file in an utf-8 xterm and there is a
multi-byte character in the last column, displaying is messed up. multi-byte character in the last column, displaying is messed up.
(Jo<EFBFBD>l Rio) (Joël Rio)
Solution: Check for a multi-byte character, not a multi-column character. Solution: Check for a multi-byte character, not a multi-column character.
Files: src/screen.c Files: src/screen.c

View File

@ -1,4 +1,4 @@
*version8.txt* For Vim version 8.0. Last change: 2017 Apr 23 *version8.txt* For Vim version 8.0. Last change: 2017 Nov 24
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -15582,7 +15582,7 @@ Files: src/json.c, src/testdir/test_json.vim
Patch 8.0.0181 Patch 8.0.0181
Problem: When 'cursorbind' and 'cursorcolumn' are both on, the column Problem: When 'cursorbind' and 'cursorcolumn' are both on, the column
highlignt in non-current windows is wrong. highlight in non-current windows is wrong.
Solution: Add validate_cursor(). (Masanori Misono, closes #1372) Solution: Add validate_cursor(). (Masanori Misono, closes #1372)
Files: src/move.c Files: src/move.c

View File

@ -1,4 +1,4 @@
*windows.txt* For Vim version 8.0. Last change: 2017 Sep 25 *windows.txt* For Vim version 8.0. Last change: 2018 Mar 29
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -711,7 +711,6 @@ can also get to them with the buffer list commands, like ":bnext".
When using the |:tab| modifier each argument is opened in a When using the |:tab| modifier each argument is opened in a
tab page. The last window is used if it's empty. tab page. The last window is used if it's empty.
Also see |++opt| and |+cmd|. Also see |++opt| and |+cmd|.
{only available when compiled with a GUI}
============================================================================== ==============================================================================
8. Do a command in all buffers or windows *list-repeat* 8. Do a command in all buffers or windows *list-repeat*
@ -732,8 +731,7 @@ can also get to them with the buffer list commands, like ":bnext".
the current window. the current window.
{cmd} can contain '|' to concatenate several commands. {cmd} can contain '|' to concatenate several commands.
{cmd} must not open or close windows or reorder them. {cmd} must not open or close windows or reorder them.
{not in Vi} {not available when compiled without the {not in Vi}
|+listcmds| feature}
Also see |:tabdo|, |:argdo|, |:bufdo|, |:cdo|, |:ldo|, Also see |:tabdo|, |:argdo|, |:bufdo|, |:cdo|, |:ldo|,
|:cfdo| and |:lfdo| |:cfdo| and |:lfdo|
@ -761,8 +759,7 @@ can also get to them with the buffer list commands, like ":bnext".
autocommand event is disabled by adding it to autocommand event is disabled by adding it to
'eventignore'. This considerably speeds up editing 'eventignore'. This considerably speeds up editing
each buffer. each buffer.
{not in Vi} {not available when compiled without the {not in Vi}
|+listcmds| feature}
Also see |:tabdo|, |:argdo|, |:windo|, |:cdo|, |:ldo|, Also see |:tabdo|, |:argdo|, |:windo|, |:cdo|, |:ldo|,
|:cfdo| and |:lfdo| |:cfdo| and |:lfdo|
@ -975,7 +972,6 @@ is no word under the cursor, and a few other things: >
A hidden buffer is not displayed in a window, but is still loaded into memory. A hidden buffer is not displayed in a window, but is still loaded into memory.
This makes it possible to jump from file to file, without the need to read or This makes it possible to jump from file to file, without the need to read or
write the file every time you get another buffer in a window. write the file every time you get another buffer in a window.
{not available when compiled without the |+listcmds| feature}
*:buffer-!* *:buffer-!*
If the option 'hidden' ('hid') is set, abandoned buffers are kept for all If the option 'hidden' ('hid') is set, abandoned buffers are kept for all
@ -1050,6 +1046,9 @@ list of buffers. |unlisted-buffer|
x buffers with a read error x buffers with a read error
% current buffer % current buffer
# alternate buffer # alternate buffer
R terminal buffers with a running job
F terminal buffers with a finished job
? terminal buffers without a job: `:terminal NONE`
Combining flags means they are "and"ed together, e.g.: Combining flags means they are "and"ed together, e.g.:
h+ hidden buffers which are modified h+ hidden buffers which are modified
a+ active buffers which are modified a+ active buffers which are modified

View File

@ -57,7 +57,7 @@ are all equivalent.
.PP .PP
.TP .TP
.IR \-a " | " \-autoskip .IR \-a " | " \-autoskip
toggle autoskip: A single '*' replaces nul-lines. Default off. Toggle autoskip: A single '*' replaces nul-lines. Default off.
.TP .TP
.IR \-b " | " \-bits .IR \-b " | " \-bits
Switch to bits (binary digits) dump, rather than hexdump. Switch to bits (binary digits) dump, rather than hexdump.
@ -67,10 +67,13 @@ followed by an ascii (or ebcdic) representation. The command line switches
\-r, \-p, \-i do not work with this mode. \-r, \-p, \-i do not work with this mode.
.TP .TP
.IR "\-c cols " | " \-cols cols" .IR "\-c cols " | " \-cols cols"
format Format
.RI < cols > .RI < cols >
octets per line. Default 16 (\-i: 12, \-ps: 30, \-b: 6). Max 256. octets per line. Default 16 (\-i: 12, \-ps: 30, \-b: 6). Max 256.
.TP .TP
.IR \-C " | " \-capitalize
Capitalize variable names in C include file style, when using \-i.
.TP
.IR \-E " | " \-EBCDIC .IR \-E " | " \-EBCDIC
Change the character encoding in the righthand column from ASCII to EBCDIC. Change the character encoding in the righthand column from ASCII to EBCDIC.
This does not change the hexadecimal representation. The option is This does not change the hexadecimal representation. The option is
@ -87,7 +90,7 @@ The command line switches
\-r, \-p, \-i do not work with this mode. \-r, \-p, \-i do not work with this mode.
.TP .TP
.IR "\-g bytes " | " \-groupsize bytes" .IR "\-g bytes " | " \-groupsize bytes"
separate the output of every Separate the output of every
.RI < bytes > .RI < bytes >
bytes (two hex characters or eight bit-digits each) by a whitespace. bytes (two hex characters or eight bit-digits each) by a whitespace.
Specify Specify
@ -98,28 +101,28 @@ in normal mode, \fI4\fP in little-endian mode and \fI1\fP in bits mode.
Grouping does not apply to postscript or include style. Grouping does not apply to postscript or include style.
.TP .TP
.IR \-h " | " \-help .IR \-h " | " \-help
print a summary of available commands and exit. No hex dumping is performed. Print a summary of available commands and exit. No hex dumping is performed.
.TP .TP
.IR \-i " | " \-include .IR \-i " | " \-include
output in C include file style. A complete static array definition is written Output in C include file style. A complete static array definition is written
(named after the input file), unless xxd reads from stdin. (named after the input file), unless xxd reads from stdin.
.TP .TP
.IR "\-l len " | " \-len len" .IR "\-l len " | " \-len len"
stop after writing Stop after writing
.RI < len > .RI < len >
octets. octets.
.TP .TP
.I \-o offset .I \-o offset
add Add
.RI < offset > .RI < offset >
to the displayed file position. to the displayed file position.
.TP .TP
.IR \-p " | " \-ps " | " \-postscript " | " \-plain .IR \-p " | " \-ps " | " \-postscript " | " \-plain
output in postscript continuous hexdump style. Also known as plain hexdump Output in postscript continuous hexdump style. Also known as plain hexdump
style. style.
.TP .TP
.IR \-r " | " \-revert .IR \-r " | " \-revert
reverse operation: convert (or patch) hexdump into binary. Reverse operation: convert (or patch) hexdump into binary.
If not writing to stdout, xxd writes into its output file without truncating If not writing to stdout, xxd writes into its output file without truncating
it. Use the combination it. Use the combination
.I \-r \-p .I \-r \-p
@ -135,7 +138,7 @@ revert with
added to file positions found in hexdump. added to file positions found in hexdump.
.TP .TP
.I \-s [+][\-]seek .I \-s [+][\-]seek
start at Start at
.RI < seek > .RI < seek >
bytes abs. (or rel.) infile offset. bytes abs. (or rel.) infile offset.
\fI+ \fRindicates that the seek is relative to the current stdin file position \fI+ \fRindicates that the seek is relative to the current stdin file position
@ -145,10 +148,10 @@ should be that many characters from the end of the input (or if combined with
Without \-s option, xxd starts at the current file position. Without \-s option, xxd starts at the current file position.
.TP .TP
.I \-u .I \-u
use upper case hex letters. Default is lower case. Use upper case hex letters. Default is lower case.
.TP .TP
.IR \-v " | " \-version .IR \-v " | " \-version
show version string. Show version string.
.SH CAVEATS .SH CAVEATS
.PP .PP
.I xxd \-r .I xxd \-r

View File

@ -30,7 +30,7 @@ OPTIONS
notation. Thus -c8, -c 8, -c 010 and -cols 8 are all equivalent. notation. Thus -c8, -c 8, -c 010 and -cols 8 are all equivalent.
-a | -autoskip -a | -autoskip
toggle autoskip: A single '*' replaces nul-lines. Default off. Toggle autoskip: A single '*' replaces nul-lines. Default off.
-b | -bits -b | -bits
Switch to bits (binary digits) dump, rather than hexdump. This Switch to bits (binary digits) dump, rather than hexdump. This
@ -41,9 +41,13 @@ OPTIONS
mode. mode.
-c cols | -cols cols -c cols | -cols cols
format <cols> octets per line. Default 16 (-i: 12, -ps: 30, -b: Format <cols> octets per line. Default 16 (-i: 12, -ps: 30, -b:
6). Max 256. 6). Max 256.
-C | -capitalize
Capitalize variable names in C include file style, when using
-i.
-E | -EBCDIC -E | -EBCDIC
Change the character encoding in the righthand column from ASCII Change the character encoding in the righthand column from ASCII
to EBCDIC. This does not change the hexadecimal representation. to EBCDIC. This does not change the hexadecimal representation.
@ -52,41 +56,41 @@ OPTIONS
-e Switch to little-endian hexdump. This option treats byte groups -e Switch to little-endian hexdump. This option treats byte groups
as words in little-endian byte order. The default grouping of 4 as words in little-endian byte order. The default grouping of 4
bytes may be changed using -g. This option only applies to hex bytes may be changed using -g. This option only applies to hex
dump, leaving the ASCII (or EBCDIC) representation unchanged. dump, leaving the ASCII (or EBCDIC) representation unchanged.
The command line switches -r, -p, -i do not work with this mode. The command line switches -r, -p, -i do not work with this mode.
-g bytes | -groupsize bytes -g bytes | -groupsize bytes
separate the output of every <bytes> bytes (two hex characters Separate the output of every <bytes> bytes (two hex characters
or eight bit-digits each) by a whitespace. Specify -g 0 to sup or eight bit-digits each) by a whitespace. Specify -g 0 to sup
press grouping. <Bytes> defaults to 2 in normal mode, 4 in lit press grouping. <Bytes> defaults to 2 in normal mode, 4 in lit
tle-endian mode and 1 in bits mode. Grouping does not apply to tle-endian mode and 1 in bits mode. Grouping does not apply to
postscript or include style. postscript or include style.
-h | -help -h | -help
print a summary of available commands and exit. No hex dumping Print a summary of available commands and exit. No hex dumping
is performed. is performed.
-i | -include -i | -include
output in C include file style. A complete static array defini Output in C include file style. A complete static array defini
tion is written (named after the input file), unless xxd reads tion is written (named after the input file), unless xxd reads
from stdin. from stdin.
-l len | -len len -l len | -len len
stop after writing <len> octets. Stop after writing <len> octets.
-o offset -o offset
add <offset> to the displayed file position. Add <offset> to the displayed file position.
-p | -ps | -postscript | -plain -p | -ps | -postscript | -plain
output in postscript continuous hexdump style. Also known as Output in postscript continuous hexdump style. Also known as
plain hexdump style. plain hexdump style.
-r | -revert -r | -revert
reverse operation: convert (or patch) hexdump into binary. If Reverse operation: convert (or patch) hexdump into binary. If
not writing to stdout, xxd writes into its output file without not writing to stdout, xxd writes into its output file without
truncating it. Use the combination -r -p to read plain hexadeci truncating it. Use the combination -r -p to read plain hexadeci
mal dumps without line number information and without a particu mal dumps without line number information and without a particu
lar column layout. Additional Whitespace and line-breaks are lar column layout. Additional Whitespace and line-breaks are
allowed anywhere. allowed anywhere.
-seek offset -seek offset
@ -94,34 +98,34 @@ OPTIONS
found in hexdump. found in hexdump.
-s [+][-]seek -s [+][-]seek
start at <seek> bytes abs. (or rel.) infile offset. + indicates Start at <seek> bytes abs. (or rel.) infile offset. + indicates
that the seek is relative to the current stdin file position that the seek is relative to the current stdin file position
(meaningless when not reading from stdin). - indicates that the (meaningless when not reading from stdin). - indicates that the
seek should be that many characters from the end of the input seek should be that many characters from the end of the input
(or if combined with +: before the current stdin file position). (or if combined with +: before the current stdin file position).
Without -s option, xxd starts at the current file position. Without -s option, xxd starts at the current file position.
-u use upper case hex letters. Default is lower case. -u Use upper case hex letters. Default is lower case.
-v | -version -v | -version
show version string. Show version string.
CAVEATS CAVEATS
xxd -r has some builtin magic while evaluating line number information. xxd -r has some builtin magic while evaluating line number information.
If the output file is seekable, then the linenumbers at the start of If the output file is seekable, then the linenumbers at the start of
each hexdump line may be out of order, lines may be missing, or over each hexdump line may be out of order, lines may be missing, or over
lapping. In these cases xxd will lseek(2) to the next position. If the lapping. In these cases xxd will lseek(2) to the next position. If the
output file is not seekable, only gaps are allowed, which will be output file is not seekable, only gaps are allowed, which will be
filled by null-bytes. filled by null-bytes.
xxd -r never generates parse errors. Garbage is silently skipped. xxd -r never generates parse errors. Garbage is silently skipped.
When editing hexdumps, please note that xxd -r skips everything on the When editing hexdumps, please note that xxd -r skips everything on the
input line after reading enough columns of hexadecimal data (see option input line after reading enough columns of hexadecimal data (see option
-c). This also means, that changes to the printable ascii (or ebcdic) -c). This also means, that changes to the printable ascii (or ebcdic)
columns are always ignored. Reverting a plain (or postscript) style columns are always ignored. Reverting a plain (or postscript) style
hexdump with xxd -r -p does not depend on the correct number of col hexdump with xxd -r -p does not depend on the correct number of col
umns. Here anything that looks like a pair of hex-digits is inter umns. Here anything that looks like a pair of hex-digits is inter
preted. preted.
Note the difference between Note the difference between
@ -129,28 +133,28 @@ CAVEATS
and and
% xxd -i < file % xxd -i < file
xxd -s +seek may be different from xxd -s seek, as lseek(2) is used to xxd -s +seek may be different from xxd -s seek, as lseek(2) is used to
"rewind" input. A '+' makes a difference if the input source is stdin, "rewind" input. A '+' makes a difference if the input source is stdin,
and if stdin's file position is not at the start of the file by the and if stdin's file position is not at the start of the file by the
time xxd is started and given its input. The following examples may time xxd is started and given its input. The following examples may
help to clarify (or further confuse!)... help to clarify (or further confuse!)...
Rewind stdin before reading; needed because the `cat' has already read Rewind stdin before reading; needed because the `cat' has already read
to the end of stdin. to the end of stdin.
% sh -c "cat > plain_copy; xxd -s 0 > hex_copy" < file % sh -c "cat > plain_copy; xxd -s 0 > hex_copy" < file
Hexdump from file position 0x480 (=1024+128) onwards. The `+' sign Hexdump from file position 0x480 (=1024+128) onwards. The `+' sign
means "relative to the current position", thus the `128' adds to the 1k means "relative to the current position", thus the `128' adds to the 1k
where dd left off. where dd left off.
% sh -c "dd of=plain_snippet bs=1k count=1; xxd -s +128 > hex_snippet" % sh -c "dd of=plain_snippet bs=1k count=1; xxd -s +128 > hex_snippet"
< file < file
Hexdump from file position 0x100 ( = 1024-768) on. Hexdump from file position 0x100 ( = 1024-768) on.
% sh -c "dd of=plain_snippet bs=1k count=1; xxd -s +-768 > hex_snippet" % sh -c "dd of=plain_snippet bs=1k count=1; xxd -s +-768 > hex_snippet"
< file < file
However, this is a rare situation and the use of `+' is rarely needed. However, this is a rare situation and the use of `+' is rarely needed.
The author prefers to monitor the effect of xxd with strace(1) or The author prefers to monitor the effect of xxd with strace(1) or
truss(1), whenever -s is used. truss(1), whenever -s is used.
EXAMPLES EXAMPLES
@ -194,7 +198,7 @@ EXAMPLES
% xxd -s 0x36 -l 13 -c 13 xxd.1 % xxd -s 0x36 -l 13 -c 13 xxd.1
0000036: 3235 7468 204d 6179 2031 3939 36 25th May 1996 0000036: 3235 7468 204d 6179 2031 3939 36 25th May 1996
Create a 65537 byte file with all bytes 0x00, except for the last one Create a 65537 byte file with all bytes 0x00, except for the last one
which is 'A' (hex 0x41). which is 'A' (hex 0x41).
% echo "010000: 41" | xxd -r > file % echo "010000: 41" | xxd -r > file
@ -204,7 +208,7 @@ EXAMPLES
* *
000fffc: 0000 0000 40 ....A 000fffc: 0000 0000 40 ....A
Create a 1 byte file containing a single 'A' character. The number Create a 1 byte file containing a single 'A' character. The number
after '-r -s' adds to the linenumbers found in the file; in effect, the after '-r -s' adds to the linenumbers found in the file; in effect, the
leading bytes are suppressed. leading bytes are suppressed.
% echo "010000: 41" | xxd -r -s -0x10000 > file % echo "010000: 41" | xxd -r -s -0x10000 > file
@ -245,7 +249,7 @@ SEE ALSO
uuencode(1), uudecode(1), patch(1) uuencode(1), uudecode(1), patch(1)
WARNINGS WARNINGS
The tools weirdness matches its creators brain. Use entirely at your The tools weirdness matches its creators brain. Use entirely at your
own risk. Copy files. Trace it. Become a wizard. own risk. Copy files. Trace it. Become a wizard.
VERSION VERSION

View File

@ -1,7 +1,7 @@
" Vim support file to detect file types " Vim support file to detect file types
" "
" Maintainer: Bram Moolenaar <Bram@vim.org> " Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2017 Nov 11 " Last Change: 2018 Jan 28
" Listen very carefully, I will say this only once " Listen very carefully, I will say this only once
if exists("did_load_filetypes") if exists("did_load_filetypes")
@ -231,14 +231,15 @@ au BufNewFile,BufRead *.bl setf blank
au BufNewFile,BufRead */etc/blkid.tab,*/etc/blkid.tab.old setf xml au BufNewFile,BufRead */etc/blkid.tab,*/etc/blkid.tab.old setf xml
" Bazel (http://bazel.io) " Bazel (http://bazel.io)
autocmd BufRead,BufNewFile *.bzl,WORKSPACE setf bzl autocmd BufRead,BufNewFile *.bzl,WORKSPACE,BUILD.bazel setf bzl
if has("fname_case") if has("fname_case")
" There is another check for BUILD further below. " There is another check for BUILD further below.
autocmd BufRead,BufNewFile BUILD setf bzl autocmd BufRead,BufNewFile BUILD setf bzl
endif endif
" C or lpc " C or lpc
au BufNewFile,BufRead *.c call dist#ft#FTlpc() au BufNewFile,BufRead *.c call dist#ft#FTlpc()
au BufNewFile,BufRead *.lpc,*.ulpc setf lpc
" Calendar " Calendar
au BufNewFile,BufRead calendar setf calendar au BufNewFile,BufRead calendar setf calendar
@ -378,7 +379,7 @@ au BufNewFile,BufRead *.cfm,*.cfi,*.cfc setf cf
au BufNewFile,BufRead configure.in,configure.ac setf config au BufNewFile,BufRead configure.in,configure.ac setf config
" CUDA Cumpute Unified Device Architecture " CUDA Cumpute Unified Device Architecture
au BufNewFile,BufRead *.cu setf cuda au BufNewFile,BufRead *.cu,*.cuh setf cuda
" Dockerfile " Dockerfile
au BufNewFile,BufRead Dockerfile,*.Dockerfile setf dockerfile au BufNewFile,BufRead Dockerfile,*.Dockerfile setf dockerfile
@ -1152,8 +1153,9 @@ au BufNewFile,BufRead *.pod6 setf pod6
" Also .ctp for Cake template file " Also .ctp for Cake template file
au BufNewFile,BufRead *.php,*.php\d,*.phtml,*.ctp setf php au BufNewFile,BufRead *.php,*.php\d,*.phtml,*.ctp setf php
" Pike " Pike and Cmod
au BufNewFile,BufRead *.pike,*.lpc,*.ulpc,*.pmod setf pike au BufNewFile,BufRead *.pike,*.pmod setf pike
au BufNewFile,BufRead *.cmod setf cmod
" Pinfo config " Pinfo config
au BufNewFile,BufRead */etc/pinforc,*/.pinforc setf pinfo au BufNewFile,BufRead */etc/pinforc,*/.pinforc setf pinfo
@ -1878,8 +1880,8 @@ au BufNewFile,BufRead *.yy,*.yxx,*.y++ setf yacc
" Yacc or racc " Yacc or racc
au BufNewFile,BufRead *.y call dist#ft#FTy() au BufNewFile,BufRead *.y call dist#ft#FTy()
" Yaml " Yaml or Raml
au BufNewFile,BufRead *.yaml,*.yml setf yaml au BufNewFile,BufRead *.yaml,*.yml,*.raml setf yaml
" yum conf (close enough to dosini) " yum conf (close enough to dosini)
au BufNewFile,BufRead */etc/yum.conf setf dosini au BufNewFile,BufRead */etc/yum.conf setf dosini
@ -1925,6 +1927,9 @@ au StdinReadPost * if !did_filetype() | runtime! scripts.vim | endif
" Most of these should call s:StarSetf() to avoid names ending in .gz and the " Most of these should call s:StarSetf() to avoid names ending in .gz and the
" like are used. " like are used.
" More Apache style config files
au BufNewFile,BufRead */etc/proftpd/*.conf*,*/etc/proftpd/conf.*/* call s:StarSetf('apachestyle')
" More Apache config files " More Apache config files
au BufNewFile,BufRead access.conf*,apache.conf*,apache2.conf*,httpd.conf*,srm.conf* call s:StarSetf('apache') au BufNewFile,BufRead access.conf*,apache.conf*,apache2.conf*,httpd.conf*,srm.conf* call s:StarSetf('apache')
au BufNewFile,BufRead */etc/apache2/*.conf*,*/etc/apache2/conf.*/*,*/etc/apache2/mods-*/*,*/etc/apache2/sites-*/*,*/etc/httpd/conf.d/*.conf* call s:StarSetf('apache') au BufNewFile,BufRead */etc/apache2/*.conf*,*/etc/apache2/conf.*/*,*/etc/apache2/mods-*/*,*/etc/apache2/sites-*/*,*/etc/httpd/conf.d/*.conf* call s:StarSetf('apache')

View File

@ -0,0 +1,54 @@
" CHICKEN-specific Vim customizations
" Last Change: 2018-03-05
" Author: Evan Hanson <evhan@foldling.org>
" Maintainer: Evan Hanson <evhan@foldling.org>
" URL: https://foldling.org/vim/ftplugin/chicken.vim
" Notes: These are supplemental settings, to be loaded after the core
" Scheme ftplugin file (ftplugin/scheme.vim). Enable it by setting
" b:is_chicken=1 and filetype=scheme.
if !exists('b:did_scheme_ftplugin')
finish
endif
setl keywordprg=chicken-doc
setl lispwords+=and-let*
setl lispwords+=compiler-typecase
setl lispwords+=condition-case
setl lispwords+=define-compiler-syntax
setl lispwords+=define-constant
setl lispwords+=define-external
setl lispwords+=define-for-syntax
setl lispwords+=define-foreign-type
setl lispwords+=define-inline
setl lispwords+=define-location
setl lispwords+=define-record
setl lispwords+=define-record-printer
setl lispwords+=define-specialization
setl lispwords+=fluid-let
setl lispwords+=foreign-lambda*
setl lispwords+=foreign-primitive
setl lispwords+=foreign-safe-lambda*
setl lispwords+=functor
setl lispwords+=handle-exceptions
setl lispwords+=let-compiler-syntax
setl lispwords+=let-location
setl lispwords+=let-optionals
setl lispwords+=let-optionals*
setl lispwords+=letrec-values
setl lispwords+=match
setl lispwords+=match-let
setl lispwords+=match-let*
setl lispwords+=match-letrec
setl lispwords+=module
setl lispwords+=receive
setl lispwords+=set!-values
setl lispwords+=test-group
let b:undo_ftplugin = b:undo_ftplugin . ' keywordprg<'
if exists('g:loaded_matchit') && !exists('b:match_words')
let b:match_words = '#>:<#'
let b:undo_ftplugin = b:undo_ftplugin . ' | unlet! b:match_words'
endif

View File

@ -0,0 +1,16 @@
" Vim filetype plugin
" Language: CMake
" Maintainer: Keith Smiley <keithbsmiley@gmail.com>
" Last Change: 2017 Dec 24
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
finish
endif
" Don't load another plugin for this buffer
let b:did_ftplugin = 1
let b:undo_ftplugin = "setl commentstring<"
setlocal commentstring=#\ %s

View File

@ -1,11 +1,11 @@
" Vim filetype plugin file (GUI menu, folding and completion) " Vim filetype plugin file (GUI menu, folding and completion)
" Language: Debian Changelog " Language: Debian Changelog
" Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org> " Maintainer: Debian Vim Maintainers
" Former Maintainers: Michael Piefel <piefel@informatik.hu-berlin.de> " Former Maintainers: Michael Piefel <piefel@informatik.hu-berlin.de>
" Stefano Zacchiroli <zack@debian.org> " Stefano Zacchiroli <zack@debian.org>
" Last Change: 2014-01-31 " Last Change: 2018-01-06
" License: Vim License " License: Vim License
" URL: http://hg.debian.org/hg/pkg-vim/vim/file/unstable/runtime/ftplugin/debchangelog.vim " URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/ftplugin/debchangelog.vim
" Bug completion requires apt-listbugs installed for Debian packages or " Bug completion requires apt-listbugs installed for Debian packages or
" python-launchpadlib installed for Ubuntu packages " python-launchpadlib installed for Ubuntu packages

View File

@ -1,9 +1,9 @@
" Vim filetype plugin file (GUI menu and folding) " Vim filetype plugin file (GUI menu and folding)
" Language: Debian control files " Language: Debian control files
" Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org> " Maintainer: Debian Vim Maintainers
" Former Maintainer: Pierre Habouzit <madcoder@debian.org> " Former Maintainer: Pierre Habouzit <madcoder@debian.org>
" Last Change: 2008-03-08 " Last Change: 2018-01-06
" URL: http://hg.debian.org/hg/pkg-vim/vim/raw-file/tip/runtime/ftplugin/debcontrol.vim " URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/ftplugin/debcontrol.vim
" Do these settings once per buffer " Do these settings once per buffer
if exists("b:did_ftplugin") if exists("b:did_ftplugin")

View File

@ -1,7 +1,7 @@
" Vim filetype plugin file " Vim filetype plugin file
" Language: man " Language: man
" Maintainer: SungHyun Nam <goweol@gmail.com> " Maintainer: SungHyun Nam <goweol@gmail.com>
" Last Change: 2017 Nov 11 " Last Change: 2018 Jan 15
" To make the ":Man" command available before editing a manual page, source " To make the ":Man" command available before editing a manual page, source
" this script from your startup vimrc file. " this script from your startup vimrc file.
@ -39,7 +39,7 @@ if &filetype == "man"
endif endif
if exists(":Man") != 2 if exists(":Man") != 2
com -nargs=+ Man call s:GetPage(<f-args>) com -nargs=+ -complete=shellcmd Man call s:GetPage(<f-args>)
nmap <Leader>K :call <SID>PreGetPage(0)<CR> nmap <Leader>K :call <SID>PreGetPage(0)<CR>
nmap <Plug>ManPreGetPage :call <SID>PreGetPage(0)<CR> nmap <Plug>ManPreGetPage :call <SID>PreGetPage(0)<CR>
endif endif
@ -173,7 +173,15 @@ func <SID>GetPage(...)
" Ensure Vim is not recursively invoked (man-db does this) when doing ctrl-[ " Ensure Vim is not recursively invoked (man-db does this) when doing ctrl-[
" on a man page reference by unsetting MANPAGER. " on a man page reference by unsetting MANPAGER.
silent exec "r !env -u MANPAGER man ".s:GetCmdArg(sect, page)." | col -b" " Some versions of env(1) do not support the '-u' option, and in such case
" we set MANPAGER=cat.
if !exists('s:env_has_u')
call system('env -u x true')
let s:env_has_u = (v:shell_error == 0)
endif
let env_cmd = s:env_has_u ? 'env -u MANPAGER' : 'env MANPAGER=cat'
let man_cmd = env_cmd . ' man ' . s:GetCmdArg(sect, page) . ' | col -b'
silent exec "r !" . man_cmd
if unsetwidth if unsetwidth
let $MANWIDTH = '' let $MANWIDTH = ''

View File

@ -1,22 +1,43 @@
" Vim ftplugin file " Vim ftplugin file
" Language: NSIS script " Language: NSIS script
" Previous Maintainer: Nikolai Weibull <now@bitwi.se> " Maintainer: Ken Takata
" Latest Revision: 2008-07-09 " URL: https://github.com/k-takata/vim-nsis
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
let s:cpo_save = &cpo " Last Change: 2018-01-26
set cpo&vim
if exists("b:did_ftplugin") if exists("b:did_ftplugin")
finish finish
endif endif
let s:cpo_save = &cpo
set cpo&vim
let b:did_ftplugin = 1 let b:did_ftplugin = 1
let b:undo_ftplugin = "setl com< cms< fo< def< inc<" let b:undo_ftplugin = "setl com< cms< fo< def< inc<"
\ " | unlet! b:match_ignorecase b:match_words"
setlocal comments=s1:/*,mb:*,ex:*/,b:#,:; commentstring=;\ %s setlocal comments=s1:/*,mb:*,ex:*/,b:#,:; commentstring=;\ %s
setlocal formatoptions-=t formatoptions+=croql setlocal formatoptions-=t formatoptions+=croql
setlocal define=^\\s*!define\\%(\\%(utc\\)\\=date\\|math\\)\\= setlocal define=^\\s*!define\\%(\\%(utc\\)\\=date\\|math\\)\\=
setlocal include=^\\s*!include\\%(/NONFATAL\\)\\= setlocal include=^\\s*!include\\%(/NONFATAL\\)\\=
if exists("loaded_matchit")
let b:match_ignorecase = 1
let b:match_words =
\ '\${\%(If\|IfNot\|Unless\)}:\${\%(Else\|ElseIf\|ElseIfNot\|ElseUnless\)}:\${\%(EndIf\|EndUnless\)},' .
\ '\${Select}:\${EndSelect},' .
\ '\${Switch}:\${EndSwitch},' .
\ '\${\%(Do\|DoWhile\|DoUntil\)}:\${\%(Loop\|LoopWhile\|LoopUntil\)},' .
\ '\${\%(For\|ForEach\)}:\${Next},' .
\ '\<Function\>:\<FunctionEnd\>,' .
\ '\<Section\>:\<SectionEnd\>,' .
\ '\<SectionGroup\>:\<SectionGroupEnd\>,' .
\ '\<PageEx\>:\<PageExEnd\>,' .
\ '\${MementoSection}:\${MementoSectionEnd},' .
\ '!if\%(\%(macro\)\?n\?def\)\?\>:!else\>:!endif\>,' .
\ '!macro\>:!macroend\>'
endif
let &cpo = s:cpo_save let &cpo = s:cpo_save
unlet s:cpo_save unlet s:cpo_save

View File

@ -3,7 +3,7 @@
" Maintainer: Tom Picton <tom@tompicton.co.uk> " Maintainer: Tom Picton <tom@tompicton.co.uk>
" Previous Maintainer: James Sully <sullyj3@gmail.com> " Previous Maintainer: James Sully <sullyj3@gmail.com>
" Previous Maintainer: Johannes Zellner <johannes@zellner.org> " Previous Maintainer: Johannes Zellner <johannes@zellner.org>
" Last Change: Thur, 09 November 2017 " Last Change: Sun, 18 March 2018
" https://github.com/tpict/vim-ftplugin-python " https://github.com/tpict/vim-ftplugin-python
if exists("b:did_ftplugin") | finish | endif if exists("b:did_ftplugin") | finish | endif
@ -14,12 +14,33 @@ set cpo&vim
setlocal cinkeys-=0# setlocal cinkeys-=0#
setlocal indentkeys-=0# setlocal indentkeys-=0#
setlocal include=^\\s*\\(from\\\|import\\) setlocal include=^\\s*\\(from\\\|import\\)
setlocal includeexpr=substitute(v:fname,'\\.','/','g')
" For imports with leading .., append / and replace additional .s with ../
let b:grandparent_match = '^\(.\.\)\(\.*\)'
let b:grandparent_sub = '\=submatch(1)."/".repeat("../",strlen(submatch(2)))'
" For imports with a single leading ., replace it with ./
let b:parent_match = '^\.\(\.\)\@!'
let b:parent_sub = './'
" Replace any . sandwiched between word characters with /
let b:child_match = '\(\w\)\.\(\w\)'
let b:child_sub = '\1/\2'
setlocal includeexpr=substitute(substitute(substitute(
\v:fname,
\b:grandparent_match,b:grandparent_sub,''),
\b:parent_match,b:parent_sub,''),
\b:child_match,b:child_sub,'g')
setlocal suffixesadd=.py setlocal suffixesadd=.py
setlocal comments=b:#,fb:- setlocal comments=b:#,fb:-
setlocal commentstring=#\ %s setlocal commentstring=#\ %s
setlocal omnifunc=pythoncomplete#Complete setlocal omnifunc=pythoncomplete#Complete
if has('python3')
setlocal omnifunc=python3complete#Complete
endif
set wildignore+=*.pyc set wildignore+=*.pyc

View File

@ -1,45 +1,57 @@
" Vim filetype plugin " Vim filetype plugin file
" Language: Scheme " Language: Scheme (R7RS)
" Maintainer: Sergey Khorev <sergey.khorev@gmail.com> " Last Change: 2018-03-05
" URL: http://sites.google.com/site/khorser/opensource/vim " Author: Evan Hanson <evhan@foldling.org>
" Original author: Dorai Sitaram <ds26@gte.com> " Maintainer: Evan Hanson <evhan@foldling.org>
" Original URL: http://www.ccs.neu.edu/~dorai/vimplugins/vimplugins.html " Previous Maintainer: Sergey Khorev <sergey.khorev@gmail.com>
" Last Change: Oct 23, 2013 " URL: https://foldling.org/vim/ftplugin/scheme.vim
" Only do this when not done yet for this buffer if exists('b:did_ftplugin')
if exists("b:did_ftplugin")
finish finish
endif endif
" Don't load another plugin for this buffer let s:cpo = &cpo
let b:did_ftplugin = 1 set cpo&vim
" Copy-paste from ftplugin/lisp.vim
setl comments=:;
setl define=^\\s*(def\\k*
setl formatoptions-=t
setl iskeyword+=+,-,*,/,%,<,=,>,:,$,?,!,@-@,94
setl lisp setl lisp
setl comments=:;;;;,:;;;,:;;,:;,sr:#\|,mb:\|,ex:\|#
setl commentstring=;%s setl commentstring=;%s
setl define=^\\s*(def\\k*
setl iskeyword=33,35-39,42-43,45-58,60-90,94,95,97-122,126
setl comments^=:;;;,:;;,sr:#\|,mb:\|,ex:\|# let b:undo_ftplugin = 'setl lisp< comments< commentstring< define< iskeyword<'
" Scheme-specific settings setl lispwords=case
if exists("b:is_mzscheme") || exists("is_mzscheme") setl lispwords+=define
" improve indenting setl lispwords+=define-record-type
setl iskeyword+=#,%,^ setl lispwords+=define-syntax
setl lispwords+=module,parameterize,let-values,let*-values,letrec-values setl lispwords+=define-values
setl lispwords+=define-values,opt-lambda,case-lambda,syntax-rules,with-syntax,syntax-case setl lispwords+=do
setl lispwords+=define-signature,unit,unit/sig,compund-unit/sig,define-values/invoke-unit/sig setl lispwords+=guard
setl lispwords+=lambda
setl lispwords+=let
setl lispwords+=let*
setl lispwords+=let*-values
setl lispwords+=let-syntax
setl lispwords+=let-values
setl lispwords+=letrec
setl lispwords+=letrec*
setl lispwords+=letrec-syntax
setl lispwords+=parameterize
setl lispwords+=set!
setl lispwords+=syntax-rules
setl lispwords+=unless
setl lispwords+=when
let b:undo_ftplugin = b:undo_ftplugin . ' lispwords<'
let b:did_scheme_ftplugin = 1
if exists('b:is_chicken') || exists('g:is_chicken')
exe 'ru! ftplugin/chicken.vim'
endif endif
if exists("b:is_chicken") || exists("is_chicken") unlet b:did_scheme_ftplugin
" improve indenting let b:did_ftplugin = 1
setl iskeyword+=#,%,^ let &cpo = s:cpo
setl lispwords+=let-optionals,let-optionals*,declare unlet s:cpo
setl lispwords+=let-values,let*-values,letrec-values
setl lispwords+=define-values,opt-lambda,case-lambda,syntax-rules,with-syntax,syntax-case
setl lispwords+=cond-expand,and-let*,foreign-lambda,foreign-lambda*
endif
let b:undo_ftplugin = "setlocal comments< define< formatoptions< iskeyword< lispwords< lisp< commentstring<"

View File

@ -1,7 +1,7 @@
" Vim filetype plugin " Vim filetype plugin
" Language: Vim " Language: Vim
" Maintainer: Bram Moolenaar <Bram@vim.org> " Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2017 Nov 06 " Last Change: 2017 Dec 05
" Only do this when not done yet for this buffer " Only do this when not done yet for this buffer
if exists("b:did_ftplugin") if exists("b:did_ftplugin")
@ -39,21 +39,23 @@ endif
" Comments start with a double quote " Comments start with a double quote
setlocal commentstring=\"%s setlocal commentstring=\"%s
" Move around functions. if !exists("no_plugin_maps") && !exists("no_vim_maps")
nnoremap <silent><buffer> [[ m':call search('^\s*fu\%[nction]\>', "bW")<CR> " Move around functions.
vnoremap <silent><buffer> [[ m':<C-U>exe "normal! gv"<Bar>call search('^\s*fu\%[nction]\>', "bW")<CR> nnoremap <silent><buffer> [[ m':call search('^\s*fu\%[nction]\>', "bW")<CR>
nnoremap <silent><buffer> ]] m':call search('^\s*fu\%[nction]\>', "W")<CR> vnoremap <silent><buffer> [[ m':<C-U>exe "normal! gv"<Bar>call search('^\s*fu\%[nction]\>', "bW")<CR>
vnoremap <silent><buffer> ]] m':<C-U>exe "normal! gv"<Bar>call search('^\s*fu\%[nction]\>', "W")<CR> nnoremap <silent><buffer> ]] m':call search('^\s*fu\%[nction]\>', "W")<CR>
nnoremap <silent><buffer> [] m':call search('^\s*endf*\%[unction]\>', "bW")<CR> vnoremap <silent><buffer> ]] m':<C-U>exe "normal! gv"<Bar>call search('^\s*fu\%[nction]\>', "W")<CR>
vnoremap <silent><buffer> [] m':<C-U>exe "normal! gv"<Bar>call search('^\s*endf*\%[unction]\>', "bW")<CR> nnoremap <silent><buffer> [] m':call search('^\s*endf*\%[unction]\>', "bW")<CR>
nnoremap <silent><buffer> ][ m':call search('^\s*endf*\%[unction]\>', "W")<CR> vnoremap <silent><buffer> [] m':<C-U>exe "normal! gv"<Bar>call search('^\s*endf*\%[unction]\>', "bW")<CR>
vnoremap <silent><buffer> ][ m':<C-U>exe "normal! gv"<Bar>call search('^\s*endf*\%[unction]\>', "W")<CR> nnoremap <silent><buffer> ][ m':call search('^\s*endf*\%[unction]\>', "W")<CR>
vnoremap <silent><buffer> ][ m':<C-U>exe "normal! gv"<Bar>call search('^\s*endf*\%[unction]\>', "W")<CR>
" Move around comments " Move around comments
nnoremap <silent><buffer> ]" :call search('^\(\s*".*\n\)\@<!\(\s*"\)', "W")<CR> nnoremap <silent><buffer> ]" :call search('^\(\s*".*\n\)\@<!\(\s*"\)', "W")<CR>
vnoremap <silent><buffer> ]" :<C-U>exe "normal! gv"<Bar>call search('^\(\s*".*\n\)\@<!\(\s*"\)', "W")<CR> vnoremap <silent><buffer> ]" :<C-U>exe "normal! gv"<Bar>call search('^\(\s*".*\n\)\@<!\(\s*"\)', "W")<CR>
nnoremap <silent><buffer> [" :call search('\%(^\s*".*\n\)\%(^\s*"\)\@!', "bW")<CR> nnoremap <silent><buffer> [" :call search('\%(^\s*".*\n\)\%(^\s*"\)\@!', "bW")<CR>
vnoremap <silent><buffer> [" :<C-U>exe "normal! gv"<Bar>call search('\%(^\s*".*\n\)\%(^\s*"\)\@!', "bW")<CR> vnoremap <silent><buffer> [" :<C-U>exe "normal! gv"<Bar>call search('\%(^\s*".*\n\)\%(^\s*"\)\@!', "bW")<CR>
endif
" Let the matchit plugin know what items can be matched. " Let the matchit plugin know what items can be matched.
if exists("loaded_matchit") if exists("loaded_matchit")

View File

@ -1,7 +1,7 @@
" Vim filetype plugin file " Vim filetype plugin file
" Language: Zimbu " Language: Zimbu
" Maintainer: Bram Moolenaar <Bram@vim.org> " Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2012 Sep 08 " Last Change: 2017 Dec 05
" Only do this when not done yet for this buffer " Only do this when not done yet for this buffer
if exists("b:did_ftplugin") if exists("b:did_ftplugin")
@ -135,8 +135,10 @@ iabbr <buffer> <expr> until GCUpperSpace("until")
iabbr <buffer> <expr> while GCUpperSpace("while") iabbr <buffer> <expr> while GCUpperSpace("while")
iabbr <buffer> <expr> repeat GCUpper("repeat") iabbr <buffer> <expr> repeat GCUpper("repeat")
nnoremap <silent> <buffer> [[ m`:call ZimbuGoStartBlock()<CR> if !exists("no_plugin_maps") && !exists("no_zimbu_maps")
nnoremap <silent> <buffer> ]] m`:call ZimbuGoEndBlock()<CR> nnoremap <silent> <buffer> [[ m`:call ZimbuGoStartBlock()<CR>
nnoremap <silent> <buffer> ]] m`:call ZimbuGoEndBlock()<CR>
endif
" Using a function makes sure the search pattern is restored " Using a function makes sure the search pattern is restored
func! ZimbuGoStartBlock() func! ZimbuGoStartBlock()

View File

@ -2,7 +2,7 @@
" Language: Zsh shell script " Language: Zsh shell script
" Maintainer: Christian Brabandt <cb@256bit.org> " Maintainer: Christian Brabandt <cb@256bit.org>
" Previous Maintainer: Nikolai Weibull <now@bitwi.se> " Previous Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2015-05-29 " Latest Revision: 2017-11-22
" License: Vim (see :h license) " License: Vim (see :h license)
" Repository: https://github.com/chrisbra/vim-zsh " Repository: https://github.com/chrisbra/vim-zsh
@ -18,9 +18,7 @@ let b:undo_ftplugin = "setl com< cms< fo<"
setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
let b:match_words = let b:match_words = ',\<if\>:\<elif\>:\<else\>:\<fi\>'
\ &matchpairs
\ . ',\<if\>:\<elif\>:\<else\>:\<fi\>'
\ . ',\<case\>:^\s*([^)]*):\<esac\>' \ . ',\<case\>:^\s*([^)]*):\<esac\>'
\ . ',\<\%(select\|while\|until\|repeat\|for\%(each\)\=\)\>:\<done\>' \ . ',\<\%(select\|while\|until\|repeat\|for\%(each\)\=\)\>:\<done\>'
let b:match_skip = 's:comment\|string\|heredoc\|subst' let b:match_skip = 's:comment\|string\|heredoc\|subst'

View File

@ -2,7 +2,7 @@
" Header: "{{{ " Header: "{{{
" Maintainer: Bram Moolenaar " Maintainer: Bram Moolenaar
" Original Author: Andy Wokula <anwoku@yahoo.de> " Original Author: Andy Wokula <anwoku@yahoo.de>
" Last Change: 2017 Jun 13 " Last Change: 2018 Mar 28
" Version: 1.0 " Version: 1.0
" Description: HTML indent script with cached state for faster indenting on a " Description: HTML indent script with cached state for faster indenting on a
" range of lines. " range of lines.
@ -56,6 +56,9 @@ let s:cpo_save = &cpo
set cpo-=C set cpo-=C
"}}} "}}}
" Pattern to match the name of a tag, including custom elements.
let s:tagname = '\w\+\(-\w\+\)*'
" Check and process settings from b:html_indent and g:html_indent... variables. " Check and process settings from b:html_indent and g:html_indent... variables.
" Prefer using buffer-local settings over global settings, so that there can " Prefer using buffer-local settings over global settings, so that there can
" be defaults for all HTML files and exceptions for specific types of HTML " be defaults for all HTML files and exceptions for specific types of HTML
@ -213,7 +216,8 @@ endfunc "}}}
" Add known tag pairs. " Add known tag pairs.
" Self-closing tags and tags that are sometimes {{{ " Self-closing tags and tags that are sometimes {{{
" self-closing (e.g., <p>) are not here (when encountering </p> we can find " self-closing (e.g., <p>) are not here (when encountering </p> we can find
" the matching <p>, but not the other way around). " the matching <p>, but not the other way around). Known self-closing tags:
" 'p', 'img', 'source'.
" Old HTML tags: " Old HTML tags:
call s:AddITags(s:indent_tags, [ call s:AddITags(s:indent_tags, [
\ 'a', 'abbr', 'acronym', 'address', 'b', 'bdo', 'big', \ 'a', 'abbr', 'acronym', 'address', 'b', 'bdo', 'big',
@ -230,9 +234,9 @@ call s:AddITags(s:indent_tags, [
call s:AddITags(s:indent_tags, [ call s:AddITags(s:indent_tags, [
\ 'area', 'article', 'aside', 'audio', 'bdi', 'canvas', \ 'area', 'article', 'aside', 'audio', 'bdi', 'canvas',
\ 'command', 'data', 'datalist', 'details', 'embed', 'figcaption', \ 'command', 'data', 'datalist', 'details', 'embed', 'figcaption',
\ 'figure', 'footer', 'header', 'keygen', 'mark', 'meter', 'nav', 'output', \ 'figure', 'footer', 'header', 'keygen', 'main', 'mark', 'meter',
\ 'progress', 'rp', 'rt', 'ruby', 'section', 'source', 'summary', 'svg', \ 'nav', 'output', 'picture', 'progress', 'rp', 'rt', 'ruby', 'section',
\ 'time', 'track', 'video', 'wbr']) \ 'summary', 'svg', 'time', 'track', 'video', 'wbr'])
" Tags added for web components: " Tags added for web components:
call s:AddITags(s:indent_tags, [ call s:AddITags(s:indent_tags, [
@ -280,7 +284,7 @@ func! s:CountITags(text)
let s:nextrel = 0 " relative indent steps for next line [unit &sw]: let s:nextrel = 0 " relative indent steps for next line [unit &sw]:
let s:block = 0 " assume starting outside of a block let s:block = 0 " assume starting outside of a block
let s:countonly = 1 " don't change state let s:countonly = 1 " don't change state
call substitute(a:text, '<\zs/\=\w\+\(-\w\+\)*\>\|<!--\[\|\[endif\]-->\|<!--\|-->', '\=s:CheckTag(submatch(0))', 'g') call substitute(a:text, '<\zs/\=' . s:tagname . '\>\|<!--\[\|\[endif\]-->\|<!--\|-->', '\=s:CheckTag(submatch(0))', 'g')
let s:countonly = 0 let s:countonly = 0
endfunc "}}} endfunc "}}}
@ -292,7 +296,7 @@ func! s:CountTagsAndState(text)
let s:nextrel = 0 " relative indent steps for next line [unit &sw]: let s:nextrel = 0 " relative indent steps for next line [unit &sw]:
let s:block = b:hi_newstate.block let s:block = b:hi_newstate.block
let tmp = substitute(a:text, '<\zs/\=\w\+\(-\w\+\)*\>\|<!--\[\|\[endif\]-->\|<!--\|-->', '\=s:CheckTag(submatch(0))', 'g') let tmp = substitute(a:text, '<\zs/\=' . s:tagname . '\>\|<!--\[\|\[endif\]-->\|<!--\|-->', '\=s:CheckTag(submatch(0))', 'g')
if s:block == 3 if s:block == 3
let b:hi_newstate.scripttype = s:GetScriptType(matchstr(tmp, '\C.*<SCRIPT\>\zs[^>]*')) let b:hi_newstate.scripttype = s:GetScriptType(matchstr(tmp, '\C.*<SCRIPT\>\zs[^>]*'))
endif endif
@ -530,7 +534,7 @@ func! s:FreshState(lnum)
let swendtag = match(text, '^\s*</') >= 0 let swendtag = match(text, '^\s*</') >= 0
" If previous line ended in a closing tag, line up with the opening tag. " If previous line ended in a closing tag, line up with the opening tag.
if !swendtag && text =~ '</\w\+\s*>\s*$' if !swendtag && text =~ '</' . s:tagname . '\s*>\s*$'
call cursor(state.lnum, 99999) call cursor(state.lnum, 99999)
normal! F< normal! F<
let start_lnum = HtmlIndent_FindStartTag() let start_lnum = HtmlIndent_FindStartTag()
@ -860,7 +864,7 @@ func! HtmlIndent_FindStartTag()
" The cursor must be on or before a closing tag. " The cursor must be on or before a closing tag.
" If found, positions the cursor at the match and returns the line number. " If found, positions the cursor at the match and returns the line number.
" Otherwise returns 0. " Otherwise returns 0.
let tagname = matchstr(getline('.')[col('.') - 1:], '</\zs\w\+\ze') let tagname = matchstr(getline('.')[col('.') - 1:], '</\zs' . s:tagname . '\ze')
let start_lnum = searchpair('<' . tagname . '\>', '', '</' . tagname . '\>', 'bW') let start_lnum = searchpair('<' . tagname . '\>', '', '</' . tagname . '\>', 'bW')
if start_lnum > 0 if start_lnum > 0
return start_lnum return start_lnum
@ -876,7 +880,7 @@ func! HtmlIndent_FindTagEnd()
" a self-closing tag, to the matching ">". " a self-closing tag, to the matching ">".
" Limited to look up to b:html_indent_line_limit lines away. " Limited to look up to b:html_indent_line_limit lines away.
let text = getline('.') let text = getline('.')
let tagname = matchstr(text, '\w\+\|!--', col('.')) let tagname = matchstr(text, s:tagname . '\|!--', col('.'))
if tagname == '!--' if tagname == '!--'
call search('--\zs>') call search('--\zs>')
elseif s:get_tag('/' . tagname) != 0 elseif s:get_tag('/' . tagname) != 0
@ -921,9 +925,22 @@ func! s:InsideTag(foundHtmlString)
else else
let idx = match(text, '\s\zs[_a-zA-Z0-9-]\+="') let idx = match(text, '\s\zs[_a-zA-Z0-9-]\+="')
endif endif
if idx == -1
" try <tag attr
let idx = match(text, '<' . s:tagname . '\s\+\zs\w')
endif
if idx == -1
" after just <tag indent one level more
let idx = match(text, '<' . s:tagname . '$')
if idx >= 0
call cursor(lnum, idx)
return virtcol('.') + shiftwidth()
endif
endif
if idx > 0 if idx > 0
" Found the attribute. TODO: assumes spaces, no Tabs. " Found the attribute to align with.
return idx call cursor(lnum, idx)
return virtcol('.')
endif endif
endwhile endwhile
return -1 return -1

View File

@ -2,7 +2,7 @@
" Language: Javascript " Language: Javascript
" Maintainer: Chris Paul ( https://github.com/bounceme ) " Maintainer: Chris Paul ( https://github.com/bounceme )
" URL: https://github.com/pangloss/vim-javascript " URL: https://github.com/pangloss/vim-javascript
" Last Change: September 18, 2017 " Last Change: December 4, 2017
" Only load this indent file when no other was loaded. " Only load this indent file when no other was loaded.
if exists('b:did_indent') if exists('b:did_indent')
@ -10,10 +10,6 @@ if exists('b:did_indent')
endif endif
let b:did_indent = 1 let b:did_indent = 1
" indent correctly if inside <script>
" vim/vim@690afe1 for the switch from cindent
let b:html_indent_script1 = 'inc'
" Now, set up our indentation expression and keys that trigger it. " Now, set up our indentation expression and keys that trigger it.
setlocal indentexpr=GetJavascriptIndent() setlocal indentexpr=GetJavascriptIndent()
setlocal autoindent nolisp nosmartindent setlocal autoindent nolisp nosmartindent
@ -25,13 +21,6 @@ setlocal indentkeys+=0],0)
let b:undo_indent = 'setlocal indentexpr< smartindent< autoindent< indentkeys<' let b:undo_indent = 'setlocal indentexpr< smartindent< autoindent< indentkeys<'
" Regex of syntax group names that are or delimit string or are comments.
let b:syng_strcom = get(b:,'syng_strcom','string\|comment\|regex\|special\|doc\|template\%(braces\)\@!')
let b:syng_str = get(b:,'syng_str','string\|template\|special')
" template strings may want to be excluded when editing graphql:
" au! Filetype javascript let b:syng_str = '^\%(.*template\)\@!.*string\|special'
" au! Filetype javascript let b:syng_strcom = '^\%(.*template\)\@!.*string\|comment\|regex\|special\|doc'
" Only define the function once. " Only define the function once.
if exists('*GetJavascriptIndent') if exists('*GetJavascriptIndent')
finish finish
@ -40,6 +29,23 @@ endif
let s:cpo_save = &cpo let s:cpo_save = &cpo
set cpo&vim set cpo&vim
" indent correctly if inside <script>
" vim/vim@690afe1 for the switch from cindent
" overridden with b:html_indent_script1
call extend(g:,{'html_indent_script1': 'inc'},'keep')
" Regex of syntax group names that are or delimit string or are comments.
let s:bvars = {
\ 'syng_strcom': 'string\|comment\|regex\|special\|doc\|template\%(braces\)\@!',
\ 'syng_str': 'string\|template\|special' }
" template strings may want to be excluded when editing graphql:
" au! Filetype javascript let b:syng_str = '^\%(.*template\)\@!.*string\|special'
" au! Filetype javascript let b:syng_strcom = '^\%(.*template\)\@!.*string\|comment\|regex\|special\|doc'
function s:GetVars()
call extend(b:,extend(s:bvars,{'js_cache': [0,0,0]}),'keep')
endfunction
" Get shiftwidth value " Get shiftwidth value
if exists('*shiftwidth') if exists('*shiftwidth')
function s:sw() function s:sw()
@ -104,21 +110,22 @@ endfunction
function s:SkipFunc() function s:SkipFunc()
if s:top_col == 1 if s:top_col == 1
throw 'out of bounds' throw 'out of bounds'
endif elseif s:check_in
let s:top_col = 0
if s:check_in
if eval(s:skip_expr) if eval(s:skip_expr)
return 1 return 1
endif endif
let s:check_in = 0 let s:check_in = 0
elseif getline('.') =~ '\%<'.col('.').'c\/.\{-}\/\|\%>'.col('.').'c[''"]\|\\$' elseif getline('.') =~ '\%<'.col('.').'c\/.\{-}\/\|\%>'.col('.').'c[''"]\|\\$'
if eval(s:skip_expr) if eval(s:skip_expr)
let s:looksyn = a:firstline
return 1 return 1
endif endif
elseif search('\m`\|\${\|\*\/','nW'.s:z,s:looksyn) && eval(s:skip_expr) elseif search('\m`\|\${\|\*\/','nW'.s:z,s:looksyn)
let s:check_in = 1 if eval(s:skip_expr)
return 1 let s:check_in = 1
return 1
endif
else
let s:synid_cache[:] += [[line2byte('.') + col('.') - 1], ['']]
endif endif
let [s:looksyn, s:top_col] = getpos('.')[1:2] let [s:looksyn, s:top_col] = getpos('.')[1:2]
endfunction endfunction
@ -159,19 +166,29 @@ function s:Token()
return s:LookingAt() =~ '\k' ? expand('<cword>') : s:LookingAt() return s:LookingAt() =~ '\k' ? expand('<cword>') : s:LookingAt()
endfunction endfunction
function s:PreviousToken() function s:PreviousToken(...)
let l:col = col('.') let [l:pos, tok] = [getpos('.'), '']
if search('\m\k\{1,}\|\S','ebW') if search('\m\k\{1,}\|\S','ebW')
if search('\m\*\%#\/\|\/\/\%<'.a:firstline.'l','nbW',line('.')) && eval(s:in_comm) if getline('.')[col('.')-2:col('.')-1] == '*/'
if s:SearchLoop('\S\ze\_s*\/[/*]','bW',s:in_comm) if eval(s:in_comm) && !s:SearchLoop('\S\ze\_s*\/[/*]','bW',s:in_comm)
return s:Token() call setpos('.',l:pos)
else
let tok = s:Token()
endif endif
call cursor(a:firstline, l:col)
else else
return s:Token() let two = a:0 || line('.') != l:pos[1] ? strridx(getline('.')[:col('.')],'//') + 1 : 0
if two && eval(s:in_comm)
call cursor(0,two)
let tok = s:PreviousToken(1)
if tok is ''
call setpos('.',l:pos)
endif
else
let tok = s:Token()
endif
endif endif
endif endif
return '' return tok
endfunction endfunction
function s:Pure(f,...) function s:Pure(f,...)
@ -183,23 +200,30 @@ function s:SearchLoop(pat,flags,expr)
endfunction endfunction
function s:ExprCol() function s:ExprCol()
if getline('.')[col('.')-2] == ':'
return 1
endif
let bal = 0 let bal = 0
while s:SearchLoop('[{}?]\|\_[^:]\zs::\@!','bW',s:skip_expr) while s:SearchLoop('[{}?:]','bW',s:skip_expr)
if s:LookingAt() == ':' if s:LookingAt() == ':'
if getline('.')[col('.')-2] == ':'
call cursor(0,col('.')-1)
continue
endif
let bal -= 1 let bal -= 1
elseif s:LookingAt() == '?' elseif s:LookingAt() == '?'
let bal += 1 if getline('.')[col('.'):col('.')+1] =~ '^\.\d\@!'
if bal == 1 continue
break elseif !bal
return 1
endif endif
let bal += 1
elseif s:LookingAt() == '{' elseif s:LookingAt() == '{'
let bal = !s:IsBlock() return !s:IsBlock()
break
elseif !s:GetPair('{','}','bW',s:skip_expr) elseif !s:GetPair('{','}','bW',s:skip_expr)
break break
endif endif
endwhile endwhile
return s:Nat(bal)
endfunction endfunction
" configurable regexes that define continuation lines, not including (, {, or [. " configurable regexes that define continuation lines, not including (, {, or [.
@ -208,30 +232,29 @@ let s:opfirst = '^' . get(g:,'javascript_opfirst',
let s:continuation = get(g:,'javascript_continuation', let s:continuation = get(g:,'javascript_continuation',
\ '\C\%([<=,.~!?/*^%|&:]\|+\@<!+\|-\@<!-\|=\@<!>\|\<\%(typeof\|new\|delete\|void\|in\|instanceof\|await\)\)') . '$' \ '\C\%([<=,.~!?/*^%|&:]\|+\@<!+\|-\@<!-\|=\@<!>\|\<\%(typeof\|new\|delete\|void\|in\|instanceof\|await\)\)') . '$'
function s:Continues(ln,con) function s:Continues()
let tok = matchstr(a:con[-15:],s:continuation) let tok = matchstr(strpart(getline('.'),col('.')-15,15),s:continuation)
if tok =~ '[a-z:]' if tok =~ '[a-z:]'
call cursor(a:ln, len(a:con))
return tok == ':' ? s:ExprCol() : s:PreviousToken() != '.' return tok == ':' ? s:ExprCol() : s:PreviousToken() != '.'
elseif tok !~ '[/>]' elseif tok !~ '[/>]'
return tok isnot '' return tok isnot ''
endif endif
return s:SynAt(a:ln, len(a:con)) !~? (tok == '>' ? 'jsflow\|^html' : 'regex') return s:SynAt(line('.'),col('.')) !~? (tok == '>' ? 'jsflow\|^html' : 'regex')
endfunction endfunction
" Check if line 'lnum' has a balanced amount of parentheses. " Check if line 'lnum' has a balanced amount of parentheses.
function s:Balanced(lnum) function s:Balanced(lnum,line)
let [l:open, l:line] = [0, getline(a:lnum)] let l:open = 0
let pos = match(l:line, '[][(){}]') let pos = match(a:line, '[][(){}]')
while pos != -1 while pos != -1
if s:SynAt(a:lnum,pos + 1) !~? b:syng_strcom if s:SynAt(a:lnum,pos + 1) !~? b:syng_strcom
let l:open += match(' ' . l:line[pos],'[[({]') let l:open += match(' ' . a:line[pos],'[[({]')
if l:open < 0 if l:open < 0
return return
endif endif
endif endif
let pos = match(l:line, !l:open ? '[][(){}]' : '()' =~ l:line[pos] ? let pos = match(a:line, !l:open ? '[][(){}]' : '()' =~ a:line[pos] ?
\ '[()]' : '{}' =~ l:line[pos] ? '[{}]' : '[][]', pos + 1) \ '[()]' : '{}' =~ a:line[pos] ? '[{}]' : '[][]', pos + 1)
endwhile endwhile
return !l:open return !l:open
endfunction endfunction
@ -244,27 +267,38 @@ function s:OneScope()
\ s:Pure('s:PreviousToken') != '.' && !(tok == 'while' && s:DoWhile()) \ s:Pure('s:PreviousToken') != '.' && !(tok == 'while' && s:DoWhile())
elseif s:Token() =~# '^else$\|^do$' elseif s:Token() =~# '^else$\|^do$'
return s:Pure('s:PreviousToken') != '.' return s:Pure('s:PreviousToken') != '.'
elseif strpart(getline('.'),col('.')-2,2) == '=>'
call cursor(0,col('.')-1)
if s:PreviousToken() == ')'
return s:GetPair('(', ')', 'bW', s:skip_expr)
endif
return 1
endif endif
return strpart(getline('.'),col('.')-2,2) == '=>'
endfunction endfunction
function s:DoWhile() function s:DoWhile()
let cpos = searchpos('\m\<','cbW') let cpos = searchpos('\m\<','cbW')
if s:SearchLoop('\C[{}]\|\<\%(do\|while\)\>','bW',s:skip_expr) while s:SearchLoop('\C[{}]\|\<\%(do\|while\)\>','bW',s:skip_expr)
if s:{s:LookingAt() == '}' && s:GetPair('{','}','bW',s:skip_expr) ? if s:LookingAt() =~ '\a'
\ 'Previous' : ''}Token() ==# 'do' && s:IsBlock() if s:Pure('s:IsBlock')
return 1 if s:LookingAt() ==# 'd'
return 1
endif
break
endif
elseif s:LookingAt() != '}' || !s:GetPair('{','}','bW',s:skip_expr)
break
endif endif
call call('cursor',cpos) endwhile
endif call call('cursor',cpos)
endfunction endfunction
" returns total offset from braceless contexts. 'num' is the lineNr which " returns total offset from braceless contexts. 'num' is the lineNr which
" encloses the entire context, 'cont' if whether a:firstline is a continued " encloses the entire context, 'cont' if whether a:firstline is a continued
" expression, which could have started in a braceless context " expression, which could have started in a braceless context
function s:IsContOne(num,cont) function s:IsContOne(cont)
let [l:num, b_l] = [a:num + !a:num, 0] let [l:num, b_l] = [b:js_cache[1] + !b:js_cache[1], 0]
let pind = a:num ? indent(a:num) + s:sw() : 0 let pind = b:js_cache[1] ? indent(b:js_cache[1]) + s:sw() : 0
let ind = indent('.') + !a:cont let ind = indent('.') + !a:cont
while line('.') > l:num && ind > pind || line('.') == l:num while line('.') > l:num && ind > pind || line('.') == l:num
if indent('.') < ind && s:OneScope() if indent('.') < ind && s:OneScope()
@ -282,20 +316,16 @@ function s:IsContOne(num,cont)
return b_l return b_l
endfunction endfunction
function s:Class()
return (s:Token() ==# 'class' || s:PreviousToken() =~# '^class$\|^extends$') &&
\ s:PreviousToken() != '.'
endfunction
function s:IsSwitch() function s:IsSwitch()
return s:PreviousToken() !~ '[.*]' && call call('cursor',b:js_cache[1:])
\ (!s:GetPair('{','}','cbW',s:skip_expr) || s:IsBlock() && !s:Class()) return search('\m\C\%#.\_s*\%(\%(\/\/.*\_$\|\/\*\_.\{-}\*\/\)\@>\_s*\)*\%(case\|default\)\>','nWc'.s:z)
endfunction endfunction
" https://github.com/sweet-js/sweet.js/wiki/design#give-lookbehind-to-the-reader " https://github.com/sweet-js/sweet.js/wiki/design#give-lookbehind-to-the-reader
function s:IsBlock() function s:IsBlock()
let tok = s:PreviousToken() let tok = s:PreviousToken()
if join(s:stack) =~? 'xml\|jsx' && s:SynAt(line('.'),col('.')-1) =~? 'xml\|jsx' if join(s:stack) =~? 'xml\|jsx' && s:SynAt(line('.'),col('.')-1) =~? 'xml\|jsx'
let s:in_jsx = 1
return tok != '{' return tok != '{'
elseif tok =~ '\k' elseif tok =~ '\k'
if tok ==# 'type' if tok ==# 'type'
@ -320,7 +350,7 @@ function s:IsBlock()
endfunction endfunction
function GetJavascriptIndent() function GetJavascriptIndent()
let b:js_cache = get(b:,'js_cache',[0,0,0]) call s:GetVars()
let s:synid_cache = [[],[]] let s:synid_cache = [[],[]]
let l:line = getline(v:lnum) let l:line = getline(v:lnum)
" use synstack as it validates syn state and works in an empty line " use synstack as it validates syn state and works in an empty line
@ -334,7 +364,7 @@ function GetJavascriptIndent()
return -1 return -1
endif endif
elseif s:stack[-1] =~? b:syng_str elseif s:stack[-1] =~? b:syng_str
if b:js_cache[0] == v:lnum - 1 && s:Balanced(v:lnum-1) if b:js_cache[0] == v:lnum - 1 && s:Balanced(v:lnum-1,getline(v:lnum-1))
let b:js_cache[0] = v:lnum let b:js_cache[0] = v:lnum
endif endif
return -1 return -1
@ -361,7 +391,7 @@ function GetJavascriptIndent()
call cursor(v:lnum,1) call cursor(v:lnum,1)
let idx = index([']',')','}'],l:line[0]) let idx = index([']',')','}'],l:line[0])
if b:js_cache[0] > l:lnum && b:js_cache[0] < v:lnum || if b:js_cache[0] > l:lnum && b:js_cache[0] < v:lnum ||
\ b:js_cache[0] == l:lnum && s:Balanced(l:lnum) \ b:js_cache[0] == l:lnum && s:Balanced(l:lnum,pline)
call call('cursor',b:js_cache[1:]) call call('cursor',b:js_cache[1:])
else else
let [s:looksyn, s:top_col, s:check_in, s:l1] = [v:lnum - 1,0,0, let [s:looksyn, s:top_col, s:check_in, s:l1] = [v:lnum - 1,0,0,
@ -382,10 +412,10 @@ function GetJavascriptIndent()
let [b:js_cache[0], num] = [v:lnum, b:js_cache[1]] let [b:js_cache[0], num] = [v:lnum, b:js_cache[1]]
let [num_ind, is_op, b_l, l:switch_offset] = [s:Nat(indent(num)),0,0,0] let [num_ind, is_op, b_l, l:switch_offset, s:in_jsx] = [s:Nat(indent(num)),0,0,0,0]
if !num || s:LookingAt() == '{' && s:IsBlock() if !num || s:LookingAt() == '{' && s:IsBlock()
let ilnum = line('.') let ilnum = line('.')
if num && s:LookingAt() == ')' && s:GetPair('(',')','bW',s:skip_expr) if num && !s:in_jsx && s:LookingAt() == ')' && s:GetPair('(',')','bW',s:skip_expr)
if ilnum == num if ilnum == num
let [num, num_ind] = [line('.'), indent('.')] let [num, num_ind] = [line('.'), indent('.')]
endif endif
@ -399,23 +429,24 @@ function GetJavascriptIndent()
endif endif
endif endif
if idx == -1 && pline[-1:] !~ '[{;]' if idx == -1 && pline[-1:] !~ '[{;]'
call cursor(l:lnum, len(pline))
let sol = matchstr(l:line,s:opfirst) let sol = matchstr(l:line,s:opfirst)
if sol is '' || sol == '/' && s:SynAt(v:lnum, if sol is '' || sol == '/' && s:SynAt(v:lnum,
\ 1 + len(getline(v:lnum)) - len(l:line)) =~? 'regex' \ 1 + len(getline(v:lnum)) - len(l:line)) =~? 'regex'
if s:Continues(l:lnum,pline) if s:Continues()
let is_op = s:sw() let is_op = s:sw()
endif endif
elseif num && sol =~# '^\%(in\%(stanceof\)\=\|\*\)$' elseif num && sol =~# '^\%(in\%(stanceof\)\=\|\*\)$' &&
call call('cursor',b:js_cache[1:]) \ s:LookingAt() == '}' && s:GetPair('{','}','bW',s:skip_expr) &&
if s:PreviousToken() =~ '\k' && s:Class() \ s:PreviousToken() == ')' && s:GetPair('(',')','bW',s:skip_expr) &&
return num_ind + s:sw() \ (s:PreviousToken() == ']' || s:LookingAt() =~ '\k' &&
endif \ s:{s:PreviousToken() == '*' ? 'Previous' : ''}Token() !=# 'function')
let is_op = s:sw() return num_ind + s:sw()
else else
let is_op = s:sw() let is_op = s:sw()
endif endif
call cursor(l:lnum, len(pline)) call cursor(l:lnum, len(pline))
let b_l = s:Nat(s:IsContOne(b:js_cache[1],is_op) - (!is_op && l:line =~ '^{')) * s:sw() let b_l = s:Nat(s:IsContOne(is_op) - (!is_op && l:line =~ '^{')) * s:sw()
endif endif
elseif idx.s:LookingAt().&cino =~ '^-1(.*(' && (search('\m\S','nbW',num) || s:ParseCino('U')) elseif idx.s:LookingAt().&cino =~ '^-1(.*(' && (search('\m\S','nbW',num) || s:ParseCino('U'))
let pval = s:ParseCino('(') let pval = s:ParseCino('(')
@ -431,10 +462,10 @@ function GetJavascriptIndent()
" main return " main return
if l:line =~ '^[])}]\|^|}' if l:line =~ '^[])}]\|^|}'
if l:line_raw[0] == ')' && getline(num)[b:js_cache[2]-1] == '(' if l:line_raw[0] == ')'
if s:ParseCino('M') if s:ParseCino('M')
return indent(l:lnum) return indent(l:lnum)
elseif &cino =~# 'm' && !s:ParseCino('m') elseif num && &cino =~# 'm' && !s:ParseCino('m')
return virtcol('.') - 1 return virtcol('.') - 1
endif endif
endif endif

91
runtime/indent/nsis.vim Normal file
View File

@ -0,0 +1,91 @@
" Vim indent file
" Language: NSIS script
" Maintainer: Ken Takata
" URL: https://github.com/k-takata/vim-nsis
" Last Change: 2018-01-21
" Filenames: *.nsi
" License: VIM License
if exists("b:did_indent")
finish
endif
let b:did_indent = 1
setlocal nosmartindent
setlocal noautoindent
setlocal indentexpr=GetNsisIndent(v:lnum)
setlocal indentkeys=!^F,o,O
setlocal indentkeys+==~${Else,=~${EndIf,=~${EndUnless,=~${AndIf,=~${AndUnless,=~${OrIf,=~${OrUnless,=~${Case,=~${Default,=~${EndSelect,=~${EndSwith,=~${Loop,=~${Next,=~${MementoSectionEnd,=~FunctionEnd,=~SectionEnd,=~SectionGroupEnd,=~PageExEnd,0=~!macroend,0=~!if,0=~!else,0=~!endif
if exists("*GetNsisIndent")
finish
endif
function! GetNsisIndent(lnum)
" If this line is explicitly joined: If the previous line was also joined,
" line it up with that one, otherwise add two 'shiftwidth'
if getline(a:lnum - 1) =~ '\\$'
if a:lnum > 1 && getline(a:lnum - 2) =~ '\\$'
return indent(a:lnum - 1)
endif
return indent(a:lnum - 1) + shiftwidth() * 2
endif
" Grab the current line, stripping comments.
let l:thisl = substitute(getline(a:lnum), '[;#].*$', '', '')
" Check if this line is a conditional preprocessor line.
let l:preproc = l:thisl =~? '^\s*!\%(if\|else\|endif\)'
" Grab the previous line, stripping comments.
" Skip preprocessor lines and continued lines.
let l:prevlnum = a:lnum
while 1
let l:prevlnum = prevnonblank(l:prevlnum - 1)
if l:prevlnum == 0
" top of file
return 0
endif
let l:prevl = substitute(getline(l:prevlnum), '[;#].*$', '', '')
let l:prevpreproc = l:prevl =~? '^\s*!\%(if\|else\|endif\)'
if l:preproc == l:prevpreproc && getline(l:prevlnum - 1) !~? '\\$'
break
endif
endwhile
let l:previ = indent(l:prevlnum)
let l:ind = l:previ
if l:preproc
" conditional preprocessor
if l:prevl =~? '^\s*!\%(if\%(\%(macro\)\?n\?def\)\?\|else\)\>'
let l:ind += shiftwidth()
endif
if l:thisl =~? '^\s*!\%(else\|endif\)\?\>'
let l:ind -= shiftwidth()
endif
return l:ind
endif
if l:prevl =~? '^\s*\%(\${\%(If\|IfNot\|Unless\|ElseIf\|ElseIfNot\|ElseUnless\|Else\|AndIf\|AndIfNot\|AndUnless\|OrIf\|OrIfNot\|OrUnless\|Select\|Case\|Case[2-5]\|CaseElse\|Default\|Switch\|Do\|DoWhile\|DoUntil\|For\|ForEach\|MementoSection\)}\|Function\>\|Section\>\|SectionGroup\|PageEx\>\|!macro\>\)'
" previous line opened a block
let l:ind += shiftwidth()
endif
if l:thisl =~? '^\s*\%(\${\%(ElseIf\|ElseIfNot\|ElseUnless\|Else\|EndIf\|EndUnless\|AndIf\|AndIfNot\|AndUnless\|OrIf\|OrIfNot\|OrUnless\|Loop\|LoopWhile\|LoopUntil\|Next\|MementoSectionEnd\)\>}\?\|FunctionEnd\>\|SectionEnd\>\|SectionGroupEnd\|PageExEnd\>\|!macroend\>\)'
" this line closed a block
let l:ind -= shiftwidth()
elseif l:thisl =~? '^\s*\${\%(Case\|Case[2-5]\|CaseElse\|Default\)\>}\?'
if l:prevl !~? '^\s*\${\%(Select\|Switch\)}'
let l:ind -= shiftwidth()
endif
elseif l:thisl =~? '^\s*\${\%(EndSelect\|EndSwitch\)\>}\?'
" this line closed a block
if l:prevl =~? '^\s*\${\%(Select\|Switch\)}'
let l:ind -= shiftwidth()
else
let l:ind -= shiftwidth() * 2
endif
endif
return l:ind
endfunction
" vim: ts=8 sw=2 sts=2

View File

@ -1,11 +1,14 @@
" Vim indent file " Vim indent file
" Language: Scheme " Language: Scheme
" Maintainer: Sergey Khorev <sergey.khorev@gmail.com> " Last Change: 2018 Jan 31
" Last Change: 2005 Jun 24 " Maintainer: Evan Hanson <evhan@foldling.org>
" Previous Maintainer: Sergey Khorev <sergey.khorev@gmail.com>
" URL: https://foldling.org/vim/indent/scheme.vim
" Only load this indent file when no other was loaded. " Only load this indent file when no other was loaded.
if exists("b:did_indent") if exists("b:did_indent")
finish finish
endif endif
" Use the Lisp indenting
runtime! indent/lisp.vim runtime! indent/lisp.vim

View File

@ -0,0 +1,143 @@
" Maintainer: Oliver Corff <oliver.corff@email.de>
" Last Changed: 2018 Feb 12
scriptencoding utf-8
" oto = Old Turkic, Orkhon
let b:keymap_name = "oto"
highlight lCursor guibg=red guifg=NONE
" map F8 to toggle keymap (Ctrl-^ not present on keyboard)
noremap <F8> :let &iminsert = ! &iminsert<CR>
lnoremap <F8> <C-^>
noremap! <F8> <C-^>
loadkeymap
A 𐰀 10C00 OLD TURKIC LETTER ORKHON A
00 𐰀 10C00 OLD TURKIC LETTER ORKHON A
I 𐰃 10C03 OLD TURKIC LETTER ORKHON I
03 𐰃 10C03 OLD TURKIC LETTER ORKHON I
O 𐰆 10C06 OLD TURKIC LETTER ORKHON O
U 𐰆 10C06 OLD TURKIC LETTER ORKHON O
06 𐰆 10C06 OLD TURKIC LETTER ORKHON O
OE 𐰇 10C07 OLD TURKIC LETTER ORKHON OE
UE 𐰇 10C07 OLD TURKIC LETTER ORKHON OE
07 𐰇 10C07 OLD TURKIC LETTER ORKHON OE
ab 𐰉 10C09 OLD TURKIC LETTER ORKHON AB
b1 𐰉 10C09 OLD TURKIC LETTER ORKHON AB
09 𐰉 10C09 OLD TURKIC LETTER ORKHON AB
aeb 𐰋 10C0B OLD TURKIC LETTER ORKHON AEB
eb 𐰋 10C0B OLD TURKIC LETTER ORKHON AEB
b2 𐰋 10C0B OLD TURKIC LETTER ORKHON AEB
0b 𐰋 10C0B OLD TURKIC LETTER ORKHON AEB
ag 𐰍 10C0D OLD TURKIC LETTER ORKHON AG
g1 𐰍 10C0D OLD TURKIC LETTER ORKHON AG
0d 𐰍 10C0D OLD TURKIC LETTER ORKHON AG
aeg 𐰏 10C0F OLD TURKIC LETTER ORKHON AEG
eg 𐰏 10C0F OLD TURKIC LETTER ORKHON AEG
g2 𐰏 10C0F OLD TURKIC LETTER ORKHON AEG
0f 𐰏 10C0F OLD TURKIC LETTER ORKHON AEG
ad 𐰑 10C11 OLD TURKIC LETTER ORKHON AD
d1 𐰑 10C11 OLD TURKIC LETTER ORKHON AD
11 𐰑 10C11 OLD TURKIC LETTER ORKHON AD
aed 𐰓 10C13 OLD TURKIC LETTER ORKHON AED
ed 𐰓 10C13 OLD TURKIC LETTER ORKHON AED
d2 𐰓 10C13 OLD TURKIC LETTER ORKHON AED
13 𐰓 10C13 OLD TURKIC LETTER ORKHON AED
ez 𐰔 10C14 OLD TURKIC LETTER ORKHON EZ
z 𐰔 10C14 OLD TURKIC LETTER ORKHON EZ
14 𐰔 10C14 OLD TURKIC LETTER ORKHON EZ
ay 𐰖 10C16 OLD TURKIC LETTER ORKHON AY
y1 𐰖 10C16 OLD TURKIC LETTER ORKHON AY
16 𐰖 10C16 OLD TURKIC LETTER ORKHON AY
aey 𐰘 10C18 OLD TURKIC LETTER ORKHON AEY
ey 𐰘 10C18 OLD TURKIC LETTER ORKHON AEY
y2 𐰘 10C18 OLD TURKIC LETTER ORKHON AEY
18 𐰘 10C18 OLD TURKIC LETTER ORKHON AEY
aek 𐰚 10C1A OLD TURKIC LETTER ORKHON AEK
k 𐰚 10C1A OLD TURKIC LETTER ORKHON AEK
1a 𐰚 10C1A OLD TURKIC LETTER ORKHON AEK
oek 𐰜 10C1C OLD TURKIC LETTER ORKHON OEK
q 𐰜 10C1C OLD TURKIC LETTER ORKHON OEK
1c 𐰜 10C1C OLD TURKIC LETTER ORKHON OEK
al 𐰞 10C1E OLD TURKIC LETTER ORKHON AL
l1 𐰞 10C1E OLD TURKIC LETTER ORKHON AL
1e 𐰞 10C1E OLD TURKIC LETTER ORKHON AL
ael 𐰠 10C20 OLD TURKIC LETTER ORKHON AEL
el 𐰠 10C20 OLD TURKIC LETTER ORKHON AEL
l2 𐰠 10C20 OLD TURKIC LETTER ORKHON AEL
20 𐰠 10C20 OLD TURKIC LETTER ORKHON AEL
elt 𐰡 10C21 OLD TURKIC LETTER ORKHON ELT
lt 𐰡 10C21 OLD TURKIC LETTER ORKHON ELT
21 𐰡 10C21 OLD TURKIC LETTER ORKHON ELT
em 𐰢 10C22 OLD TURKIC LETTER ORKHON EM
m 𐰢 10C22 OLD TURKIC LETTER ORKHON EM
22 𐰢 10C22 OLD TURKIC LETTER ORKHON EM
an 𐰣 10C23 OLD TURKIC LETTER ORKHON AN
n1 𐰣 10C23 OLD TURKIC LETTER ORKHON AN
23 𐰣 10C23 OLD TURKIC LETTER ORKHON AN
en 𐰤 10C24 OLD TURKIC LETTER ORKHON AEN
n2 𐰤 10C24 OLD TURKIC LETTER ORKHON AEN
24 𐰤 10C24 OLD TURKIC LETTER ORKHON AEN
ent 𐰦 10C26 OLD TURKIC LETTER ORKHON ENT
nt 𐰦 10C26 OLD TURKIC LETTER ORKHON ENT
26 𐰦 10C26 OLD TURKIC LETTER ORKHON ENT
enc 𐰨 10C28 OLD TURKIC LETTER ORKHON ENC
nc 𐰨 10C28 OLD TURKIC LETTER ORKHON ENC
28 𐰨 10C28 OLD TURKIC LETTER ORKHON ENC
eny 𐰪 10C2A OLD TURKIC LETTER ORKHON ENY
ny 𐰪 10C2A OLD TURKIC LETTER ORKHON ENY
2a 𐰪 10C2A OLD TURKIC LETTER ORKHON ENY
eng 𐰭 10C2D OLD TURKIC LETTER ORKHON ENG
ng 𐰭 10C2D OLD TURKIC LETTER ORKHON ENG
2d 𐰭 10C2D OLD TURKIC LETTER ORKHON ENG
ep 𐰯 10C2F OLD TURKIC LETTER ORKHON EP
p 𐰯 10C2F OLD TURKIC LETTER ORKHON EP
2f 𐰯 10C2F OLD TURKIC LETTER ORKHON EP
op 𐰰 10C30 OLD TURKIC LETTER ORKHON OP
up 𐰰 10C30 OLD TURKIC LETTER ORKHON OP
30 𐰰 10C30 OLD TURKIC LETTER ORKHON OP
ic 𐰱 10C31 OLD TURKIC LETTER ORKHON IC
31 𐰱 10C31 OLD TURKIC LETTER ORKHON IC
ec 𐰲 10C32 OLD TURKIC LETTER ORKHON EC
32 𐰲 10C32 OLD TURKIC LETTER ORKHON EC
aq 𐰴 10C34 OLD TURKIC LETTER ORKHON AQ
34 𐰴 10C34 OLD TURKIC LETTER ORKHON AQ
iq 𐰶 10C36 OLD TURKIC LETTER ORKHON IQ
yq 𐰶 10C36 OLD TURKIC LETTER ORKHON IQ
36 𐰶 10C36 OLD TURKIC LETTER ORKHON IQ
oq 𐰸 10C38 OLD TURKIC LETTER ORKHON OQ
uq 𐰸 10C38 OLD TURKIC LETTER ORKHON OQ
38 𐰸 10C38 OLD TURKIC LETTER ORKHON OQ
ar 𐰺 10C3A OLD TURKIC LETTER ORKHON AR
r1 𐰺 10C3A OLD TURKIC LETTER ORKHON AR
3a 𐰺 10C3A OLD TURKIC LETTER ORKHON AR
aer 𐰼 10C3C OLD TURKIC LETTER ORKHON AER
er 𐰼 10C3C OLD TURKIC LETTER ORKHON AER
r2 𐰼 10C3C OLD TURKIC LETTER ORKHON AER
3c 𐰼 10C3C OLD TURKIC LETTER ORKHON AER
as 𐰽 10C3D OLD TURKIC LETTER ORKHON AS
s1 𐰽 10C3D OLD TURKIC LETTER ORKHON AS
3d 𐰽 10C3D OLD TURKIC LETTER ORKHON AS
aes 𐰾 10C3E OLD TURKIC LETTER ORKHON AES
es 𐰾 10C3E OLD TURKIC LETTER ORKHON AES
s2 𐰾 10C3E OLD TURKIC LETTER ORKHON AES
3e 𐰾 10C3E OLD TURKIC LETTER ORKHON AES
ash 𐰿 10C3F OLD TURKIC LETTER ORKHON ASH
sh1 𐰿 10C3F OLD TURKIC LETTER ORKHON ASH
3f 𐰿 10C3F OLD TURKIC LETTER ORKHON ASH
esh 𐱁 10C41 OLD TURKIC LETTER ORKHON ESH
sh2 𐱁 10C41 OLD TURKIC LETTER ORKHON ESH
41 𐱁 10C41 OLD TURKIC LETTER ORKHON ESH
at 𐱃 10C43 OLD TURKIC LETTER ORKHON AT
t1 𐱃 10C43 OLD TURKIC LETTER ORKHON AT
43 𐱃 10C43 OLD TURKIC LETTER ORKHON AT
aet 𐱅 10C45 OLD TURKIC LETTER ORKHON AET
et 𐱅 10C45 OLD TURKIC LETTER ORKHON AET
t2 𐱅 10C45 OLD TURKIC LETTER ORKHON AET
45 𐱅 10C45 OLD TURKIC LETTER ORKHON AET
ot 𐱇 10C47 OLD TURKIC LETTER ORKHON OT
ut 𐱇 10C47 OLD TURKIC LETTER ORKHON OT
47 𐱇 10C47 OLD TURKIC LETTER ORKHON OT
bash 𐱈 10C48 OLD TURKIC LETTER ORKHON BASH
48 𐱈 10C48 OLD TURKIC LETTER ORKHON BASH

View File

@ -0,0 +1,115 @@
" Maintainer: Oliver Corff <oliver.corff@yemail.de>
" Last Changed: 2018 Feb 12
" All characters are given literally, conversion to another encoding (e.g.,
" UTF-8) should work.
scriptencoding utf-8
let b:keymap_name = "oto"
highlight lCursor guibg=red guifg=NONE
" map F8 to toggle keymap (Ctrl-^ not present on keyboard)
noremap <F8> :let &iminsert = ! &iminsert<CR>
lnoremap <F8> <C-^>
noremap! <F8> <C-^>
loadkeymap
A 𐰁 10C01 OLD TURKIC LETTER YENISEI A
01 𐰁 10C01 OLD TURKIC LETTER YENISEI A
AE 𐰂 10C02 OLD TURKIC LETTER YENISEI AE
02 𐰂 10C02 OLD TURKIC LETTER YENISEI AE
I 𐰄 10C04 OLD TURKIC LETTER YENISEI I
04 𐰄 10C04 OLD TURKIC LETTER YENISEI I
E 𐰅 10C05 OLD TURKIC LETTER YENISEI E
05 𐰅 10C05 OLD TURKIC LETTER YENISEI E
OE 𐰈 10C08 OLD TURKIC LETTER YENISEI OE
UE 𐰈 10C08 OLD TURKIC LETTER YENISEI OE
08 𐰈 10C08 OLD TURKIC LETTER YENISEI OE
ab 𐰊 10C0A OLD TURKIC LETTER YENISEI AB
b1 𐰊 10C0A OLD TURKIC LETTER YENISEI AB
0a 𐰊 10C0A OLD TURKIC LETTER YENISEI AB
aeb 𐰌 10C0C OLD TURKIC LETTER YENISEI AEB
eb 𐰌 10C0C OLD TURKIC LETTER YENISEI AEB
b2 𐰌 10C0C OLD TURKIC LETTER YENISEI AEB
0c 𐰌 10C0C OLD TURKIC LETTER YENISEI AEB
ag 𐰎 10C0E OLD TURKIC LETTER YENISEI AG
g1 𐰎 10C0E OLD TURKIC LETTER YENISEI AG
0e 𐰎 10C0E OLD TURKIC LETTER YENISEI AG
aeg 𐰐 10C10 OLD TURKIC LETTER YENISEI AEG
eg 𐰐 10C10 OLD TURKIC LETTER YENISEI AEG
g2 𐰐 10C10 OLD TURKIC LETTER YENISEI AEG
10 𐰐 10C10 OLD TURKIC LETTER YENISEI AEG
ad 𐰒 10C12 OLD TURKIC LETTER YENISEI AD
d1 𐰒 10C12 OLD TURKIC LETTER YENISEI AD
12 𐰒 10C12 OLD TURKIC LETTER YENISEI AD
ez 𐰕 10C15 OLD TURKIC LETTER YENISEI EZ
z 𐰕 10C15 OLD TURKIC LETTER YENISEI EZ
15 𐰕 10C15 OLD TURKIC LETTER YENISEI EZ
ay 𐰗 10C17 OLD TURKIC LETTER YENISEI AY
y1 𐰗 10C17 OLD TURKIC LETTER YENISEI AY
17 𐰗 10C17 OLD TURKIC LETTER YENISEI AY
aey 𐰙 10C19 OLD TURKIC LETTER YENISEI AEY
ey 𐰙 10C19 OLD TURKIC LETTER YENISEI AEY
y2 𐰙 10C19 OLD TURKIC LETTER YENISEI AEY
19 𐰙 10C19 OLD TURKIC LETTER YENISEI AEY
aek 𐰛 10C1B OLD TURKIC LETTER YENISEI AEK
ak 𐰛 10C1B OLD TURKIC LETTER YENISEI AEK
k 𐰛 10C1B OLD TURKIC LETTER YENISEI AEK
1b 𐰛 10C1B OLD TURKIC LETTER YENISEI AEK
oek 𐰝 10C1D OLD TURKIC LETTER YENISEI OEK
ök 𐰝 10C1D OLD TURKIC LETTER YENISEI OEK
uek 𐰝 10C1D OLD TURKIC LETTER YENISEI OEK
ük 𐰝 10C1D OLD TURKIC LETTER YENISEI OEK
1d 𐰝 10C1D OLD TURKIC LETTER YENISEI OEK
al 𐰟 10C1F OLD TURKIC LETTER YENISEI AL
l 𐰟 10C1F OLD TURKIC LETTER YENISEI AL
l1 𐰟 10C1F OLD TURKIC LETTER YENISEI AL
1f 𐰟 10C1F OLD TURKIC LETTER YENISEI AL
aen 𐰥 10C25 OLD TURKIC LETTER YENISEI AEN
en 𐰥 10C25 OLD TURKIC LETTER YENISEI AEN
n2 𐰥 10C25 OLD TURKIC LETTER YENISEI AEN
25 𐰥 10C25 OLD TURKIC LETTER YENISEI AEN
ent 𐰧 10C27 OLD TURKIC LETTER YENISEI ENT
nt 𐰧 10C27 OLD TURKIC LETTER YENISEI ENT
27 𐰧 10C27 OLD TURKIC LETTER YENISEI ENT
enc 𐰩 10C29 OLD TURKIC LETTER YENISEI ENC
nc 𐰩 10C29 OLD TURKIC LETTER YENISEI ENC
29 𐰩 10C29 OLD TURKIC LETTER YENISEI ENC
eny 𐰫 10C2B OLD TURKIC LETTER YENISEI ENY
ny 𐰫 10C2B OLD TURKIC LETTER YENISEI ENY
2b 𐰫 10C2B OLD TURKIC LETTER YENISEI ENY
ang 𐰬 10C2C OLD TURKIC LETTER YENISEI ANG
ng 𐰬 10C2C OLD TURKIC LETTER YENISEI ANG
2c 𐰬 10C2C OLD TURKIC LETTER YENISEI ANG
aeng 𐰮 10C2E OLD TURKIC LETTER YENISEI AENG
eng 𐰮 10C2E OLD TURKIC LETTER YENISEI AENG
2e 𐰮 10C2E OLD TURKIC LETTER YENISEI AENG
ec 𐰳 10C33 OLD TURKIC LETTER YENISEI EC
c 𐰳 10C33 OLD TURKIC LETTER YENISEI EC
33 𐰳 10C33 OLD TURKIC LETTER YENISEI EC
aq 𐰵 10C35 OLD TURKIC LETTER YENISEI AQ
q 𐰵 10C35 OLD TURKIC LETTER YENISEI AQ
35 𐰵 10C35 OLD TURKIC LETTER YENISEI AQ
iq 𐰷 10C37 OLD TURKIC LETTER YENISEI IQ
yq 𐰷 10C37 OLD TURKIC LETTER YENISEI IQ
37 𐰷 10C37 OLD TURKIC LETTER YENISEI IQ
oq 𐰹 10C39 OLD TURKIC LETTER YENISEI OQ
uq 𐰹 10C39 OLD TURKIC LETTER YENISEI OQ
39 𐰹 10C39 OLD TURKIC LETTER YENISEI OQ
ar 𐰻 10C3B OLD TURKIC LETTER YENISEI AR
r 𐰻 10C3B OLD TURKIC LETTER YENISEI AR
r1 𐰻 10C3B OLD TURKIC LETTER YENISEI AR
3b 𐰻 10C3B OLD TURKIC LETTER YENISEI AR
ash 𐱀 10C40 OLD TURKIC LETTER YENISEI ASH
sh1 𐱀 10C40 OLD TURKIC LETTER YENISEI ASH
40 𐱀 10C40 OLD TURKIC LETTER YENISEI ASH
esh 𐱂 10C42 OLD TURKIC LETTER YENISEI ESH
sh2 𐱂 10C42 OLD TURKIC LETTER YENISEI ESH
42 𐱂 10C42 OLD TURKIC LETTER YENISEI ESH
at 𐱄 10C44 OLD TURKIC LETTER YENISEI AT
t1 𐱄 10C44 OLD TURKIC LETTER YENISEI AT
44 𐱄 10C44 OLD TURKIC LETTER YENISEI AT
aet 𐱆 10C46 OLD TURKIC LETTER YENISEI AET
et 𐱆 10C46 OLD TURKIC LETTER YENISEI AET
t2 𐱆 10C46 OLD TURKIC LETTER YENISEI AET
46 𐱆 10C46 OLD TURKIC LETTER YENISEI AET

View File

@ -1,6 +1,7 @@
" Menu Translations: Serbian " Menu Translations: Serbian
" Maintainer: Aleksandar Jelenak <ajelenak AT yahoo.com> " Maintainer: Aleksandar Jelenak <ajelenak AT yahoo.com>
" Last Change: Fri, 30 May 2003 12:15:30 -0400 " Last Change: Fri, 30 May 2003 10:17:39 Eastern Daylight Time
" Adapted for VIM 8 by: Ivan Pesic on 2017-12-28 12:05+0400
" Quit when menu translations have already been done. " Quit when menu translations have already been done.
if exists("did_menu_trans") if exists("did_menu_trans")
@ -19,6 +20,7 @@ menutrans &Find &Nadji
menutrans &Credits &Zasluge menutrans &Credits &Zasluge
menutrans Co&pying P&reuzimanje menutrans Co&pying P&reuzimanje
menutrans O&rphans &Sirocici menutrans O&rphans &Sirocici
menutrans &Sponsor/Register Sponzor/&Registrujte\ se
menutrans &Version &Verzija menutrans &Version &Verzija
menutrans &About &O\ programu menutrans &About &O\ programu
@ -26,6 +28,7 @@ menutrans &About &O\ programu
menutrans &File &Datoteka menutrans &File &Datoteka
menutrans &Open\.\.\.<Tab>:e &Otvori\.\.\.<Tab>:e menutrans &Open\.\.\.<Tab>:e &Otvori\.\.\.<Tab>:e
menutrans Sp&lit-Open\.\.\.<Tab>:sp &Podeli-otvori\.\.\.<Tab>:sp menutrans Sp&lit-Open\.\.\.<Tab>:sp &Podeli-otvori\.\.\.<Tab>:sp
menutrans Open\ Tab\.\.\.<Tab>:tabnew Otvori\ karticu\.\.\.<Tab>:tabnew
menutrans &New<Tab>:enew &Nova<Tab>:enew menutrans &New<Tab>:enew &Nova<Tab>:enew
menutrans &Close<Tab>:close &Zatvori<Tab>:close menutrans &Close<Tab>:close &Zatvori<Tab>:close
menutrans &Save<Tab>:w &Sacuvaj<Tab>:w menutrans &Save<Tab>:w &Sacuvaj<Tab>:w
@ -52,24 +55,27 @@ menutrans &Select\ all<Tab>ggVG Izaberi\ sv&e<Tab>ggVG
menutrans &Find\.\.\. &Nadji\.\.\. menutrans &Find\.\.\. &Nadji\.\.\.
menutrans Find\ and\ Rep&lace\.\.\. Nadji\ i\ &zameni\.\.\. menutrans Find\ and\ Rep&lace\.\.\. Nadji\ i\ &zameni\.\.\.
menutrans Settings\ &Window P&rozor\ podesavanja menutrans Settings\ &Window P&rozor\ podesavanja
menutrans Startup\ &Settings Po&desavanja\ pri\ pokretanju
menutrans &Global\ Settings Op&sta\ podesavanja menutrans &Global\ Settings Op&sta\ podesavanja
menutrans F&ile\ Settings Podesavanja\ za\ da&toteke menutrans F&ile\ Settings Podesavanja\ za\ da&toteke
menutrans &Shiftwidth &Pomeraj menutrans &Shiftwidth &Pomeraj
menutrans Soft\ &Tabstop &Meka\ tabulacija menutrans Soft\ &Tabstop &Meka\ tabulacija
menutrans Te&xt\ Width\.\.\. &Sirina\ teksta\.\.\. menutrans Te&xt\ Width\.\.\. &Sirina\ teksta\.\.\.
menutrans &File\ Format\.\.\. &Vrsta\ datoteke\.\.\. menutrans &File\ Format\.\.\. &Vrsta\ datoteke\.\.\.
menutrans C&olor\ Scheme Bo&je menutrans Show\ C&olor\ Schemes\ in\ Menu Prikazi\ seme\ bo&ja\ u\ meniju
menutrans &Keymap Pres&likavanje\ tastature menutrans C&olor\ Scheme \Seme\ bo&ja
menutrans Show\ &Keymaps\ in\ Menu Prikazi\ pres&likavanja\ tastature\ u\ meniju
menutrans &Keymap Pres&likavanja\ tastature
menutrans Select\ Fo&nt\.\.\. Izbor\ &fonta\.\.\. menutrans Select\ Fo&nt\.\.\. Izbor\ &fonta\.\.\.
" Edit/Global Settings " Edit/Global Settings
menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls! Naglasi\ &obrazce\ (da/ne)<Tab>:set\ hls! menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls! Naglasi\ &obrazce\ (da/ne)<Tab>:set\ hls!
menutrans Toggle\ &Ignore-case<Tab>:set\ ic! Zanemari\ \velicinu\ &slova\ (da/ne)<Tab>:set\ ic! menutrans Toggle\ &Ignoring\ Case<Tab>:set\ ic! Zanemari\ velicinu\ &slova\ (da/ne)<Tab>:set\ ic!
menutrans Toggle\ &Showmatch<Tab>:set\ sm! Proveri\ pratecu\ &zagradu\ (da/ne)<Tab>:set\ sm! menutrans Toggle\ &Showing\ Matched\ Pairs<Tab>:set\ sm! Proveri\ pratecu\ &zagradu\ (da/ne)<Tab>:set\ sm!
menutrans &Context\ lines Vidljivi\ &redovi menutrans &Context\ lines Vidljivi\ &redovi
menutrans &Virtual\ Edit Virtuelno\ &uredjivanje menutrans &Virtual\ Edit Virtuelno\ &uredjivanje
menutrans Toggle\ Insert\ &Mode<Tab>:set\ im! Rezim\ u&nosa\ (da/ne)<Tab>:set\ im! menutrans Toggle\ Insert\ &Mode<Tab>:set\ im! Rezim\ u&nosa\ (da/ne)<Tab>:set\ im!
menutrans Toggle\ Vi\ C&ompatible<Tab>:set\ cp! '&Vi'\ saglasno\ (da/ne)<Tab>:set\ cp! menutrans Toggle\ Vi\ C&ompatibility<Tab>:set\ cp! '&Vi'\ saglasno\ (da/ne)<Tab>:set\ cp!
menutrans Search\ &Path\.\.\. Putanja\ &pretrage\.\.\. menutrans Search\ &Path\.\.\. Putanja\ &pretrage\.\.\.
menutrans Ta&g\ Files\.\.\. &Datoteke\ oznaka\.\.\. menutrans Ta&g\ Files\.\.\. &Datoteke\ oznaka\.\.\.
menutrans Toggle\ &Toolbar Linija\ sa\ &alatkama\ (da/ne) menutrans Toggle\ &Toolbar Linija\ sa\ &alatkama\ (da/ne)
@ -85,28 +91,30 @@ menutrans Block\ and\ Insert Blok\ i\ unos
menutrans Always Uvek menutrans Always Uvek
" Edit/File Settings " Edit/File Settings
menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu! Redni\ &brojevi\ (da/ne)<Tab>:set\ nu! menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu! Prikazi\ &numeraciju\ linija\ (da/ne)<Tab>:set\ nu!
menutrans Toggle\ &List\ Mode<Tab>:set\ list! Rezim\ &liste\ (da/ne)<Tab>:set\ list! menutrans Toggle\ Relati&ve\ Line\ Numbering<Tab>:set\ rnu! Prikazi\ Relati&vnu\ numeraciju\ linija\ (da/ne)<Tab>:set\ rnu!
menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap! Obavijanje\ &redova\ (da/ne)<Tab>:set\ wrap! menutrans Toggle\ &List\ Mode<Tab>:set\ list! Rezim\ &liste\ (da/ne)<Tab>:set\ list!
menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr! Prelomi\ &na\ rec\ (da/ne)<Tab>:set\ lbr! menutrans Toggle\ Line\ &Wrapping<Tab>:set\ wrap! Obavijanje\ &redova\ (da/ne)<Tab>:set\ wrap!
menutrans Toggle\ &expand-tab<Tab>:set\ et! Razmaci\ umesto\ &tabulacije\ (da/ne)<Tab>:set\ et! menutrans Toggle\ W&rapping\ at\ Word<Tab>:set\ lbr! Prelomi\ &na\ rec\ (da/ne)<Tab>:set\ lbr!
menutrans Toggle\ &auto-indent<Tab>:set\ ai! Auto-&uvlacenje\ (da/ne)<Tab>:set\ ai! menutrans Toggle\ Tab\ &Expanding<Tab>:set\ et! Razmaci\ umesto\ &tabulacije\ (da/ne)<Tab>:set\ et!
menutrans Toggle\ &C-indenting<Tab>:set\ cin! &Ce-uvlacenje\ (da/ne)<Tab>:set\ cin! menutrans Toggle\ &Auto\ Indenting<Tab>:set\ ai! Auto-&uvlacenje\ (da/ne)<Tab>:set\ ai!
menutrans Toggle\ &C-Style\ Indenting<Tab>:set\ cin! &C-uvlacenje\ (da/ne)<Tab>:set\ cin!
" Edit/Keymap " Edit/Keymap
menutrans None Nijedan menutrans None Bez\ preslikavanja
" Tools menu " Tools menu
menutrans &Tools &Alatke menutrans &Tools &Alatke
menutrans &Jump\ to\ this\ tag<Tab>g^] Skoci\ na\ &ovu\ oznaku<Tab>g^] menutrans &Jump\ to\ this\ tag<Tab>g^] Skoci\ na\ &ovu\ oznaku<Tab>g^]
menutrans Jump\ &back<Tab>^T Skoci\ &natrag<Tab>^T menutrans Jump\ &back<Tab>^T Skoci\ &natrag<Tab>^T
menutrans Build\ &Tags\ File Izgradi\ &datoteku\ oznaka menutrans Build\ &Tags\ File Izgradi\ &datoteku\ oznaka
menutrans &Spelling Pra&vopis
menutrans &Folding &Podvijanje menutrans &Folding &Podvijanje
menutrans Create\ &Fold<Tab>zf S&tvori\ podvijutak<Tab>zf menutrans Create\ &Fold<Tab>zf S&tvori\ podvijutak<Tab>zf
menutrans &Delete\ Fold<Tab>zd O&brisi\ podvijutak<Tab>zd menutrans &Delete\ Fold<Tab>zd O&brisi\ podvijutak<Tab>zd
menutrans Delete\ &All\ Folds<Tab>zD Obrisi\ sve\ po&dvijutke<Tab>zD menutrans Delete\ &All\ Folds<Tab>zD Obrisi\ sve\ po&dvijutke<Tab>zD
menutrans Fold\ column\ &width Sirina\ &reda\ podvijutka menutrans Fold\ column\ &width Sirina\ &reda\ podvijutka
menutrans &Diff &Uporedjivanje "menutrans &Diff &Uporedjivanje
menutrans &Make<Tab>:make 'mak&e'<Tab>:make menutrans &Make<Tab>:make 'mak&e'<Tab>:make
menutrans &List\ Errors<Tab>:cl Spisak\ &gresaka<Tab>:cl menutrans &List\ Errors<Tab>:cl Spisak\ &gresaka<Tab>:cl
menutrans L&ist\ Messages<Tab>:cl! Sp&isak\ poruka<Tab>:cl! menutrans L&ist\ Messages<Tab>:cl! Sp&isak\ poruka<Tab>:cl!
@ -115,32 +123,49 @@ menutrans &Previous\ Error<Tab>:cp Pre&thodna\ greska<Tab>:cp
menutrans &Older\ List<Tab>:cold Stari\ spisa&k<Tab>:cold menutrans &Older\ List<Tab>:cold Stari\ spisa&k<Tab>:cold
menutrans N&ewer\ List<Tab>:cnew No&vi\ spisak<Tab>:cnew menutrans N&ewer\ List<Tab>:cnew No&vi\ spisak<Tab>:cnew
menutrans Error\ &Window Prozor\ sa\ g&reskama menutrans Error\ &Window Prozor\ sa\ g&reskama
menutrans &Set\ Compiler I&zaberi\ prevodioca menutrans Se&t\ Compiler I&zaberi\ prevodioca
menutrans &Convert\ to\ HEX<Tab>:%!xxd Pretvori\ u\ &HEKS<Tab>:%!xxd menutrans &Convert\ to\ HEX<Tab>:%!xxd Pretvori\ u\ &HEKS<Tab>:%!xxd
menutrans Conve&rt\ back<Tab>:%!xxd\ -r Vr&ati\ u\ prvobitan\ oblik<Tab>:%!xxd\ -r menutrans Conve&rt\ back<Tab>:%!xxd\ -r Vr&ati\ u\ prvobitan\ oblik<Tab>:%!xxd\ -r
menutrans Show\ Compiler\ Se&ttings\ in\ Menu Prikazi\ pode&savanja\ prevodioca\ u\ meniju
" Tools/Spelling
menutrans &Spell\ Check\ On &Ukljuci\ proveru\ pravopisa
menutrans Spell\ Check\ &Off &Iskljuci\ proveru\ pravopisa
menutrans To\ &Next\ Error<Tab>]s Idi\ na\ &sledecu\ gresku<Tab>]s
menutrans To\ &Previous\ Error<Tab>[s Idi\ na\ &prethodnu\ gresku<Tab>[s
menutrans Suggest\ &Corrections<Tab>z= Predlozi\ isp&ravke<Tab>z=
menutrans &Repeat\ Correction<Tab>:spellrepall P&onovi\ ispravku<Tab>:spellrepall
menutrans Set\ Language\ to\ "en" Postavi\ jezik\ na\ "en"
menutrans Set\ Language\ to\ "en_au" Postavi\ jezik\ na\ "en_au"
menutrans Set\ Language\ to\ "en_ca" Postavi\ jezik\ na\ "en_ca"
menutrans Set\ Language\ to\ "en_gb" Postavi\ jezik\ na\ "en_gb"
menutrans Set\ Language\ to\ "en_nz" Postavi\ jezik\ na\ "en_nz"
menutrans Set\ Language\ to\ "en_us" Postavi\ jezik\ na\ "en_us"
menutrans &Find\ More\ Languages Pronadji\ jos\ jezika
" Tools/Folding " Tools/Folding
menutrans &Enable/Disable\ folds<Tab>zi &Omoguci/prekini\ podvijanje<Tab>zi menutrans &Enable/Disable\ folds<Tab>zi &Omoguci/prekini\ podvijanje<Tab>zi
menutrans &View\ Cursor\ Line<Tab>zv &Pokazi\ red\ sa\ kursorom<Tab>zv menutrans &View\ Cursor\ Line<Tab>zv &Pokazi\ red\ sa\ kursorom<Tab>zv
menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx Pokazi\ &samo\ red\ sa\ kursorom<Tab>zMzx menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx Pokazi\ &samo\ red\ sa\ kursorom<Tab>zMzx
menutrans C&lose\ more\ folds<Tab>zm &Zatvori\ vise\ podvijutaka<Tab>zm menutrans C&lose\ more\ folds<Tab>zm &Zatvori\ vise\ podvijutaka<Tab>zm
menutrans &Close\ all\ folds<Tab>zM Zatvori\ s&ve\ podvijutke<Tab>zM menutrans &Close\ all\ folds<Tab>zM Zatvori\ s&ve\ podvijutke<Tab>zM
menutrans O&pen\ more\ folds<Tab>zr Otvori\ vis&e\ podvijutaka<Tab>zr menutrans O&pen\ more\ folds<Tab>zr Otvori\ vis&e\ podvijutaka<Tab>zr
menutrans &Open\ all\ folds<Tab>zR O&tvori\ sve\ podvijutke<Tab>zR menutrans &Open\ all\ folds<Tab>zR O&tvori\ sve\ podvijutke<Tab>zR
menutrans Fold\ Met&hod &Nacin\ podvijanja menutrans Fold\ Met&hod &Nacin\ podvijanja
menutrans Fold\ Col&umn\ Width Sirina\ kolone\ ispred\ podvijutaka
" Tools/Folding/Fold Method " Tools/Folding/Fold Method
menutrans M&anual &Rucno menutrans M&anual &Rucno
menutrans I&ndent &Uvucenost menutrans I&ndent &Uvucenost
menutrans E&xpression &Izraz menutrans E&xpression &Izraz
menutrans S&yntax &Sintaksa menutrans S&yntax &Sintaksa
"menutrans &Diff "menutrans &Diff
menutrans Ma&rker &Oznaka menutrans Ma&rker &Oznaka
" Tools/Diff " Tools/Diff
menutrans &Update &Azuriraj menutrans &Update &Azuriraj
menutrans &Get\ Block &Prihvati\ izmenu menutrans &Get\ Block &Prihvati\ blok\ izmena
menutrans &Put\ Block Pre&baci\ izmenu menutrans &Put\ Block Pre&baci\ blok\ izmena
" Tools/Error Window " Tools/Error Window
menutrans &Update<Tab>:cwin &Azuriraj<Tab>:cwin menutrans &Update<Tab>:cwin &Azuriraj<Tab>:cwin
@ -188,8 +213,10 @@ menutrans Cu&t &Iseci
menutrans &Copy &Kopiraj menutrans &Copy &Kopiraj
menutrans &Paste &Ubaci menutrans &Paste &Ubaci
menutrans &Delete I&zbrisi menutrans &Delete I&zbrisi
menutrans Select\ Blockwise Biraj\ &pravougaono menutrans Select\ Blockwise Biraj\ b&lokovski
menutrans Select\ &Word Izaberi\ &rec menutrans Select\ &Word Izaberi\ &rec
menutrans Select\ &Sentence Izaberi\ r&ecenicu
menutrans Select\ Pa&ragraph Izaberi\ &paragraf
menutrans Select\ &Line Izaberi\ r&ed menutrans Select\ &Line Izaberi\ r&ed
menutrans Select\ &Block Izaberi\ &blok menutrans Select\ &Block Izaberi\ &blok
menutrans Select\ &All Izaberi\ &sve menutrans Select\ &All Izaberi\ &sve
@ -235,9 +262,9 @@ endif
" Syntax menu " Syntax menu
menutrans &Syntax &Sintaksa menutrans &Syntax &Sintaksa
menutrans &Show\ filetypes\ in\ menu Izbor\ 'filetype'\ iz\ &menija menutrans &Show\ File\ Types\ in\ Menu Prikazi\ tipove\ datoteka\ u\ &meniju
menutrans Set\ '&syntax'\ only Pode&si\ 'syntax'\ samo menutrans Set\ '&syntax'\ only Pode&si\ samo\ 'syntax'
menutrans Set\ '&filetype'\ too Podesi\ 'filetype'\ &takodje menutrans Set\ '&filetype'\ too Podesi\ &takodje\ i\ 'filetype'
menutrans &Off &Iskljuceno menutrans &Off &Iskljuceno
menutrans &Manual &Rucno menutrans &Manual &Rucno
menutrans A&utomatic &Automatski menutrans A&utomatic &Automatski
@ -255,9 +282,13 @@ let g:menutrans_tags_dialog = "Unesite imena datoteka sa oznakama\nRazdvojite za
let g:menutrans_textwidth_dialog = "Unesite novu sirinu teksta (0 sprecava prelom)" let g:menutrans_textwidth_dialog = "Unesite novu sirinu teksta (0 sprecava prelom)"
let g:menutrans_fileformat_dialog = "Izaberite vrstu datoteke" let g:menutrans_fileformat_dialog = "Izaberite format zapisa datoteke"
let g:menutrans_fileformat_choices = "&Unix\n&Dos\n&Mac\n&Otkazi"
let menutrans_no_file = "[Nema datoteke]" let menutrans_no_file = "[Nema datoteke]"
let &cpo = s:keepcpo let &cpo = s:keepcpo
unlet s:keepcpo unlet s:keepcpo
" vim: tw=0 keymap=serbian

View File

@ -1,6 +1,7 @@
" Menu Translations: Serbian " Menu Translations: Serbian
" Maintainer: Aleksandar Jelenak <ajelenak AT yahoo.com> " Maintainer: Aleksandar Jelenak <ajelenak AT yahoo.com>
" Last Change: Fri, 30 May 2003 12:04:48 -0400 " Last Change: Fri, 30 May 2003 10:17:39 Eastern Daylight Time
" Adapted for VIM 8 by: Ivan Pe<50>i<EFBFBD> on 2017-12-28 12:05+0400
" Quit when menu translations have already been done. " Quit when menu translations have already been done.
if exists("did_menu_trans") if exists("did_menu_trans")
@ -21,6 +22,7 @@ menutrans &Find &Na
menutrans &Credits &Zasluge menutrans &Credits &Zasluge
menutrans Co&pying P&reuzimanje menutrans Co&pying P&reuzimanje
menutrans O&rphans &Siro<EFBFBD>i<EFBFBD>i menutrans O&rphans &Siro<EFBFBD>i<EFBFBD>i
menutrans &Sponsor/Register Sponzor/&Registrujte\ se
menutrans &Version &Verzija menutrans &Version &Verzija
menutrans &About &O\ programu menutrans &About &O\ programu
@ -28,6 +30,7 @@ menutrans &About &O\ programu
menutrans &File &Datoteka menutrans &File &Datoteka
menutrans &Open\.\.\.<Tab>:e &Otvori\.\.\.<Tab>:e menutrans &Open\.\.\.<Tab>:e &Otvori\.\.\.<Tab>:e
menutrans Sp&lit-Open\.\.\.<Tab>:sp &Podeli-otvori\.\.\.<Tab>:sp menutrans Sp&lit-Open\.\.\.<Tab>:sp &Podeli-otvori\.\.\.<Tab>:sp
menutrans Open\ Tab\.\.\.<Tab>:tabnew Otvori\ karticu\.\.\.<Tab>:tabnew
menutrans &New<Tab>:enew &Nova<Tab>:enew menutrans &New<Tab>:enew &Nova<Tab>:enew
menutrans &Close<Tab>:close &Zatvori<Tab>:close menutrans &Close<Tab>:close &Zatvori<Tab>:close
menutrans &Save<Tab>:w &Sa<EFBFBD>uvaj<Tab>:w menutrans &Save<Tab>:w &Sa<EFBFBD>uvaj<Tab>:w
@ -54,24 +57,27 @@ menutrans &Select\ all<Tab>ggVG Izaberi\ sv&e<Tab>ggVG
menutrans &Find\.\.\. &Na<EFBFBD>i\.\.\. menutrans &Find\.\.\. &Na<EFBFBD>i\.\.\.
menutrans Find\ and\ Rep&lace\.\.\. Na<EFBFBD>i\ i\ &zameni\.\.\. menutrans Find\ and\ Rep&lace\.\.\. Na<EFBFBD>i\ i\ &zameni\.\.\.
menutrans Settings\ &Window P&rozor\ pode<EFBFBD>avanja menutrans Settings\ &Window P&rozor\ pode<EFBFBD>avanja
menutrans Startup\ &Settings Po&de<EFBFBD>avanja\ pri\ pokretanju
menutrans &Global\ Settings Op&<26>ta\ pode<EFBFBD>avanja menutrans &Global\ Settings Op&<26>ta\ pode<EFBFBD>avanja
menutrans F&ile\ Settings Pode<EFBFBD>avanja\ za\ da&toteke menutrans F&ile\ Settings Pode<EFBFBD>avanja\ za\ da&toteke
menutrans &Shiftwidth &Pomeraj menutrans &Shiftwidth &Pomeraj
menutrans Soft\ &Tabstop &Meka\ tabulacija menutrans Soft\ &Tabstop &Meka\ tabulacija
menutrans Te&xt\ Width\.\.\. &<26>irina\ teksta\.\.\. menutrans Te&xt\ Width\.\.\. &<26>irina\ teksta\.\.\.
menutrans &File\ Format\.\.\. &Vrsta\ datoteke\.\.\. menutrans &File\ Format\.\.\. &Vrsta\ datoteke\.\.\.
menutrans C&olor\ Scheme Bo&je menutrans Show\ C&olor\ Schemes\ in\ Menu Prika<EFBFBD>i\ <20>eme\ bo&ja\ u\ meniju
menutrans &Keymap Pres&likavanje\ tastature menutrans C&olor\ Scheme \<5C>eme\ bo&ja
menutrans Show\ &Keymaps\ in\ Menu Prika<EFBFBD>i\ pres&likavanja\ tastature\ u\ meniju
menutrans &Keymap Pres&likavanja\ tastature
menutrans Select\ Fo&nt\.\.\. Izbor\ &fonta\.\.\. menutrans Select\ Fo&nt\.\.\. Izbor\ &fonta\.\.\.
" Edit/Global Settings " Edit/Global Settings
menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls! Naglasi\ &obrazce\ (da/ne)<Tab>:set\ hls! menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls! Naglasi\ &obrazce\ (da/ne)<Tab>:set\ hls!
menutrans Toggle\ &Ignore-case<Tab>:set\ ic! Zanemari\ \veli<EFBFBD>inu\ &slova\ (da/ne)<Tab>:set\ ic! menutrans Toggle\ &Ignoring\ Case<Tab>:set\ ic! Zanemari\ veli<EFBFBD>inu\ &slova\ (da/ne)<Tab>:set\ ic!
menutrans Toggle\ &Showmatch<Tab>:set\ sm! Proveri\ prate<EFBFBD>u\ &zagradu\ (da/ne)<Tab>:set\ sm! menutrans Toggle\ &Showing\ Matched\ Pairs<Tab>:set\ sm! Proveri\ prate<EFBFBD>u\ &zagradu\ (da/ne)<Tab>:set\ sm!
menutrans &Context\ lines Vidljivi\ &redovi menutrans &Context\ lines Vidljivi\ &redovi
menutrans &Virtual\ Edit Virtuelno\ &ure<EFBFBD>ivanje menutrans &Virtual\ Edit Virtuelno\ &ure<EFBFBD>ivanje
menutrans Toggle\ Insert\ &Mode<Tab>:set\ im! Re<EFBFBD>im\ u&nosa\ (da/ne)<Tab>:set\ im! menutrans Toggle\ Insert\ &Mode<Tab>:set\ im! Re<EFBFBD>im\ u&nosa\ (da/ne)<Tab>:set\ im!
menutrans Toggle\ Vi\ C&ompatible<Tab>:set\ cp! '&Vi'\ saglasno\ (da/ne)<Tab>:set\ cp! menutrans Toggle\ Vi\ C&ompatibility<Tab>:set\ cp! '&Vi'\ saglasno\ (da/ne)<Tab>:set\ cp!
menutrans Search\ &Path\.\.\. Putanja\ &pretrage\.\.\. menutrans Search\ &Path\.\.\. Putanja\ &pretrage\.\.\.
menutrans Ta&g\ Files\.\.\. &Datoteke\ oznaka\.\.\. menutrans Ta&g\ Files\.\.\. &Datoteke\ oznaka\.\.\.
menutrans Toggle\ &Toolbar Linija\ sa\ &alatkama\ (da/ne) menutrans Toggle\ &Toolbar Linija\ sa\ &alatkama\ (da/ne)
@ -87,28 +93,30 @@ menutrans Block\ and\ Insert Blok\ i\ unos
menutrans Always Uvek menutrans Always Uvek
" Edit/File Settings " Edit/File Settings
menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu! Redni\ &brojevi\ (da/ne)<Tab>:set\ nu! menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu! Prika<EFBFBD>i\ &numeraciju\ linija\ (da/ne)<Tab>:set\ nu!
menutrans Toggle\ Relati&ve\ Line\ Numbering<Tab>:set\ rnu! Prika<EFBFBD>i\ Relati&vnu\ numeraciju\ linija\ (da/ne)<Tab>:set\ rnu!
menutrans Toggle\ &List\ Mode<Tab>:set\ list! Re<EFBFBD>im\ &liste\ (da/ne)<Tab>:set\ list! menutrans Toggle\ &List\ Mode<Tab>:set\ list! Re<EFBFBD>im\ &liste\ (da/ne)<Tab>:set\ list!
menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap! Obavijanje\ &redova\ (da/ne)<Tab>:set\ wrap! menutrans Toggle\ Line\ &Wrapping<Tab>:set\ wrap! Obavijanje\ &redova\ (da/ne)<Tab>:set\ wrap!
menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr! Prelomi\ &na\ re<EFBFBD>\ (da/ne)<Tab>:set\ lbr! menutrans Toggle\ W&rapping\ at\ Word<Tab>:set\ lbr! Prelomi\ &na\ re<EFBFBD>\ (da/ne)<Tab>:set\ lbr!
menutrans Toggle\ &expand-tab<Tab>:set\ et! Razmaci\ umesto\ &tabulacije\ (da/ne)<Tab>:set\ et! menutrans Toggle\ Tab\ &Expanding<Tab>:set\ et! Razmaci\ umesto\ &tabulacije\ (da/ne)<Tab>:set\ et!
menutrans Toggle\ &auto-indent<Tab>:set\ ai! Auto-&uvla<EFBFBD>enje\ (da/ne)<Tab>:set\ ai! menutrans Toggle\ &Auto\ Indenting<Tab>:set\ ai! Auto-&uvla<EFBFBD>enje\ (da/ne)<Tab>:set\ ai!
menutrans Toggle\ &C-indenting<Tab>:set\ cin! &Ce-uvla<EFBFBD>enje\ (da/ne)<Tab>:set\ cin! menutrans Toggle\ &C-Style\ Indenting<Tab>:set\ cin! &C-uvla<EFBFBD>enje\ (da/ne)<Tab>:set\ cin!
" Edit/Keymap " Edit/Keymap
menutrans None Nijedan menutrans None Bez\ preslikavanja
" Tools menu " Tools menu
menutrans &Tools &Alatke menutrans &Tools &Alatke
menutrans &Jump\ to\ this\ tag<Tab>g^] Sko<EFBFBD>i\ na\ &ovu\ oznaku<Tab>g^] menutrans &Jump\ to\ this\ tag<Tab>g^] Sko<EFBFBD>i\ na\ &ovu\ oznaku<Tab>g^]
menutrans Jump\ &back<Tab>^T Sko<EFBFBD>i\ &natrag<Tab>^T menutrans Jump\ &back<Tab>^T Sko<EFBFBD>i\ &natrag<Tab>^T
menutrans Build\ &Tags\ File Izgradi\ &datoteku\ oznaka menutrans Build\ &Tags\ File Izgradi\ &datoteku\ oznaka
menutrans &Spelling Pra&vopis
menutrans &Folding &Podvijanje menutrans &Folding &Podvijanje
menutrans Create\ &Fold<Tab>zf S&tvori\ podvijutak<Tab>zf menutrans Create\ &Fold<Tab>zf S&tvori\ podvijutak<Tab>zf
menutrans &Delete\ Fold<Tab>zd O&bri<EFBFBD>i\ podvijutak<Tab>zd menutrans &Delete\ Fold<Tab>zd O&bri<EFBFBD>i\ podvijutak<Tab>zd
menutrans Delete\ &All\ Folds<Tab>zD Obri<EFBFBD>i\ sve\ po&dvijutke<Tab>zD menutrans Delete\ &All\ Folds<Tab>zD Obri<EFBFBD>i\ sve\ po&dvijutke<Tab>zD
menutrans Fold\ column\ &width <20>irina\ &reda\ podvijutka menutrans Fold\ column\ &width <20>irina\ &reda\ podvijutka
menutrans &Diff &Upore<EFBFBD>ivanje "menutrans &Diff &Upore<EFBFBD>ivanje
menutrans &Make<Tab>:make 'mak&e'<Tab>:make menutrans &Make<Tab>:make 'mak&e'<Tab>:make
menutrans &List\ Errors<Tab>:cl Spisak\ &gre<EFBFBD>aka<Tab>:cl menutrans &List\ Errors<Tab>:cl Spisak\ &gre<EFBFBD>aka<Tab>:cl
menutrans L&ist\ Messages<Tab>:cl! Sp&isak\ poruka<Tab>:cl! menutrans L&ist\ Messages<Tab>:cl! Sp&isak\ poruka<Tab>:cl!
@ -117,9 +125,25 @@ menutrans &Previous\ Error<Tab>:cp Pre&thodna\ gre
menutrans &Older\ List<Tab>:cold Stari\ spisa&k<Tab>:cold menutrans &Older\ List<Tab>:cold Stari\ spisa&k<Tab>:cold
menutrans N&ewer\ List<Tab>:cnew No&vi\ spisak<Tab>:cnew menutrans N&ewer\ List<Tab>:cnew No&vi\ spisak<Tab>:cnew
menutrans Error\ &Window Prozor\ sa\ g&re<EFBFBD>kama menutrans Error\ &Window Prozor\ sa\ g&re<EFBFBD>kama
menutrans &Set\ Compiler I&zaberi\ prevodioca menutrans Se&t\ Compiler I&zaberi\ prevodioca
menutrans &Convert\ to\ HEX<Tab>:%!xxd Pretvori\ u\ &HEKS<Tab>:%!xxd menutrans &Convert\ to\ HEX<Tab>:%!xxd Pretvori\ u\ &HEKS<Tab>:%!xxd
menutrans Conve&rt\ back<Tab>:%!xxd\ -r Vr&ati\ u\ prvobitan\ oblik<Tab>:%!xxd\ -r menutrans Conve&rt\ back<Tab>:%!xxd\ -r Vr&ati\ u\ prvobitan\ oblik<Tab>:%!xxd\ -r
menutrans Show\ Compiler\ Se&ttings\ in\ Menu Prika<EFBFBD>i\ pode&<26>avanja\ prevodioca\ u\ meniju
" Tools/Spelling
menutrans &Spell\ Check\ On &Uklju<EFBFBD>i\ proveru\ pravopisa
menutrans Spell\ Check\ &Off &Isklju<EFBFBD>i\ proveru\ pravopisa
menutrans To\ &Next\ Error<Tab>]s Idi\ na\ &slede<EFBFBD>u\ gre<EFBFBD>ku<Tab>]s
menutrans To\ &Previous\ Error<Tab>[s Idi\ na\ &prethodnu\ gre<EFBFBD>ku<Tab>[s
menutrans Suggest\ &Corrections<Tab>z= Predlo<EFBFBD>i\ isp&ravke<Tab>z=
menutrans &Repeat\ Correction<Tab>:spellrepall P&onovi\ ispravku<Tab>:spellrepall
menutrans Set\ Language\ to\ "en" Postavi\ jezik\ na\ "en"
menutrans Set\ Language\ to\ "en_au" Postavi\ jezik\ na\ "en_au"
menutrans Set\ Language\ to\ "en_ca" Postavi\ jezik\ na\ "en_ca"
menutrans Set\ Language\ to\ "en_gb" Postavi\ jezik\ na\ "en_gb"
menutrans Set\ Language\ to\ "en_nz" Postavi\ jezik\ na\ "en_nz"
menutrans Set\ Language\ to\ "en_us" Postavi\ jezik\ na\ "en_us"
menutrans &Find\ More\ Languages Prona<EFBFBD>i\ jo<EFBFBD>\ jezika
" Tools/Folding " Tools/Folding
menutrans &Enable/Disable\ folds<Tab>zi &Omogu<67>i/prekini\ podvijanje<Tab>zi menutrans &Enable/Disable\ folds<Tab>zi &Omogu<67>i/prekini\ podvijanje<Tab>zi
@ -130,6 +154,7 @@ menutrans &Close\ all\ folds<Tab>zM Zatvori\ s&ve\ podvijutke<Tab>zM
menutrans O&pen\ more\ folds<Tab>zr Otvori\ vi<EFBFBD>&e\ podvijutaka<Tab>zr menutrans O&pen\ more\ folds<Tab>zr Otvori\ vi<EFBFBD>&e\ podvijutaka<Tab>zr
menutrans &Open\ all\ folds<Tab>zR O&tvori\ sve\ podvijutke<Tab>zR menutrans &Open\ all\ folds<Tab>zR O&tvori\ sve\ podvijutke<Tab>zR
menutrans Fold\ Met&hod &Na<EFBFBD>in\ podvijanja menutrans Fold\ Met&hod &Na<EFBFBD>in\ podvijanja
menutrans Fold\ Col&umn\ Width <09>irina\ kolone\ ispred\ podvijutaka
" Tools/Folding/Fold Method " Tools/Folding/Fold Method
menutrans M&anual &Ru<EFBFBD>no menutrans M&anual &Ru<EFBFBD>no
@ -141,8 +166,8 @@ menutrans Ma&rker &Oznaka
" Tools/Diff " Tools/Diff
menutrans &Update &A<EFBFBD>uriraj menutrans &Update &A<EFBFBD>uriraj
menutrans &Get\ Block &Prihvati\ izmenu menutrans &Get\ Block &Prihvati\ blok\ izmena
menutrans &Put\ Block Pre&baci\ izmenu menutrans &Put\ Block Pre&baci\ blok\ izmena
" Tools/Error Window " Tools/Error Window
menutrans &Update<Tab>:cwin &A<EFBFBD>uriraj<Tab>:cwin menutrans &Update<Tab>:cwin &A<EFBFBD>uriraj<Tab>:cwin
@ -190,8 +215,10 @@ menutrans Cu&t &Iseci
menutrans &Copy &Kopiraj menutrans &Copy &Kopiraj
menutrans &Paste &Ubaci menutrans &Paste &Ubaci
menutrans &Delete I&zbri<EFBFBD>i menutrans &Delete I&zbri<EFBFBD>i
menutrans Select\ Blockwise Biraj\ &pravougaono menutrans Select\ Blockwise Biraj\ b&lokovski
menutrans Select\ &Word Izaberi\ &re<EFBFBD> menutrans Select\ &Word Izaberi\ &re<EFBFBD>
menutrans Select\ &Sentence Izaberi\ r&e<EFBFBD>enicu
menutrans Select\ Pa&ragraph Izaberi\ &paragraf
menutrans Select\ &Line Izaberi\ r&ed menutrans Select\ &Line Izaberi\ r&ed
menutrans Select\ &Block Izaberi\ &blok menutrans Select\ &Block Izaberi\ &blok
menutrans Select\ &All Izaberi\ &sve menutrans Select\ &All Izaberi\ &sve
@ -202,20 +229,20 @@ if has("toolbar")
delfun Do_toolbar_tmenu delfun Do_toolbar_tmenu
endif endif
fun Do_toolbar_tmenu() fun Do_toolbar_tmenu()
tmenu ToolBar.Open U<EFBFBD>itaj tmenu ToolBar.Open U<EFBFBD>itaj
tmenu ToolBar.Save Sa<EFBFBD>uvaj tmenu ToolBar.Save Sa<EFBFBD>uvaj
tmenu ToolBar.SaveAll Sa<EFBFBD>uvaj sve tmenu ToolBar.SaveAll Sa<EFBFBD>uvaj sve
tmenu ToolBar.Print <20>tampaj tmenu ToolBar.Print <20>tampaj
tmenu ToolBar.Undo Vrati tmenu ToolBar.Undo Vrati
tmenu ToolBar.Redo Povrati tmenu ToolBar.Redo Povrati
tmenu ToolBar.Cut Iseci tmenu ToolBar.Cut Iseci
tmenu ToolBar.Copy Kopiraj tmenu ToolBar.Copy Kopiraj
tmenu ToolBar.Paste Ubaci tmenu ToolBar.Paste Ubaci
tmenu ToolBar.Find Na<EFBFBD>i tmenu ToolBar.Find Na<EFBFBD>i
tmenu ToolBar.FindNext Na<EFBFBD>i slede<EFBFBD>i tmenu ToolBar.FindNext Na<EFBFBD>i slede<EFBFBD>i
tmenu ToolBar.FindPrev Na<EFBFBD>i prethodni tmenu ToolBar.FindPrev Na<EFBFBD>i prethodni
tmenu ToolBar.Replace Zameni tmenu ToolBar.Replace Zameni
tmenu ToolBar.New Novi tmenu ToolBar.New Novi
tmenu ToolBar.WinSplit Podeli prozor tmenu ToolBar.WinSplit Podeli prozor
tmenu ToolBar.WinMax Maksimalna visina tmenu ToolBar.WinMax Maksimalna visina
tmenu ToolBar.WinMin Minimalna visina tmenu ToolBar.WinMin Minimalna visina
@ -226,25 +253,25 @@ if has("toolbar")
tmenu ToolBar.LoadSesn U<EFBFBD>itaj seansu tmenu ToolBar.LoadSesn U<EFBFBD>itaj seansu
tmenu ToolBar.SaveSesn Sa<EFBFBD>uvaj seansu tmenu ToolBar.SaveSesn Sa<EFBFBD>uvaj seansu
tmenu ToolBar.RunScript Izvr<EFBFBD>i spis tmenu ToolBar.RunScript Izvr<EFBFBD>i spis
tmenu ToolBar.Make 'make' tmenu ToolBar.Make 'make'
tmenu ToolBar.Shell Operativno okru<EFBFBD>enje tmenu ToolBar.Shell Operativno okru<EFBFBD>enje
tmenu ToolBar.RunCtags Napravi oznake tmenu ToolBar.RunCtags Napravi oznake
tmenu ToolBar.TagJump Idi na oznaku tmenu ToolBar.TagJump Idi na oznaku
tmenu ToolBar.Help Pomo<EFBFBD> tmenu ToolBar.Help Pomo<EFBFBD>
tmenu ToolBar.FindHelp Na<EFBFBD>i obja<EFBFBD>njenje tmenu ToolBar.FindHelp Na<EFBFBD>i obja<EFBFBD>njenje
endfun endfun
endif endif
" Syntax menu " Syntax menu
menutrans &Syntax &Sintaksa menutrans &Syntax &Sintaksa
menutrans &Show\ filetypes\ in\ menu Izbor\ 'filetype'\ iz\ &menija menutrans &Show\ File\ Types\ in\ Menu Prika<EFBFBD>i\ tipove\ datoteka\ u\ &meniju
menutrans Set\ '&syntax'\ only Pode&si\ 'syntax'\ samo menutrans Set\ '&syntax'\ only Pode&si\ samo\ 'syntax'
menutrans Set\ '&filetype'\ too Podesi\ 'filetype'\ &tako<EFBFBD>e menutrans Set\ '&filetype'\ too Podesi\ &tako<EFBFBD>e\ i\ 'filetype'
menutrans &Off &Isklju<EFBFBD>eno menutrans &Off &Isklju<EFBFBD>eno
menutrans &Manual &Ru<EFBFBD>no menutrans &Manual &Ru<EFBFBD>no
menutrans A&utomatic &Automatski menutrans A&utomatic &Automatski
menutrans on/off\ for\ &This\ file Da/ne\ za\ ovu\ &datoteku menutrans on/off\ for\ &This\ file Da/ne\ za\ ovu\ &datoteku
menutrans Co&lor\ test Provera\ &boja menutrans Co&lor\ test Provera\ &boja
menutrans &Highlight\ test Provera\ isti&canja menutrans &Highlight\ test Provera\ isti&canja
menutrans &Convert\ to\ HTML Pretvori\ &u\ HTML menutrans &Convert\ to\ HTML Pretvori\ &u\ HTML
@ -257,9 +284,13 @@ let g:menutrans_tags_dialog = "Unesite imena datoteka sa oznakama\nRazdvojite za
let g:menutrans_textwidth_dialog = "Unesite novu <20>irinu teksta (0 spre<72>ava prelom)" let g:menutrans_textwidth_dialog = "Unesite novu <20>irinu teksta (0 spre<72>ava prelom)"
let g:menutrans_fileformat_dialog = "Izaberite vrstu datoteke" let g:menutrans_fileformat_dialog = "Izaberite format zapisa datoteke"
let g:menutrans_fileformat_choices = "&Unix\n&Dos\n&Mac\n&Otka<6B>i"
let menutrans_no_file = "[Nema datoteke]" let menutrans_no_file = "[Nema datoteke]"
let &cpo = s:keepcpo let &cpo = s:keepcpo
unlet s:keepcpo unlet s:keepcpo
" vim: tw=0 keymap=serbian

View File

@ -1,6 +1,7 @@
" Menu Translations: Serbian " Menu Translations: Serbian
" Maintainer: Aleksandar Jelenak <ajelenak AT yahoo.com> " Maintainer: Aleksandar Jelenak <ajelenak AT yahoo.com>
" Last Change: Fri, 30 May 2003 12:02:07 -0400 " Last Change: Fri, 30 May 2003 10:17:39 Eastern Daylight Time
" Adapted for VIM 8 by: <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> on 2017-12-28 12:05+0400
" Quit when menu translations have already been done. " Quit when menu translations have already been done.
if exists("did_menu_trans") if exists("did_menu_trans")
@ -21,6 +22,7 @@ menutrans &Find &
menutrans &Credits &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> menutrans &Credits &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans Co&pying <20>&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> menutrans Co&pying <20>&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans O&rphans &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> menutrans O&rphans &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans &Sponsor/Register <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><>
menutrans &Version &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> menutrans &Version &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans &About &<26>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> menutrans &About &<26>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@ -28,6 +30,7 @@ menutrans &About &
menutrans &File &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> menutrans &File &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans &Open\.\.\.<Tab>:e &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\.\.\.<Tab>:e menutrans &Open\.\.\.<Tab>:e &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\.\.\.<Tab>:e
menutrans Sp&lit-Open\.\.\.<Tab>:sp &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\.\.\.<Tab>:sp menutrans Sp&lit-Open\.\.\.<Tab>:sp &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\.\.\.<Tab>:sp
menutrans Open\ Tab\.\.\.<Tab>:tabnew <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\.\.\.<Tab>:tabnew
menutrans &New<Tab>:enew &<26><><EFBFBD><EFBFBD><Tab>:enew menutrans &New<Tab>:enew &<26><><EFBFBD><EFBFBD><Tab>:enew
menutrans &Close<Tab>:close &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>:close menutrans &Close<Tab>:close &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>:close
menutrans &Save<Tab>:w &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>:w menutrans &Save<Tab>:w &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>:w
@ -54,24 +57,27 @@ menutrans &Select\ all<Tab>ggVG
menutrans &Find\.\.\. &<26><><EFBFBD><EFBFBD>\.\.\. menutrans &Find\.\.\. &<26><><EFBFBD><EFBFBD>\.\.\.
menutrans Find\ and\ Rep&lace\.\.\. <20><><EFBFBD><EFBFBD>\ <20>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\.\.\. menutrans Find\ and\ Rep&lace\.\.\. <20><><EFBFBD><EFBFBD>\ <20>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\.\.\.
menutrans Settings\ &Window <20>&<26><><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> menutrans Settings\ &Window <20>&<26><><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans Startup\ &Settings <20><>&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans &Global\ Settings <20><>&<26><><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> menutrans &Global\ Settings <20><>&<26><><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans F&ile\ Settings <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><>\ <20><>&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> menutrans F&ile\ Settings <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><>\ <20><>&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans &Shiftwidth &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> menutrans &Shiftwidth &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans Soft\ &Tabstop &<26><><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> menutrans Soft\ &Tabstop &<26><><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans Te&xt\ Width\.\.\. &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\.\.\. menutrans Te&xt\ Width\.\.\. &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\.\.\.
menutrans &File\ Format\.\.\. &<26><><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\.\.\. menutrans &File\ Format\.\.\. &<26><><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\.\.\.
menutrans C&olor\ Scheme <20><>&<EFBFBD><EFBFBD> menutrans Show\ C&olor\ Schemes\ in\ Menu <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD>\ <20><>&<26><>\ <20>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans &Keymap <20><><EFBFBD><EFBFBD>&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> menutrans C&olor\ Scheme \<EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><>&<EFBFBD><EFBFBD>
menutrans Show\ &Keymaps\ in\ Menu <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD>&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans &Keymap <09><><EFBFBD><EFBFBD>&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans Select\ Fo&nt\.\.\. <20><><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD>\.\.\. menutrans Select\ Fo&nt\.\.\. <20><><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD>\.\.\.
" Edit/Global Settings " Edit/Global Settings
menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ (<EFBFBD><EFBFBD>/<2F><>)<Tab>:set\ hls! menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ (<EFBFBD><EFBFBD>/<2F><>)<Tab>:set\ hls!
menutrans Toggle\ &Ignore-case<Tab>:set\ ic! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ \<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD>\ (<EFBFBD><EFBFBD>/<2F><>)<Tab>:set\ ic! menutrans Toggle\ &Ignoring\ Case<Tab>:set\ ic! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD>\ (<EFBFBD><EFBFBD>/<2F><>)<Tab>:set\ ic!
menutrans Toggle\ &Showmatch<Tab>:set\ sm! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ (<EFBFBD><EFBFBD>/<2F><>)<Tab>:set\ sm! menutrans Toggle\ &Showing\ Matched\ Pairs<Tab>:set\ sm! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ (<EFBFBD><EFBFBD>/<2F><>)<Tab>:set\ sm!
menutrans &Context\ lines <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> menutrans &Context\ lines <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans &Virtual\ Edit <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> menutrans &Virtual\ Edit <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans Toggle\ Insert\ &Mode<Tab>:set\ im! <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20>&<26><><EFBFBD><EFBFBD>\ (<EFBFBD><EFBFBD>/<2F><>)<Tab>:set\ im! menutrans Toggle\ Insert\ &Mode<Tab>:set\ im! <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20>&<26><><EFBFBD><EFBFBD>\ (<EFBFBD><EFBFBD>/<2F><>)<Tab>:set\ im!
menutrans Toggle\ Vi\ C&ompatible<Tab>:set\ cp! '&Vi'\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ (<EFBFBD><EFBFBD>/<2F><>)<Tab>:set\ cp! menutrans Toggle\ Vi\ C&ompatibility<Tab>:set\ cp! '&Vi'\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ (<EFBFBD><EFBFBD>/<2F><>)<Tab>:set\ cp!
menutrans Search\ &Path\.\.\. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\.\.\. menutrans Search\ &Path\.\.\. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\.\.\.
menutrans Ta&g\ Files\.\.\. &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\.\.\. menutrans Ta&g\ Files\.\.\. &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\.\.\.
menutrans Toggle\ &Toolbar <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ (<EFBFBD><EFBFBD>/<2F><>) menutrans Toggle\ &Toolbar <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ (<EFBFBD><EFBFBD>/<2F><>)
@ -87,28 +93,30 @@ menutrans Block\ and\ Insert
menutrans Always <20><><EFBFBD><EFBFBD> menutrans Always <20><><EFBFBD><EFBFBD>
" Edit/File Settings " Edit/File Settings
menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu! <20><><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ (<EFBFBD><EFBFBD>/<2F><>)<Tab>:set\ nu! menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ (<EFBFBD><EFBFBD>/<2F><>)<Tab>:set\ nu!
menutrans Toggle\ Relati&ve\ Line\ Numbering<Tab>:set\ rnu! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>&<26><><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ (<EFBFBD><EFBFBD>/<2F><>)<Tab>:set\ rnu!
menutrans Toggle\ &List\ Mode<Tab>:set\ list! <20><><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD>\ (<EFBFBD><EFBFBD>/<2F><>)<Tab>:set\ list! menutrans Toggle\ &List\ Mode<Tab>:set\ list! <20><><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD>\ (<EFBFBD><EFBFBD>/<2F><>)<Tab>:set\ list!
menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ (<EFBFBD><EFBFBD>/<2F><>)<Tab>:set\ wrap! menutrans Toggle\ Line\ &Wrapping<Tab>:set\ wrap! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ (<EFBFBD><EFBFBD>/<2F><>)<Tab>:set\ wrap!
menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><>\ <20><><EFBFBD>\ (<EFBFBD><EFBFBD>/<2F><>)<Tab>:set\ lbr! menutrans Toggle\ W&rapping\ at\ Word<Tab>:set\ lbr! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><>\ <20><><EFBFBD>\ (<EFBFBD><EFBFBD>/<2F><>)<Tab>:set\ lbr!
menutrans Toggle\ &expand-tab<Tab>:set\ et! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ (<EFBFBD><EFBFBD>/<2F><>)<Tab>:set\ et! menutrans Toggle\ Tab\ &Expanding<Tab>:set\ et! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ (<EFBFBD><EFBFBD>/<2F><>)<Tab>:set\ et!
menutrans Toggle\ &auto-indent<Tab>:set\ ai! <09><><EFBFBD><EFBFBD>-&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ (<EFBFBD><EFBFBD>/<2F><>)<Tab>:set\ ai! menutrans Toggle\ &Auto\ Indenting<Tab>:set\ ai! <09><><EFBFBD><EFBFBD>-&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ (<EFBFBD><EFBFBD>/<2F><>)<Tab>:set\ ai!
menutrans Toggle\ &C-indenting<Tab>:set\ cin! &<EFBFBD><EFBFBD>-<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ (<EFBFBD><EFBFBD>/<2F><>)<Tab>:set\ cin! menutrans Toggle\ &C-Style\ Indenting<Tab>:set\ cin! &C-<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ (<EFBFBD><EFBFBD>/<2F><>)<Tab>:set\ cin!
" Edit/Keymap " Edit/Keymap
menutrans None <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> menutrans None <20><><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
" Tools menu " Tools menu
menutrans &Tools &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> menutrans &Tools &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans &Jump\ to\ this\ tag<Tab>g^] <20><><EFBFBD><EFBFBD><EFBFBD>\ <20><>\ &<26><><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>g^] menutrans &Jump\ to\ this\ tag<Tab>g^] <20><><EFBFBD><EFBFBD><EFBFBD>\ <20><>\ &<26><><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>g^]
menutrans Jump\ &back<Tab>^T <20><><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>^T menutrans Jump\ &back<Tab>^T <20><><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>^T
menutrans Build\ &Tags\ File <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> menutrans Build\ &Tags\ File <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans &Spelling <20><><EFBFBD>&<26><><EFBFBD><EFBFBD><EFBFBD>
menutrans &Folding &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> menutrans &Folding &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans Create\ &Fold<Tab>zf <20>&<26><><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>zf menutrans Create\ &Fold<Tab>zf <20>&<26><><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>zf
menutrans &Delete\ Fold<Tab>zd <20>&<26><><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>zd menutrans &Delete\ Fold<Tab>zd <20>&<26><><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>zd
menutrans Delete\ &All\ Folds<Tab>zD <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD>\ <20><>&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>zD menutrans Delete\ &All\ Folds<Tab>zD <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD>\ <20><>&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>zD
menutrans Fold\ column\ &width <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> menutrans Fold\ column\ &width <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans &Diff &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "menutrans &Diff &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans &Make<Tab>:make 'mak&<26>'<Tab>:make menutrans &Make<Tab>:make 'mak&<26>'<Tab>:make
menutrans &List\ Errors<Tab>:cl <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>:cl menutrans &List\ Errors<Tab>:cl <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>:cl
menutrans L&ist\ Messages<Tab>:cl! <20><>&<26><><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>:cl! menutrans L&ist\ Messages<Tab>:cl! <20><>&<26><><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>:cl!
@ -117,9 +125,25 @@ menutrans &Previous\ Error<Tab>:cp
menutrans &Older\ List<Tab>:cold <20><><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD>&<26><Tab>:cold menutrans &Older\ List<Tab>:cold <20><><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD>&<26><Tab>:cold
menutrans N&ewer\ List<Tab>:cnew <20><>&<26><>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>:cnew menutrans N&ewer\ List<Tab>:cnew <20><>&<26><>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>:cnew
menutrans Error\ &Window <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><>\ <20>&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> menutrans Error\ &Window <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><>\ <20>&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans &Set\ Compiler <20>&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> menutrans Se&t\ Compiler <20>&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans &Convert\ to\ HEX<Tab>:%!xxd <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20>\ &ŵ<EFBFBD><EFBFBD><Tab>:%!xxd menutrans &Convert\ to\ HEX<Tab>:%!xxd <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20>\ &ŵ<EFBFBD><EFBFBD><Tab>:%!xxd
menutrans Conve&rt\ back<Tab>:%!xxd\ -r <20><>&<26><><EFBFBD>\ <20>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><Tab>:%!xxd\ -r menutrans Conve&rt\ back<Tab>:%!xxd\ -r <20><>&<26><><EFBFBD>\ <20>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><Tab>:%!xxd\ -r
menutrans Show\ Compiler\ Se&ttings\ in\ Menu <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD>&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
" Tools/Spelling
menutrans &Spell\ Check\ On &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans Spell\ Check\ &Off &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans To\ &Next\ Error<Tab>]s <09><><EFBFBD>\ <20><>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>]s
menutrans To\ &Previous\ Error<Tab>[s <09><><EFBFBD>\ <20><>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>[s
menutrans Suggest\ &Corrections<Tab>z= <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD>&<26><><EFBFBD><EFBFBD><EFBFBD><Tab>z=
menutrans &Repeat\ Correction<Tab>:spellrepall <09>&<26><><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>:spellrepall
menutrans Set\ Language\ to\ "en" <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD>\ <20><>\ "en"
menutrans Set\ Language\ to\ "en_au" <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD>\ <20><>\ "en_au"
menutrans Set\ Language\ to\ "en_ca" <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD>\ <20><>\ "en_ca"
menutrans Set\ Language\ to\ "en_gb" <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD>\ <20><>\ "en_gb"
menutrans Set\ Language\ to\ "en_nz" <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD>\ <20><>\ "en_nz"
menutrans Set\ Language\ to\ "en_us" <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD>\ <20><>\ "en_us"
menutrans &Find\ More\ Languages <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
" Tools/Folding " Tools/Folding
menutrans &Enable/Disable\ folds<Tab>zi &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>zi menutrans &Enable/Disable\ folds<Tab>zi &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>zi
@ -130,6 +154,7 @@ menutrans &Close\ all\ folds<Tab>zM
menutrans O&pen\ more\ folds<Tab>zr <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD>&<26>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>zr menutrans O&pen\ more\ folds<Tab>zr <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD>&<26>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>zr
menutrans &Open\ all\ folds<Tab>zR <20>&<26><><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>zR menutrans &Open\ all\ folds<Tab>zR <20>&<26><><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>zR
menutrans Fold\ Met&hod &<26><><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> menutrans Fold\ Met&hod &<26><><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans Fold\ Col&umn\ Width <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
" Tools/Folding/Fold Method " Tools/Folding/Fold Method
menutrans M&anual &<26><><EFBFBD><EFBFBD><EFBFBD> menutrans M&anual &<26><><EFBFBD><EFBFBD><EFBFBD>
@ -141,8 +166,8 @@ menutrans Ma&rker &
" Tools/Diff " Tools/Diff
menutrans &Update &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> menutrans &Update &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans &Get\ Block &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> menutrans &Get\ Block &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD>a
menutrans &Put\ Block <09><><EFBFBD>&<26><><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> menutrans &Put\ Block <09><><EFBFBD>&<26><><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
" Tools/Error Window " Tools/Error Window
menutrans &Update<Tab>:cwin &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>:cwin menutrans &Update<Tab>:cwin &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>:cwin
@ -190,8 +215,10 @@ menutrans Cu&t &
menutrans &Copy &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> menutrans &Copy &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans &Paste &<26><><EFBFBD><EFBFBD><EFBFBD> menutrans &Paste &<26><><EFBFBD><EFBFBD><EFBFBD>
menutrans &Delete <20>&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> menutrans &Delete <20>&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans Select\ Blockwise <20><><EFBFBD><EFBFBD><EFBFBD>\ &<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> menutrans Select\ Blockwise <20><><EFBFBD><EFBFBD><EFBFBD>\ <EFBFBD>&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans Select\ &Word <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD> menutrans Select\ &Word <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD>
menutrans Select\ &Sentence <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20>&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans Select\ Pa&ragraph <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans Select\ &Line <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20>&<26><> menutrans Select\ &Line <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20>&<26><>
menutrans Select\ &Block <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD> menutrans Select\ &Block <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD>
menutrans Select\ &All <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD> menutrans Select\ &All <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD>
@ -202,20 +229,20 @@ if has("toolbar")
delfun Do_toolbar_tmenu delfun Do_toolbar_tmenu
endif endif
fun Do_toolbar_tmenu() fun Do_toolbar_tmenu()
tmenu ToolBar.Open <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> tmenu ToolBar.Open <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
tmenu ToolBar.Save <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> tmenu ToolBar.Save <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
tmenu ToolBar.SaveAll <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> tmenu ToolBar.SaveAll <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
tmenu ToolBar.Print <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> tmenu ToolBar.Print <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
tmenu ToolBar.Undo <20><><EFBFBD><EFBFBD><EFBFBD> tmenu ToolBar.Undo <20><><EFBFBD><EFBFBD><EFBFBD>
tmenu ToolBar.Redo <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> tmenu ToolBar.Redo <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
tmenu ToolBar.Cut <20><><EFBFBD><EFBFBD><EFBFBD> tmenu ToolBar.Cut <20><><EFBFBD><EFBFBD><EFBFBD>
tmenu ToolBar.Copy <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> tmenu ToolBar.Copy <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
tmenu ToolBar.Paste <20><><EFBFBD><EFBFBD><EFBFBD> tmenu ToolBar.Paste <20><><EFBFBD><EFBFBD><EFBFBD>
tmenu ToolBar.Find <20><><EFBFBD><EFBFBD> tmenu ToolBar.Find <20><><EFBFBD><EFBFBD>
tmenu ToolBar.FindNext <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> tmenu ToolBar.FindNext <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
tmenu ToolBar.FindPrev <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> tmenu ToolBar.FindPrev <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
tmenu ToolBar.Replace <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> tmenu ToolBar.Replace <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
tmenu ToolBar.New <20><><EFBFBD><EFBFBD> tmenu ToolBar.New <20><><EFBFBD><EFBFBD>
tmenu ToolBar.WinSplit <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> tmenu ToolBar.WinSplit <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
tmenu ToolBar.WinMax <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> tmenu ToolBar.WinMax <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
tmenu ToolBar.WinMin <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> tmenu ToolBar.WinMin <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@ -226,25 +253,25 @@ if has("toolbar")
tmenu ToolBar.LoadSesn <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> tmenu ToolBar.LoadSesn <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
tmenu ToolBar.SaveSesn <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> tmenu ToolBar.SaveSesn <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
tmenu ToolBar.RunScript <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> tmenu ToolBar.RunScript <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
tmenu ToolBar.Make 'make' tmenu ToolBar.Make 'make'
tmenu ToolBar.Shell <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> tmenu ToolBar.Shell <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
tmenu ToolBar.RunCtags <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> tmenu ToolBar.RunCtags <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
tmenu ToolBar.TagJump <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> tmenu ToolBar.TagJump <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
tmenu ToolBar.Help <20><><EFBFBD><EFBFBD><EFBFBD> tmenu ToolBar.Help <20><><EFBFBD><EFBFBD><EFBFBD>
tmenu ToolBar.FindHelp <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> tmenu ToolBar.FindHelp <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
endfun endfun
endif endif
" Syntax menu " Syntax menu
menutrans &Syntax &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> menutrans &Syntax &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans &Show\ filetypes\ in\ menu <20><><EFBFBD><EFBFBD><EFBFBD>\ 'filetype'\ <20><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> menutrans &Show\ File\ Types\ in\ Menu <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans Set\ '&syntax'\ only <20><><EFBFBD><EFBFBD>&<26><>\ 'syntax'\ <20><><EFBFBD><EFBFBD> menutrans Set\ '&syntax'\ only <20><><EFBFBD><EFBFBD>&<26><>\ <20><><EFBFBD><EFBFBD>\ 'syntax'
menutrans Set\ '&filetype'\ too <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ 'filetype'\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> menutrans Set\ '&filetype'\ too <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20>\ 'filetype'
menutrans &Off &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> menutrans &Off &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans &Manual &<26><><EFBFBD><EFBFBD><EFBFBD> menutrans &Manual &<26><><EFBFBD><EFBFBD><EFBFBD>
menutrans A&utomatic &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> menutrans A&utomatic &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans on/off\ for\ &This\ file <20><>/<EFBFBD><EFBFBD>\ <20><>\ <20><><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> menutrans on/off\ for\ &This\ file <20><>/<EFBFBD><EFBFBD>\ <20><>\ <20><><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans Co&lor\ test <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD> menutrans Co&lor\ test <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD>
menutrans &Highlight\ test <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD>&<26><><EFBFBD><EFBFBD> menutrans &Highlight\ test <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD>&<26><><EFBFBD><EFBFBD>
menutrans &Convert\ to\ HTML <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26>\ HTML menutrans &Convert\ to\ HTML <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26>\ HTML
@ -257,9 +284,13 @@ let g:menutrans_tags_dialog = "
let g:menutrans_textwidth_dialog = "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (0 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)" let g:menutrans_textwidth_dialog = "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (0 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)"
let g:menutrans_fileformat_dialog = "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" let g:menutrans_fileformat_dialog = "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
let g:menutrans_fileformat_choices = "&Unix\n&Dos\n&Mac\n&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
let menutrans_no_file = "[<5B><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>]" let menutrans_no_file = "[<5B><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>]"
let &cpo = s:keepcpo let &cpo = s:keepcpo
unlet s:keepcpo unlet s:keepcpo
" vim: tw=0 keymap=serbian

View File

@ -1,6 +1,7 @@
" Menu Translations: Serbian " Menu Translations: Serbian
" Maintainer: Aleksandar Jelenak <ajelenak AT yahoo.com> " Maintainer: Aleksandar Jelenak <ajelenak AT yahoo.com>
" Last Change: Fri, 30 May 2003 10:17:39 Eastern Daylight Time " Last Change: Fri, 30 May 2003 10:17:39 Eastern Daylight Time
" Adapted for VIM 8 by: Иван Пешић on 2017-12-28 12:05+0400
" Quit when menu translations have already been done. " Quit when menu translations have already been done.
if exists("did_menu_trans") if exists("did_menu_trans")
@ -21,6 +22,7 @@ menutrans &Find &Нађи
menutrans &Credits &Заслуге menutrans &Credits &Заслуге
menutrans Co&pying П&реузимање menutrans Co&pying П&реузимање
menutrans O&rphans &Сирочићи menutrans O&rphans &Сирочићи
menutrans &Sponsor/Register Спонзор/&Региструјте\ се
menutrans &Version &Верзија menutrans &Version &Верзија
menutrans &About &О\ програму menutrans &About &О\ програму
@ -28,6 +30,7 @@ menutrans &About &О\ програму
menutrans &File &Датотека menutrans &File &Датотека
menutrans &Open\.\.\.<Tab>:e &Отвори\.\.\.<Tab>:e menutrans &Open\.\.\.<Tab>:e &Отвори\.\.\.<Tab>:e
menutrans Sp&lit-Open\.\.\.<Tab>:sp &Подели-отвори\.\.\.<Tab>:sp menutrans Sp&lit-Open\.\.\.<Tab>:sp &Подели-отвори\.\.\.<Tab>:sp
menutrans Open\ Tab\.\.\.<Tab>:tabnew Отвори\ картицу\.\.\.<Tab>:tabnew
menutrans &New<Tab>:enew &Нова<Tab>:enew menutrans &New<Tab>:enew &Нова<Tab>:enew
menutrans &Close<Tab>:close &Затвори<Tab>:close menutrans &Close<Tab>:close &Затвори<Tab>:close
menutrans &Save<Tab>:w &Сачувај<Tab>:w menutrans &Save<Tab>:w &Сачувај<Tab>:w
@ -54,24 +57,27 @@ menutrans &Select\ all<Tab>ggVG Изабери\ св&е<Tab>ggVG
menutrans &Find\.\.\. &Нађи\.\.\. menutrans &Find\.\.\. &Нађи\.\.\.
menutrans Find\ and\ Rep&lace\.\.\. Нађи\ и\ &замени\.\.\. menutrans Find\ and\ Rep&lace\.\.\. Нађи\ и\ &замени\.\.\.
menutrans Settings\ &Window П&розор\ подешавања menutrans Settings\ &Window П&розор\ подешавања
menutrans Startup\ &Settings По&дешавања\ при\ покретању
menutrans &Global\ Settings Оп&шта\ подешавања menutrans &Global\ Settings Оп&шта\ подешавања
menutrans F&ile\ Settings Подешавања\ за\ да&тотеке menutrans F&ile\ Settings Подешавања\ за\ да&тотеке
menutrans &Shiftwidth &Померај menutrans &Shiftwidth &Померај
menutrans Soft\ &Tabstop &Мека\ табулација menutrans Soft\ &Tabstop &Мека\ табулација
menutrans Te&xt\ Width\.\.\. &Ширина\ текста\.\.\. menutrans Te&xt\ Width\.\.\. &Ширина\ текста\.\.\.
menutrans &File\ Format\.\.\. &Врста\ датотеке\.\.\. menutrans &File\ Format\.\.\. &Врста\ датотеке\.\.\.
menutrans C&olor\ Scheme Бо&је menutrans Show\ C&olor\ Schemes\ in\ Menu Прикажи\ шеме\ бо&ја\ у\ менију
menutrans &Keymap Прес&ликавање\ тастатуре menutrans C&olor\ Scheme \Шеме\ бо&ја
menutrans Show\ &Keymaps\ in\ Menu Прикажи\ прес&ликавања\ тастатуре\ у\ менију
menutrans &Keymap Прес&ликавања\ тастатуре
menutrans Select\ Fo&nt\.\.\. Избор\ &фонта\.\.\. menutrans Select\ Fo&nt\.\.\. Избор\ &фонта\.\.\.
" Edit/Global Settings " Edit/Global Settings
menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls! Нагласи\ &образце\ (да/не)<Tab>:set\ hls! menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls! Нагласи\ &образце\ (да/не)<Tab>:set\ hls!
menutrans Toggle\ &Ignore-case<Tab>:set\ ic! Занемари\ \величину\ &слова\ (да/не)<Tab>:set\ ic! menutrans Toggle\ &Ignoring\ Case<Tab>:set\ ic! Занемари\ величину\ &слова\ (да/не)<Tab>:set\ ic!
menutrans Toggle\ &Showmatch<Tab>:set\ sm! Провери\ пратећу\ &заграду\ (да/не)<Tab>:set\ sm! menutrans Toggle\ &Showing\ Matched\ Pairs<Tab>:set\ sm! Провери\ пратећу\ &заграду\ (да/не)<Tab>:set\ sm!
menutrans &Context\ lines Видљиви\ &редови menutrans &Context\ lines Видљиви\ &редови
menutrans &Virtual\ Edit Виртуелно\ &уређивање menutrans &Virtual\ Edit Виртуелно\ &уређивање
menutrans Toggle\ Insert\ &Mode<Tab>:set\ im! Режим\ у&носа\ (да/не)<Tab>:set\ im! menutrans Toggle\ Insert\ &Mode<Tab>:set\ im! Режим\ у&носа\ (да/не)<Tab>:set\ im!
menutrans Toggle\ Vi\ C&ompatible<Tab>:set\ cp! '&Vi'\ сагласно\ (да/не)<Tab>:set\ cp! menutrans Toggle\ Vi\ C&ompatibility<Tab>:set\ cp! '&Vi'\ сагласно\ (да/не)<Tab>:set\ cp!
menutrans Search\ &Path\.\.\. Путања\ &претраге\.\.\. menutrans Search\ &Path\.\.\. Путања\ &претраге\.\.\.
menutrans Ta&g\ Files\.\.\. &Датотеке\ ознака\.\.\. menutrans Ta&g\ Files\.\.\. &Датотеке\ ознака\.\.\.
menutrans Toggle\ &Toolbar Линија\ са\ &алаткама\ (да/не) menutrans Toggle\ &Toolbar Линија\ са\ &алаткама\ (да/не)
@ -87,28 +93,30 @@ menutrans Block\ and\ Insert Блок\ и\ унос
menutrans Always Увек menutrans Always Увек
" Edit/File Settings " Edit/File Settings
menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu! Редни\ &бројеви\ (да/не)<Tab>:set\ nu! menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu! Прикажи\ &нумерацију\ линија\ (да/не)<Tab>:set\ nu!
menutrans Toggle\ Relati&ve\ Line\ Numbering<Tab>:set\ rnu! Прикажи\ Релати&вну\ нумерацију\ линија\ (да/не)<Tab>:set\ rnu!
menutrans Toggle\ &List\ Mode<Tab>:set\ list! Режим\ &листе\ (да/не)<Tab>:set\ list! menutrans Toggle\ &List\ Mode<Tab>:set\ list! Режим\ &листе\ (да/не)<Tab>:set\ list!
menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap! Обавијање\ &редова\ (да/не)<Tab>:set\ wrap! menutrans Toggle\ Line\ &Wrapping<Tab>:set\ wrap! Обавијање\ &редова\ (да/не)<Tab>:set\ wrap!
menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr! Преломи\ &на\ реч\ (да/не)<Tab>:set\ lbr! menutrans Toggle\ W&rapping\ at\ Word<Tab>:set\ lbr! Преломи\ &на\ реч\ (да/не)<Tab>:set\ lbr!
menutrans Toggle\ &expand-tab<Tab>:set\ et! Размаци\ уместо\ &табулације\ (да/не)<Tab>:set\ et! menutrans Toggle\ Tab\ &Expanding<Tab>:set\ et! Размаци\ уместо\ &табулације\ (да/не)<Tab>:set\ et!
menutrans Toggle\ &auto-indent<Tab>:set\ ai! Ауто-&увлачење\ (да/не)<Tab>:set\ ai! menutrans Toggle\ &Auto\ Indenting<Tab>:set\ ai! Ауто-&увлачење\ (да/не)<Tab>:set\ ai!
menutrans Toggle\ &C-indenting<Tab>:set\ cin! &Це-увлачење\ (да/не)<Tab>:set\ cin! menutrans Toggle\ &C-Style\ Indenting<Tab>:set\ cin! &C-увлачење\ (да/не)<Tab>:set\ cin!
" Edit/Keymap " Edit/Keymap
menutrans None Ниједан menutrans None Без\ пресликавања
" Tools menu " Tools menu
menutrans &Tools &Алатке menutrans &Tools &Алатке
menutrans &Jump\ to\ this\ tag<Tab>g^] Скочи\ на\ &ову\ ознаку<Tab>g^] menutrans &Jump\ to\ this\ tag<Tab>g^] Скочи\ на\ &ову\ ознаку<Tab>g^]
menutrans Jump\ &back<Tab>^T Скочи\ &натраг<Tab>^T menutrans Jump\ &back<Tab>^T Скочи\ &натраг<Tab>^T
menutrans Build\ &Tags\ File Изгради\ &датотеку\ ознака menutrans Build\ &Tags\ File Изгради\ &датотеку\ ознака
menutrans &Spelling Пра&вопис
menutrans &Folding &Подвијање menutrans &Folding &Подвијање
menutrans Create\ &Fold<Tab>zf С&твори\ подвијутак<Tab>zf menutrans Create\ &Fold<Tab>zf С&твори\ подвијутак<Tab>zf
menutrans &Delete\ Fold<Tab>zd О&бриши\ подвијутак<Tab>zd menutrans &Delete\ Fold<Tab>zd О&бриши\ подвијутак<Tab>zd
menutrans Delete\ &All\ Folds<Tab>zD Обриши\ све\ по&двијутке<Tab>zD menutrans Delete\ &All\ Folds<Tab>zD Обриши\ све\ по&двијутке<Tab>zD
menutrans Fold\ column\ &width Ширина\ &реда\ подвијутка menutrans Fold\ column\ &width Ширина\ &реда\ подвијутка
menutrans &Diff &Упоређивање "menutrans &Diff &Упоређивање
menutrans &Make<Tab>:make 'mak&е'<Tab>:make menutrans &Make<Tab>:make 'mak&е'<Tab>:make
menutrans &List\ Errors<Tab>:cl Списак\ &грешака<Tab>:cl menutrans &List\ Errors<Tab>:cl Списак\ &грешака<Tab>:cl
menutrans L&ist\ Messages<Tab>:cl! Сп&исак\ порука<Tab>:cl! menutrans L&ist\ Messages<Tab>:cl! Сп&исак\ порука<Tab>:cl!
@ -117,9 +125,25 @@ menutrans &Previous\ Error<Tab>:cp Пре&тходна\ грешка<Tab>:cp
menutrans &Older\ List<Tab>:cold Стари\ списа&к<Tab>:cold menutrans &Older\ List<Tab>:cold Стари\ списа&к<Tab>:cold
menutrans N&ewer\ List<Tab>:cnew Но&ви\ списак<Tab>:cnew menutrans N&ewer\ List<Tab>:cnew Но&ви\ списак<Tab>:cnew
menutrans Error\ &Window Прозор\ са\ г&решкама menutrans Error\ &Window Прозор\ са\ г&решкама
menutrans &Set\ Compiler И&забери\ преводиоца menutrans Se&t\ Compiler И&забери\ преводиоца
menutrans &Convert\ to\ HEX<Tab>:%!xxd Претвори\ у\ &ХЕКС<Tab>:%!xxd menutrans &Convert\ to\ HEX<Tab>:%!xxd Претвори\ у\ &ХЕКС<Tab>:%!xxd
menutrans Conve&rt\ back<Tab>:%!xxd\ -r Вр&ати\ у\ првобитан\ облик<Tab>:%!xxd\ -r menutrans Conve&rt\ back<Tab>:%!xxd\ -r Вр&ати\ у\ првобитан\ облик<Tab>:%!xxd\ -r
menutrans Show\ Compiler\ Se&ttings\ in\ Menu Прикажи\ поде&шавања\ преводиоца\ у\ менију
" Tools/Spelling
menutrans &Spell\ Check\ On &Укључи\ проверу\ правописа
menutrans Spell\ Check\ &Off &Искључи\ проверу\ правописа
menutrans To\ &Next\ Error<Tab>]s Иди\ на\ &следећу\ грешку<Tab>]s
menutrans To\ &Previous\ Error<Tab>[s Иди\ на\ &претходну\ грешку<Tab>[s
menutrans Suggest\ &Corrections<Tab>z= Предложи\ исп&равке<Tab>z=
menutrans &Repeat\ Correction<Tab>:spellrepall П&онови\ исправку<Tab>:spellrepall
menutrans Set\ Language\ to\ "en" Постави\ језик\ на\ "en"
menutrans Set\ Language\ to\ "en_au" Постави\ језик\ на\ "en_au"
menutrans Set\ Language\ to\ "en_ca" Постави\ језик\ на\ "en_ca"
menutrans Set\ Language\ to\ "en_gb" Постави\ језик\ на\ "en_gb"
menutrans Set\ Language\ to\ "en_nz" Постави\ језик\ на\ "en_nz"
menutrans Set\ Language\ to\ "en_us" Постави\ језик\ на\ "en_us"
menutrans &Find\ More\ Languages Пронађи\ још\ језика
" Tools/Folding " Tools/Folding
menutrans &Enable/Disable\ folds<Tab>zi &Омогући/прекини\ подвијање<Tab>zi menutrans &Enable/Disable\ folds<Tab>zi &Омогући/прекини\ подвијање<Tab>zi
@ -130,6 +154,7 @@ menutrans &Close\ all\ folds<Tab>zM Затвори\ с&ве\ подвијут
menutrans O&pen\ more\ folds<Tab>zr Отвори\ виш&е\ подвијутака<Tab>zr menutrans O&pen\ more\ folds<Tab>zr Отвори\ виш&е\ подвијутака<Tab>zr
menutrans &Open\ all\ folds<Tab>zR О&твори\ све\ подвијутке<Tab>zR menutrans &Open\ all\ folds<Tab>zR О&твори\ све\ подвијутке<Tab>zR
menutrans Fold\ Met&hod &Начин\ подвијања menutrans Fold\ Met&hod &Начин\ подвијања
menutrans Fold\ Col&umn\ Width Ширина\ колоне\ испред\ подвијутака
" Tools/Folding/Fold Method " Tools/Folding/Fold Method
menutrans M&anual &Ручно menutrans M&anual &Ручно
@ -141,8 +166,8 @@ menutrans Ma&rker &Ознака
" Tools/Diff " Tools/Diff
menutrans &Update &Ажурирај menutrans &Update &Ажурирај
menutrans &Get\ Block &Прихвати\ измену menutrans &Get\ Block &Прихвати\ блок\ изменa
menutrans &Put\ Block Пре&баци\ измену menutrans &Put\ Block Пре&баци\ блок\ измена
" Tools/Error Window " Tools/Error Window
menutrans &Update<Tab>:cwin &Ажурирај<Tab>:cwin menutrans &Update<Tab>:cwin &Ажурирај<Tab>:cwin
@ -190,8 +215,10 @@ menutrans Cu&t &Исеци
menutrans &Copy &Копирај menutrans &Copy &Копирај
menutrans &Paste &Убаци menutrans &Paste &Убаци
menutrans &Delete И&збриши menutrans &Delete И&збриши
menutrans Select\ Blockwise Бирај\ &правоугаоно menutrans Select\ Blockwise Бирај\ б&локовски
menutrans Select\ &Word Изабери\ &реч menutrans Select\ &Word Изабери\ &реч
menutrans Select\ &Sentence Изабери\ р&еченицу
menutrans Select\ Pa&ragraph Изабери\ &параграф
menutrans Select\ &Line Изабери\ р&ед menutrans Select\ &Line Изабери\ р&ед
menutrans Select\ &Block Изабери\ &блок menutrans Select\ &Block Изабери\ &блок
menutrans Select\ &All Изабери\ &све menutrans Select\ &All Изабери\ &све
@ -237,9 +264,9 @@ endif
" Syntax menu " Syntax menu
menutrans &Syntax &Синтакса menutrans &Syntax &Синтакса
menutrans &Show\ filetypes\ in\ menu Избор\ 'filetype'\ из\ &менија menutrans &Show\ File\ Types\ in\ Menu Прикажи\ типове\ датотека\ у\ &менију
menutrans Set\ '&syntax'\ only Поде&си\ 'syntax'\ само menutrans Set\ '&syntax'\ only Поде&си\ само\ 'syntax'
menutrans Set\ '&filetype'\ too Подеси\ 'filetype'\ &такође menutrans Set\ '&filetype'\ too Подеси\ &такође\ и\ 'filetype'
menutrans &Off &Искључено menutrans &Off &Искључено
menutrans &Manual &Ручно menutrans &Manual &Ручно
menutrans A&utomatic &Аутоматски menutrans A&utomatic &Аутоматски
@ -257,7 +284,9 @@ let g:menutrans_tags_dialog = "Унесите имена датотека са
let g:menutrans_textwidth_dialog = "Унесите нову ширину текста (0 спречава прелом)" let g:menutrans_textwidth_dialog = "Унесите нову ширину текста (0 спречава прелом)"
let g:menutrans_fileformat_dialog = "Изаберите врсту датотеке" let g:menutrans_fileformat_dialog = "Изаберите формат записа датотеке"
let g:menutrans_fileformat_choices = "&Unix\n&Dos\n&Mac\n&Откажи"
let menutrans_no_file = "[Нема датотеке]" let menutrans_no_file = "[Нема датотеке]"

View File

@ -1,7 +1,7 @@
" These commands create the option window. " These commands create the option window.
" "
" Maintainer: Bram Moolenaar <Bram@vim.org> " Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2017 Oct 19 " Last Change: 2018 Feb 27
" If there already is an option window, jump to that one. " If there already is an option window, jump to that one.
let buf = bufnr('option-window') let buf = bufnr('option-window')
@ -122,11 +122,13 @@ fun! <SID>Update(lnum, line, local, thiswin)
endfun endfun
" Reset 'title' and 'icon' to make it work faster. " Reset 'title' and 'icon' to make it work faster.
" Reset 'undolevels' to avoid undo'ing until the buffer is empty.
let s:old_title = &title let s:old_title = &title
let s:old_icon = &icon let s:old_icon = &icon
let s:old_sc = &sc let s:old_sc = &sc
let s:old_ru = &ru let s:old_ru = &ru
set notitle noicon nosc noru let s:old_ul = &ul
set notitle noicon nosc noru ul=-1
" If the current window is a help window, try finding a non-help window. " If the current window is a help window, try finding a non-help window.
" Relies on syntax highlighting to be switched on. " Relies on syntax highlighting to be switched on.
@ -647,11 +649,17 @@ if has("gui")
endif endif
call append("$", "linespace\tnumber of pixel lines to use between characters") call append("$", "linespace\tnumber of pixel lines to use between characters")
call append("$", " \tset lsp=" . &lsp) call append("$", " \tset lsp=" . &lsp)
if has("balloon_eval") if has("balloon_eval") || has("balloon_eval_term")
call append("$", "balloondelay\tdelay in milliseconds before a balloon may pop up") call append("$", "balloondelay\tdelay in milliseconds before a balloon may pop up")
call append("$", " \tset bdlay=" . &bdlay) call append("$", " \tset bdlay=" . &bdlay)
call append("$", "ballooneval\twhether the balloon evaluation is to be used") if has("balloon_eval")
call <SID>BinOptionG("beval", &beval) call append("$", "ballooneval\tuse balloon evaluation in the GUI")
call <SID>BinOptionG("beval", &beval)
endif
if has("balloon_eval_term")
call append("$", "balloonevalterm\tuse balloon evaluation in the terminal")
call <SID>BinOptionG("bevalterm", &beval)
endif
if has("eval") if has("eval")
call append("$", "balloonexpr\texpression to show in balloon eval") call append("$", "balloonexpr\texpression to show in balloon eval")
call append("$", " \tset bexpr=" . &bexpr) call append("$", " \tset bexpr=" . &bexpr)
@ -750,7 +758,7 @@ call <SID>OptionG("km", &km)
call <SID>Header("editing text") call <SID>Header("editing text")
call append("$", "undolevels\tmaximum number of changes that can be undone") call append("$", "undolevels\tmaximum number of changes that can be undone")
call append("$", "\t(global or local to buffer)") call append("$", "\t(global or local to buffer)")
call append("$", " \tset ul=" . &ul) call append("$", " \tset ul=" . s:old_ul)
call append("$", "undofile\tautomatically save and restore undo history") call append("$", "undofile\tautomatically save and restore undo history")
call <SID>BinOptionG("udf", &udf) call <SID>BinOptionG("udf", &udf)
call append("$", "undodir\tlist of directories for undo files") call append("$", "undodir\tlist of directories for undo files")
@ -796,6 +804,8 @@ if has("insert_expand")
call <SID>OptionG("cot", &cot) call <SID>OptionG("cot", &cot)
call append("$", "pumheight\tmaximum height of the popup menu") call append("$", "pumheight\tmaximum height of the popup menu")
call <SID>OptionG("ph", &ph) call <SID>OptionG("ph", &ph)
call append("$", "pumwidth\tminimum width of the popup menu")
call <SID>OptionG("pw", &pw)
call append("$", "completefunc\tuser defined function for Insert mode completion") call append("$", "completefunc\tuser defined function for Insert mode completion")
call append("$", "\t(local to buffer)") call append("$", "\t(local to buffer)")
call <SID>OptionL("cfu") call <SID>OptionL("cfu")
@ -1348,10 +1358,18 @@ if exists("&pythondll")
call append("$", "pythondll\tname of the Python 2 dynamic library") call append("$", "pythondll\tname of the Python 2 dynamic library")
call <SID>OptionG("pythondll", &pythondll) call <SID>OptionG("pythondll", &pythondll)
endif endif
if exists("&pythonhome")
call append("$", "pythonhome\tname of the Python 2 home directory")
call <SID>OptionG("pythonhome", &pythonhome)
endif
if exists("&pythonthreedll") if exists("&pythonthreedll")
call append("$", "pythonthreedll\tname of the Python 3 dynamic library") call append("$", "pythonthreedll\tname of the Python 3 dynamic library")
call <SID>OptionG("pythonthreedll", &pythonthreedll) call <SID>OptionG("pythonthreedll", &pythonthreedll)
endif endif
if exists("&pythonthreehome")
call append("$", "pythonthreehome\tname of the Python 3 home directory")
call <SID>OptionG("pythonthreehome", &pythonthreehome)
endif
if exists("&rubydll") if exists("&rubydll")
call append("$", "rubydll\tname of the Ruby dynamic library") call append("$", "rubydll\tname of the Ruby dynamic library")
call <SID>OptionG("rubydll", &rubydll) call <SID>OptionG("rubydll", &rubydll)
@ -1422,6 +1440,7 @@ let &icon = s:old_icon
let &ru = s:old_ru let &ru = s:old_ru
let &sc = s:old_sc let &sc = s:old_sc
let &cpo = s:cpo_save let &cpo = s:cpo_save
unlet s:old_title s:old_icon s:old_ru s:old_sc s:cpo_save s:idx s:lnum let &ul = s:old_ul
unlet s:old_title s:old_icon s:old_ru s:old_sc s:cpo_save s:idx s:lnum s:old_ul
" vim: ts=8 sw=2 sts=2 " vim: ts=8 sw=2 sts=2

View File

@ -25,7 +25,8 @@ endif
" The command that starts debugging, e.g. ":Termdebug vim". " The command that starts debugging, e.g. ":Termdebug vim".
" To end type "quit" in the gdb window. " To end type "quit" in the gdb window.
command -nargs=* -complete=file Termdebug call s:StartDebug(<q-args>) command -nargs=* -complete=file -bang Termdebug call s:StartDebug(<bang>0, <f-args>)
command -nargs=+ -complete=file -bang TermdebugCommand call s:StartDebugCommand(<bang>0, <f-args>)
" Name of the gdb command, defaults to "gdb". " Name of the gdb command, defaults to "gdb".
if !exists('termdebugger') if !exists('termdebugger')
@ -43,7 +44,22 @@ else
endif endif
hi default debugBreakpoint term=reverse ctermbg=red guibg=red hi default debugBreakpoint term=reverse ctermbg=red guibg=red
func s:StartDebug(cmd) func s:StartDebug(bang, ...)
" First argument is the command to debug, second core file or process ID.
call s:StartDebug_internal({'gdb_args': a:000, 'bang': a:bang})
endfunc
func s:StartDebugCommand(bang, ...)
" First argument is the command to debug, rest are run arguments.
call s:StartDebug_internal({'gdb_args': [a:1], 'proc_args': a:000[1:], 'bang': a:bang})
endfunc
func s:StartDebug_internal(dict)
if exists('s:gdbwin')
echoerr 'Terminal debugger already running'
return
endif
let s:startwin = win_getid(winnr()) let s:startwin = win_getid(winnr())
let s:startsigncolumn = &signcolumn let s:startsigncolumn = &signcolumn
@ -90,7 +106,10 @@ func s:StartDebug(cmd)
" Open a terminal window to run the debugger. " Open a terminal window to run the debugger.
" Add -quiet to avoid the intro message causing a hit-enter prompt. " Add -quiet to avoid the intro message causing a hit-enter prompt.
let cmd = [g:termdebugger, '-quiet', '-tty', pty, a:cmd] let gdb_args = get(a:dict, 'gdb_args', [])
let proc_args = get(a:dict, 'proc_args', [])
let cmd = [g:termdebugger, '-quiet', '-tty', pty] + gdb_args
echomsg 'executing "' . join(cmd) . '"' echomsg 'executing "' . join(cmd) . '"'
let s:gdbbuf = term_start(cmd, { let s:gdbbuf = term_start(cmd, {
\ 'exit_cb': function('s:EndDebug'), \ 'exit_cb': function('s:EndDebug'),
@ -104,15 +123,54 @@ func s:StartDebug(cmd)
endif endif
let s:gdbwin = win_getid(winnr()) let s:gdbwin = win_getid(winnr())
" Set arguments to be run
if len(proc_args)
call term_sendkeys(s:gdbbuf, 'set args ' . join(proc_args) . "\r")
endif
" Connect gdb to the communication pty, using the GDB/MI interface " Connect gdb to the communication pty, using the GDB/MI interface
" If you get an error "undefined command" your GDB is too old.
call term_sendkeys(s:gdbbuf, 'new-ui mi ' . commpty . "\r") call term_sendkeys(s:gdbbuf, 'new-ui mi ' . commpty . "\r")
" Wait for the response to show up, users may not notice the error and wonder
" why the debugger doesn't work.
let try_count = 0
while 1
let response = ''
for lnum in range(1,200)
if term_getline(s:gdbbuf, lnum) =~ 'new-ui mi '
let response = term_getline(s:gdbbuf, lnum + 1)
if response =~ 'Undefined command'
echoerr 'Sorry, your gdb is too old, gdb 7.12 is required'
exe 'bwipe! ' . s:ptybuf
exe 'bwipe! ' . s:commbuf
return
endif
if response =~ 'New UI allocated'
" Success!
break
endif
endif
endfor
if response =~ 'New UI allocated'
break
endif
let try_count += 1
if try_count > 100
echoerr 'Cannot check if your gdb works, continuing anyway'
break
endif
sleep 10m
endwhile
" Interpret commands while the target is running. This should usualy only be " Interpret commands while the target is running. This should usualy only be
" exec-interrupt, since many commands don't work properly while the target is " exec-interrupt, since many commands don't work properly while the target is
" running. " running.
call s:SendCommand('-gdb-set mi-async on') call s:SendCommand('-gdb-set mi-async on')
" Disable pagination, it causes everything to stop at the gdb
" "Type <return> to continue" prompt.
call s:SendCommand('-gdb-set pagination off')
" Sign used to highlight the line where the program has stopped. " Sign used to highlight the line where the program has stopped.
" There can be only one. " There can be only one.
sign define debugPC linehl=debugPC sign define debugPC linehl=debugPC
@ -143,11 +201,20 @@ func s:StartDebug(cmd)
au BufRead * call s:BufRead() au BufRead * call s:BufRead()
au BufUnload * call s:BufUnloaded() au BufUnload * call s:BufUnloaded()
augroup END augroup END
" Run the command if the bang attribute was given
" and got to the window
if get(a:dict, 'bang', 0)
call s:SendCommand('-exec-run')
call win_gotoid(s:ptywin)
endif
endfunc endfunc
func s:EndDebug(job, status) func s:EndDebug(job, status)
exe 'bwipe! ' . s:ptybuf exe 'bwipe! ' . s:ptybuf
exe 'bwipe! ' . s:commbuf exe 'bwipe! ' . s:commbuf
unlet s:gdbwin
let curwinid = win_getid(winnr()) let curwinid = win_getid(winnr())
@ -201,7 +268,7 @@ endfunc
" Install commands in the current window to control the debugger. " Install commands in the current window to control the debugger.
func s:InstallCommands() func s:InstallCommands()
command Break call s:SetBreakpoint() command Break call s:SetBreakpoint()
command Delete call s:DeleteBreakpoint() command Clear call s:ClearBreakpoint()
command Step call s:SendCommand('-exec-step') command Step call s:SendCommand('-exec-step')
command Over call s:SendCommand('-exec-next') command Over call s:SendCommand('-exec-next')
command Finish call s:SendCommand('-exec-finish') command Finish call s:SendCommand('-exec-finish')
@ -212,24 +279,45 @@ func s:InstallCommands()
command -range -nargs=* Evaluate call s:Evaluate(<range>, <q-args>) command -range -nargs=* Evaluate call s:Evaluate(<range>, <q-args>)
command Gdb call win_gotoid(s:gdbwin) command Gdb call win_gotoid(s:gdbwin)
command Program call win_gotoid(s:ptywin) command Program call win_gotoid(s:ptywin)
command Source call s:GotoStartwinOrCreateIt()
command Winbar call s:InstallWinbar()
" TODO: can the K mapping be restored? " TODO: can the K mapping be restored?
nnoremap K :Evaluate<CR> nnoremap K :Evaluate<CR>
if has('menu') if has('menu') && &mouse != ''
nnoremenu WinBar.Step :Step<CR> call s:InstallWinbar()
nnoremenu WinBar.Next :Over<CR>
if !exists('g:termdebug_popup') || g:termdebug_popup != 0
let s:saved_mousemodel = &mousemodel
let &mousemodel = 'popup_setpos'
an 1.200 PopUp.-SEP3- <Nop>
an 1.210 PopUp.Set\ breakpoint :Break<CR>
an 1.220 PopUp.Clear\ breakpoint :Clear<CR>
an 1.230 PopUp.Evaluate :Evaluate<CR>
endif
endif
endfunc
let s:winbar_winids = []
" Install the window toolbar in the current window.
func s:InstallWinbar()
if has('menu') && &mouse != ''
nnoremenu WinBar.Step :Step<CR>
nnoremenu WinBar.Next :Over<CR>
nnoremenu WinBar.Finish :Finish<CR> nnoremenu WinBar.Finish :Finish<CR>
nnoremenu WinBar.Cont :Continue<CR> nnoremenu WinBar.Cont :Continue<CR>
nnoremenu WinBar.Stop :Stop<CR> nnoremenu WinBar.Stop :Stop<CR>
nnoremenu WinBar.Eval :Evaluate<CR> nnoremenu WinBar.Eval :Evaluate<CR>
call add(s:winbar_winids, win_getid(winnr()))
endif endif
endfunc endfunc
" Delete installed debugger commands in the current window. " Delete installed debugger commands in the current window.
func s:DeleteCommands() func s:DeleteCommands()
delcommand Break delcommand Break
delcommand Delete delcommand Clear
delcommand Step delcommand Step
delcommand Over delcommand Over
delcommand Finish delcommand Finish
@ -240,16 +328,35 @@ func s:DeleteCommands()
delcommand Evaluate delcommand Evaluate
delcommand Gdb delcommand Gdb
delcommand Program delcommand Program
delcommand Source
delcommand Winbar
nunmap K nunmap K
if has('menu') if has('menu')
aunmenu WinBar.Step " Remove the WinBar entries from all windows where it was added.
aunmenu WinBar.Next let curwinid = win_getid(winnr())
aunmenu WinBar.Finish for winid in s:winbar_winids
aunmenu WinBar.Cont if win_gotoid(winid)
aunmenu WinBar.Stop aunmenu WinBar.Step
aunmenu WinBar.Eval aunmenu WinBar.Next
aunmenu WinBar.Finish
aunmenu WinBar.Cont
aunmenu WinBar.Stop
aunmenu WinBar.Eval
endif
endfor
call win_gotoid(curwinid)
let s:winbar_winids = []
if exists('s:saved_mousemodel')
let &mousemodel = s:saved_mousemodel
unlet s:saved_mousemodel
aunmenu PopUp.-SEP3-
aunmenu PopUp.Set\ breakpoint
aunmenu PopUp.Clear\ breakpoint
aunmenu PopUp.Evaluate
endif
endif endif
exe 'sign unplace ' . s:pc_id exe 'sign unplace ' . s:pc_id
@ -278,8 +385,8 @@ func s:SetBreakpoint()
endif endif
endfunc endfunc
" :Delete - Delete a breakpoint at the cursor position. " :Clear - Delete a breakpoint at the cursor position.
func s:DeleteBreakpoint() func s:ClearBreakpoint()
let fname = fnameescape(expand('%:p')) let fname = fnameescape(expand('%:p'))
let lnum = line('.') let lnum = line('.')
for [key, val] in items(s:breakpoints) for [key, val] in items(s:breakpoints)
@ -325,9 +432,11 @@ func s:Evaluate(range, arg)
else else
let expr = expand('<cexpr>') let expr = expand('<cexpr>')
endif endif
let s:ignoreEvalError = 0
call s:SendEval(expr) call s:SendEval(expr)
endfunc endfunc
let s:ignoreEvalError = 0
let s:evalFromBalloonExpr = 0 let s:evalFromBalloonExpr = 0
" Handle the result of data-evaluate-expression " Handle the result of data-evaluate-expression
@ -347,6 +456,7 @@ func s:HandleEvaluate(msg)
if s:evalexpr[0] != '*' && value =~ '^0x' && value != '0x0' && value !~ '"$' if s:evalexpr[0] != '*' && value =~ '^0x' && value != '0x0' && value !~ '"$'
" Looks like a pointer, also display what it points to. " Looks like a pointer, also display what it points to.
let s:ignoreEvalError = 1
call s:SendEval('*' . s:evalexpr) call s:SendEval('*' . s:evalexpr)
else else
let s:evalFromBalloonExpr = 0 let s:evalFromBalloonExpr = 0
@ -359,24 +469,32 @@ func TermDebugBalloonExpr()
if v:beval_winid != s:startwin if v:beval_winid != s:startwin
return return
endif endif
call s:SendEval(v:beval_text)
let s:evalFromBalloonExpr = 1 let s:evalFromBalloonExpr = 1
let s:evalFromBalloonExprResult = '' let s:evalFromBalloonExprResult = ''
let s:ignoreEvalError = 1
call s:SendEval(v:beval_text)
return '' return ''
endfunc endfunc
" Handle an error. " Handle an error.
func s:HandleError(msg) func s:HandleError(msg)
if a:msg =~ 'No symbol .* in current context' if s:ignoreEvalError
\ || a:msg =~ 'Cannot access memory at address '
\ || a:msg =~ 'Attempt to use a type name as an expression'
\ || a:msg =~ 'A syntax error in expression,'
" Result of s:SendEval() failed, ignore. " Result of s:SendEval() failed, ignore.
let s:ignoreEvalError = 0
let s:evalFromBalloonExpr = 0
return return
endif endif
echoerr substitute(a:msg, '.*msg="\(.*\)"', '\1', '') echoerr substitute(a:msg, '.*msg="\(.*\)"', '\1', '')
endfunc endfunc
func s:GotoStartwinOrCreateIt()
if !win_gotoid(s:startwin)
new
let s:startwin = win_getid(winnr())
call s:InstallWinbar()
endif
endfunc
" Handle stopping and running message from gdb. " Handle stopping and running message from gdb.
" Will update the sign that shows the current position. " Will update the sign that shows the current position.
func s:HandleCursor(msg) func s:HandleCursor(msg)
@ -388,31 +506,32 @@ func s:HandleCursor(msg)
let s:stopped = 0 let s:stopped = 0
endif endif
if win_gotoid(s:startwin) call s:GotoStartwinOrCreateIt()
let fname = substitute(a:msg, '.*fullname="\([^"]*\)".*', '\1', '')
if a:msg =~ '^\(\*stopped\|=thread-selected\)' && filereadable(fname)
let lnum = substitute(a:msg, '.*line="\([^"]*\)".*', '\1', '')
if lnum =~ '^[0-9]*$'
if expand('%:p') != fnamemodify(fname, ':p')
if &modified
" TODO: find existing window
exe 'split ' . fnameescape(fname)
let s:startwin = win_getid(winnr())
else
exe 'edit ' . fnameescape(fname)
endif
endif
exe lnum
exe 'sign unplace ' . s:pc_id
exe 'sign place ' . s:pc_id . ' line=' . lnum . ' name=debugPC file=' . fname
setlocal signcolumn=yes
endif
else
exe 'sign unplace ' . s:pc_id
endif
call win_gotoid(wid) let fname = substitute(a:msg, '.*fullname="\([^"]*\)".*', '\1', '')
if a:msg =~ '^\(\*stopped\|=thread-selected\)' && filereadable(fname)
let lnum = substitute(a:msg, '.*line="\([^"]*\)".*', '\1', '')
if lnum =~ '^[0-9]*$'
if expand('%:p') != fnamemodify(fname, ':p')
if &modified
" TODO: find existing window
exe 'split ' . fnameescape(fname)
let s:startwin = win_getid(winnr())
call s:InstallWinbar()
else
exe 'edit ' . fnameescape(fname)
endif
endif
exe lnum
exe 'sign unplace ' . s:pc_id
exe 'sign place ' . s:pc_id . ' line=' . lnum . ' name=debugPC file=' . fname
setlocal signcolumn=yes
endif
else
exe 'sign unplace ' . s:pc_id
endif endif
call win_gotoid(wid)
endfunc endfunc
" Handle setting a breakpoint " Handle setting a breakpoint

View File

@ -1,29 +1,30 @@
" Vim plugin for using Vim as manpager. " Vim plugin for using Vim as manpager.
" Maintainer: Enno Nagel <ennonagel+vim@gmail.com> " Maintainer: Enno Nagel <ennonagel+vim@gmail.com>
" Last Change: 2017 November 07 " Last Change: 2018 Feb 04
" $MAN_PN is supposed to be set by MANPAGER, see ":help manpager.vim". command! -nargs=0 MANPAGER call s:ManPager() | delcommand MANPAGER
if empty($MAN_PN)
finish
endif
command! -nargs=0 MANPAGER call s:MANPAGER() | delcommand MANPAGER function! s:ManPager()
set nocompatible
function! s:MANPAGER() if exists('+viminfofile')
let page_pattern = '\v\w[-_.:0-9A-Za-z]*' set viminfofile=NONE
let sec_pattern = '\v\w+%(\+\w+)*'
let pagesec_pattern = '\v(' . page_pattern . ')\((' . sec_pattern . ')\)'
if $MAN_PN is '1'
let manpage = tolower(matchstr( getline(nextnonblank(1)), '^' . pagesec_pattern ))
else
let manpage = expand($MAN_PN)
endif endif
set noswapfile
let page_sec = matchlist(manpage, '^' . pagesec_pattern . '$') setlocal ft=man
runtime ftplugin/man.vim
setlocal buftype=nofile bufhidden=hide iskeyword+=: modifiable
bwipe! " Emulate 'col -b'
silent keepj keepp %s/\v(.)\b\ze\1?//ge
setlocal filetype=man " Remove empty lines above the header
exe 'Man' page_sec[2] page_sec[1] call cursor(1, 1)
let n = search(".*(.*)", "c")
if n > 1
exe "1," . n-1 . "d"
endif
setlocal nomodified readonly
syntax on
endfunction endfunction

View File

@ -20,7 +20,7 @@
if &cp || exists("g:loaded_netrwPlugin") if &cp || exists("g:loaded_netrwPlugin")
finish finish
endif endif
let g:loaded_netrwPlugin = "v162" let g:loaded_netrwPlugin = "v156"
let s:keepcpo = &cpo let s:keepcpo = &cpo
set cpo&vim set cpo&vim
"DechoRemOn "DechoRemOn
@ -42,8 +42,8 @@ augroup END
" Network Browsing Reading Writing: {{{2 " Network Browsing Reading Writing: {{{2
augroup Network augroup Network
au! au!
au BufReadCmd file://* call netrw#FileUrlEdit(expand("<amatch>")) au BufReadCmd file://* call netrw#FileUrlRead(expand("<amatch>"))
au BufReadCmd ftp://*,rcp://*,scp://*,http://*,https://*,dav://*,davs://*,rsync://*,sftp://* exe "sil doau BufReadPre ".fnameescape(expand("<amatch>"))|call netrw#Nread(2,expand("<amatch>"))|exe "sil doau BufReadPost ".fnameescape(expand("<amatch>")) au BufReadCmd ftp://*,rcp://*,scp://*,http://*,file://*,https://*,dav://*,davs://*,rsync://*,sftp://* exe "sil doau BufReadPre ".fnameescape(expand("<amatch>"))|call netrw#Nread(2,expand("<amatch>"))|exe "sil doau BufReadPost ".fnameescape(expand("<amatch>"))
au FileReadCmd ftp://*,rcp://*,scp://*,http://*,file://*,https://*,dav://*,davs://*,rsync://*,sftp://* exe "sil doau FileReadPre ".fnameescape(expand("<amatch>"))|call netrw#Nread(1,expand("<amatch>"))|exe "sil doau FileReadPost ".fnameescape(expand("<amatch>")) au FileReadCmd ftp://*,rcp://*,scp://*,http://*,file://*,https://*,dav://*,davs://*,rsync://*,sftp://* exe "sil doau FileReadPre ".fnameescape(expand("<amatch>"))|call netrw#Nread(1,expand("<amatch>"))|exe "sil doau FileReadPost ".fnameescape(expand("<amatch>"))
au BufWriteCmd ftp://*,rcp://*,scp://*,http://*,file://*,dav://*,davs://*,rsync://*,sftp://* exe "sil doau BufWritePre ".fnameescape(expand("<amatch>"))|exe 'Nwrite '.fnameescape(expand("<amatch>"))|exe "sil doau BufWritePost ".fnameescape(expand("<amatch>")) au BufWriteCmd ftp://*,rcp://*,scp://*,http://*,file://*,dav://*,davs://*,rsync://*,sftp://* exe "sil doau BufWritePre ".fnameescape(expand("<amatch>"))|exe 'Nwrite '.fnameescape(expand("<amatch>"))|exe "sil doau BufWritePost ".fnameescape(expand("<amatch>"))
au FileWriteCmd ftp://*,rcp://*,scp://*,http://*,file://*,dav://*,davs://*,rsync://*,sftp://* exe "sil doau FileWritePre ".fnameescape(expand("<amatch>"))|exe "'[,']".'Nwrite '.fnameescape(expand("<amatch>"))|exe "sil doau FileWritePost ".fnameescape(expand("<amatch>")) au FileWriteCmd ftp://*,rcp://*,scp://*,http://*,file://*,dav://*,davs://*,rsync://*,sftp://* exe "sil doau FileWritePre ".fnameescape(expand("<amatch>"))|exe "'[,']".'Nwrite '.fnameescape(expand("<amatch>"))|exe "sil doau FileWritePost ".fnameescape(expand("<amatch>"))
@ -59,7 +59,7 @@ com! -count=1 -nargs=* Nread let s:svpos= winsaveview()<bar>call netrw#NetRead(
com! -range=% -nargs=* Nwrite let s:svpos= winsaveview()<bar><line1>,<line2>call netrw#NetWrite(<f-args>)<bar>call winrestview(s:svpos) com! -range=% -nargs=* Nwrite let s:svpos= winsaveview()<bar><line1>,<line2>call netrw#NetWrite(<f-args>)<bar>call winrestview(s:svpos)
com! -nargs=* NetUserPass call NetUserPass(<f-args>) com! -nargs=* NetUserPass call NetUserPass(<f-args>)
com! -nargs=* Nsource let s:svpos= winsaveview()<bar>call netrw#NetSource(<f-args>)<bar>call winrestview(s:svpos) com! -nargs=* Nsource let s:svpos= winsaveview()<bar>call netrw#NetSource(<f-args>)<bar>call winrestview(s:svpos)
com! -nargs=? Ntree call netrw#SetTreetop(1,<q-args>) com! -nargs=? Ntree call netrw#SetTreetop(<q-args>)
" Commands: :Explore, :Sexplore, Hexplore, Vexplore, Lexplore {{{2 " Commands: :Explore, :Sexplore, Hexplore, Vexplore, Lexplore {{{2
com! -nargs=* -bar -bang -count=0 -complete=dir Explore call netrw#Explore(<count>,0,0+<bang>0,<q-args>) com! -nargs=* -bar -bang -count=0 -complete=dir Explore call netrw#Explore(<count>,0,0+<bang>0,<q-args>)
@ -81,7 +81,7 @@ if !exists("g:netrw_nogx")
if !hasmapto('<Plug>NetrwBrowseX') if !hasmapto('<Plug>NetrwBrowseX')
nmap <unique> gx <Plug>NetrwBrowseX nmap <unique> gx <Plug>NetrwBrowseX
endif endif
nno <silent> <Plug>NetrwBrowseX :call netrw#BrowseX(netrw#GX(),netrw#CheckIfRemote(netrw#GX()))<cr> nno <silent> <Plug>NetrwBrowseX :call netrw#BrowseX(expand((exists("g:netrw_gx")? g:netrw_gx : '<cfile>')),netrw#CheckIfRemote())<cr>
endif endif
if maparg('gx','v') == "" if maparg('gx','v') == ""
if !hasmapto('<Plug>NetrwBrowseXVis') if !hasmapto('<Plug>NetrwBrowseXVis')
@ -129,15 +129,19 @@ fun! s:LocalBrowse(dirname)
elseif isdirectory(a:dirname) elseif isdirectory(a:dirname)
" call Decho("(LocalBrowse) dirname<".a:dirname."> ft=".&ft." (isdirectory, not amiga)") " call Decho("(LocalBrowse) dirname<".a:dirname."> ft=".&ft." (isdirectory, not amiga)")
" call Dredir("LocalBrowse ft last set: ","verbose set ft") " call Dredir("LocalBrowse ft last set: ","verbose set ft")
" call Decho("(s:LocalBrowse) COMBAK#23: buf#".bufnr("%")." file<".expand("%")."> line#".line(".")." col#".col("."))
sil! call netrw#LocalBrowseCheck(a:dirname) sil! call netrw#LocalBrowseCheck(a:dirname)
" call Decho("(s:LocalBrowse) COMBAK#24: buf#".bufnr("%")." file<".expand("%")."> line#".line(".")." col#".col("."))
if exists("w:netrw_bannercnt") && line('.') < w:netrw_bannercnt if exists("w:netrw_bannercnt") && line('.') < w:netrw_bannercnt
exe w:netrw_bannercnt exe w:netrw_bannercnt
" call Decho("(s:LocalBrowse) COMBAK#25: buf#".bufnr("%")." file<".expand("%")."> line#".line(".")." col#".col("."))
endif endif
else else
" not a directory, ignore it " not a directory, ignore it
" call Decho("(LocalBrowse) dirname<".a:dirname."> not a directory, ignoring...") " call Decho("(LocalBrowse) dirname<".a:dirname."> not a directory, ignoring...")
endif endif
" call Decho("(s:LocalBrowse) COMBAK#26: buf#".bufnr("%")." file<".expand("%")."> line#".line(".")." col#".col("."))
" call Dret("s:LocalBrowse") " call Dret("s:LocalBrowse")
endfun endfun

View File

@ -1,7 +1,7 @@
" Vim support file to detect file types in scripts " Vim support file to detect file types in scripts
" "
" Maintainer: Bram Moolenaar <Bram@vim.org> " Maintainer: Bram Moolenaar <Bram@vim.org>
" Last change: 2017 Nov 11 " Last change: 2018 Feb 03
" This file is called by an autocommand for every file that has just been " This file is called by an autocommand for every file that has just been
" loaded into a buffer. It checks if the type of file can be recognized by " loaded into a buffer. It checks if the type of file can be recognized by
@ -100,6 +100,10 @@ if s:line1 =~# "^#!"
elseif s:name =~# 'make\>' elseif s:name =~# 'make\>'
set ft=make set ft=make
" Pike
elseif s:name =~# '^pike\%(\>\|[0-9]\)'
set ft=pike
" Lua " Lua
elseif s:name =~# 'lua' elseif s:name =~# 'lua'
set ft=lua set ft=lua
@ -129,7 +133,7 @@ if s:line1 =~# "^#!"
set ft=ruby set ft=ruby
" JavaScript " JavaScript
elseif s:name =~# 'node\(js\)\=\>' || s:name =~# 'rhino\>' elseif s:name =~# 'node\(js\)\=\>\|js\>' || s:name =~# 'rhino\>'
set ft=javascript set ft=javascript
" BC calculator " BC calculator
@ -172,6 +176,10 @@ if s:line1 =~# "^#!"
elseif s:name =~# 'scala\>' elseif s:name =~# 'scala\>'
set ft=scala set ft=scala
" Clojure
elseif s:name =~# 'clojure'
set ft=clojure
endif endif
unlet s:name unlet s:name

142
runtime/spell/sr/main.aap Normal file
View File

@ -0,0 +1,142 @@
# Aap recipe for Serbian Vim spell files.
# Use a freshly compiled Vim if it exists.
@if os.path.exists('../../../src/vim'):
VIM = ../../../src/vim
@else:
:progsearch VIM vim
SPELLDIR = ..
FILES = sr_RS.aff sr_RS.dic
'sr_RS@latin.aff' 'sr_RS@latin.dic'
all: $SPELLDIR/sr.utf-8.spl $SPELLDIR/'sr@latin.utf-8.spl' ../README_sr.txt
# Original files will be in the subfolder hunspell-sr after unpacking:
# sr.dic original cyrillic dictionary
# sr.aff original cyrillic affix file
# sr-Latn.dic original latin dictionary file
# sr-Latn.aff original latin affix file
# Just before using the dictionary files, the right ones are copied to
# sr_RS.aff
# sr_RS.dic
# and
# sr_RS@latin.aff
# sr_RS@latin.dic
$SPELLDIR/sr.utf-8.spl : $FILES
:sys env LANG=sr_RS.UTF-8
$VIM -u NONE -e -c "set enc=utf-8" -c "mkspell! $SPELLDIR/sr sr_RS" -c q
$SPELLDIR/"sr@latin.utf-8.spl" : $FILES
:sys env LANG=sr_RS@latin.UTF-8
$VIM -u NONE -e -c "set enc=utf-8" -c "mkspell! $SPELLDIR/sr@latin sr_RS@latin" -c q
../README_sr.txt : hunspell-sr/README_sr.txt README_sr_RS.txt
:cat README_sr_RS.txt >!$target
:print >>$target
:print ============================================================== >>$target
:print Следи оригинална README датотека: >>$target
:print >>$target
:cat hunspell-sr/README_sr.txt >>$target
#
# Used to fetch the files.
#
ZIPFILE = http://devbase.net/dict-sr/hunspell-sr-20130715.zip
:attr {fetch = $ZIPFILE} sr_RS.zip
# The files don't depend on the .zip file so that we can delete it.
# Only download the zip file if the targets don't exist.
sr_RS.aff sr_RS.dic: {buildcheck=}
:assertpkg unzip patch
:fetch sr_RS.zip
:sys $UNZIP sr_RS.zip
:delete sr_RS.zip
@if not os.path.exists('sr_RS.orig.aff'):
:copy hunspell-sr/sr.aff sr_RS.orig.aff
@if not os.path.exists('sr_RS.orig.dic'):
:copy hunspell-sr/sr.dic sr_RS.orig.dic
@if os.path.exists('sr_RS.diff'):
:sys patch <sr_RS.diff
:copy sr_RS.orig.aff sr_RS.aff
:copy sr_RS.orig.dic sr_RS.dic
# Remove the 3 misspelled words and update the word count
# :sys $VIM -u NONE -e -c "set enc=utf-8"
# -c "e sr_RS.orig.dic"
# -c "%g/ажуриранје/d"
# -c "%g/вишнја/d"
# -c "%g/вишнјевац/d"
# -c "%s/263909/263906/e"
# -c "w! sr_RS.dic"
# -c q
sr_RS@latin.aff sr_RS@latin.dic: {buildcheck=}
:assertpkg unzip patch
:fetch sr_RS.zip
:sys $UNZIP sr_RS.zip
:delete sr_RS.zip
@if not os.path.exists('sr_RS@latin.orig.aff'):
:copy hunspell-sr/sr-Latn.aff 'sr_RS@latin.orig.aff'
@if not os.path.exists('sr_RS@latin.orig.dic'):
:copy hunspell-sr/sr-Latn.dic 'sr_RS@latin.orig.dic'
@if os.path.exists('sr_RS@latin.diff'):
:sys patch <'sr_RS@latin.diff'
:copy 'sr_RS@latin.orig.aff' 'sr_RS@latin.aff'
:copy 'sr_RS@latin.orig.dic' 'sr_RS@latin.dic'
# Remove the 3 duplicated words and update the word count
# :sys $VIM -u NONE -e -c "set enc=utf-8"
# -c "e sr_RS@latin.orig.dic"
# -c "%g/\v(ažuriranje)(\_.*\1)@=/d"
# -c "%g/\v(višnja)(\_.*\1)@=/d"
# -c "%g/\v(višnjevac)(\_.*\1)@=/d"
# -c "%s/263909/263906/e"
# -c "w! sr_RS@latin.dic"
# -c q
# Generate diff files, so that others can get the files and apply
# the diffs to get the Vim versions.
diff:
:assertpkg diff
:sys {force} diff -a -C 1 sr_RS.orig.aff sr_RS.aff >sr_RS.diff
:sys {force} diff -a -C 1 sr_RS.orig.dic sr_RS.dic >>sr_RS.diff
:sys {force} diff -a -C 1 'sr_RS@latin.orig.aff' 'sr_RS@latin.aff' >'sr_RS@latin.diff'
:sys {force} diff -a -C 1 'sr_RS@latin.orig.dic' 'sr_RS@latin.dic' >>'sr_RS@latin.diff'
# Delete all the unpacked and generated files, including the "orig" files.
clean:
:delete {force} sr_RS.zip sr_RS.dic
sr_RS.orig.aff sr_RS.orig.dic
sr_RS.aff
'sr_RS@latin.dic' 'sr_RS@latin.aff'
'sr_RS@latin.orig.aff' 'sr_RS@latin.orig.dic'
:sys rm -f -r hunspell-sr/
# Check for updated OpenOffice spell files. When there are changes the
# ".new.aff" and ".new.dic" files are left behind for manual inspection.
#
#check:
# :assertpkg unzip diff
# :fetch fr_FR.zip
# :mkdir tmp
# :cd tmp
# @try:
# @import stat
# :sys $UNZIP ../fr_FR.zip
# :sys {force} diff ../fr_FR.orig.aff fr_FR.aff >d
# @if os.stat('d')[stat.ST_SIZE] > 0:
# :copy fr_FR.aff ../fr_FR.new.aff
# :sys {force} diff ../fr_FR.orig.dic fr_FR.dic >d
# @if os.stat('d')[stat.ST_SIZE] > 0:
# :copy fr_FR.dic ../fr_FR.new.dic
# @finally:
# :cd ..
# :delete {r}{f}{q} tmp
# :delete fr_FR.zip
vim: set sts=4 sw=4 :

View File

@ -0,0 +1,68 @@
*** sr_RS.orig.aff Fri Feb 23 20:04:41 2018
--- sr_RS.aff Fri Feb 23 18:18:48 2018
***************
*** 1,10 ****
! SET UTF-8
! LANG sr
! TRY аиоенртсвумклпјдгзбшчцхћњљжфђџАИОЕНРТСВУМКЛПЈДГЗБШЧЦХЋЊЉЖФЂЏ
! KEY љњертжуиопшђж|асдфгхјклчћ|зџцвбнм|жшђ|ћшч|жчђ|ђћж|зж|љањседрфтгжхуј|јиколпч|азсџдцфвгбх|хнјмк
!
! MAP 4
! MAP цћ
! MAP цч
MAP зж
--- 1,5 ----
! SET utf-8
! MAP 3
! MAP цћч
MAP зж
***************
*** 12,14 ****
! REP 8
REP дј ђ
--- 7,11 ----
! MIDWORD -
!
! REP 4
REP дј ђ
***************
*** 17,28 ****
REP дж џ
- REP ц с # Ако хоћу да откуцам слово „С“ могу се залетети за ознаком на тастатури и уписати „Ц“ (C)
- REP п р # Ако хоћу да откуцам слово „В“ могу се залетети за ознаком и уписати „Б“ (B)
- REP џ х # Ако хоћу да откуцам слово „Р“ могу се залетети за ознаком и уписати „П“ (P)
- REP х н # Ако хоћу да откуцам слово „Х“ могу се залетети за ознаком и уписати „Џ“ (X)
- # Ако хоћу да откуцам слово „В“ могу се залетети за ознаком и уписати „Б“ (B) (покривено KEY паром „в - б“)
-
- ICONV 3
- ICONV ҵ тц
- ICONV ҥ нг
- ICONV ӕ ае
--- 14,15 ----
*** sr_RS.orig.dic Fri Feb 23 20:04:42 2018
--- sr_RS.dic Fri Feb 23 20:04:46 2018
***************
*** 1,2 ****
! 263909
а
--- 1,2 ----
! 263906
а
***************
*** 882,884 ****
ажурираних
- ажуриранје
ажурирано
--- 882,883 ----
***************
*** 22177,22180 ****
вишку
- вишнја
- вишнјевац
Вишну
--- 22176,22177 ----

View File

@ -0,0 +1,66 @@
*** sr_RS@latin.orig.aff Fri Feb 23 20:08:28 2018
--- sr_RS@latin.aff Fri Feb 23 18:18:48 2018
***************
*** 1,10 ****
! SET UTF-8
! LANG sr-Latn
! TRY aioenrtsvumklpjdgzbščchćnjljžfđdžAIOENRTSVUMKLPJDGZBŠČCHĆNJLJŽFĐDŽ
! KEY qwertyuiopšđž|asdfghjklčć|zxcvbnm|žšđ|ćšč|žčđ|đćž|zy|qawsedrftgyhuj|jikolpč|azsxdcfvgbh|hnjmk
!
! MAP 4
! MAP cć
! MAP cč
MAP zž
--- 1,5 ----
! SET utf-8
! MAP 3
! MAP cćč
MAP zž
***************
*** 12,20 ****
! REP 1
! REP dj đ
! ICONV fi fi
! ICONV fl fl
! ICONV st st
! ICONV ij ij
! ICONV œ oe
--- 7,14 ----
! MIDWORD -
! REP 4
! REP dj đ
! REP fl fl
! REP ff ff
! REP fi fi
*** sr_RS@latin.orig.dic Fri Feb 23 20:08:28 2018
--- sr_RS@latin.dic Fri Feb 23 20:08:53 2018
***************
*** 1,2 ****
! 263909
a
--- 1,2 ----
! 263906
a
***************
*** 882,884 ****
ažuriranih
- ažuriranje
ažurirano
--- 882,883 ----
***************
*** 22177,22184 ****
višku
- višnja
- višnjevac
Višnu
višnja
višnjama
višnjare
višnje
--- 22176,22181 ----

View File

@ -1,8 +1,10 @@
" Vim syntax file " Vim syntax file
" Language: Apache-Style configuration files (proftpd.conf/apache.conf/..) " Language: Apache-Style configuration files (proftpd.conf/apache.conf/..)
" Maintainer: Christian Hammers <ch@westend.com> " Maintainer: Ben RUBSON <ben.rubson@gmail.com>
" URL: none " Former Maintainer: Christian Hammers <ch@westend.com>
" ChangeLog: " ChangeLog:
" 2017-12-17,ch
" correctly detect comments
" 2001-05-04,ch " 2001-05-04,ch
" adopted Vim 6.0 syntax style " adopted Vim 6.0 syntax style
" 1999-10-28,ch " 1999-10-28,ch
@ -27,8 +29,8 @@ endif
syn case ignore syn case ignore
syn match apComment /^\s*#.*$/
syn match apOption /^\s*[^ \t#<=]*/ syn match apOption /^\s*[^ \t#<=]*/
syn match apComment /^\s*#.*$/
"syn match apLastValue /[^ \t<=#]*$/ contains=apComment ugly "syn match apLastValue /[^ \t<=#]*$/ contains=apComment ugly
" tags " tags

101
runtime/syntax/autodoc.vim Normal file
View File

@ -0,0 +1,101 @@
" Vim syntax file
" Language: Autodoc
" Maintainer: Stephen R. van den Berg <srb@cuci.nl>
" Last Change: 2018 Jan 23
" Version: 2.9
" Remark: Included by pike.vim, cmod.vim and optionally c.vim
" Remark: In order to make c.vim use it, set: c_autodoc
" Quit when a (custom) syntax file was already loaded
if exists("b:current_syntax")
finish
endif
let s:cpo_save = &cpo
set cpo&vim
syn case match
" A bunch of useful autodoc keywords
syn keyword autodocStatement contained appears belongs global
syn keyword autodocStatement contained decl directive inherit
syn keyword autodocStatement contained deprecated obsolete bugs
syn keyword autodocStatement contained copyright example fixme note param returns
syn keyword autodocStatement contained seealso thanks throws constant
syn keyword autodocStatement contained member index elem
syn keyword autodocStatement contained value type item
syn keyword autodocRegion contained enum mapping code multiset array
syn keyword autodocRegion contained int string section mixed ol ul dl
syn keyword autodocRegion contained class module namespace
syn keyword autodocRegion contained endenum endmapping endcode endmultiset
syn keyword autodocRegion contained endarray endint endstring endsection
syn keyword autodocRegion contained endmixed endol endul enddl
syn keyword autodocRegion contained endclass endmodule endnamespace
syn keyword autodocIgnore contained ignore endignore
syn keyword autodocStatAcc contained b i u tt url pre sub sup
syn keyword autodocStatAcc contained ref rfc xml dl expr image
syn keyword autodocTodo contained TODO FIXME XXX
syn match autodocLineStart display "\(//\|/\?\*\)\@2<=!"
syn match autodocWords "[^!@{}[\]]\+" display contains=@Spell
syn match autodocLink "@\[[^[\]]\+]"hs=s+2,he=e-1 display contains=autodocLead
syn match autodocAtStmt "@[a-z]\+\%(\s\|$\)\@="hs=s+1 display contains=autodocStatement,autodocIgnore,autodocLead,autodocRegion
" Due to limitations of the matching algorithm, we cannot highlight
" nested autodocNStmtAcc structures correctly
syn region autodocNStmtAcc start="@[a-z]\+{" end="@}" contains=autodocStatAcc,autodocLead keepend
syn match autodocUrl contained display ".\+"
syn region autodocAtUrlAcc start="{"ms=s+1 end="@}"he=e-1,me=e-2 contained display contains=autodocUrl,autodocLead keepend
syn region autodocNUrlAcc start="@url{" end="@}" contains=autodocStatAcc,autodocAtUrlAcc,autodocLead transparent
syn match autodocSpecial "@@" display
syn match autodocLead "@" display contained
"when wanted, highlight trailing white space
if exists("c_space_errors")
if !exists("c_no_trail_space_error")
syn match autodocSpaceError display excludenl "\s\+$"
endif
if !exists("c_no_tab_space_error")
syn match autodocSpaceError display " \+\t"me=e-1
endif
endif
if exists("c_minlines")
let b:c_minlines = c_minlines
else
if !exists("c_no_if0")
let b:c_minlines = 50 " #if 0 constructs can be long
else
let b:c_minlines = 15 " mostly for () constructs
endif
endif
exec "syn sync ccomment autodocComment minlines=" . b:c_minlines
" Define the default highlighting.
" Only used when an item doesn't have highlighting yet
hi def link autodocStatement Statement
hi def link autodocStatAcc Statement
hi def link autodocRegion Structure
hi def link autodocAtStmt Error
hi def link autodocNStmtAcc Identifier
hi def link autodocLink Type
hi def link autodocTodo Todo
hi def link autodocSpaceError Error
hi def link autodocLineStart SpecialComment
hi def link autodocSpecial SpecialChar
hi def link autodocUrl Underlined
hi def link autodocLead Statement
hi def link autodocIgnore Delimiter
let b:current_syntax = "autodoc"
let &cpo = s:cpo_save
unlet s:cpo_save
" vim: ts=8

View File

@ -13,6 +13,14 @@ set cpo&vim
let s:ft = matchstr(&ft, '^\([^.]\)\+') let s:ft = matchstr(&ft, '^\([^.]\)\+')
" Optional embedded Autodoc parsing
" To enable it add: let g:c_autodoc = 1
" to your .vimrc
if exists("c_autodoc")
syn include @cAutodoc <sfile>:p:h/autodoc.vim
unlet b:current_syntax
endif
" A bunch of useful C keywords " A bunch of useful C keywords
syn keyword cStatement goto break return continue asm syn keyword cStatement goto break return continue asm
syn keyword cLabel case default syn keyword cLabel case default
@ -377,6 +385,13 @@ syn cluster cPreProcGroup contains=cPreCondit,cIncluded,cInclude,cDefine,cErrInP
syn region cDefine start="^\s*\zs\(%:\|#\)\s*\(define\|undef\)\>" skip="\\$" end="$" keepend contains=ALLBUT,@cPreProcGroup,@Spell syn region cDefine start="^\s*\zs\(%:\|#\)\s*\(define\|undef\)\>" skip="\\$" end="$" keepend contains=ALLBUT,@cPreProcGroup,@Spell
syn region cPreProc start="^\s*\zs\(%:\|#\)\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" keepend contains=ALLBUT,@cPreProcGroup,@Spell syn region cPreProc start="^\s*\zs\(%:\|#\)\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" keepend contains=ALLBUT,@cPreProcGroup,@Spell
" Optional embedded Autodoc parsing
if exists("c_autodoc")
syn match cAutodocReal display contained "\%(//\|[/ \t\v]\*\|^\*\)\@2<=!.*" contains=@cAutodoc containedin=cComment,cCommentL
syn cluster cCommentGroup add=cAutodocReal
syn cluster cPreProcGroup add=cAutodocReal
endif
" Highlight User Labels " Highlight User Labels
syn cluster cMultiGroup contains=cIncluded,cSpecial,cCommentSkip,cCommentString,cComment2String,@cCommentGroup,cCommentStartError,cUserCont,cUserLabel,cBitField,cOctalZero,cCppOutWrapper,cCppInWrapper,@cCppOutInGroup,cFormat,cNumber,cFloat,cOctal,cOctalError,cNumbersCom,cCppParen,cCppBracket,cCppString syn cluster cMultiGroup contains=cIncluded,cSpecial,cCommentSkip,cCommentString,cComment2String,@cCommentGroup,cCommentStartError,cUserCont,cUserLabel,cBitField,cOctalZero,cCppOutWrapper,cCppInWrapper,@cCppOutInGroup,cFormat,cNumber,cFloat,cOctal,cOctalError,cNumbersCom,cCppParen,cCppBracket,cCppString
if s:ft ==# 'c' || exists("cpp_no_cpp11") if s:ft ==# 'c' || exists("cpp_no_cpp11")

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,77 @@
" Vim syntax file
" Language: Scheme (CHICKEN)
" Last Change: 2018-02-05
" Author: Evan Hanson <evhan@foldling.org>
" Maintainer: Evan Hanson <evhan@foldling.org>
" URL: https://foldling.org/vim/syntax/chicken.vim
" Notes: This is supplemental syntax, to be loaded after the core Scheme
" syntax file (syntax/scheme.vim). Enable it by setting b:is_chicken=1
" and filetype=scheme.
" Only to be used on top of the Scheme syntax.
if !exists('b:did_scheme_syntax')
finish
endif
" Lighten parentheses.
hi! def link schemeParentheses Comment
" foo#bar
syn match schemeExtraSyntax /[^ #'`\t\n()\[\]"|;]\+#[^ '`\t\n()\[\]"|;]\+/
" ##foo#bar
syn match schemeExtraSyntax /##[^ '`\t\n()\[\]"|;]\+/
" Heredocs.
syn region schemeString start=/#<[<#]\s*\z(.*\)/ end=/^\z1$/
" Keywords.
syn match schemeKeyword /#[!:][a-zA-Z0-9!$%&*+-./:<=>?@^_~#]\+/
syn match schemeKeyword /[a-zA-Z0-9!$%&*+-./:<=>?@^_~#]\+:\>/
" C/C++ syntax.
let s:c = globpath(&rtp, 'syntax/cpp.vim', 0, 1)
if len(s:c)
exe 'syn include @c ' s:c[0]
syn region c matchgroup=schemeComment start=/#>/ end=/<#/ contains=@c
endif
syn keyword schemeSyntax define-record
syn keyword schemeLibrarySyntax declare
syn keyword schemeLibrarySyntax module
syn keyword schemeLibrarySyntax reexport
syn keyword schemeLibrarySyntax require-library
syn keyword schemeTypeSyntax -->
syn keyword schemeTypeSyntax ->
syn keyword schemeTypeSyntax :
syn keyword schemeTypeSyntax assume
syn keyword schemeTypeSyntax compiler-typecase
syn keyword schemeTypeSyntax define-specialization
syn keyword schemeTypeSyntax define-type
syn keyword schemeTypeSyntax the
syn keyword schemeExtraSyntax and-let*
syn keyword schemeExtraSyntax match
syn keyword schemeExtraSyntax match-lambda
syn keyword schemeExtraSyntax match-lambda*
syn keyword schemeSpecialSyntax define-compiler-syntax
syn keyword schemeSpecialSyntax define-constant
syn keyword schemeSpecialSyntax define-external
syn keyword schemeSpecialSyntax define-inline
syn keyword schemeSpecialSyntax foreign-code
syn keyword schemeSpecialSyntax foreign-declare
syn keyword schemeSpecialSyntax foreign-lambda
syn keyword schemeSpecialSyntax foreign-lambda*
syn keyword schemeSpecialSyntax foreign-primitive
syn keyword schemeSpecialSyntax foreign-safe-lambda
syn keyword schemeSpecialSyntax foreign-safe-lambda*
syn keyword schemeSpecialSyntax foreign-value
syn keyword schemeSyntaxSyntax begin-for-syntax
syn keyword schemeSyntaxSyntax define-for-syntax
syn keyword schemeSyntaxSyntax er-macro-transformer
syn keyword schemeSyntaxSyntax ir-macro-transformer
syn keyword schemeSyntaxSyntax require-library-for-syntax

144
runtime/syntax/cmod.vim Normal file
View File

@ -0,0 +1,144 @@
" Vim syntax file
" Language: Cmod
" Current Maintainer: Stephen R. van den Berg <srb@cuci.nl>
" Last Change: 2018 Jan 23
" Version: 2.9
" Remark: Is used to edit Cmod files for Pike development.
" Remark: Includes a highlighter for any embedded Autodoc format.
" quit when a syntax file was already loaded
if exists("b:current_syntax")
finish
endif
let s:cpo_save = &cpo
set cpo&vim
" Read the C syntax to start with
runtime! syntax/c.vim
unlet b:current_syntax
if !exists("c_autodoc")
" For embedded Autodoc documentation
syn include @cmodAutodoc <sfile>:p:h/autodoc.vim
unlet b:current_syntax
endif
" Supports rotating amongst several same-level preprocessor conditionals
packadd! matchit
let b:match_words = "({:}\\@1<=),^\s*#\s*\%(if\%(n\?def\)\|else\|el\%(se\)\?if\|endif\)\>"
" Cmod extensions
syn keyword cmodStatement __INIT INIT EXIT GC_RECURSE GC_CHECK
syn keyword cmodStatement EXTRA OPTIMIZE RETURN
syn keyword cmodStatement ADD_EFUN ADD_EFUN2 ADD_FUNCTION
syn keyword cmodStatement MK_STRING MK_STRING_SVALUE CONSTANT_STRLEN
syn keyword cmodStatement SET_SVAL pop_n_elems pop_stack
syn keyword cmodStatement SIMPLE_ARG_TYPE_ERROR Pike_sp Pike_fp MKPCHARP
syn keyword cmodStatement SET_SVAL_TYPE REF_MAKE_CONST_STRING INC_PCHARP
syn keyword cmodStatement PTR_FROM_INT INHERIT_FROM_PTR
syn keyword cmodStatement DECLARE_CYCLIC BEGIN_CYCLIC END_CYCLIC
syn keyword cmodStatement UPDATE_LOCATION UNSAFE_IS_ZERO SAFE_IS_ZERO
syn keyword cmodStatement MKPCHARP_STR APPLY_MASTER current_storage
syn keyword cmodStatement PIKE_MAP_VARIABLE size_shift
syn keyword cmodStatement THREADS_ALLOW THREADS_DISALLOW
syn keyword cmodStatement add_integer_constant ref_push_object
syn keyword cmodStatement push_string apply_svalue free_svalue
syn keyword cmodStatement get_inherit_storage get_storage
syn keyword cmodStatement make_shared_binary_string push_int64
syn keyword cmodStatement begin_shared_string end_shared_string
syn keyword cmodStatement add_ref fast_clone_object clone_object
syn keyword cmodStatement push_undefined push_int ref_push_string
syn keyword cmodStatement free_string push_ulongest free_object
syn keyword cmodStatement convert_stack_top_to_bignum push_array
syn keyword cmodStatement push_object reduce_stack_top_bignum
syn keyword cmodStatement push_static_text apply_current
syn keyword cmodStatement assign_svalue free_program destruct_object
syn keyword cmodStatement start_new_program low_inherit stack_swap
syn keyword cmodStatement generic_error_program end_program
syn keyword cmodStatement free_array apply_external copy_mapping
syn keyword cmodStatement push_constant_text ref_push_mapping
syn keyword cmodStatement mapping_insert mapping_string_insert_string
syn keyword cmodStatement f_aggregate_mapping f_aggregate apply
syn keyword cmodStatement push_mapping push_svalue low_mapping_lookup
syn keyword cmodStatement assign_svalues_no_free f_add
syn keyword cmodStatement push_empty_string stack_dup assign_lvalue
syn keyword cmodStatement low_mapping_string_lookup allocate_mapping
syn keyword cmodStatement copy_shared_string make_shared_binary_string0
syn keyword cmodStatement f_call_function f_index f_utf8_to_string
syn keyword cmodStatement finish_string_builder init_string_builder
syn keyword cmodStatement reset_string_builder free_string_builder
syn keyword cmodStatement string_builder_putchar get_all_args
syn keyword cmodStatement add_shared_strings check_all_args
syn keyword cmodStatement do_inherit add_string_constant
syn keyword cmodStatement add_program_constant set_init_callback
syn keyword cmodStatement simple_mapping_string_lookup
syn keyword cmodStatement f_sprintf push_text string_has_null
syn keyword cmodStatement end_and_resize_shared_string
syn keyword cmodStatement args sp
syn keyword cmodStatement free
syn keyword cmodConstant ID_PROTECTED ID_FINAL PIKE_DEBUG
syn keyword cmodConstant NUMBER_NUMBER
syn keyword cmodConstant PIKE_T_INT PIKE_T_STRING PIKE_T_ARRAY
syn keyword cmodConstant PIKE_T_MULTISET PIKE_T_OBJECT PIKE_T_MAPPING
syn keyword cmodConstant NUMBER_UNDEFINED PIKE_T_PROGRAM PIKE_T_FUNCTION
syn keyword cmodConstant T_OBJECT T_STRING T_ARRAY T_MAPPING
syn keyword cmodException SET_ONERROR UNSET_ONERROR ONERROR
syn keyword cmodException CALL_AND_UNSET_ONERROR
syn keyword cmodDebug Pike_fatal Pike_error check_stack
syn keyword cmodAccess public protected private INHERIT
syn keyword cmodAccess CTYPE CVAR PIKEVAR PIKEFUN
syn keyword cmodModifier efun export flags optflags optfunc
syn keyword cmodModifier type rawtype errname name c_name prototype
syn keyword cmodModifier program_flags gc_trivial PMOD_EXPORT
syn keyword cmodModifier ATTRIBUTE noclone noinline
syn keyword cmodModifier tOr tFuncV tInt tMix tVoid tStr tMap tPrg
syn keyword cmodModifier tSetvar tArr tMult tMultiset
syn keyword cmodModifier tArray tMapping tString tSetvar tVar
syn keyword cmodType bool mapping string multiset array mixed
syn keyword cmodType object function program auto svalue
syn keyword cmodType bignum longest zero pike_string
syn keyword cmodType this this_program THIS INT_TYPE INT64 INT32
syn keyword cmodType p_wchar2 PCHARP p_wchar1 p_wchar0 MP_INT
syn keyword cmodOperator _destruct create __hash _sizeof _indices _values
syn keyword cmodOperator _is_type _sprintf _equal _m_delete _get_iterator
syn keyword cmodOperator _search _types _serialize _deserialize
syn keyword cmodOperator _size_object _random _sqrt TYPEOF SUBTYPEOF
syn keyword cmodOperator LIKELY UNLIKELY
syn keyword cmodStructure DECLARATIONS PIKECLASS DECLARE_STORAGE
if !exists("c_autodoc")
syn match cmodAutodocReal display contained "\%(//\|[/ \t\v]\*\|^\*\)\@2<=!.*" contains=@cmodAutodoc containedin=cComment,cCommentL
syn cluster cCommentGroup add=cmodAutodocReal
syn cluster cPreProcGroup add=cmodAutodocReal
endif
" Default highlighting
hi def link cmodAccess Statement
hi def link cmodOperator Operator
hi def link cmodStatement Statement
hi def link cmodConstant Constant
hi def link cmodModifier Type
hi def link cmodType Type
hi def link cmodStorageClass StorageClass
hi def link cmodStructure Structure
hi def link cmodException Exception
hi def link cmodDebug Debug
let b:current_syntax = "cmod"
let &cpo = s:cpo_save
unlet s:cpo_save
" vim: ts=8

View File

@ -1,9 +1,10 @@
" Vim syntax file " Vim syntax file
" Language: configure.in script: M4 with sh " Language: configure.in script: M4 with sh
" Maintainer: Christian Hammesr <ch@lathspell.westend.com> " Former Maintainer: Christian Hammesr <ch@lathspell.westend.com>
" Last Change: 2015 Jan 14 " Last Change: 2018 Feb 03
" (patch from Yngve Inntjore Levinsen to detect AC_MSG) " (patch from Yngve Inntjore Levinsen to detect AC_MSG)
" (patch from Khym Chanur to add @Spell) " (patch from Khym Chanur to add @Spell)
" (patch from James McCoy to fix paren matching)
" Well, I actually even do not know much about m4. This explains why there " Well, I actually even do not know much about m4. This explains why there
" is probably very much missing here, yet ! " is probably very much missing here, yet !
@ -30,8 +31,8 @@ syn keyword configspecial cat rm eval
syn region configstring start=+\z(["'`]\)+ skip=+\\\z1+ end=+\z1+ contains=@Spell syn region configstring start=+\z(["'`]\)+ skip=+\\\z1+ end=+\z1+ contains=@Spell
" Anything inside AC_MSG_TYPE([...]) and AC_MSG_TYPE(...) is a string. " Anything inside AC_MSG_TYPE([...]) and AC_MSG_TYPE(...) is a string.
syn region configstring matchgroup=configfunction start="AC_MSG_[A-Z]*\ze(\[" matchgroup=configdelimiter end="\])" contains=configdelimiter,@Spell syn region configmsg matchgroup=configfunction start="AC_MSG_[A-Z]*\ze(\[" matchgroup=configdelimiter end="\])" contains=configdelimiter,@Spell
syn region configstring matchgroup=configfunction start="AC_MSG_[A-Z]*\ze([^[]" matchgroup=configdelimiter end=")" contains=configdelimiter,@Spell syn region configmsg matchgroup=configfunction start="AC_MSG_[A-Z]*\ze([^[]" matchgroup=configdelimiter end=")" contains=configdelimiter,@Spell
" Define the default highlighting. " Define the default highlighting.
" Only when an item doesn't have highlighting yet " Only when an item doesn't have highlighting yet
@ -45,6 +46,7 @@ hi def link confignumber Number
hi def link configkeyword Keyword hi def link configkeyword Keyword
hi def link configspecial Special hi def link configspecial Special
hi def link configstring String hi def link configstring String
hi def link configmsg String
let b:current_syntax = "config" let b:current_syntax = "config"

View File

@ -4,10 +4,10 @@
" Claudio Fleiner <claudio@fleiner.com> (Maintainer) " Claudio Fleiner <claudio@fleiner.com> (Maintainer)
" Yeti (Add full CSS2, HTML4 support) " Yeti (Add full CSS2, HTML4 support)
" Nikolai Weibull (Add CSS2 support) " Nikolai Weibull (Add CSS2 support)
" Maintainer: Jules Wang <w.jq0722@gmail.com>
" URL: https://github.com/JulesWang/css.vim " URL: https://github.com/JulesWang/css.vim
" Last Change: 2017 Jan 14 " Maintainer: Jules Wang <w.jq0722@gmail.com>
" cssClassName updated by Ryuichi Hayashida Jan 2016 " Last Change: 2018 Feb. 27
" cssClassName updated by Ryuichi Hayashida Jan 2016
" quit when a syntax file was already loaded " quit when a syntax file was already loaded
if !exists("main_syntax") if !exists("main_syntax")
@ -69,74 +69,12 @@ endtry
" digits " digits
syn match cssValueInteger contained "[-+]\=\d\+" contains=cssUnitDecorators syn match cssValueInteger contained "[-+]\=\d\+" contains=cssUnitDecorators
syn match cssValueNumber contained "[-+]\=\d\+\(\.\d*\)\=" contains=cssUnitDecorators syn match cssValueNumber contained "[-+]\=\d\+\(\.\d*\)\=" contains=cssUnitDecorators
syn match cssValueLength contained "[-+]\=\d\+\(\.\d*\)\=\(%\|mm\|cm\|in\|pt\|pc\|em\|ex\|px\|rem\|dpi\|dppx\|dpcm\)\>" contains=cssUnitDecorators syn match cssValueLength contained "[-+]\=\d\+\(\.\d*\)\=\(mm\|cm\|in\|pt\|pc\|em\|ex\|px\|rem\|dpi\|dppx\|dpcm\)\>" contains=cssUnitDecorators
syn match cssValueLength contained "[-+]\=\d\+\(\.\d*\)\=%" contains=cssUnitDecorators
syn match cssValueAngle contained "[-+]\=\d\+\(\.\d*\)\=\(deg\|grad\|rad\)\>" contains=cssUnitDecorators syn match cssValueAngle contained "[-+]\=\d\+\(\.\d*\)\=\(deg\|grad\|rad\)\>" contains=cssUnitDecorators
syn match cssValueTime contained "+\=\d\+\(\.\d*\)\=\(ms\|s\)\>" contains=cssUnitDecorators syn match cssValueTime contained "+\=\d\+\(\.\d*\)\=\(ms\|s\)\>" contains=cssUnitDecorators
syn match cssValueFrequency contained "+\=\d\+\(\.\d*\)\=\(Hz\|kHz\)\>" contains=cssUnitDecorators syn match cssValueFrequency contained "+\=\d\+\(\.\d*\)\=\(Hz\|kHz\)\>" contains=cssUnitDecorators
syn match cssIncludeKeyword /@\(-[a-z]\+-\)\=\(media\|keyframes\|import\|charset\|namespace\|page\)/ contained
" @media
syn region cssInclude start=/@media\>/ end=/\ze{/ skipwhite skipnl contains=cssMediaProp,cssValueLength,cssMediaKeyword,cssValueInteger,cssMediaAttr,cssVendor,cssMediaType,cssIncludeKeyword,cssMediaComma,cssComment nextgroup=cssMediaBlock
syn keyword cssMediaType contained screen print aural braille embossed handheld projection tty tv speech all contained skipwhite skipnl
syn keyword cssMediaKeyword only not and contained
syn region cssMediaBlock transparent matchgroup=cssBraces start='{' end='}' contains=css.*Attr,css.*Prop,cssComment,cssValue.*,cssColor,cssURL,cssImportant,cssError,cssStringQ,cssStringQQ,cssFunction,cssUnicodeEscape,cssVendor,cssDefinition,cssTagName,cssClassName,cssIdentifier,cssPseudoClass,cssSelectorOp,cssSelectorOp2,cssAttributeSelector fold
syn match cssMediaComma "," skipwhite skipnl contained
" Reference: http://www.w3.org/TR/css3-mediaqueries/
syn keyword cssMediaProp contained width height orientation scan grid
syn match cssMediaProp contained /\(\(max\|min\)-\)\=\(\(device\)-\)\=aspect-ratio/
syn match cssMediaProp contained /\(\(max\|min\)-\)\=device-pixel-ratio/
syn match cssMediaProp contained /\(\(max\|min\)-\)\=device-\(height\|width\)/
syn match cssMediaProp contained /\(\(max\|min\)-\)\=\(height\|width\|resolution\|monochrome\|color\(-index\)\=\)/
syn keyword cssMediaAttr contained portrait landscape progressive interlace
" @page
" http://www.w3.org/TR/css3-page/
syn match cssPage "@page\>[^{]*{\@=" contains=cssPagePseudo,cssIncludeKeyword nextgroup=cssPageWrap transparent skipwhite skipnl
syn match cssPagePseudo /:\(left\|right\|first\|blank\)/ contained skipwhite skipnl
syn region cssPageWrap contained transparent matchgroup=cssBraces start="{" end="}" contains=cssPageMargin,cssPageProp,cssAttrRegion,css.*Prop,cssComment,cssValue.*,cssColor,cssURL,cssImportant,cssError,cssStringQ,cssStringQQ,cssFunction,cssUnicodeEscape,cssVendor,cssDefinition,cssHacks
syn match cssPageMargin /@\(\(top\|left\|right\|bottom\)-\(left\|center\|right\|middle\|bottom\)\)\(-corner\)\=/ contained nextgroup=cssDefinition skipwhite skipnl
syn keyword cssPageProp contained content size
" http://www.w3.org/TR/CSS2/page.html#break-inside
syn keyword cssPageProp contained orphans widows
" @keyframe
" http://www.w3.org/TR/css3-animations/#keyframes
syn match cssKeyFrame "@\(-[a-z]\+-\)\=keyframes\>[^{]*{\@=" nextgroup=cssKeyFrameWrap contains=cssVendor,cssIncludeKeyword skipwhite skipnl transparent
syn region cssKeyFrameWrap contained transparent matchgroup=cssBraces start="{" end="}" contains=cssKeyFrameSelector
syn match cssKeyFrameSelector /\(\d*%\|from\|to\)\=/ contained skipwhite skipnl nextgroup=cssDefinition
" @import
syn region cssInclude start=/@import\>/ end=/\ze;/ transparent contains=cssStringQ,cssStringQQ,cssUnicodeEscape,cssComment,cssIncludeKeyword,cssURL,cssMediaProp,cssValueLength,cssMediaKeyword,cssValueInteger,cssMediaAttr,cssVendor,cssMediaType
syn region cssInclude start=/@charset\>/ end=/\ze;/ transparent contains=cssStringQ,cssStringQQ,cssUnicodeEscape,cssComment,cssIncludeKeyword
syn region cssInclude start=/@namespace\>/ end=/\ze;/ transparent contains=cssStringQ,cssStringQQ,cssUnicodeEscape,cssComment,cssIncludeKeyword
" @font-face
" http://www.w3.org/TR/css3-fonts/#at-font-face-rule
syn match cssFontDescriptor "@font-face\>" nextgroup=cssFontDescriptorBlock skipwhite skipnl
syn region cssFontDescriptorBlock contained transparent matchgroup=cssBraces start="{" end="}" contains=cssComment,cssError,cssUnicodeEscape,cssCommonAttr,cssFontDescriptorProp,cssValue.*,cssFontDescriptorFunction,cssFontDescriptorAttr,cssNoise
syn match cssFontDescriptorProp contained "\<font-family\>"
syn keyword cssFontDescriptorProp contained src
syn match cssFontDescriptorProp contained "\<font-\(style\|weight\|stretch\)\>"
syn match cssFontDescriptorProp contained "\<unicode-range\>"
syn match cssFontDescriptorProp contained "\<font-\(variant\|feature-settings\)\>"
" src functions
syn region cssFontDescriptorFunction contained matchgroup=cssFunctionName start="\<\(uri\|url\|local\|format\)\s*(" end=")" contains=cssStringQ,cssStringQQ oneline keepend
" font-sytle and font-weight attributes
syn keyword cssFontDescriptorAttr contained normal italic oblique bold
" font-stretch attributes
syn match cssFontDescriptorAttr contained "\<\(\(ultra\|extra\|semi\)-\)\=\(condensed\|expanded\)\>"
" unicode-range attributes
syn match cssFontDescriptorAttr contained "U+[0-9A-Fa-f?]\+"
syn match cssFontDescriptorAttr contained "U+\x\+-\x\+"
" font-feature-settings attributes
syn keyword cssFontDescriptorAttr contained on off
" The 16 basic color names " The 16 basic color names
syn keyword cssColor contained aqua black blue fuchsia gray green lime maroon navy olive purple red silver teal yellow syn keyword cssColor contained aqua black blue fuchsia gray green lime maroon navy olive purple red silver teal yellow
@ -162,8 +100,8 @@ syn keyword cssColor contained midnightblue mintcream mistyrose moccasin navajow
syn keyword cssColor contained oldlace olivedrab orange orangered orchid syn keyword cssColor contained oldlace olivedrab orange orangered orchid
syn match cssColor contained /\<pale\(goldenrod\|green\|turquoise\|violetred\)\>/ syn match cssColor contained /\<pale\(goldenrod\|green\|turquoise\|violetred\)\>/
syn keyword cssColor contained papayawhip peachpuff peru pink plum powderblue syn keyword cssColor contained papayawhip peachpuff peru pink plum powderblue
syn keyword cssColor contained rosybrown royalblue saddlebrown salmon sandybrown syn keyword cssColor contained rosybrown royalblue rebeccapurple saddlebrown salmon
syn keyword cssColor contained seagreen seashell sienna skyblue slateblue syn keyword cssColor contained sandybrown seagreen seashell sienna skyblue slateblue
syn keyword cssColor contained slategray slategrey snow springgreen steelblue tan syn keyword cssColor contained slategray slategrey snow springgreen steelblue tan
syn keyword cssColor contained thistle tomato turquoise violet wheat syn keyword cssColor contained thistle tomato turquoise violet wheat
syn keyword cssColor contained whitesmoke yellowgreen syn keyword cssColor contained whitesmoke yellowgreen
@ -180,10 +118,11 @@ syn match cssImportant contained "!\s*important\>"
syn match cssColor contained "\<transparent\>" syn match cssColor contained "\<transparent\>"
syn match cssColor contained "\<currentColor\>" syn match cssColor contained "\<currentColor\>"
syn match cssColor contained "\<white\>" syn match cssColor contained "\<white\>"
syn match cssColor contained "#[0-9A-Fa-f]\{3\}\>" contains=cssUnitDecorators syn match cssColor contained "#\x\{3,4\}\>" contains=cssUnitDecorators
syn match cssColor contained "#[0-9A-Fa-f]\{6\}\>" contains=cssUnitDecorators syn match cssColor contained "#\x\{6\}\>" contains=cssUnitDecorators
syn match cssColor contained "#\x\{8\}\>" contains=cssUnitDecorators
syn region cssURL contained matchgroup=cssFunctionName start="\<url\s*(" end=")" contains=cssStringQ,cssStringQQ oneline syn region cssURL contained matchgroup=cssFunctionName start="\<\(uri\|url\|local\|format\)\s*(" end=")" contains=cssStringQ,cssStringQQ oneline
syn region cssFunction contained matchgroup=cssFunctionName start="\<\(rgb\|clip\|attr\|counter\|rect\|cubic-bezier\|steps\)\s*(" end=")" oneline contains=cssValueInteger,cssValueNumber,cssValueLength,cssFunctionComma syn region cssFunction contained matchgroup=cssFunctionName start="\<\(rgb\|clip\|attr\|counter\|rect\|cubic-bezier\|steps\)\s*(" end=")" oneline contains=cssValueInteger,cssValueNumber,cssValueLength,cssFunctionComma
syn region cssFunction contained matchgroup=cssFunctionName start="\<\(rgba\|hsl\|hsla\|color-stop\|from\|to\)\s*(" end=")" oneline contains=cssColor,cssValueInteger,cssValueNumber,cssValueLength,cssFunctionComma,cssFunction syn region cssFunction contained matchgroup=cssFunctionName start="\<\(rgba\|hsl\|hsla\|color-stop\|from\|to\)\s*(" end=")" oneline contains=cssColor,cssValueInteger,cssValueNumber,cssValueLength,cssFunctionComma,cssFunction
syn region cssFunction contained matchgroup=cssFunctionName start="\<\(linear-\|radial-\)\=\gradient\s*(" end=")" oneline contains=cssColor,cssValueInteger,cssValueNumber,cssValueLength,cssFunction,cssGradientAttr,cssFunctionComma syn region cssFunction contained matchgroup=cssFunctionName start="\<\(linear-\|radial-\)\=\gradient\s*(" end=")" oneline contains=cssColor,cssValueInteger,cssValueNumber,cssValueLength,cssFunction,cssGradientAttr,cssFunctionComma
@ -224,7 +163,6 @@ syn keyword cssBackgroundAttr contained left center right top bottom
" background-repeat attributes " background-repeat attributes
syn match cssBackgroundAttr contained "\<no-repeat\>" syn match cssBackgroundAttr contained "\<no-repeat\>"
syn match cssBackgroundAttr contained "\<repeat\(-[xy]\)\=\>" syn match cssBackgroundAttr contained "\<repeat\(-[xy]\)\=\>"
syn keyword cssBackgroundAttr contained space round
" background-size attributes " background-size attributes
syn keyword cssBackgroundAttr contained cover contain syn keyword cssBackgroundAttr contained cover contain
@ -236,7 +174,7 @@ syn match cssBorderProp contained "\<box-decoration-break\>"
syn match cssBorderProp contained "\<box-shadow\>" syn match cssBorderProp contained "\<box-shadow\>"
" border-image attributes " border-image attributes
syn keyword cssBorderAttr contained stretch round space fill syn keyword cssBorderAttr contained stretch round fill
" border-style attributes " border-style attributes
syn keyword cssBorderAttr contained dotted dashed solid double groove ridge inset outset syn keyword cssBorderAttr contained dotted dashed solid double groove ridge inset outset
@ -264,14 +202,18 @@ syn match cssDimensionProp contained "\<\(min\|max\)-\(width\|height\)\>"
syn keyword cssDimensionProp contained height syn keyword cssDimensionProp contained height
syn keyword cssDimensionProp contained width syn keyword cssDimensionProp contained width
" shadow and sizing are in other property groups " CSS Flexible Box Layout Module Level 1
syn match cssFlexibleBoxProp contained "\<box-\(align\|direction\|flex\|ordinal-group\|orient\|pack\|shadow\|sizing\)\>" " http://www.w3.org/TR/css3-flexbox/
syn keyword cssFlexibleBoxAttr contained start end baseline " CSS Box Alignment Module Level 3
syn keyword cssFlexibleBoxAttr contained reverse " http://www.w3.org/TR/css-align-3/
syn keyword cssFlexibleBoxAttr contained single multiple syn match cssFlexibleBoxProp contained "\<flex\(-\(direction\|wrap\|flow\|grow\|shrink\|basis\)\)\=\>"
syn keyword cssFlexibleBoxAttr contained horizontal syn match cssFlexibleBoxProp contained "\<\(align\|justify\)\(-\(items\|self\|content\)\)\=\>"
syn match cssFlexibleBoxAttr contained "\<vertical\(-align\)\@!\>" "escape vertical-align syn keyword cssFlexibleBoxProp contained order
syn match cssFlexibleBoxAttr contained "\<\(inline\|block\)-axis\>"
syn match cssFlexibleBoxAttr contained "\<\(row\|column\|wrap\)\(-reverse\)\=\>"
syn keyword cssFlexibleBoxAttr contained nowrap stretch baseline center
syn match cssFlexibleBoxAttr contained "\<flex\(-\(start\|end\)\)\=\>"
syn match cssFlexibleBoxAttr contained "\<space\(-\(between\|around\)\)\=\>"
" CSS Fonts Module Level 3 " CSS Fonts Module Level 3
" http://www.w3.org/TR/css-fonts-3/ " http://www.w3.org/TR/css-fonts-3/
@ -279,11 +221,11 @@ syn match cssFontProp contained "\<font\(-\(family\|\|feature-settings\|kerning\
" font attributes " font attributes
syn keyword cssFontAttr contained icon menu caption syn keyword cssFontAttr contained icon menu caption
syn match cssFontAttr contained "\<small-\(caps\|caption\)\>"
syn match cssFontAttr contained "\<message-box\>" syn match cssFontAttr contained "\<message-box\>"
syn match cssFontAttr contained "\<status-bar\>" syn match cssFontAttr contained "\<status-bar\>"
syn keyword cssFontAttr contained larger smaller syn keyword cssFontAttr contained larger smaller
syn match cssFontAttr contained "\<\(x\{1,2\}-\)\=\(large\|small\)\>" syn match cssFontAttr contained "\<\(x\{1,2\}-\)\=\(large\|small\)\>"
syn match cssFontAttr contained "\<small-\(caps\|caption\)\>"
" font-family attributes " font-family attributes
syn match cssFontAttr contained "\<\(sans-\)\=serif\>" syn match cssFontAttr contained "\<\(sans-\)\=serif\>"
syn keyword cssFontAttr contained Antiqua Arial Black Book Charcoal Comic Courier Dingbats Gadget Geneva Georgia Grande Helvetica Impact Linotype Lucida MS Monaco Neue New Palatino Roboto Roman Symbol Tahoma Times Trebuchet Verdana Webdings Wingdings York Zapf syn keyword cssFontAttr contained Antiqua Arial Black Book Charcoal Comic Courier Dingbats Gadget Geneva Georgia Grande Helvetica Impact Linotype Lucida MS Monaco Neue New Palatino Roboto Roman Symbol Tahoma Times Trebuchet Verdana Webdings Wingdings York Zapf
@ -312,12 +254,16 @@ syn match cssMultiColumnProp contained "\<break-\(after\|before\|inside\)\>"
syn match cssMultiColumnProp contained "\<column-\(count\|fill\|gap\|rule\(-\(color\|style\|width\)\)\=\|span\|width\)\>" syn match cssMultiColumnProp contained "\<column-\(count\|fill\|gap\|rule\(-\(color\|style\|width\)\)\=\|span\|width\)\>"
syn keyword cssMultiColumnProp contained columns syn keyword cssMultiColumnProp contained columns
syn keyword cssMultiColumnAttr contained balance medium syn keyword cssMultiColumnAttr contained balance medium
syn keyword cssMultiColumnAttr contained always avoid left right page column syn keyword cssMultiColumnAttr contained always left right page column
syn match cssMultiColumnAttr contained "\<avoid-\(page\|column\)\>" syn match cssMultiColumnAttr contained "\<avoid\(-\(page\|column\)\)\=\>"
" http://www.w3.org/TR/css3-break/#page-break " http://www.w3.org/TR/css3-break/#page-break
syn match cssMultiColumnProp contained "\<page\(-break-\(before\|after\|inside\)\)\=\>" syn match cssMultiColumnProp contained "\<page\(-break-\(before\|after\|inside\)\)\=\>"
" http://www.w3.org/TR/SVG11/interact.html
syn match cssInteractProp contained "\<pointer-events\>"
syn match cssInteractAttr contained "\<\(visible\)\=\(Painted\|Fill\|Stroke\)\=\>"
" TODO find following items in w3c docs. " TODO find following items in w3c docs.
syn keyword cssGeneratedContentProp contained quotes crop syn keyword cssGeneratedContentProp contained quotes crop
syn match cssGeneratedContentProp contained "\<counter-\(reset\|increment\)\>" syn match cssGeneratedContentProp contained "\<counter-\(reset\|increment\)\>"
@ -325,7 +271,12 @@ syn match cssGeneratedContentProp contained "\<move-to\>"
syn match cssGeneratedContentProp contained "\<page-policy\>" syn match cssGeneratedContentProp contained "\<page-policy\>"
syn match cssGeneratedContentAttr contained "\<\(no-\)\=\(open\|close\)-quote\>" syn match cssGeneratedContentAttr contained "\<\(no-\)\=\(open\|close\)-quote\>"
syn match cssGridProp contained "\<grid-\(columns\|rows\)\>" " https://www.w3.org/TR/css-grid-1/
syn match cssGridProp contained "\<grid\>"
syn match cssGridProp contained "\<grid\(-\(template\|auto\)\)\=\(-\(columns\|rows\|areas\)\)\>"
syn match cssGridProp contained "\<grid-\(column\|row\)\(-\(start\|end\|gap\)\)\=\>"
syn match cssGridProp contained "\<grid-\(area\|gap\)\>"
syn match cssGridProp contained "\<grid-auto-flow\>"
syn match cssHyerlinkProp contained "\<target\(-\(name\|new\|position\)\)\=\>" syn match cssHyerlinkProp contained "\<target\(-\(name\|new\|position\)\)\=\>"
@ -339,14 +290,14 @@ syn keyword cssListAttr contained inside outside
syn keyword cssPositioningProp contained bottom clear clip display float left syn keyword cssPositioningProp contained bottom clear clip display float left
syn keyword cssPositioningProp contained position right top visibility syn keyword cssPositioningProp contained position right top visibility
syn match cssPositioningProp contained "\<z-index\>" syn match cssPositioningProp contained "\<z-index\>"
syn keyword cssPositioningAttr contained block compact syn keyword cssPositioningAttr contained block compact grid
syn match cssPositioningAttr contained "\<table\(-\(row-group\|\(header\|footer\)-group\|row\|column\(-group\)\=\|cell\|caption\)\)\=\>" syn match cssPositioningAttr contained "\<table\(-\(row-group\|\(header\|footer\)-group\|row\|column\(-group\)\=\|cell\|caption\)\)\=\>"
syn keyword cssPositioningAttr contained left right both syn keyword cssPositioningAttr contained left right both
syn match cssPositioningAttr contained "\<list-item\>" syn match cssPositioningAttr contained "\<list-item\>"
syn match cssPositioningAttr contained "\<inline\(-\(block\|box\|table\)\)\=\>" syn match cssPositioningAttr contained "\<inline\(-\(block\|box\|table\|grid\|flex\)\)\=\>"
syn keyword cssPositioningAttr contained static relative absolute fixed syn keyword cssPositioningAttr contained static relative absolute fixed subgrid
syn keyword cssPrintAttr contained landscape portrait crop cross always avoid syn keyword cssPrintAttr contained landscape portrait crop cross always
syn match cssTableProp contained "\<\(caption-side\|table-layout\|border-collapse\|border-spacing\|empty-cells\)\>" syn match cssTableProp contained "\<\(caption-side\|table-layout\|border-collapse\|border-spacing\|empty-cells\)\>"
syn keyword cssTableAttr contained fixed collapse separate show hide once always syn keyword cssTableAttr contained fixed collapse separate show hide once always
@ -419,17 +370,20 @@ syn keyword cssUIAttr contained both horizontal vertical
syn match cssUIProp contained "\<text-overflow\>" syn match cssUIProp contained "\<text-overflow\>"
syn keyword cssUIAttr contained clip ellipsis syn keyword cssUIAttr contained clip ellipsis
" Already highlighted Props: font content syn match cssUIProp contained "\<image-rendering\>"
syn keyword cssUIAttr contained pixellated
syn match cssUIAttr contained "\<crisp-edges\>"
"------------------------------------------------ "------------------------------------------------
" Webkit/iOS specific attributes " Webkit/iOS specific attributes
syn match cssUIAttr contained '\(preserve-3d\)' syn match cssUIAttr contained '\<preserve-3d\>'
" IE specific attributes " IE specific attributes
syn match cssIEUIAttr contained '\(bicubic\)' syn match cssIEUIAttr contained '\<bicubic\>'
" Webkit/iOS specific properties " Webkit/iOS specific properties
syn match cssUIProp contained '\(tap-highlight-color\|user-select\|touch-callout\)' syn match cssUIProp contained '\<tap-highlight-color\|user-select\|touch-callout\>'
" IE specific properties " IE specific properties
syn match cssIEUIProp contained '\(interpolation-mode\|zoom\|filter\)' syn match cssIEUIProp contained '\<interpolation-mode\|zoom\|filter\>'
" Webkit/Firebox specific properties/attributes " Webkit/Firebox specific properties/attributes
syn keyword cssUIProp contained appearance syn keyword cssUIProp contained appearance
@ -454,11 +408,25 @@ syn keyword cssAuralAttr contained male female child code digits continuous
" mobile text " mobile text
syn match cssMobileTextProp contained "\<text-size-adjust\>" syn match cssMobileTextProp contained "\<text-size-adjust\>"
syn keyword cssMediaProp contained width height orientation scan grid
syn match cssMediaProp contained /\(\(max\|min\)-\)\=\(\(device\)-\)\=aspect-ratio/
syn match cssMediaProp contained /\(\(max\|min\)-\)\=device-pixel-ratio/
syn match cssMediaProp contained /\(\(max\|min\)-\)\=device-\(height\|width\)/
syn match cssMediaProp contained /\(\(max\|min\)-\)\=\(height\|width\|resolution\|monochrome\|color\(-index\)\=\)/
syn keyword cssMediaAttr contained portrait landscape progressive interlace
syn match cssKeyFrameProp /\d*%\|from\|to/ contained nextgroup=cssDefinition
syn match cssPageMarginProp /@\(\(top\|left\|right\|bottom\)-\(left\|center\|right\|middle\|bottom\)\)\(-corner\)\=/ contained nextgroup=cssDefinition
syn keyword cssPageProp contained content size
syn keyword cssPageProp contained orphans widows
syn keyword cssFontDescriptorProp contained src
syn match cssFontDescriptorProp contained "\<unicode-range\>"
" unicode-range attributes
syn match cssFontDescriptorAttr contained "U+[0-9A-Fa-f?]\+"
syn match cssFontDescriptorAttr contained "U+\x\+-\x\+"
syn match cssBraces contained "[{}]" syn match cssBraces contained "[{}]"
syn match cssError contained "{@<>" syn match cssError contained "{@<>"
syn region cssDefinition transparent matchgroup=cssBraces start='{' end='}' contains=cssAttrRegion,css.*Prop,cssComment,cssValue.*,cssColor,cssURL,cssImportant,cssError,cssStringQ,cssStringQQ,cssFunction,cssUnicodeEscape,cssVendor,cssDefinition,cssHacks,cssNoise fold syn region cssDefinition transparent matchgroup=cssBraces start='{' end='}' contains=cssTagName,cssAttributeSelector,cssClassName,cssIdentifier,cssAtRule,cssAttrRegion,css.*Prop,cssComment,cssValue.*,cssColor,cssURL,cssImportant,cssError,cssStringQ,cssStringQQ,cssFunction,cssUnicodeEscape,cssVendor,cssDefinition,cssHacks,cssNoise fold
syn match cssBraceError "}" syn match cssBraceError "}"
syn match cssAttrComma "," syn match cssAttrComma ","
@ -477,7 +445,7 @@ syn match cssPseudoClassId contained "\<focus\(-inner\)\=\>"
syn match cssPseudoClassId contained "\<\(input-\)\=placeholder\>" syn match cssPseudoClassId contained "\<\(input-\)\=placeholder\>"
" Misc highlight groups " Misc highlight groups
syntax match cssUnitDecorators /\(#\|-\|%\|mm\|cm\|in\|pt\|pc\|em\|ex\|px\|ch\|rem\|vh\|vw\|vmin\|vmax\|dpi\|dppx\|dpcm\|Hz\|kHz\|s\|ms\|deg\|grad\|rad\)/ contained syntax match cssUnitDecorators /\(#\|-\|+\|%\|mm\|cm\|in\|pt\|pc\|em\|ex\|px\|ch\|rem\|vh\|vw\|vmin\|vmax\|dpi\|dppx\|dpcm\|Hz\|kHz\|s\|ms\|deg\|grad\|rad\)/ contained
syntax match cssNoise contained /\(:\|;\|\/\)/ syntax match cssNoise contained /\(:\|;\|\/\)/
" Comment " Comment
@ -490,7 +458,7 @@ syn region cssStringQQ start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=cssUnicodeEsc
syn region cssStringQ start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=cssUnicodeEscape,cssSpecialCharQ syn region cssStringQ start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=cssUnicodeEscape,cssSpecialCharQ
" Vendor Prefix " Vendor Prefix
syn match cssVendor contained "\(-\(webkit\|moz\|o\|ms\)-\)" syn match cssVendor contained "-\(webkit\|moz\|o\|ms\)-"
" Various CSS Hack characters " Various CSS Hack characters
" In earlier versions of IE (6 and 7), one can prefix property names " In earlier versions of IE (6 and 7), one can prefix property names
@ -508,6 +476,34 @@ syn region cssAttrRegion start=/:/ end=/\ze\(;\|)\|}\)/ contained contains=css.*
" 'transition' has Props after ':'. " 'transition' has Props after ':'.
syn region cssAttrRegion start=/transition\s*:/ end=/\ze\(;\|)\|}\)/ contained contains=css.*Prop,css.*Attr,cssColor,cssImportant,cssValue.*,cssFunction,cssString.*,cssURL,cssComment,cssUnicodeEscape,cssVendor,cssError,cssAttrComma,cssNoise syn region cssAttrRegion start=/transition\s*:/ end=/\ze\(;\|)\|}\)/ contained contains=css.*Prop,css.*Attr,cssColor,cssImportant,cssValue.*,cssFunction,cssString.*,cssURL,cssComment,cssUnicodeEscape,cssVendor,cssError,cssAttrComma,cssNoise
syn match cssAtKeyword /@\(font-face\|media\|keyframes\|import\|charset\|namespace\|page\|supports\)/ contained
syn keyword cssAtRuleLogical only not and contained
" @media
" Reference: http://www.w3.org/TR/css3-mediaqueries/
syn region cssAtRule start=/@media\>/ end=/\ze{/ skipwhite skipnl matchgroup=cssAtKeyword contains=cssMediaProp,cssValueLength,cssAtRuleLogical,cssValueInteger,cssMediaAttr,cssVendor,cssMediaType,cssComment nextgroup=cssDefinition
syn keyword cssMediaType contained screen print aural braille embossed handheld projection tty tv speech all contained
" @page
" http://www.w3.org/TR/css3-page/
syn region cssAtRule start=/@page\>/ end=/\ze{/ skipwhite skipnl matchgroup=cssAtKeyword contains=cssPagePseudo,cssComment nextgroup=cssDefinition
syn match cssPagePseudo /:\(left\|right\|first\|blank\)/ contained skipwhite skipnl
" @keyframe
" http://www.w3.org/TR/css3-animations/#keyframes
syn region cssAtRule start=/@\(-[a-z]\+-\)\=keyframes\>/ end=/\ze{/ skipwhite skipnl matchgroup=cssAtKeyword contains=cssVendor,cssComment nextgroup=cssDefinition
syn region cssAtRule start=/@import\>/ end=/\ze;/ contains=cssStringQ,cssStringQQ,cssUnicodeEscape,cssComment,cssAtKeyword,cssURL,cssMediaProp,cssValueLength,cssAtRuleLogical,cssValueInteger,cssMediaAttr,cssMediaType
syn region cssAtRule start=/@charset\>/ end=/\ze;/ contains=cssStringQ,cssStringQQ,cssUnicodeEscape,cssComment,cssAtKeyword
syn region cssAtRule start=/@namespace\>/ end=/\ze;/ contains=cssStringQ,cssStringQQ,cssUnicodeEscape,cssComment,cssAtKeyword
" @font-face
" http://www.w3.org/TR/css3-fonts/#at-font-face-rule
syn match cssAtRule "@font-face\>" nextgroup=cssFontDescriptorBlock
" @supports
" https://www.w3.org/TR/css3-conditional/#at-supports
syn region cssAtRule start=/@supports\>/ end=/\ze{/ skipwhite skipnl contains=cssAtRuleLogical,cssAttrRegion,css.*Prop,cssValue.*,cssVendor,cssAtKeyword,cssComment nextgroup=cssDefinition
if main_syntax == "css" if main_syntax == "css"
syn sync minlines=10 syn sync minlines=10
@ -537,6 +533,7 @@ hi def link cssFontProp cssProp
hi def link cssGeneratedContentProp cssProp hi def link cssGeneratedContentProp cssProp
hi def link cssGridProp cssProp hi def link cssGridProp cssProp
hi def link cssHyerlinkProp cssProp hi def link cssHyerlinkProp cssProp
hi def link cssInteractProp cssProp
hi def link cssLineboxProp cssProp hi def link cssLineboxProp cssProp
hi def link cssListProp cssProp hi def link cssListProp cssProp
hi def link cssMarqueeProp cssProp hi def link cssMarqueeProp cssProp
@ -567,6 +564,7 @@ hi def link cssFontAttr cssAttr
hi def link cssGeneratedContentAttr cssAttr hi def link cssGeneratedContentAttr cssAttr
hi def link cssGridAttr cssAttr hi def link cssGridAttr cssAttr
hi def link cssHyerlinkAttr cssAttr hi def link cssHyerlinkAttr cssAttr
hi def link cssInteractAttr cssAttr
hi def link cssLineboxAttr cssAttr hi def link cssLineboxAttr cssAttr
hi def link cssListAttr cssAttr hi def link cssListAttr cssAttr
hi def link cssMarginAttr cssAttr hi def link cssMarginAttr cssAttr
@ -603,8 +601,8 @@ hi def link cssFunctionName Function
hi def link cssFunctionComma Function hi def link cssFunctionComma Function
hi def link cssColor Constant hi def link cssColor Constant
hi def link cssIdentifier Function hi def link cssIdentifier Function
hi def link cssInclude Include hi def link cssAtRule Include
hi def link cssIncludeKeyword atKeyword hi def link cssAtKeyword PreProc
hi def link cssImportant Special hi def link cssImportant Special
hi def link cssBraces Function hi def link cssBraces Function
hi def link cssBraceError Error hi def link cssBraceError Error
@ -613,20 +611,16 @@ hi def link cssUnicodeEscape Special
hi def link cssStringQQ String hi def link cssStringQQ String
hi def link cssStringQ String hi def link cssStringQ String
hi def link cssAttributeSelector String hi def link cssAttributeSelector String
hi def link cssMedia atKeyword
hi def link cssMediaType Special hi def link cssMediaType Special
hi def link cssMediaComma Normal hi def link cssMediaComma Normal
hi def link cssMediaKeyword Statement hi def link cssAtRuleLogical Statement
hi def link cssMediaProp cssProp hi def link cssMediaProp cssProp
hi def link cssMediaAttr cssAttr hi def link cssMediaAttr cssAttr
hi def link cssPage atKeyword
hi def link cssPagePseudo PreProc hi def link cssPagePseudo PreProc
hi def link cssPageMargin atKeyword hi def link cssPageMarginProp cssAtKeyword
hi def link cssPageProp cssProp hi def link cssPageProp cssProp
hi def link cssKeyFrame atKeyword hi def link cssKeyFrameProp Constant
hi def link cssKeyFrameSelector Constant
hi def link cssFontDescriptor Special hi def link cssFontDescriptor Special
hi def link cssFontDescriptorFunction Constant
hi def link cssFontDescriptorProp cssProp hi def link cssFontDescriptorProp cssProp
hi def link cssFontDescriptorAttr cssAttr hi def link cssFontDescriptorAttr cssAttr
hi def link cssUnicodeRange Constant hi def link cssUnicodeRange Constant
@ -636,7 +630,6 @@ hi def link cssProp StorageClass
hi def link cssAttr Constant hi def link cssAttr Constant
hi def link cssUnitDecorators Number hi def link cssUnitDecorators Number
hi def link cssNoise Noise hi def link cssNoise Noise
hi def link atKeyword PreProc
let b:current_syntax = "css" let b:current_syntax = "css"

View File

@ -1,15 +1,15 @@
" Vim syntax file " Vim syntax file
" Language: CUDA (NVIDIA Compute Unified Device Architecture) " Language: CUDA (NVIDIA Compute Unified Device Architecture)
" Maintainer: Timothy B. Terriberry <tterribe@users.sourceforge.net> " Maintainer: Timothy B. Terriberry <tterribe@users.sourceforge.net>
" Last Change: 2007 Oct 13 " Last Change: 2018 Feb 06
" quit when a syntax file was already loaded " quit when a syntax file was already loaded
if exists("b:current_syntax") if exists("b:current_syntax")
finish finish
endif endif
" Read the C syntax to start with " Read the C++ syntax to start with
runtime! syntax/c.vim runtime! syntax/cpp.vim
" CUDA extentions " CUDA extentions
syn keyword cudaStorageClass __device__ __global__ __host__ syn keyword cudaStorageClass __device__ __global__ __host__

View File

@ -1,10 +1,10 @@
" Vim syntax file " Vim syntax file
" Language: Debian changelog files " Language: Debian changelog files
" Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org> " Maintainer: Debian Vim Maintainers
" Former Maintainers: Gerfried Fuchs <alfie@ist.org> " Former Maintainers: Gerfried Fuchs <alfie@ist.org>
" Wichert Akkerman <wakkerma@debian.org> " Wichert Akkerman <wakkerma@debian.org>
" Last Change: 2017 Apr 23 " Last Change: 2018 Jan 06
" URL: https://anonscm.debian.org/cgit/pkg-vim/vim.git/plain/runtime/syntax/debchangelog.vim " URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/syntax/debchangelog.vim
" Standard syntax initialization " Standard syntax initialization
if exists("b:current_syntax") if exists("b:current_syntax")
@ -21,7 +21,7 @@ let s:binNMU='binary-only=yes'
syn match debchangelogName contained "^[[:alnum:]][[:alnum:].+-]\+ " syn match debchangelogName contained "^[[:alnum:]][[:alnum:].+-]\+ "
exe 'syn match debchangelogFirstKV contained "; \('.s:urgency.'\|'.s:binNMU.'\)"' exe 'syn match debchangelogFirstKV contained "; \('.s:urgency.'\|'.s:binNMU.'\)"'
exe 'syn match debchangelogOtherKV contained ", \('.s:urgency.'\|'.s:binNMU.'\)"' exe 'syn match debchangelogOtherKV contained ", \('.s:urgency.'\|'.s:binNMU.'\)"'
syn match debchangelogTarget contained "\v %(frozen|unstable|sid|%(testing|%(old)=stable)%(-proposed-updates|-security)=|experimental|squeeze-%(backports%(-sloppy)=|volatile|lts|security)|%(wheezy|jessie)%(-backports%(-sloppy)=|-security)=|stretch%(-backports|-security)=|%(devel|precise|trusty|vivid|wily|xenial|yakkety|zesty|artful)%(-%(security|proposed|updates|backports|commercial|partner))=)+" syn match debchangelogTarget contained "\v %(frozen|unstable|sid|%(testing|%(old)=stable)%(-proposed-updates|-security)=|experimental|squeeze-%(backports%(-sloppy)=|volatile|lts|security)|%(wheezy|jessie)%(-backports%(-sloppy)=|-security)=|stretch%(-backports|-security)=|%(devel|precise|trusty|vivid|wily|xenial|yakkety|zesty|artful|bionic)%(-%(security|proposed|updates|backports|commercial|partner))=)+"
syn match debchangelogVersion contained "(.\{-})" syn match debchangelogVersion contained "(.\{-})"
syn match debchangelogCloses contained "closes:\_s*\(bug\)\=#\=\_s\=\d\+\(,\_s*\(bug\)\=#\=\_s\=\d\+\)*" syn match debchangelogCloses contained "closes:\_s*\(bug\)\=#\=\_s\=\d\+\(,\_s*\(bug\)\=#\=\_s\=\d\+\)*"
syn match debchangelogLP contained "\clp:\s\+#\d\+\(,\s*#\d\+\)*" syn match debchangelogLP contained "\clp:\s\+#\d\+\(,\s*#\d\+\)*"

View File

@ -1,10 +1,10 @@
" Vim syntax file " Vim syntax file
" Language: Debian control files " Language: Debian control files
" Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org> " Maintainer: Debian Vim Maintainers
" Former Maintainers: Gerfried Fuchs <alfie@ist.org> " Former Maintainers: Gerfried Fuchs <alfie@ist.org>
" Wichert Akkerman <wakkerma@debian.org> " Wichert Akkerman <wakkerma@debian.org>
" Last Change: 2017 Nov 04 " Last Change: 2018 Jan 06
" URL: https://anonscm.debian.org/cgit/pkg-vim/vim.git/plain/runtime/syntax/debcontrol.vim " URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/syntax/debcontrol.vim
" Standard syntax initialization " Standard syntax initialization
if exists("b:current_syntax") if exists("b:current_syntax")
@ -52,7 +52,7 @@ let s:sections = [
\, 'devel', 'doc', 'editors', 'education', 'electronics', 'embedded' \, 'devel', 'doc', 'editors', 'education', 'electronics', 'embedded'
\, 'fonts', 'games', 'gnome', 'gnustep', 'gnu-r', 'golang', 'graphics' \, 'fonts', 'games', 'gnome', 'gnustep', 'gnu-r', 'golang', 'graphics'
\, 'hamradio', 'haskell', 'httpd', 'interpreters', 'introspection' \, 'hamradio', 'haskell', 'httpd', 'interpreters', 'introspection'
\, 'java', 'javascript', 'kde', 'kernel', 'libs', 'libdevel', 'lisp' \, 'java\%(script\)\=', 'kde', 'kernel', 'libs', 'libdevel', 'lisp'
\, 'localization', 'mail', 'math', 'metapackages', 'misc', 'net' \, 'localization', 'mail', 'math', 'metapackages', 'misc', 'net'
\, 'news', 'ocaml', 'oldlibs', 'otherosfs', 'perl', 'php', 'python' \, 'news', 'ocaml', 'oldlibs', 'otherosfs', 'perl', 'php', 'python'
\, 'ruby', 'rust', 'science', 'shells', 'sound', 'text', 'tex' \, 'ruby', 'rust', 'science', 'shells', 'sound', 'text', 'tex'
@ -87,44 +87,29 @@ syn match debcontrolComment "^#.*$" contains=@Spell
syn case ignore syn case ignore
" List of all legal keys, in order, from deb-src-control(5) " Handle all fields from deb-src-control(5)
" Source fields
syn match debcontrolKey contained "^\%(Source\|Maintainer\|Uploaders\|Standards-Version\|Description\|Homepage\|Bugs\|Rules-Requires-Root\): *"
syn match debcontrolKey contained "^\%(XS-\)\=Vcs-\%(Arch\|Bzr\|Cvs\|Darcs\|Git\|Hg\|Mtn\|Svn\|Browser\): *"
syn match debcontrolKey contained "^\%(Origin\|Section\|Priority\): *"
syn match debcontrolKey contained "^Build-\%(Depends\|Conflicts\)\%(-Arch\|-Indep\)\=: *"
" Binary fields
syn match debcontrolKey contained "^\%(Package\%(-Type\)\=\|Architecture\|Build-Profiles\): *"
syn match debcontrolKey contained "^\%(\%(Build-\)\=Essential\|Multi-Arch\|Tag\): *"
syn match debcontrolKey contained "^\%(\%(Pre-\)\=Depends\|Recommends\|Suggests\|Breaks\|Enhances\|Replaces\|Conflicts\|Provides\|Built-Using\): *"
syn match debcontrolKey contained "^\%(Subarchitecture\|Kernel-Version\|Installer-Menu-Item\): *"
" User-defined fields
syn match debcontrolKey contained "^X[SBC]\{0,3\}\%(-Private\)\=-[-a-zA-Z0-9]\+: *"
syn match debcontrolDeprecatedKey contained "^\%(\%(XS-\)\=DM-Upload-Allowed\): *"
" Fields for which we do strict syntax checking " Fields for which we do strict syntax checking
syn region debcontrolStrictField start="^Architecture" end="$" contains=debcontrolKey,debcontrolArchitecture,debcontrolSpace oneline syn region debcontrolStrictField matchgroup=debcontrolKey start="^Architecture: *" end="$" contains=debcontrolArchitecture,debcontrolSpace oneline
syn region debcontrolStrictField start="^Multi-Arch" end="$" contains=debcontrolKey,debcontrolMultiArch oneline syn region debcontrolStrictField matchgroup=debcontrolKey start="^Multi-Arch: *" end="$" contains=debcontrolMultiArch oneline
syn region debcontrolStrictField start="^\%(Package\|Source\)" end="$" contains=debcontrolKey,debcontrolName oneline syn region debcontrolStrictField matchgroup=debcontrolKey start="^\%(Package\|Source\): *" end="$" contains=debcontrolName oneline
syn region debcontrolStrictField start="^Priority" end="$" contains=debcontrolKey,debcontrolPriority oneline syn region debcontrolStrictField matchgroup=debcontrolKey start="^Priority: *" end="$" contains=debcontrolPriority oneline
syn region debcontrolStrictField start="^Section" end="$" contains=debcontrolKey,debcontrolSection oneline syn region debcontrolStrictField matchgroup=debcontrolKey start="^Section: *" end="$" contains=debcontrolSection oneline
syn region debcontrolStrictField start="^\%(XC-\)\=Package-Type" end="$" contains=debcontrolKey,debcontrolPackageType oneline syn region debcontrolStrictField matchgroup=debcontrolKey start="^\%(XC-\)\=Package-Type: *" end="$" contains=debcontrolPackageType oneline
syn region debcontrolStrictField start="^Homepage" end="$" contains=debcontrolKey,debcontrolHTTPUrl oneline keepend syn region debcontrolStrictField matchgroup=debcontrolKey start="^Homepage: *" end="$" contains=debcontrolHTTPUrl oneline keepend
syn region debcontrolStrictField start="^\%(XS-\)\=Vcs-\%(Browser\|Arch\|Bzr\|Darcs\|Hg\)" end="$" contains=debcontrolKey,debcontrolHTTPUrl oneline keepend syn region debcontrolStrictField matchgroup=debcontrolKey start="^\%(XS-\)\=Vcs-\%(Browser\|Arch\|Bzr\|Darcs\|Hg\): *" end="$" contains=debcontrolHTTPUrl oneline keepend
syn region debcontrolStrictField start="^\%(XS-\)\=Vcs-Svn" end="$" contains=debcontrolKey,debcontrolVcsSvn,debcontrolHTTPUrl oneline keepend syn region debcontrolStrictField matchgroup=debcontrolKey start="^\%(XS-\)\=Vcs-Svn: *" end="$" contains=debcontrolVcsSvn,debcontrolHTTPUrl oneline keepend
syn region debcontrolStrictField start="^\%(XS-\)\=Vcs-Cvs" end="$" contains=debcontrolKey,debcontrolVcsCvs oneline keepend syn region debcontrolStrictField matchgroup=debcontrolKey start="^\%(XS-\)\=Vcs-Cvs: *" end="$" contains=debcontrolVcsCvs oneline keepend
syn region debcontrolStrictField start="^\%(XS-\)\=Vcs-Git" end="$" contains=debcontrolKey,debcontrolVcsGit oneline keepend syn region debcontrolStrictField matchgroup=debcontrolKey start="^\%(XS-\)\=Vcs-Git: *" end="$" contains=debcontrolVcsGit oneline keepend
syn region debcontrolStrictField start="^\%(XS-\)\=DM-Upload-Allowed" end="$" contains=debcontrolDeprecatedKey,debcontrolDmUpload oneline syn region debcontrolStrictField matchgroup=debcontrolKey start="^Rules-Requires-Root: *" end="$" contains=debcontrolR3 oneline
syn region debcontrolStrictField start="^Rules-Requires-Root" end="$" contains=debcontrolKey,debcontrolR3 oneline syn region debcontrolStrictField matchgroup=debcontrolKey start="^\%(Build-\)\=Essential: *" end="$" contains=debcontrolYesNo oneline
syn region debcontrolStrictField start="^\%(Build-\)\=Essential" end="$" contains=debcontrolKey,debcontrolYesNo oneline
syn region debcontrolStrictField matchgroup=debcontrolDeprecatedKey start="^\%(XS-\)\=DM-Upload-Allowed: *" end="$" contains=debcontrolDmUpload oneline
" Catch-all for the other legal fields " Catch-all for the other legal fields
syn region debcontrolField start="^\%(\%(XSBC-Original-\)\=Maintainer\|Standards-Version\|Bugs\|Origin\|X[SB]-Python-Version\|\%(XS-\)\=Vcs-Mtn\|\%(XS-\)\=Testsuite\|Build-Profiles\|Tag\|Subarchitecture\|Kernel-Version\|Installer-Menu-Item\):" end="$" contains=debcontrolKey,debcontrolVariable,debcontrolEmail oneline syn region debcontrolField matchgroup=debcontrolKey start="^\%(\%(XSBC-Original-\)\=Maintainer\|Standards-Version\|Bugs\|Origin\|X[SB]-Python-Version\|\%(XS-\)\=Vcs-Mtn\|\%(XS-\)\=Testsuite\%(-Triggers\)\=\|Build-Profiles\|Tag\|Subarchitecture\|Kernel-Version\|Installer-Menu-Item\): " end="$" contains=debcontrolVariable,debcontrolEmail oneline
syn region debcontrolMultiField start="^\%(Build-\%(Conflicts\|Depends\)\%(-Arch\|-Indep\)\=\|\%(Pre-\)\=Depends\|Recommends\|Suggests\|Breaks\|Enhances\|Replaces\|Conflicts\|Provides\|Built-Using\|Uploaders\|X[SBC]\{0,3\}\%(Private-\)\=-[-a-zA-Z0-9]\+\):" skip="^[ \t]" end="^$"me=s-1 end="^[^ \t#]"me=s-1 contains=debcontrolKey,debcontrolEmail,debcontrolVariable,debcontrolComment syn region debcontrolMultiField matchgroup=debcontrolKey start="^\%(Build-\%(Conflicts\|Depends\)\%(-Arch\|-Indep\)\=\|\%(Pre-\)\=Depends\|Recommends\|Suggests\|Breaks\|Enhances\|Replaces\|Conflicts\|Provides\|Built-Using\|Uploaders\|X[SBC]\{0,3\}\%(Private-\)\=-[-a-zA-Z0-9]\+\): *" skip="^[ \t]" end="^$"me=s-1 end="^[^ \t#]"me=s-1 contains=debcontrolEmail,debcontrolVariable,debcontrolComment
syn region debcontrolMultiFieldSpell start="^\%(Description\):" skip="^[ \t]" end="^$"me=s-1 end="^[^ \t#]"me=s-1 contains=debcontrolKey,debcontrolEmail,debcontrolVariable,debcontrolComment,@Spell syn region debcontrolMultiFieldSpell matchgroup=debcontrolKey start="^Description: *" skip="^[ \t]" end="^$"me=s-1 end="^[^ \t#]"me=s-1 contains=debcontrolEmail,debcontrolVariable,debcontrolComment,@Spell
" Associate our matches and regions with pretty colours " Associate our matches and regions with pretty colours
hi def link debcontrolKey Keyword hi def link debcontrolKey Keyword

View File

@ -1,9 +1,9 @@
" Vim syntax file " Vim syntax file
" Language: Debian sources.list " Language: Debian sources.list
" Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org> " Maintainer: Debian Vim Maintainers
" Former Maintainer: Matthijs Mohlmann <matthijs@cacholong.nl> " Former Maintainer: Matthijs Mohlmann <matthijs@cacholong.nl>
" Last Change: 2017 Oct 28 " Last Change: 2018 Jan 06
" URL: https://anonscm.debian.org/cgit/pkg-vim/vim.git/plain/runtime/syntax/debsources.vim " URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/syntax/debsources.vim
" Standard syntax initialization " Standard syntax initialization
if exists("b:current_syntax") if exists("b:current_syntax")

View File

@ -2,7 +2,7 @@
" Language: dircolors(1) input file " Language: dircolors(1) input file
" Maintainer: Jan Larres <jan@majutsushi.net> " Maintainer: Jan Larres <jan@majutsushi.net>
" Previous Maintainer: Nikolai Weibull <now@bitwi.se> " Previous Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2013-08-17 " Latest Revision: 2018-02-19
if exists("b:current_syntax") if exists("b:current_syntax")
finish finish
@ -135,6 +135,12 @@ function! s:preview_color(linenr) abort
elseif item >= 40 && item <= 47 elseif item >= 40 && item <= 47
" ANSI SGR background color " ANSI SGR background color
let hi_str .= s:get_hi_str(item - 40, 'bg') let hi_str .= s:get_hi_str(item - 40, 'bg')
elseif item >= 90 && item <= 97
" ANSI SGR+8 foreground color (xterm 16-color support)
let hi_str .= s:get_hi_str(item - 82, 'fg')
elseif item >= 100 && item <= 107
" ANSI SGR+8 background color (xterm 16-color support)
let hi_str .= s:get_hi_str(item - 92, 'bg')
elseif item == 38 elseif item == 38
" Foreground for terminals with 88/256 color support " Foreground for terminals with 88/256 color support
let color = s:get_256color(colors) let color = s:get_256color(colors)

View File

@ -2,11 +2,10 @@
" Language: doxygen on top of c, cpp, idl, java, php " Language: doxygen on top of c, cpp, idl, java, php
" Maintainer: Michael Geddes <vimmer@frog.wheelycreek.net> " Maintainer: Michael Geddes <vimmer@frog.wheelycreek.net>
" Author: Michael Geddes " Author: Michael Geddes
" Last Changes: Jan 2009 (\tparam by Domnique Pelle, Aug 2013) " Last Change: November 2017 (\throws by Candy Gumdrop)
" Nov 2017 (@throws by Domnique Pelle) " Version: 1.27
" Version: 1.23
" "
" Copyright 2004-2008 Michael Geddes " Copyright 2004-2017 Michael Geddes
" Please feel free to use, modify & distribute all or part of this script, " Please feel free to use, modify & distribute all or part of this script,
" providing this copyright message remains. " providing this copyright message remains.
" I would appreciate being acknowledged in any derived scripts, and would " I would appreciate being acknowledged in any derived scripts, and would
@ -59,52 +58,76 @@ try
" "
" C/C++ Style line comments " C/C++ Style line comments
syn region doxygenComment start=+/\*\(\*/\)\@![*!]+ end=+\*/+ contains=doxygenSyncStart,doxygenStart,doxygenTODO keepend fold containedin=phpRegion syn match doxygenCommentWhite +\s*\ze/\*\(\*/\)\@![*!]+ containedin=phpRegion
syn region doxygenCommentL start=+//[/!]<\@!+me=e-1 end=+$+ contains=doxygenStartL,@Spell keepend skipwhite skipnl nextgroup=doxygenComment2 fold containedin=phpRegion syn match doxygenCommentWhite +\s*\ze//[/!]+ containedin=phpRegion
syn match doxygenCommentWhite +\s*\ze/\*\(\*/\)\@![*!]+
syn match doxygenCommentWhite +\s*\ze//[/!]+ containedin=phpRegion
syn region doxygenComment start=+/\*\(\*/\)\@![*!]+ end=+\*/+ contains=doxygenSyncStart,doxygenStart,doxygenTODO,doxygenLeadingWhite keepend fold containedin=phpRegion
syn region doxygenCommentL start=+//[/!]<\@!+me=e-1 end=+$+ contains=doxygenLeadingLWhite,doxygenStartL,@Spell keepend skipwhite skipnl nextgroup=doxygenCommentWhite2 fold containedin=phpRegion
syn region doxygenCommentL start=+//[/!]<+me=e-2 end=+$+ contains=doxygenStartL,@Spell keepend skipwhite skipnl fold containedin=phpRegion syn region doxygenCommentL start=+//[/!]<+me=e-2 end=+$+ contains=doxygenStartL,@Spell keepend skipwhite skipnl fold containedin=phpRegion
syn region doxygenCommentL start=+//@\ze[{}]+ end=+$+ contains=doxygenGroupDefine,doxygenGroupDefineSpecial,@Spell fold containedin=phpRegion syn region doxygenCommentL start=+//@\ze[{}]+ end=+$+ contains=doxygenGroupDefine,doxygenGroupDefineSpecial,@Spell fold containedin=phpRegion
syn region doxygenComment start=+/\*@\ze[{}]+ end=+\*/+ contains=doxygenGroupDefine,doxygenGroupDefineSpecial,@Spell fold containedin=phpRegion
" Single line brief followed by multiline comment. " Single line brief followed by multiline comment.
syn match doxygenCommentWhite2 +\_s*\ze/\*\(\*/\)\@![*!]+ contained nextgroup=doxygenComment2
syn region doxygenComment2 start=+/\*\(\*/\)\@![*!]+ end=+\*/+ contained contains=doxygenSyncStart2,doxygenStart2,doxygenTODO keepend fold syn region doxygenComment2 start=+/\*\(\*/\)\@![*!]+ end=+\*/+ contained contains=doxygenSyncStart2,doxygenStart2,doxygenTODO keepend fold
" This helps with sync-ing as for some reason, syncing behaves differently to a normal region, and the start pattern does not get matched. " This helps with sync-ing as for some reason, syncing behaves differently to a normal region, and the start pattern does not get matched.
syn match doxygenSyncStart2 +[^*/]+ contained nextgroup=doxygenBody,doxygenPrev,doxygenStartSpecial,doxygenSkipComment,doxygenStartSkip2 skipwhite skipnl syn match doxygenSyncStart2 +[^*/]+ contained nextgroup=doxygenBody,doxygenPrev,doxygenStartSpecial,doxygenSkipComment,doxygenStartSkip2 skipwhite skipnl
" Skip empty lines at the start for when comments start on the 2nd/3rd line. " Skip empty lines at the start for when comments start on the 2nd/3rd line.
syn match doxygenStartSkip2 +^\s*\*[^/]+me=e-1 contained nextgroup=doxygenBody,doxygenStartSpecial,doxygenStartSkip skipwhite skipnl syn match doxygenStartSkip2 +^\s*\*[^/]+me=e-1 contained nextgroup=doxygenBody,doxygenStartSpecial,doxygenStartSkipWhite skipwhite skipnl
syn match doxygenStartSkip2 +^\s*\*$+ contained nextgroup=doxygenBody,doxygenStartSpecial,,doxygenStartSkip skipwhite skipnl syn match doxygenStartSkip2 +^\s*\*$+ contained nextgroup=doxygenBody,doxygenStartSpecial,doxygenStartSkipWhite skipwhite skipnl
syn match doxygenStart2 +/\*[*!]+ contained nextgroup=doxygenBody,doxygenPrev,doxygenStartSpecial,doxygenStartSkip2 skipwhite skipnl syn match doxygenStart2 +/\*[*!]+ contained nextgroup=doxygenBody,doxygenPrev,doxygenStartSpecial,doxygenStartSkip2 skipwhite skipnl
" Match the Starting pattern (effectively creating the start of a BNF) " Match the Starting pattern (effectively creating the start of a BNF)
if !exists('g:doxygen_javadoc_autobrief') || g:doxygen_javadoc_autobrief if !exists('g:doxygen_javadoc_autobrief') || g:doxygen_javadoc_autobrief
syn match doxygenStart +/\*[*!]+ contained nextgroup=doxygenBrief,doxygenPrev,doxygenFindBriefSpecial,doxygenStartSpecial,doxygenStartSkip,doxygenPage skipwhite skipnl syn match doxygenStart +/\*[*!]+ contained nextgroup=doxygenBrief,doxygenPrev,doxygenFindBriefSpecial,doxygenStartSpecial,doxygenStartSkipWhite,doxygenPage skipwhite skipnl
syn match doxygenStartL +//[/!]+ contained nextgroup=doxygenPrevL,doxygenBriefL,doxygenSpecial skipwhite syn match doxygenLeadingLWhite +\s\++ contained nextgroup=doxygenPrevL,doxygenBriefL,doxygenSpecial
syn match doxygenStartL +//[/!]+ contained nextgroup=doxygenLeaingLWhite,doxygenPrevL,doxygenBriefL,doxygenSpecial
" Match the first sentence as a brief comment " Match the first sentence as a brief comment
if ! exists('g:doxygen_end_punctuation') if ! exists('g:doxygen_end_punctuation')
let g:doxygen_end_punctuation='[.]' let g:doxygen_end_punctuation='[.]'
endif endif
exe 'syn region doxygenBrief contained start=+[\\@]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@*]+ start=+\(^\s*\)\@<!\*/\@!+ start=+\<\k+ skip=+'.doxygen_end_punctuation.'\S\@=+ end=+'.doxygen_end_punctuation.'+ end=+\(\s*\(\n\s*\*\=\s*\)[@\\]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\@!\)\@=+ contains=doxygenSmallSpecial,doxygenContinueComment,doxygenBriefEndComment,doxygenFindBriefSpecial,doxygenSmallSpecial,@doxygenHtmlGroup,doxygenTODO,doxygenHyperLink,doxygenHashLink,@Spell skipnl nextgroup=doxygenBody' exe 'syn region doxygenBrief contained start=+[\\@]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@*]+ start=+\(^\s*\)\@<!\*/\@!+ start=+\<\k+ skip=+'.doxygen_end_punctuation.'\S\@=+ end=+'.doxygen_end_punctuation.'+ end=+\(\s*\(\n\s*\*\=\s*\)[@\\]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\@!\)\@=+ contains=doxygenSmallSpecial,doxygenContinueCommentWhite,doxygenLeadingWhite,doxygenBriefEndComment,doxygenFindBriefSpecial,doxygenSmallSpecial,@doxygenHtmlGroup,doxygenTODO,doxygenHyperLink,doxygenHashLink,@Spell skipnl nextgroup=doxygenBody'
syn match doxygenBriefEndComment +\*/+ contained syn match doxygenBriefEndComment +\*/+ contained
exe 'syn region doxygenBriefL start=+@\k\@!\|[\\@]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@]+ start=+\<+ skip=+'.doxygen_end_punctuation.'\S+ end=+'.doxygen_end_punctuation.'\|$+ contained contains=doxygenSmallSpecial,doxygenHyperLink,doxygenHashLink,@doxygenHtmlGroup,@Spell keepend' exe 'syn region doxygenBriefL start=+@\k\@!\|[\\@]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@]+ start=+\<+ skip=+'.doxygen_end_punctuation.'\S+ end=+'.doxygen_end_punctuation.'\|$+ contained contains=doxygenSmallSpecial,doxygenHyperLink,doxygenHashLink,@doxygenHtmlGroup,@Spell keepend'
syn match doxygenPrevL +<+ contained nextgroup=doxygenBriefL,doxygenSpecial skipwhite syn match doxygenPrevL +<+ contained nextgroup=doxygenBriefL,doxygenSpecial skipwhite
else else
syn match doxygenStart +/\*[*!]+ contained nextgroup=doxygenBody,doxygenPrev,doxygenFindBriefSpecial,doxygenStartSpecial,doxygenStartSkip,doxygenPage skipwhite skipnl syn match doxygenStart +/\*[*!]+ contained nextgroup=doxygenBody,doxygenPrev,doxygenFindBriefSpecial,doxygenStartSpecial,doxygenStartSkipWhite,doxygenPage skipwhite skipnl
syn match doxygenStartL +//[/!]+ contained nextgroup=doxygenPrevL,doxygenLine,doxygenSpecial skipwhite syn match doxygenStartL +//[/!]+ contained nextgroup=doxygenLeadingLWhite,doxygenPrevL,doxygenLine,doxygenSpecial
syn match doxygenLeadingLWhite +\s\++ contained nextgroup=doxygenPrevL,doxygenLine,doxygenSpecial
syn region doxygenLine start=+@\k\@!\|[\\@]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@<]+ start=+\<+ end='$' contained contains=doxygenSmallSpecial,doxygenHyperLink,doxygenHashLink,@doxygenHtmlGroup,@Spell keepend syn region doxygenLine start=+@\k\@!\|[\\@]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@<]+ start=+\<+ end='$' contained contains=doxygenSmallSpecial,doxygenHyperLink,doxygenHashLink,@doxygenHtmlGroup,@Spell keepend
syn match doxygenPrevL +<+ contained nextgroup=doxygenLine,doxygenSpecial skipwhite syn match doxygenPrevL +<+ contained nextgroup=doxygenLine,doxygenSpecial skipwhite
endif endif
" This helps with sync-ing as for some reason, syncing behaves differently to a normal region, and the start pattern does not get matched. " This helps with sync-ing as for some reason, syncing behaves differently to a normal region, and the start pattern does not get matched.
syn match doxygenSyncStart +\ze[^*/]+ contained nextgroup=doxygenBrief,doxygenPrev,doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkip,doxygenPage skipwhite skipnl syn match doxygenSyncStart +\ze[^*/]+ contained nextgroup=doxygenBrief,doxygenPrev,doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkipWhite,doxygenPage skipwhite skipnl
" Match an [@\]brief so that it moves to body-mode.
"
"
" syn match doxygenBriefLine contained
syn match doxygenBriefSpecial contained +[@\\]+ nextgroup=doxygenBriefWord skipwhite
" syn region doxygenFindBriefSpecial start=+[@\\]brief\>+ end=+\(\n\s*\*\=\s*\([@\\]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\@!\)\|\s*$\)\@=+ keepend contains=doxygenBriefSpecial nextgroup=doxygenBody keepend skipwhite skipnl contained
syn region doxygenFindBriefSpecial start=+[@\\]brief\>+ skip=+^\s*\(\*/\@!\s*\)\=\(\<\|[@\\]\<\([npcbea]\>\|em\>\|ref\|link\>\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@*]\)+ end=+^+ keepend contains=doxygenBriefSpecial nextgroup=doxygenBody keepend skipwhite skipnl contained
" end=+\(\n\s*\*\=\s*\([@\\]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\@!\)\|\s*$\)\@=+
"syn region doxygenBriefLine contained start=+\<\k+ skip=+^\s*\(\*/\@!\s*\)\=\(\<\|[@\\]\<\([npcbea]\>\|em\>\|ref\|link\>\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@*]\)+ end=+^+ contains=doxygenContinueCommentWhite,doxygenSmallSpecial,@doxygenHtmlGroup,doxygenTODO,doxygenHyperLink,doxygenHashLink,@Spell skipwhite keepend matchgroup=xxx
syn region doxygenBriefLine contained start=+\<\k+ skip=+^\s*\(\*/\@!\s*\)\=\(\<\|[@\\]\<\([npcbea]\>\|em\>\|ref\|link\>\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@*]\)+ end=+^+ skipwhite keepend matchgroup=xxx
" syn region doxygenBriefLine matchgroup=xxxy contained start=+\<\k.\++ skip=+^\s*\k+ end=+end+ skipwhite keepend
"doxygenFindBriefSpecial,
"" syn region doxygenSpecialMultilineDesc start=+.\++ contained contains=doxygenSpecialContinueCommentWhite,doxygenSmallSpecial,doxygenHyperLink,doxygenHashLink,@doxygenHtmlGroup,@Spell skipwhite keepend
syn region doxygenBriefLine contained start=+\<\k+ end=+\(\n\s*\*\=\s*\([@\\]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\@!\)\|\s*$\)\@=+ contains=doxygenContinueComment,doxygenFindBriefSpecial,doxygenSmallSpecial,@doxygenHtmlGroup,doxygenTODO,doxygenHyperLink,doxygenHashLink,@Spell skipwhite keepend
" Match a '<' for applying a comment to the previous element. " Match a '<' for applying a comment to the previous element.
syn match doxygenPrev +<+ contained nextgroup=doxygenBrief,doxygenBody,doxygenSpecial,doxygenStartSkip skipwhite syn match doxygenPrev +<+ contained nextgroup=doxygenBrief,doxygenBody,doxygenSpecial,doxygenStartSkipWhite skipwhite
if exists("c_comment_strings") if exists("c_comment_strings")
" These are anti-Doxygen comments. If there are more than two asterisks or 3 '/'s " These are anti-Doxygen comments. If there are more than two asterisks or 3 '/'s
@ -123,10 +146,11 @@ endif
"syn region doxygenBodyBit contained start=+$+ "syn region doxygenBodyBit contained start=+$+
" The main body of a doxygen comment. " The main body of a doxygen comment.
syn region doxygenBody contained start=+\(/\*[*!]\)\@<!<\|[^<]\|$+ matchgroup=doxygenEndComment end=+\*/+re=e-2,me=e-2 contains=doxygenContinueComment,doxygenTODO,doxygenSpecial,doxygenSmallSpecial,doxygenHyperLink,doxygenHashLink,@doxygenHtmlGroup,@Spell syn region doxygenBody contained start=+\(/\*[*!]\)\@<!<\|[^<]\|$+ matchgroup=doxygenEndComment end=+\*/+re=e-2,me=e-2 contains=doxygenContinueCommentWhite,doxygenTODO,doxygenSpecial,doxygenSmallSpecial,doxygenHyperLink,doxygenHashLink,@doxygenHtmlGroup,@Spell
" These allow the skipping of comment continuation '*' characters. " These allow the skipping of comment continuation '*' characters.
syn match doxygenContinueComment contained +^\s*\*/\@!\s*+ syn match doxygenContinueCommentWhite contained +^\s*\ze\*+ nextgroup=doxygenContinueComment
syn match doxygenContinueComment contained +\*/\@!+
" Catch a Brief comment without punctuation - flag it as an error but " Catch a Brief comment without punctuation - flag it as an error but
" make sure the end comment is picked up also. " make sure the end comment is picked up also.
@ -135,27 +159,19 @@ endif
" Skip empty lines at the start for when comments start on the 2nd/3rd line. " Skip empty lines at the start for when comments start on the 2nd/3rd line.
if !exists('g:doxygen_javadoc_autobrief') || g:doxygen_javadoc_autobrief if !exists('g:doxygen_javadoc_autobrief') || g:doxygen_javadoc_autobrief
syn match doxygenStartSkip +^\s*\*[^/]+me=e-1 contained nextgroup=doxygenBrief,doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkip,doxygenPage skipwhite skipnl syn match doxygenStartSkipWhite +^\s*\ze\*/\@!+ contained nextgroup=doxygenBrief,doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkipWhite,doxygenPage skipwhite skipnl
syn match doxygenStartSkip +^\s*\*$+ contained nextgroup=doxygenBrief,doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkip,doxygenPage skipwhite skipnl "syn match doxygenStartSkipWhite +^\s*\ze\*$+ contained nextgroup=doxygenBrief,doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkipWhite,doxygenPage skipwhite skipnl
else else
syn match doxygenStartSkip +^\s*\*[^/]+me=e-1 contained nextgroup=doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkip,doxygenPage,doxygenBody skipwhite skipnl syn match doxygenStartSkipWhite +^\s*\*[^/]+me=e-1 contained nextgroup=doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkipWhite,doxygenPage,doxygenBody skipwhite skipnl
syn match doxygenStartSkip +^\s*\*$+ contained nextgroup=doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkip,doxygenPage,doxygenBody skipwhite skipnl syn match doxygenStartSkipWhite +^\s*\*$+ contained nextgroup=doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkipWhite,doxygenPage,doxygenBody skipwhite skipnl
endif endif
" Match an [@\]brief so that it moves to body-mode.
"
"
" syn match doxygenBriefLine contained
syn match doxygenBriefSpecial contained +[@\\]+ nextgroup=doxygenBriefWord skipwhite
syn region doxygenFindBriefSpecial start=+[@\\]brief\>+ end=+\(\n\s*\*\=\s*\([@\\]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\@!\)\|\s*$\)\@=+ keepend contains=doxygenBriefSpecial nextgroup=doxygenBody keepend skipwhite skipnl contained
" Create the single word matching special identifiers. " Create the single word matching special identifiers.
fun! s:DxyCreateSmallSpecial( kword, name ) fun! s:DxyCreateSmallSpecial( kword, name )
let mx='[-:0-9A-Za-z_%=&+*/!~>|]\@<!\([-0-9A-Za-z_%=+*/!~>|#]\+[-0-9A-Za-z_%=+*/!~>|]\@!\|\\[\\<>&.]@\|[.,][0-9a-zA-Z_]\@=\|::\|([^)]*)\|&[0-9a-zA-Z]\{2,7};\)\+' let mx='[-:0-9A-Za-z_%=&+*/!~>|]\@<!\([-0-9A-Za-z_%=+*/!~>|#]\+[-0-9A-Za-z_%=+*/!~>|]\@!\|\\[\\<>&.]@\|[.,][0-9a-zA-Z_]\@=\|::\|([^)]*)\|&[0-9a-zA-Z]\{2,7};\)\+'
exe 'syn region doxygenSpecial'.a:name.'Word contained start=+'.a:kword.'+ end=+\(\_s\+'.mx.'\)\@<=[-a-zA-Z_0-9+*/^%|~!=&\\]\@!+ skipwhite contains=doxygenContinueComment,doxygen'.a:name.'Word' exe 'syn region doxygenSpecial'.a:name.'Word contained start=+'.a:kword.'+ end=+\(\_s\+'.mx.'\)\@<=[-a-zA-Z_0-9+*/^%|~!=&\\]\@!+ skipwhite contains=doxygenContinueCommentWhite,doxygen'.a:name.'Word'
exe 'syn match doxygen'.a:name.'Word contained "\_s\@<='.mx.'" contains=doxygenHtmlSpecial,@Spell keepend' exe 'syn match doxygen'.a:name.'Word contained "\_s\@<='.mx.'" contains=doxygenHtmlSpecial,@Spell keepend'
endfun endfun
call s:DxyCreateSmallSpecial('p', 'Code') call s:DxyCreateSmallSpecial('p', 'Code')
@ -180,40 +196,42 @@ endif
" Match parameters and retvals (highlighting the first word as special). " Match parameters and retvals (highlighting the first word as special).
syn match doxygenParamDirection contained "\v\[(\s*in>((]\s*\[|\s*,\s*)out>)=|out>((]\s*\[|\s*,\s*)in>)=)\]" nextgroup=doxygenParamName skipwhite syn match doxygenParamDirection contained "\v\[(\s*in>((]\s*\[|\s*,\s*)out>)=|out>((]\s*\[|\s*,\s*)in>)=)\]" nextgroup=doxygenParamName skipwhite
syn keyword doxygenParam contained param tparam nextgroup=doxygenParamName,doxygenParamDirection skipwhite syn keyword doxygenParam contained param nextgroup=doxygenParamName,doxygenParamDirection skipwhite
syn keyword doxygenTParam contained tparam nextgroup=doxygenParamName skipwhite
syn match doxygenParamName contained +[A-Za-z0-9_:]\++ nextgroup=doxygenSpecialMultilineDesc skipwhite syn match doxygenParamName contained +[A-Za-z0-9_:]\++ nextgroup=doxygenSpecialMultilineDesc skipwhite
syn keyword doxygenRetval contained retval throw throws exception nextgroup=doxygenParamName skipwhite syn keyword doxygenRetval contained retval throw throws exception nextgroup=doxygenParamName skipwhite
" Match one line identifiers. " Match one line identifiers.
syn keyword doxygenOther contained addindex anchor syn keyword doxygenOther contained addindex anchor
\ dontinclude endhtmlonly endlatexonly showinitializer hideinitializer \ dontinclude endhtmlonly endlatexonly showinitializer hideinitializer
\ example htmlonly image include ingroup internal latexonly line \ example htmlonly image include includelineno ingroup internal latexonly line
\ overload related relates relatedalso relatesalso sa skip skipline \ overload relates relatesalso sa skip skipline
\ until verbinclude version addtogroup htmlinclude copydoc dotfile \ until verbinclude version addtogroup htmlinclude copydoc dotfile
\ xmlonly endxmlonly \ xmlonly endxmlonly
\ nextgroup=doxygenSpecialOnelineDesc \ nextgroup=doxygenSpecialOnelineDesc copybrief copydetails copyright dir extends
\ implements
syn region doxygenCodeRegion contained matchgroup=doxygenOther start=+\<code\>+ matchgroup=doxygenOther end=+[\\@]\@<=\<endcode\>+ contains=doxygenCodeRegionSpecial,doxygenContinueComment,doxygenErrorComment,@NoSpell syn region doxygenCodeRegion contained matchgroup=doxygenOther start=+\<code\>+ matchgroup=doxygenOther end=+[\\@]\@<=\<endcode\>+ contains=doxygenCodeRegionSpecial,doxygenContinueCommentWhite,doxygenErrorComment,@NoSpell
syn match doxygenCodeRegionSpecial contained +[\\@]\(endcode\>\)\@=+ syn match doxygenCodeRegionSpecial contained +[\\@]\(endcode\>\)\@=+
syn region doxygenVerbatimRegion contained matchgroup=doxygenOther start=+\<verbatim\>+ matchgroup=doxygenOther end=+[\\@]\@<=\<endverbatim\>+ contains=doxygenVerbatimRegionSpecial,doxygenContinueComment,doxygenErrorComment,@NoSpell syn region doxygenVerbatimRegion contained matchgroup=doxygenOther start=+\<verbatim\>+ matchgroup=doxygenOther end=+[\\@]\@<=\<endverbatim\>+ contains=doxygenVerbatimRegionSpecial,doxygenContinueCommentWhite,doxygenErrorComment,@NoSpell
syn match doxygenVerbatimRegionSpecial contained +[\\@]\(endverbatim\>\)\@=+ syn match doxygenVerbatimRegionSpecial contained +[\\@]\(endverbatim\>\)\@=+
if exists('b:current_syntax') if exists('b:current_syntax')
let b:doxygen_syntax_save=b:current_syntax let b:doxygen_syntax_save=b:current_syntax
unlet b:current_syntax unlet b:current_syntax
endif endif
syn include @Dotx syntax/dot.vim syn include @Dotx syntax/dot.vim
if exists('b:doxygen_syntax_save') if exists('b:doxygen_syntax_save')
let b:current_syntax=b:doxygen_syntax_save let b:current_syntax=b:doxygen_syntax_save
unlet b:doxygen_syntax_save unlet b:doxygen_syntax_save
else else
unlet b:current_syntax unlet b:current_syntax
endif endif
syn region doxygenDotRegion contained matchgroup=doxygenOther start=+\<dot\>+ matchgroup=doxygenOther end=+[\\@]\@<=\<enddot\>+ contains=doxygenDotRegionSpecial,doxygenErrorComment,doxygenContinueComment,@NoSpell,@Dotx syn region doxygenDotRegion contained matchgroup=doxygenOther start=+\<dot\>+ matchgroup=doxygenOther end=+[\\@]\@<=\<enddot\>+ contains=doxygenDotRegionSpecial,doxygenErrorComment,doxygenContinueCommentWhite,@NoSpell,@Dotx
syn match doxygenDotRegionSpecial contained +[\\@]\(enddot\>\)\@=+ syn match doxygenDotRegionSpecial contained +[\\@]\(enddot\>\)\@=+
" Match single line identifiers. " Match single line identifiers.
@ -224,13 +242,13 @@ endif
syn keyword doxygenOther contained par nextgroup=doxygenHeaderLine syn keyword doxygenOther contained par nextgroup=doxygenHeaderLine
syn region doxygenHeaderLine start=+.+ end=+^+ contained skipwhite nextgroup=doxygenSpecialMultilineDesc syn region doxygenHeaderLine start=+.+ end=+^+ contained skipwhite nextgroup=doxygenSpecialMultilineDesc
syn keyword doxygenOther contained arg author authors date deprecated li result return returns see invariant note post pre remark remarks since test nextgroup=doxygenSpecialMultilineDesc syn keyword doxygenOther contained arg author authors date deprecated li return returns see invariant note post pre remarks since test nextgroup=doxygenSpecialMultilineDesc
syn keyword doxygenOtherTODO contained todo attention nextgroup=doxygenSpecialMultilineDesc syn keyword doxygenOtherTODO contained todo attention nextgroup=doxygenSpecialMultilineDesc
syn keyword doxygenOtherWARN contained warning nextgroup=doxygenSpecialMultilineDesc syn keyword doxygenOtherWARN contained warning nextgroup=doxygenSpecialMultilineDesc
syn keyword doxygenOtherBUG contained bug nextgroup=doxygenSpecialMultilineDesc syn keyword doxygenOtherBUG contained bug nextgroup=doxygenSpecialMultilineDesc
" Handle \link, \endlink, highlighting the link-to and the link text bits separately. " Handle \link, \endlink, highlighting the link-to and the link text bits separately.
syn region doxygenOtherLink matchgroup=doxygenOther start=+\<link\>+ end=+[\@]\@<=endlink\>+ contained contains=doxygenLinkWord,doxygenContinueComment,doxygenLinkError,doxygenEndlinkSpecial syn region doxygenOtherLink matchgroup=doxygenOther start=+\<link\>+ end=+[\@]\@<=endlink\>+ contained contains=doxygenLinkWord,doxygenContinueCommentWhite,doxygenLinkError,doxygenEndlinkSpecial
syn match doxygenEndlinkSpecial contained +[\\@]\zeendlink\>+ syn match doxygenEndlinkSpecial contained +[\\@]\zeendlink\>+
syn match doxygenLinkWord "[_a-zA-Z:#()][_a-z0-9A-Z:#()]*\>" contained skipnl nextgroup=doxygenLinkRest,doxygenContinueLinkComment syn match doxygenLinkWord "[_a-zA-Z:#()][_a-z0-9A-Z:#()]*\>" contained skipnl nextgroup=doxygenLinkRest,doxygenContinueLinkComment
@ -250,7 +268,7 @@ endif
" Handle section " Handle section
syn keyword doxygenOther defgroup section subsection subsubsection weakgroup contained skipwhite nextgroup=doxygenSpecialIdent syn keyword doxygenOther defgroup section subsection subsubsection weakgroup contained skipwhite nextgroup=doxygenSpecialIdent
syn region doxygenSpecialSectionDesc start=+.\++ end=+$+ contained skipwhite contains=doxygenSmallSpecial,@doxygenHtmlGroup keepend skipwhite skipnl nextgroup=doxygenContinueComment syn region doxygenSpecialSectionDesc start=+.\++ end=+$+ contained skipwhite contains=doxygenSmallSpecial,@doxygenHtmlGroup keepend skipwhite skipnl nextgroup=doxygenContinueCommentWhite
syn match doxygenSpecialIdent "\<[a-zA-Z_0-9]\+\>" contained nextgroup=doxygenSpecialSectionDesc syn match doxygenSpecialIdent "\<[a-zA-Z_0-9]\+\>" contained nextgroup=doxygenSpecialSectionDesc
" Does the one-line description for the one-line type identifiers. " Does the one-line description for the one-line type identifiers.
@ -260,8 +278,12 @@ endif
" Handle the multiline description for the multiline type identifiers. " Handle the multiline description for the multiline type identifiers.
" Continue until an 'empty' line (can contain a '*' continuation) or until the " Continue until an 'empty' line (can contain a '*' continuation) or until the
" next whole-line @ command \ command. " next whole-line @ command \ command.
syn region doxygenSpecialMultilineDesc start=+.\++ skip=+^\s*\(\*/\@!\s*\)\=\(\<\|[@\\]\<\([npcbea]\>\|em\>\|ref\|link\>\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@*]\)+ end=+^+ contained contains=doxygenSpecialContinueComment,doxygenSmallSpecial,doxygenHyperLink,doxygenHashLink,@doxygenHtmlGroup,@Spell skipwhite keepend syn region doxygenSpecialMultilineDesc start=+.\++ skip=+^\s*\(\*/\@!\s*\)\=\(\<\|[@\\]\<\([npcbea]\>\|em\>\|ref\|link\>\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@*]\)+ end=+^+ contained contains=doxygenSpecialContinueCommentWhite,doxygenSmallSpecial,doxygenHyperLink,doxygenHashLink,@doxygenHtmlGroup,@Spell skipwhite keepend
syn match doxygenSpecialContinueComment contained +^\s*\*/\@!\s*+ nextgroup=doxygenSpecial skipwhite
" syn match doxygenSpecialContinueComment contained +^\s*\*/\@!\s*+ nextgroup=doxygenSpecial skipwhite
syn match doxygenSpecialContinueCommentWhite contained +^\s*\ze\*+ nextgroup=doxygenSpecialContinueComment
syn match doxygenSpecialContinueComment contained +\*/\@!+
" Handle special cases 'bold' and 'group' " Handle special cases 'bold' and 'group'
syn keyword doxygenBold contained bold nextgroup=doxygenSpecialHeading syn keyword doxygenBold contained bold nextgroup=doxygenSpecialHeading
@ -288,7 +310,7 @@ endif
" Supported HTML subset. Not perfect, but okay. " Supported HTML subset. Not perfect, but okay.
syn case ignore syn case ignore
syn region doxygenHtmlTag contained matchgroup=doxygenHtmlCh start=+\v\</=\ze([biuap]|em|strong|img|br|center|code|dfn|d[ldt]|hr|h[0-3]|li|[ou]l|pre|small|sub|sup|table|tt|var|caption|src|alt|longdesc|name|height|width|usemap|ismap|href|type)>+ skip=+\\<\|\<\k\+=\("[^"]*"\|'[^']*\)+ end=+>+ contains=doxygenHtmlCmd,doxygenContinueComment,doxygenHtmlVar syn region doxygenHtmlTag contained matchgroup=doxygenHtmlCh start=+\v\</=\ze([biuap]|em|strong|img|br|center|code|dfn|d[ldt]|hr|h[0-3]|li|[ou]l|pre|small|sub|sup|table|tt|var|caption|src|alt|longdesc|name|height|width|usemap|ismap|href|type)>+ skip=+\\<\|\<\k\+=\("[^"]*"\|'[^']*\)+ end=+>+ contains=doxygenHtmlCmd,doxygenContinueCommentWhite,doxygenHtmlVar
syn keyword doxygenHtmlCmd contained b i em strong u img a br p center code dfn dl dd dt hr h1 h2 h3 li ol ul pre small sub sup table tt var caption nextgroup=doxygenHtmlVar skipwhite syn keyword doxygenHtmlCmd contained b i em strong u img a br p center code dfn dl dd dt hr h1 h2 h3 li ol ul pre small sub sup table tt var caption nextgroup=doxygenHtmlVar skipwhite
syn keyword doxygenHtmlVar contained src alt longdesc name height width usemap ismap href type nextgroup=doxygenHtmlEqu skipwhite syn keyword doxygenHtmlVar contained src alt longdesc name height width usemap ismap href type nextgroup=doxygenHtmlEqu skipwhite
syn match doxygenHtmlEqu contained +=+ nextgroup=doxygenHtmlExpr skipwhite syn match doxygenHtmlEqu contained +=+ nextgroup=doxygenHtmlExpr skipwhite
@ -298,7 +320,7 @@ endif
syn cluster doxygenHtmlGroup contains=doxygenHtmlCode,doxygenHtmlBold,doxygenHtmlUnderline,doxygenHtmlItalic,doxygenHtmlSpecial,doxygenHtmlTag,doxygenHtmlLink syn cluster doxygenHtmlGroup contains=doxygenHtmlCode,doxygenHtmlBold,doxygenHtmlUnderline,doxygenHtmlItalic,doxygenHtmlSpecial,doxygenHtmlTag,doxygenHtmlLink
syn cluster doxygenHtmlTop contains=@Spell,doxygenHtmlSpecial,doxygenHtmlTag,doxygenContinueComment syn cluster doxygenHtmlTop contains=@Spell,doxygenHtmlSpecial,doxygenHtmlTag,doxygenContinueCommentWhite
" Html Support " Html Support
syn region doxygenHtmlLink contained start=+<[aA]\>\s*\(\n\s*\*\s*\)\=\(\(name\|href\)=\("[^"]*"\|'[^']*'\)\)\=\s*>+ end=+</[aA]>+me=e-4 contains=@doxygenHtmlTop syn region doxygenHtmlLink contained start=+<[aA]\>\s*\(\n\s*\*\s*\)\=\(\(name\|href\)=\("[^"]*"\|'[^']*'\)\)\=\s*>+ end=+</[aA]>+me=e-4 contains=@doxygenHtmlTop
hi link doxygenHtmlLink Underlined hi link doxygenHtmlLink Underlined
@ -343,7 +365,7 @@ endif
syn cluster rcGroup add=doxygen.* syn cluster rcGroup add=doxygen.*
let s:my_syncolor=0 let s:my_syncolor=0
if !exists(':SynColor') if !exists(':SynColor')
command -nargs=+ SynColor hi def <args> command -nargs=+ SynColor hi def <args>
let s:my_syncolor=1 let s:my_syncolor=1
endif endif
@ -469,6 +491,8 @@ endif
call s:Doxygen_Hilights() call s:Doxygen_Hilights()
syn match doxygenLeadingWhite +\(^\s*\*\)\@<=\s*+ contained
" This is still a proposal, but won't do any harm. " This is still a proposal, but won't do any harm.
aug doxygengroup aug doxygengroup
au! au!
@ -483,6 +507,7 @@ endif
SynLink doxygenOtherTODO Todo SynLink doxygenOtherTODO Todo
SynLink doxygenOtherWARN Todo SynLink doxygenOtherWARN Todo
SynLink doxygenOtherBUG Todo SynLink doxygenOtherBUG Todo
SynLink doxygenLeadingLWhite doxygenBody
SynLink doxygenErrorSpecial Error SynLink doxygenErrorSpecial Error
SynLink doxygenErrorEnd Error SynLink doxygenErrorEnd Error
@ -517,7 +542,10 @@ endif
SynLink doxygenBriefL doxygenBrief SynLink doxygenBriefL doxygenBrief
SynLink doxygenBriefLine doxygenBrief SynLink doxygenBriefLine doxygenBrief
SynLink doxygenHeaderLine doxygenSpecialHeading SynLink doxygenHeaderLine doxygenSpecialHeading
SynLink doxygenStartSkip doxygenContinueComment SynLink doxygenCommentWhite Normal
SynLink doxygenCommentWhite2 doxygenCommentWhite
SynLink doxygenContinueCommentWhite doxygenCommentWhite
SynLink doxygenStartSkipWhite doxygenContinueCommentWhite
SynLink doxygenLinkWord doxygenParamName SynLink doxygenLinkWord doxygenParamName
SynLink doxygenLinkRest doxygenSpecialMultilineDesc SynLink doxygenLinkRest doxygenSpecialMultilineDesc
SynLink doxygenHyperLink doxygenLinkWord SynLink doxygenHyperLink doxygenLinkWord
@ -591,5 +619,5 @@ finally
let &cpo = s:cpo_save let &cpo = s:cpo_save
unlet s:cpo_save unlet s:cpo_save
endtry endtry
let suppress_doxygen=1
" vim:et sw=2 sts=2 " vim:et sw=2 sts=2

View File

@ -1,84 +1,10 @@
" Vim syntax file " Vim syntax file
" Language: FORTH " Language: FORTH
" Maintainer: Christian V. J. Br<42>ssow <cvjb@cvjb.de> " Current Maintainer: Johan Kotlinski <kotlinski@gmail.com>
" Last Change: So 27 Mai 2012 15:56:28 CEST " Previous Maintainer: Christian V. J. Br<42>ssow <cvjb@cvjb.de>
" Last Change: 2018-03-29
" Filenames: *.fs,*.ft " Filenames: *.fs,*.ft
" URL: http://www.cvjb.de/comp/vim/forth.vim " URL: https://github.com/jkotlinski/forth.vim
" $Id: forth.vim,v 1.14 2012/05/27 15:57:22 bruessow Exp $
" The list of keywords is incomplete, compared with the official ANS
" wordlist. If you use this language, please improve it, and send me
" the patches.
"
" Before sending me patches, please download the newest version of this file
" from http://www.cvjb.de/comp/vim/forth.vim or http://www.vim.org/ (search
" for forth.vim).
" Many Thanks to...
"
" 2012-05-13:
" Dominique Pell<6C> <dominique dot pelle at gmail dot com> for sending the
" patch to allow spellchecking of strings, comments, ...
"
" 2012-01-07:
" Thilo Six <T.Six at gmx dot de> send a patch for cpoptions.
" See the discussion at http://thread.gmane.org/gmane.editors.vim.devel/32151
"
" 2009-06-28:
" Josh Grams send a patch to allow the parenthesis comments at the
" beginning of a line. That patch also fixed a typo in one of the
" comments.
"
" 2008-02-09:
" Shawn K. Quinn <sjquinn at speakeasy dot net> send a big patch with
" new words commonly used in Forth programs or defined by GNU Forth.
"
" 2007-07-11:
" Benjamin Krill <ben at codiert dot org> send me a patch
" to highlight space errors.
" You can toggle this feature on through setting the
" flag forth_space_errors in you vimrc. If you have switched it on,
" you can turn off highlighting of trailing spaces in comments by
" setting forth_no_trail_space_error in your vimrc. If you do not want
" the highlighting of a tabulator following a space in comments, you
" can turn this off by setting forth_no_tab_space_error.
"
" 2006-05-25:
" Bill McCarthy <WJMc@...> and Ilya Sher <ilya-vim@...>
" Who found a bug in the ccomment line in 2004!!!
" I'm really very sorry, that it has taken two years to fix that
" in the official version of this file. Shame on me.
" I think my face will be red the next ten years...
"
" 2006-05-21:
" Thomas E. Vaughan <tevaugha at ball dot com> send me a patch
" for the parenthesis comment word, so words with a trailing
" parenthesis will not start the highlighting for such comments.
"
" 2003-05-10:
" Andrew Gaul <andrew at gaul.org> send me a patch for
" forthOperators.
"
" 2003-04-03:
" Ron Aaron <ron at ronware dot org> made updates for an
" improved Win32Forth support.
"
" 2002-04-22:
" Charles Shattuck <charley at forth dot org> helped me to settle up with the
" binary and hex number highlighting.
"
" 2002-04-20:
" Charles Shattuck <charley at forth dot org> send me some code for correctly
" highlighting char and [char] followed by an opening paren. He also added
" some words for operators, conditionals, and definitions; and added the
" highlighting for s" and c".
"
" 2000-03-28:
" John Providenza <john at probo dot com> made improvements for the
" highlighting of strings, and added the code for highlighting hex numbers.
"
" quit when a syntax file was already loaded " quit when a syntax file was already loaded
if exists("b:current_syntax") if exists("b:current_syntax")
@ -129,7 +55,10 @@ syn keyword forthOperators F~REL F~ABS F~
syn keyword forthOperators 0< 0<= 0<> 0= 0> 0>= < <= <> = > >= U< U<= syn keyword forthOperators 0< 0<= 0<> 0= 0> 0>= < <= <> = > >= U< U<=
syn keyword forthOperators U> U>= D0< D0<= D0<> D0= D0> D0>= D< D<= D<> syn keyword forthOperators U> U>= D0< D0<= D0<> D0= D0> D0>= D< D<= D<>
syn keyword forthOperators D= D> D>= DU< DU<= DU> DU>= WITHIN ?NEGATE syn keyword forthOperators D= D> D>= DU< DU<= DU> DU>= WITHIN ?NEGATE
syn keyword forthOperators ?DNEGATE syn keyword forthOperators ?DNEGATE TRUE FALSE
" various words that take an input and do something with it
syn keyword forthFunction . U. .R U.R
" stack manipulations " stack manipulations
syn keyword forthStack DROP NIP DUP OVER TUCK SWAP ROT -ROT ?DUP PICK ROLL syn keyword forthStack DROP NIP DUP OVER TUCK SWAP ROT -ROT ?DUP PICK ROLL
@ -141,7 +70,7 @@ syn keyword forthRstack 4>R 4R> 4R@ 4RDROP
syn keyword forthFStack FDROP FNIP FDUP FOVER FTUCK FSWAP FROT syn keyword forthFStack FDROP FNIP FDUP FOVER FTUCK FSWAP FROT
" stack pointer manipulations " stack pointer manipulations
syn keyword forthSP SP@ SP! FP@ FP! RP@ RP! LP@ LP! syn keyword forthSP SP@ SP! FP@ FP! RP@ RP! LP@ LP! DEPTH
" address operations " address operations
syn keyword forthMemory @ ! +! C@ C! 2@ 2! F@ F! SF@ SF! DF@ DF! syn keyword forthMemory @ ! +! C@ C! 2@ 2! F@ F! SF@ SF! DF@ DF!
@ -150,7 +79,7 @@ syn keyword forthAdrArith FLOAT+ FLOAT FALIGN FALIGNED SFLOATS SFLOAT+
syn keyword forthAdrArith SFALIGN SFALIGNED DFLOATS DFLOAT+ DFALIGN DFALIGNED syn keyword forthAdrArith SFALIGN SFALIGNED DFLOATS DFLOAT+ DFALIGN DFALIGNED
syn keyword forthAdrArith MAXALIGN MAXALIGNED CFALIGN CFALIGNED syn keyword forthAdrArith MAXALIGN MAXALIGNED CFALIGN CFALIGNED
syn keyword forthAdrArith ADDRESS-UNIT-BITS ALLOT ALLOCATE HERE syn keyword forthAdrArith ADDRESS-UNIT-BITS ALLOT ALLOCATE HERE
syn keyword forthMemBlks MOVE ERASE CMOVE CMOVE> FILL BLANK syn keyword forthMemBlks MOVE ERASE CMOVE CMOVE> FILL BLANK UNUSED
" conditionals " conditionals
syn keyword forthCond IF ELSE ENDIF THEN CASE OF ENDOF ENDCASE ?DUP-IF syn keyword forthCond IF ELSE ENDIF THEN CASE OF ENDOF ENDCASE ?DUP-IF
@ -159,7 +88,7 @@ syn keyword forthCond ?DUP-0=-IF AHEAD CS-PICK CS-ROLL CATCH THROW WITHIN
" iterations " iterations
syn keyword forthLoop BEGIN WHILE REPEAT UNTIL AGAIN syn keyword forthLoop BEGIN WHILE REPEAT UNTIL AGAIN
syn keyword forthLoop ?DO LOOP I J K +DO U+DO -DO U-DO DO +LOOP -LOOP syn keyword forthLoop ?DO LOOP I J K +DO U+DO -DO U-DO DO +LOOP -LOOP
syn keyword forthLoop UNLOOP LEAVE ?LEAVE EXIT DONE FOR NEXT syn keyword forthLoop UNLOOP LEAVE ?LEAVE EXIT DONE FOR NEXT RECURSE
" new words " new words
syn match forthClassDef '\<:class\s*[^ \t]\+\>' syn match forthClassDef '\<:class\s*[^ \t]\+\>'
@ -174,8 +103,8 @@ syn keyword forthDefine COMPILE-ONLY COMPILE RESTRICT INTERPRET POSTPONE EXECUTE
syn keyword forthDefine LITERAL CREATE-INTERPRET/COMPILE INTERPRETATION> syn keyword forthDefine LITERAL CREATE-INTERPRET/COMPILE INTERPRETATION>
syn keyword forthDefine <INTERPRETATION COMPILATION> <COMPILATION ] LASTXT syn keyword forthDefine <INTERPRETATION COMPILATION> <COMPILATION ] LASTXT
syn keyword forthDefine COMP' POSTPONE, FIND-NAME NAME>INT NAME?INT NAME>COMP syn keyword forthDefine COMP' POSTPONE, FIND-NAME NAME>INT NAME?INT NAME>COMP
syn keyword forthDefine NAME>STRING STATE C; CVARIABLE syn keyword forthDefine NAME>STRING STATE C; CVARIABLE BUFFER: MARKER
syn keyword forthDefine , 2, F, C, syn keyword forthDefine , 2, F, C, COMPILE,
syn match forthDefine "\[IFDEF]" syn match forthDefine "\[IFDEF]"
syn match forthDefine "\[IFUNDEF]" syn match forthDefine "\[IFUNDEF]"
syn match forthDefine "\[THEN]" syn match forthDefine "\[THEN]"
@ -196,6 +125,7 @@ syn match forthDefine "'"
syn match forthDefine '\<\[\>' syn match forthDefine '\<\[\>'
syn match forthDefine "\[']" syn match forthDefine "\[']"
syn match forthDefine '\[COMPILE]' syn match forthDefine '\[COMPILE]'
syn match forthDefine '\[CHAR]'
" debugging " debugging
syn keyword forthDebug PRINTDEBUGDATA PRINTDEBUGLINE syn keyword forthDebug PRINTDEBUGDATA PRINTDEBUGLINE
@ -206,7 +136,7 @@ syn keyword forthAssembler ASSEMBLER CODE END-CODE ;CODE FLUSH-ICACHE C,
" basic character operations " basic character operations
syn keyword forthCharOps (.) CHAR EXPECT FIND WORD TYPE -TRAILING EMIT KEY syn keyword forthCharOps (.) CHAR EXPECT FIND WORD TYPE -TRAILING EMIT KEY
syn keyword forthCharOps KEY? TIB CR syn keyword forthCharOps KEY? TIB CR BL COUNT SPACE SPACES
" recognize 'char (' or '[char] (' correctly, so it doesn't " recognize 'char (' or '[char] (' correctly, so it doesn't
" highlight everything after the paren as a comment till a closing ')' " highlight everything after the paren as a comment till a closing ')'
syn match forthCharOps '\<char\s\S\s' syn match forthCharOps '\<char\s\S\s'
@ -216,12 +146,15 @@ syn region forthCharOps start=+."\s+ skip=+\\"+ end=+"+
" char-number conversion " char-number conversion
syn keyword forthConversion <<# <# # #> #>> #S (NUMBER) (NUMBER?) CONVERT D>F syn keyword forthConversion <<# <# # #> #>> #S (NUMBER) (NUMBER?) CONVERT D>F
syn keyword forthConversion D>S DIGIT DPL F>D HLD HOLD NUMBER S>D SIGN >NUMBER syn keyword forthConversion D>S DIGIT DPL F>D HLD HOLD NUMBER S>D SIGN >NUMBER
syn keyword forthConversion F>S S>F syn keyword forthConversion F>S S>F HOLDS
" interpreter, wordbook, compiler " interpreter, wordbook, compiler
syn keyword forthForth (LOCAL) BYE COLD ABORT >BODY >NEXT >LINK CFA >VIEW HERE syn keyword forthForth (LOCAL) BYE COLD ABORT >BODY >NEXT >LINK CFA >VIEW HERE
syn keyword forthForth PAD WORDS VIEW VIEW> N>LINK NAME> LINK> L>NAME FORGET syn keyword forthForth PAD WORDS VIEW VIEW> N>LINK NAME> LINK> L>NAME FORGET
syn keyword forthForth BODY> ASSERT( ASSERT0( ASSERT1( ASSERT2( ASSERT3( ) syn keyword forthForth BODY> ASSERT( ASSERT0( ASSERT1( ASSERT2( ASSERT3( )
syn keyword forthForth >IN ACCEPT ENVIRONMENT? EVALUATE QUIT SOURCE ACTION-OF
syn keyword forthForth DEFER! DEFER@ PARSE PARSE-NAME REFILL RESTORE-INPUT
syn keyword forthForth SAVE-INPUT SOURCE-ID
syn region forthForth start=+ABORT"\s+ skip=+\\"+ end=+"+ syn region forthForth start=+ABORT"\s+ skip=+\\"+ end=+"+
" vocabularies " vocabularies
@ -236,16 +169,17 @@ syn keyword forthFileWords KEY?-FILE WRITE-FILE WRITE-LINE EMIT-FILE
syn keyword forthFileWords FLUSH-FILE FILE-STATUS FILE-POSITION syn keyword forthFileWords FLUSH-FILE FILE-STATUS FILE-POSITION
syn keyword forthFileWords REPOSITION-FILE FILE-SIZE RESIZE-FILE syn keyword forthFileWords REPOSITION-FILE FILE-SIZE RESIZE-FILE
syn keyword forthFileWords SLURP-FILE SLURP-FID STDIN STDOUT STDERR syn keyword forthFileWords SLURP-FILE SLURP-FID STDIN STDOUT STDERR
syn keyword forthFileWords INCLUDE-FILE INCLUDED REQUIRED
syn keyword forthBlocks OPEN-BLOCKS USE LOAD --> BLOCK-OFFSET syn keyword forthBlocks OPEN-BLOCKS USE LOAD --> BLOCK-OFFSET
syn keyword forthBlocks GET-BLOCK-FID BLOCK-POSITION LIST SCR BLOCK syn keyword forthBlocks GET-BLOCK-FID BLOCK-POSITION LIST SCR BLOCK
syn keyword forthBlocks BUFER EMPTY-BUFFERS EMPTY-BUFFER UPDATE UPDATED? syn keyword forthBlocks BUFER EMPTY-BUFFERS EMPTY-BUFFER UPDATE UPDATED?
syn keyword forthBlocks SAVE-BUFFERS SAVE-BUFFER FLUSH THRU +LOAD +THRU syn keyword forthBlocks SAVE-BUFFERS SAVE-BUFFER FLUSH THRU +LOAD +THRU
syn keyword forthBlocks BLOCK-INCLUDED syn keyword forthBlocks BLOCK-INCLUDED BLK
" numbers " numbers
syn keyword forthMath DECIMAL HEX BASE syn keyword forthMath DECIMAL HEX BASE
syn match forthInteger '\<-\=[0-9.]*[0-9.]\+\>' syn match forthInteger '\<-\=[0-9]\+.\=\>'
syn match forthInteger '\<&-\=[0-9.]*[0-9.]\+\>' syn match forthInteger '\<&-\=[0-9]\+.\=\>'
" recognize hex and binary numbers, the '$' and '%' notation is for gforth " recognize hex and binary numbers, the '$' and '%' notation is for gforth
syn match forthInteger '\<\$\x*\x\+\>' " *1* --- dont't mess syn match forthInteger '\<\$\x*\x\+\>' " *1* --- dont't mess
syn match forthInteger '\<\x*\d\x*\>' " *2* --- this order! syn match forthInteger '\<\x*\d\x*\>' " *2* --- this order!
@ -253,28 +187,29 @@ syn match forthInteger '\<%[0-1]*[0-1]\+\>'
syn match forthFloat '\<-\=\d*[.]\=\d\+[DdEe]\d\+\>' syn match forthFloat '\<-\=\d*[.]\=\d\+[DdEe]\d\+\>'
syn match forthFloat '\<-\=\d*[.]\=\d\+[DdEe][-+]\d\+\>' syn match forthFloat '\<-\=\d*[.]\=\d\+[DdEe][-+]\d\+\>'
" XXX If you find this overkill you can remove it. This has to come after the " XXX If you find this overkill you can remove it. this has to come after the
" highlighting for numbers otherwise it has no effect. " highlighting for numbers otherwise it has no effect.
syn region forthComment start='0 \[if\]' end='\[endif\]' end='\[then\]' contains=forthTodo syn region forthComment start='0 \[if\]' end='\[endif\]' end='\[then\]' contains=forthTodo
" Strings " Strings
syn region forthString start=+\.*\"+ end=+"+ end=+$+ contains=@Spell syn region forthString start=+\.*\"+ end=+"+ end=+$+
" XXX " XXX
syn region forthString start=+s\"+ end=+"+ end=+$+ contains=@Spell syn region forthString start=+s\"+ end=+"+ end=+$+
syn region forthString start=+c\"+ end=+"+ end=+$+ contains=@Spell syn region forthString start=+s\\\"+ end=+"+ end=+$+
syn region forthString start=+c\"+ end=+"+ end=+$+
" Comments " Comments
syn match forthComment '\\\s.*$' contains=@Spell,forthTodo,forthSpaceError syn match forthComment '\\\s.*$' contains=forthTodo,forthSpaceError
syn region forthComment start='\\S\s' end='.*' contains=@Spell,forthTodo,forthSpaceError syn region forthComment start='\\S\s' end='.*' contains=forthTodo,forthSpaceError
syn match forthComment '\.(\s[^)]*)' contains=@Spell,forthTodo,forthSpaceError syn match forthComment '\.(\s[^)]*)' contains=forthTodo,forthSpaceError
syn region forthComment start='\(^\|\s\)\zs(\s' skip='\\)' end=')' contains=@Spell,forthTodo,forthSpaceError syn region forthComment start='\(^\|\s\)\zs(\s' skip='\\)' end=')' contains=forthTodo,forthSpaceError
syn region forthComment start='/\*' end='\*/' contains=@Spell,forthTodo,forthSpaceError syn region forthComment start='/\*' end='\*/' contains=forthTodo,forthSpaceError
" Include files " Include files
syn match forthInclude '^INCLUDE\s\+\k\+' syn match forthInclude '^INCLUDE\s\+\k\+'
syn match forthInclude '^require\s\+\k\+' syn match forthInclude '^REQUIRE\s\+\k\+'
syn match forthInclude '^fload\s\+' syn match forthInclude '^FLOAD\s\+'
syn match forthInclude '^needs\s\+' syn match forthInclude '^NEEDS\s\+'
" Locals definitions " Locals definitions
syn region forthLocals start='{\s' start='{$' end='\s}' end='^}' syn region forthLocals start='{\s' start='{$' end='\s}' end='^}'
@ -282,9 +217,6 @@ syn match forthLocals '{ }' " otherwise, at least two spaces between
syn region forthDeprecated start='locals|' end='|' syn region forthDeprecated start='locals|' end='|'
" Define the default highlighting. " Define the default highlighting.
" Only when an item doesn't have highlighting yet
" The default methods for highlighting. Can be overridden later.
hi def link forthTodo Todo hi def link forthTodo Todo
hi def link forthOperators Operator hi def link forthOperators Operator
hi def link forthMath Number hi def link forthMath Number
@ -318,11 +250,11 @@ hi def link forthInclude Include
hi def link forthLocals Type " nothing else uses type and locals must stand out hi def link forthLocals Type " nothing else uses type and locals must stand out
hi def link forthDeprecated Error " if you must, change to Type hi def link forthDeprecated Error " if you must, change to Type
hi def link forthFileMode Function hi def link forthFileMode Function
hi def link forthFunction Function
hi def link forthFileWords Statement hi def link forthFileWords Statement
hi def link forthBlocks Statement hi def link forthBlocks Statement
hi def link forthSpaceError Error hi def link forthSpaceError Error
let b:current_syntax = "forth" let b:current_syntax = "forth"
let &cpo = s:cpo_save let &cpo = s:cpo_save

View File

@ -1,7 +1,7 @@
" Vim syntax file " Vim syntax file
" Language: Haskell " Language: Haskell
" Maintainer: Haskell Cafe mailinglist <haskell-cafe@haskell.org> " Maintainer: Haskell Cafe mailinglist <haskell-cafe@haskell.org>
" Last Change: 2017 Jun 04 " Last Change: 2018 Mar 29 by Marcin Szamotulski
" Original Author: John Williams <jrw@pobox.com> " Original Author: John Williams <jrw@pobox.com>
" "
" Thanks to Ryan Crumley for suggestions and John Meacham for " Thanks to Ryan Crumley for suggestions and John Meacham for
@ -38,8 +38,8 @@ if exists("b:current_syntax")
endif endif
" (Qualified) identifiers (no default highlighting) " (Qualified) identifiers (no default highlighting)
syn match ConId "\(\<[A-Z][a-zA-Z0-9_']*\.\)\=\<[A-Z][a-zA-Z0-9_']*\>" syn match ConId "\(\<[A-Z][a-zA-Z0-9_']*\.\)\=\<[A-Z][a-zA-Z0-9_']*\>" contains=@NoSpell
syn match VarId "\(\<[A-Z][a-zA-Z0-9_']*\.\)\=\<[a-z][a-zA-Z0-9_']*\>" syn match VarId "\(\<[A-Z][a-zA-Z0-9_']*\.\)\=\<[a-z][a-zA-Z0-9_']*\>" contains=@NoSpell
" Infix operators--most punctuation characters and any (qualified) identifier " Infix operators--most punctuation characters and any (qualified) identifier
" enclosed in `backquotes`. An operator starting with : is a constructor, " enclosed in `backquotes`. An operator starting with : is a constructor,
@ -56,18 +56,18 @@ syn match hsDelimiter "(\|)\|\[\|\]\|,\|;\|_\|{\|}"
syn match hsSpecialChar contained "\\\([0-9]\+\|o[0-7]\+\|x[0-9a-fA-F]\+\|[\"\\'&\\abfnrtv]\|^[A-Z^_\[\\\]]\)" syn match hsSpecialChar contained "\\\([0-9]\+\|o[0-7]\+\|x[0-9a-fA-F]\+\|[\"\\'&\\abfnrtv]\|^[A-Z^_\[\\\]]\)"
syn match hsSpecialChar contained "\\\(NUL\|SOH\|STX\|ETX\|EOT\|ENQ\|ACK\|BEL\|BS\|HT\|LF\|VT\|FF\|CR\|SO\|SI\|DLE\|DC1\|DC2\|DC3\|DC4\|NAK\|SYN\|ETB\|CAN\|EM\|SUB\|ESC\|FS\|GS\|RS\|US\|SP\|DEL\)" syn match hsSpecialChar contained "\\\(NUL\|SOH\|STX\|ETX\|EOT\|ENQ\|ACK\|BEL\|BS\|HT\|LF\|VT\|FF\|CR\|SO\|SI\|DLE\|DC1\|DC2\|DC3\|DC4\|NAK\|SYN\|ETB\|CAN\|EM\|SUB\|ESC\|FS\|GS\|RS\|US\|SP\|DEL\)"
syn match hsSpecialCharError contained "\\&\|'''\+" syn match hsSpecialCharError contained "\\&\|'''\+"
syn region hsString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=hsSpecialChar syn region hsString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=hsSpecialChar,@NoSpell
syn match hsCharacter "[^a-zA-Z0-9_']'\([^\\]\|\\[^']\+\|\\'\)'"lc=1 contains=hsSpecialChar,hsSpecialCharError syn match hsCharacter "[^a-zA-Z0-9_']'\([^\\]\|\\[^']\+\|\\'\)'"lc=1 contains=hsSpecialChar,hsSpecialCharError
syn match hsCharacter "^'\([^\\]\|\\[^']\+\|\\'\)'" contains=hsSpecialChar,hsSpecialCharError syn match hsCharacter "^'\([^\\]\|\\[^']\+\|\\'\)'" contains=hsSpecialChar,hsSpecialCharError
syn match hsNumber "\<[0-9]\+\>\|\<0[xX][0-9a-fA-F]\+\>\|\<0[oO][0-7]\+\>" syn match hsNumber "\v<[0-9]%(_*[0-9])*>|<0[xX]_*[0-9a-fA-F]%(_*[0-9a-fA-F])*>|<0[oO]_*%(_*[0-7])*>|<0[bB]_*[01]%(_*[01])*>"
syn match hsFloat "\<[0-9]\+\.[0-9]\+\([eE][-+]\=[0-9]\+\)\=\>" syn match hsFloat "\v<[0-9]%(_*[0-9])*\.[0-9]%(_*[0-9])*%(_*[eE][-+]?[0-9]%(_*[0-9])*)?>|<[0-9]%(_*[0-9])*_*[eE][-+]?[0-9]%(_*[0-9])*>|<0[xX]_*[0-9a-fA-F]%(_*[0-9a-fA-F])*\.[0-9a-fA-F]%(_*[0-9a-fA-F])*%(_*[pP][-+]?[0-9]%(_*[0-9])*)?>|<0[xX]_*[0-9a-fA-F]%(_*[0-9a-fA-F])*_*[pP][-+]?[0-9]%(_*[0-9])*>"
" Keyword definitions. These must be patterns instead of keywords " Keyword definitions. These must be patterns instead of keywords
" because otherwise they would match as keywords at the start of a " because otherwise they would match as keywords at the start of a
" "literate" comment (see lhs.vim). " "literate" comment (see lhs.vim).
syn match hsModule "\<module\>" syn match hsModule "\<module\>"
syn match hsImport "\<import\>.*"he=s+6 contains=hsImportMod,hsLineComment,hsBlockComment syn match hsImport "\<import\>.*"he=s+6 contains=hsImportMod,hsLineComment,hsBlockComment,@NoSpell
syn match hsImportMod contained "\<\(as\|qualified\|hiding\)\>" syn match hsImportMod contained "\<\(as\|qualified\|hiding\)\>" contains=@NoSpell
syn match hsInfix "\<\(infix\|infixl\|infixr\)\>" syn match hsInfix "\<\(infix\|infixl\|infixr\)\>"
syn match hsStructure "\<\(class\|data\|deriving\|instance\|default\|where\)\>" syn match hsStructure "\<\(class\|data\|deriving\|instance\|default\|where\)\>"
syn match hsTypedef "\<\(type\|newtype\)\>" syn match hsTypedef "\<\(type\|newtype\)\>"
@ -97,8 +97,8 @@ endif
" Comments " Comments
syn match hsLineComment "---*\([^-!#$%&\*\+./<=>\?@\\^|~].*\)\?$" syn match hsLineComment "---*\([^-!#$%&\*\+./<=>\?@\\^|~].*\)\?$" contains=@Spell
syn region hsBlockComment start="{-" end="-}" contains=hsBlockComment syn region hsBlockComment start="{-" end="-}" contains=hsBlockComment,@Spell
syn region hsPragma start="{-#" end="#-}" syn region hsPragma start="{-#" end="#-}"
" C Preprocessor directives. Shamelessly ripped from c.vim and trimmed " C Preprocessor directives. Shamelessly ripped from c.vim and trimmed

View File

@ -3,8 +3,8 @@
" Maintainer: Jorge Maldonado Ventura <jorgesumle@freakspot.net> " Maintainer: Jorge Maldonado Ventura <jorgesumle@freakspot.net>
" Previous Maintainer: Claudio Fleiner <claudio@fleiner.com> " Previous Maintainer: Claudio Fleiner <claudio@fleiner.com>
" Repository: https://notabug.org/jorgesumle/vim-html-syntax " Repository: https://notabug.org/jorgesumle/vim-html-syntax
" Last Change: 2017 Sep 30 " Last Change: 2017 Dec 16
" included patch from Christian Brabandt to make use of the strikethrough attributes " Included patch from Jorge Maldonado Ventura to add the dialog element
" "
" Please check :help html.vim for some comments and a description of the options " Please check :help html.vim for some comments and a description of the options
@ -100,11 +100,11 @@ syn keyword htmlArg contained summary tabindex valuetype version
" html 5 arg names " html 5 arg names
syn keyword htmlArg contained allowfullscreen async autocomplete autofocus syn keyword htmlArg contained allowfullscreen async autocomplete autofocus
syn keyword htmlArg contained autoplay challenge contenteditable contextmenu syn keyword htmlArg contained autoplay challenge contenteditable contextmenu
syn keyword htmlArg contained controls crossorigin default dirname download syn keyword htmlArg contained controls crossorigin default dialog dirname
syn keyword htmlArg contained draggable dropzone form formaction formenctype syn keyword htmlArg contained download draggable dropzone form formaction
syn keyword htmlArg contained formmethod formnovalidate formtarget hidden syn keyword htmlArg contained formenctype formmethod formnovalidate formtarget
syn keyword htmlArg contained high icon inputmode keytype kind list loop low syn keyword htmlArg contained hidden high icon inputmode keytype kind list loop
syn keyword htmlArg contained max min minlength muted nonce novalidate open syn keyword htmlArg contained low max min minlength muted nonce novalidate open
syn keyword htmlArg contained optimum pattern placeholder poster preload syn keyword htmlArg contained optimum pattern placeholder poster preload
syn keyword htmlArg contained radiogroup required reversed sandbox spellcheck syn keyword htmlArg contained radiogroup required reversed sandbox spellcheck
syn keyword htmlArg contained sizes srcset srcdoc srclang step title translate syn keyword htmlArg contained sizes srcset srcdoc srclang step title translate

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