Compare commits

..

909 Commits

Author SHA1 Message Date
d8492792f2 patch 8.0.0460: can't build on HPUX
Problem:    Can't build on HPUX.
Solution:   Fix argument names in vim_stat(). (John Marriott)
2017-03-16 12:22:38 +01:00
fe70c51983 patch 8.0.0459: old fix for :move and folding no longer needed
Problem:    Old fix for :move messing up folding no longer needed, now that we
            have a proper solution.
Solution:   Revert patch 7.4.700. (Christian Brabandt)
2017-03-15 20:45:53 +01:00
42f45b850d patch 8.0.0458: potential crash if adding list or dict to dict fails
Problem:    Potential crash if adding list or dict to dict fails.
Solution:   Make sure the reference count is correct. (Nikolai Pavlov, closes
            #1555)
2017-03-14 22:17:14 +01:00
88d298aed8 patch 8.0.0457: using :move messes up manual folds
Problem:    Using :move messes up manual folds.
Solution:   Split adjusting marks and folds.  Add foldMoveRange(). (neovim
            patch #6221)
2017-03-14 21:53:58 +01:00
84be8b6660 patch 8.0.0456: typo in MinGW test makefile
Problem:    Typo in MinGW test makefile.
Solution:   Change an underscore to a dot. (Michael Soyka)
2017-03-13 22:41:42 +01:00
26a280c47a Fix duplication of patch. 2017-03-13 21:50:55 +01:00
ffea8c99d9 patch 8.0.0455: the mode test may hang
Problem:    The mode test may hang in Test_mode(). (Michael Soyka)
Solution:   Set 'complete' to only search the current buffer (as suggested by
            Michael)
2017-03-13 20:37:15 +01:00
977d037336 patch 8.0.0454: compiler warnings for "always true" comparison
Problem:    Compiler warnings for comparing unsigned char with 256 always
            being true. (Manuel Ortega)
Solution:   Add type cast.
2017-03-12 21:31:58 +01:00
025a6b708a patch 8.0.0453: adding fold marker creates new comment
Problem:    Adding fold marker creates new comment.
Solution:   Use an existing comment if possible. (LemonBoy, closes #1549)
2017-03-12 20:37:21 +01:00
1c46544412 patch 8.0.0452: some macros are in lower case
Problem:    Some macros are in lower case.
Solution:   Make a few more macros upper case.
2017-03-12 20:10:05 +01:00
91acfffc1e patch 8.0.0451: some macros are in lower case
Problem:    Some macros are in lower case.
Solution:   Make a few more macros upper case. Avoid lower case macros use an
            argument twice.
2017-03-12 19:22:36 +01:00
47ffb905f3 patch 8.0.0450: v:progpath is not reliably set
Problem:    v:progpath is not reliably set.
Solution:   Read /proc/self/exe if possible. (idea by Michal Grochmal)
            Also fixes missing #if.
2017-03-12 18:38:02 +01:00
abb4d5f73f patch 8.0.0449: part of fold patch accidentally included
Problem:    Part of fold patch accidentally included.
Solution:   Revert that part of the patch.
2017-03-12 18:32:32 +01:00
b5aedf3e22 patch 8.0.0448: some macros are in lower case
Problem:    Some macros are in lower case, which can be confusing.
Solution:   Make a few lower case macros upper case.
2017-03-12 18:23:53 +01:00
8774845ce1 patch 8.0.0447: getting font name does not work on X11
Problem:    Getting font name does not work on X11.
Solution:   Implement gui_mch_get_fontname() for X11.  Add more GUI tests.
            (Kazunobu Kuriyama)
2017-03-12 17:10:33 +01:00
454709baff patch 8.0.0446: the ";" command does not work after some characters
Problem:    The ";" command does not work after characters with a lower byte
            that is NUL.
Solution:   Properly check for not having a previous character. (Hirohito
            Higashi)
2017-03-12 16:37:14 +01:00
2fcf6688bc patch 8.0.0445: getpgid is not supported on all systems
Problem:    Getpgid is not supported on all systems.
Solution:   Add a configure check.
2017-03-11 20:03:42 +01:00
a95ab32120 patch 8.0.0444: diffpatch fails when the file name has a quote
Problem:    Diffpatch fails when the file name has a quote.
Solution:   Escape the name properly. (zetzei)
2017-03-11 19:21:53 +01:00
38a3d6c960 patch 8.0.0443: terminal width is set to 80 in test3
Problem:    Terminal width is set to 80 in test3.
Solution:   Instead of setting 'columns' set 'wrapmargin' depending on
            'columns.
2017-03-11 18:42:56 +01:00
1ef73e33c9 patch 8.0.0442: patch shell command not well escaped
Problem:    Patch shell command uses double quotes around the argument, which
            allows for $HOME to be expanded. (Etienne)
Solution:   Use single quotes on Unix. (closes #1543)
2017-03-09 19:21:30 +01:00
ad2cfb54b7 patch 8.0.0441: dead code in #ifdef
Problem:    Dead code in #ifdef.
Solution:   Remove the #ifdef and #else part.
2017-03-09 18:59:14 +01:00
eb992cb90f patch 8.0.0440: not enough test coverage in Insert mode
Problem:    Not enough test coverage in Insert mode.
Solution:   Add lots of tests.  Add test_override(). (Christian Brabandt,
            closes #1521)
2017-03-09 18:20:16 +01:00
69a92fb5ae patch 8.0.0439: ":%argdel" gives an error for an empty arglist
Problem:    Using ":%argdel" while the argument list is already empty gives an
            error. (Pavol Juhas)
Solution:   Don't give an error. (closes #1546)
2017-03-09 15:58:30 +01:00
056f700031 patch 8.0.0438: the fnamemodify test may cause later tests to fail
Problem:    The fnamemodify test changes 'shell' in a way later tests may not
            be able to use system().
Solution:   Save and restore 'shell'.
2017-03-09 14:00:27 +01:00
644df41c44 patch 8.0.0437: packadd test does not fully work
Problem:    The packadd test does not create the symlink correctly and does
            not test the right thing.
Solution:   Create the directory and symlink correctly.
2017-03-09 13:58:02 +01:00
ee1dd1cdc1 patch 8.0.0436: running the options test sometimes resizes the terminal
Problem:    Running the options test sometimes resizes the terminal.
Solution:   Clear out t_WS.
2017-03-09 13:55:01 +01:00
41042f3cfd patch 8.0.0435: some functions are not tested
Problem:    Some functions are not tested.
Solution:   Add more tests for functions. (Dominique Pelle, closes #1541)
2017-03-09 12:09:32 +01:00
5f69fee26e patch 8.0.0434: clang version not correctly detected
Problem:    Clang version not correctly detected.
Solution:   Adjust the configure script. (Kazunobu Kuriyama)
2017-03-09 11:58:40 +01:00
c3c766ea8c patch 8.0.0433: beeps when running tests
Problem:    Quite a few beeps when running tests.
Solution:   Set 'belloff' for these tests. (Christian Brabandt)
2017-03-08 22:55:19 +01:00
12d1dc9155 patch 8.0.0432: "make shadow" creates an invalid link
Problem:    "make shadow" creates an invalid link.
Solution:   Don't link "*.vim". (Kazunobu Kuriyama)
2017-03-08 22:39:50 +01:00
7720ba8599 patch 8.0.0431: 'cinoptions' cannot set indent for extern block
Problem:    'cinoptions' cannot set indent for extern block.
Solution:   Add the "E" flag in 'cinoptions'. (Hirohito Higashi)
2017-03-08 22:19:26 +01:00
bb962262eb patch 8.0.0430: options test fails or hangs on MS-Windows
Problem:    Options test fails or hangs on MS-Windows.
Solution:   Run it separately instead of part of test_alot.  Use "-S" instead
            of "-u" to run the script.  Fix failures.
2017-03-08 00:01:35 +01:00
e8512d7fed patch 8.0.0429: options test does not always test everything
Problem:    Options test does not always test everything.
Solution:   Fix dependency for opt_test.vim.  Give a message when opt_test.vim
            was not found.
2017-03-07 22:33:32 +01:00
65408f7dfb patch 8.0.0428: git and hg see new files after running tests
Problem:    Git and hg see new files after running tests. (Manuel Ortega)
Solution:   Add the generated file to .hgignore (or .gitignore). Delete the
            resulting verbose file. (Christian Brabandt)  Improve dependency
            on opt_test.vim.  Reset the 'more' option.
2017-03-07 21:31:27 +01:00
ad4187e6fc patch 8.0.0427: 'makeencoding' missing from the options window
Problem:    'makeencoding' missing from the options window.
Solution:   Add the entry.
2017-03-06 21:45:20 +01:00
300af82eca patch 8.0.0426: insufficient testing for statusline
Problem:    Insufficient testing for statusline.
Solution:   Add several tests. (Dominique Pelle, closes #1534)
2017-03-06 20:28:10 +01:00
a6c07603ca patch 8.0.0425: build errors when building without folding
Problem:    Build errors when building without folding.
Solution:   Add #ifdefs. (John Marriott)
2017-03-05 21:18:27 +01:00
f7e894dfb6 patch 8.0.0424: compiler warnings on MS-Windows
Problem:    Compiler warnings on MS-Windows. (Ajit Thakkar)
Solution:   Add type casts.
2017-03-05 19:49:13 +01:00
6b64394f34 patch 8.0.0423: changing 'cinoptions' does not always work
Problem:    The effect of adding "#" to 'cinoptions' is not always removed.
            (David Briscoe)
Solution:   Reset b_ind_hash_comment. (Christian Brabandt, closes #1475)
2017-03-05 19:44:06 +01:00
f411a3c5af patch 8.0.0422: Python test fails with Python 3.6
Problem:    Python test fails with Python 3.6.
Solution:   Convert new exception messages to old ones. (closes #1359)
2017-03-05 19:00:34 +01:00
f58a8475e1 patch 8.0.0421: diff mode wrong when adding line at end of buffer
Problem:    Diff mode is displayed wrong when adding a line at the end of a
            buffer.
Solution:   Adjust marks in diff mode. (James McCoy, closes #1329)
2017-03-05 18:03:04 +01:00
2c7292dc5b patch 8.0.0420: text garbled when the system encoding differs from 'encoding'
Problem:    When running :make the output may be in the system encoding,
            different from 'encoding'.
Solution:   Add the 'makeencoding' option. (Ken Takata)
2017-03-05 17:43:31 +01:00
214641f77d Runtime file updates. 2017-03-05 17:04:09 +01:00
066029ef92 patch 8.0.0419: test for v:progpath fails on MS-Windows
Problem:    Test for v:progpath fails on MS-Windows.
Solution:   Expand to full path.  Also add ".exe" when the path is an absolute
            path.
2017-03-05 15:19:32 +01:00
a382868115 patch 8.0.0418: ASAN logs are disabled
Problem:    ASAN logs are disabled and don't cause a failure.
Solution:   Enable ASAN logs and fail if not empty. (James McCoy,
            closes #1425)
2017-03-05 14:56:07 +01:00
0fbff646d5 patch 8.0.0417: test for the clipboard fails sometimes
Problem:    Test for the clipboard fails sometimes.
Solution:   Add it to the flaky tests.
2017-03-05 14:30:52 +01:00
4366319697 patch 8.0.0416: setting v:progpath is not quite right
Problem:    Setting v:progpath is not quite right.
Solution:   On MS-Windows add the extension. On Unix use the full path for a
            relative directory. (partly by James McCoy, closes #1531)
2017-03-05 14:29:12 +01:00
0f9ea22c11 patch 8.0.0415: balloon test fails on MS-Windows
Problem:    Balloon test fails on MS-Windows.
Solution:   Test with 0x7fffffff instead of 0xffffffff.
2017-03-05 13:48:13 +01:00
d5841f28d4 patch 8.0.0414: balloon eval is not tested
Problem:    Balloon eval is not tested.
Solution:   Add a few balloon tests. (Kazunobu Kuriyama)
2017-03-05 13:27:25 +01:00
a1c8ecfda9 patch 8.0.0413: menu test fails on MS-Windows using gvim
Problem:    Menu test fails on MS-Windows using gvim.
Solution:   First delete the English menus.
2017-03-04 21:41:05 +01:00
5558d19432 patch 8.0.0412: menu test fails on MS-Windows
Problem:    Menu test fails on MS-Windows.
Solution:   Use a menu entry with only ASCII characters.
2017-03-04 21:02:22 +01:00
11dd8c1201 patch 8.0.0411: menu translations don't match when case is changed.
Problem:    We can't change the case in menu entries, it breaks translations.
Solution:   Ignore case when looking up a menu translation.
2017-03-04 20:41:34 +01:00
a54d2fc0d3 patch 8.0.0410: newer gettext/iconv library has extra dll file
Problem:    Newer gettext/iconv library has extra dll file.
Solution:   Add the file to the Makefile and nsis script. (Christian Brabandt)
2017-03-04 20:09:34 +01:00
595297d6d5 patch 8.0.0409: set_progpath is defined but not always used
Problem:    set_progpath is defined but not always used
Solution:   Adjust #ifdef.
2017-03-04 19:11:12 +01:00
eadbc2b461 patch 8.0.0408: updating folds does not always work properly
Problem:    Updating folds does not work properly when inserting a file and a
            few other situations.
Solution:   Adjust the way folds are updated. (Matthew Malcomson)
2017-03-04 18:42:39 +01:00
3f3897e41f patch 8.0.0407: filtering folds with marker method not tested
Problem:    Filtering folds with marker method not tested.
Solution:   Also set 'foldmethod' to "marker".
2017-03-04 15:28:53 +01:00
7f73b54631 patch 8.0.0406: arabic shaping code is verbose
Problem:    The arabic shaping code is verbose.
Solution:   Shorten the code without changing the functionality.
2017-03-04 14:50:19 +01:00
08cab96087 patch 8.0.0405: v:progpath may become invalid after :cd
Problem:    v:progpath may become invalid after ":cd".
Solution:   Turn v:progpath into a full path if needed.
2017-03-04 14:37:18 +01:00
391b1dd040 patch 8.0.0404: not enough testing for quickfix
Problem:    Not enough testing for quickfix.
Solution:   Add some more tests. (Yegappan Lakshmanan)
2017-03-04 13:47:11 +01:00
24d7636e98 patch 8.0.0403: GUI tests may fail
Problem:    GUI tests may fail.
Solution:   Ignore the E285 error better. (Kazunobu Kuriyama)
2017-03-04 13:32:10 +01:00
cf5fdf7d16 patch 8.0.0402: :map completion does not have <special>
Problem:    :map completion does not have <special>. (Dominique Pelle)
Solution:   Recognize <special> in completion.  Add a test.
2017-03-02 23:05:51 +01:00
a0107bdf87 patch 8.0.0401: test fails with missing balloon feature
Problem:    Test fails with missing balloon feature.
Solution:   Add check for balloon feature.
2017-03-02 22:48:01 +01:00
358f6b0a36 patch 8.0.0400: some tests have a one second delay
Problem:    Some tests have a one second delay.
Solution:   Add --not-a-term in RunVim().
2017-03-02 22:43:01 +01:00
caf6434ac9 patch 8.0.0399: crash when using balloon_show() when not supported
Problem:    Crash when using balloon_show() when not supported. (Hirohito
            Higashi)
Solution:   Check for balloonEval not to be NULL. (Ken Takata)
2017-03-02 22:11:33 +01:00
66727e1607 patch 8.0.0398: illegal memory access with "t"
Problem:    Illegal memory access with "t".
Solution:   Use strncmp() instead of memcmp(). (Dominique Pelle, closes #1528)
2017-03-01 22:17:05 +01:00
5a66dfb25e patch 8.0.0397: can't build with +viminfo but without +eval
Problem:    Cannot build with the viminfo feature but without the eval
            feature.
Solution:   Adjust #ifdef. (John Marriott)
2017-03-01 20:40:39 +01:00
59716a27bd patch 8.0.0396: 'balloonexpr' only works synchronously
Problem:    'balloonexpr' only works synchronously.
Solution:   Add balloon_show(). (Jusufadis Bakamovic, closes #1449)
2017-03-01 20:32:44 +01:00
f8ab1b14fd patch 8.0.0395: testing the + register fails with Motif
Problem:    Testing the + register fails with Motif.
Solution:   Also ignore the "failed to create input context" error in the
            second gvim.  Don't use msg() when it would result in a dialog.
2017-03-01 18:30:34 +01:00
abc39ab642 patch 8.0.0394: tabs are not aligned when scrolling horizontally
Problem:    Tabs are not aligned when scrolling horizontally and a Tab doesn't
            fit. (Axel Bender)
Solution:   Handle a Tab as a not fitting character. (Christian Brabandt)
            Also fix that ":redraw" does not scroll horizontally to show the
            cursor.  And fix the test that depended on the old behavior.
2017-03-01 18:04:05 +01:00
98e83b2956 patch 8.0.0393: order of duplicate tags is not preserved
Problem:    When the same tag appears more than once, the order is
            unpredictable. (Charles Campbell)
Solution:   Besides using a dict for finding duplicates, use a grow array for
            keeping the tags in sequence.
2017-03-01 15:45:05 +01:00
e0c31f6a30 patch 8.0.0392: GUI test fails with Athena and Motif
Problem:    GUI test fails with Athena and Motif.
Solution:   Add test_ignore_error().  Use it to ignore the "failed to create
            input context" error.
2017-03-01 15:07:05 +01:00
5f53dd3f74 patch 8.0.0391: arabic support is verbose and not well tested
Problem:    Arabic support is verbose and not well tested.
Solution:   Simplify the code.  Add more tests.
2017-03-01 14:02:30 +01:00
cb03642399 patch 8.0.0390: when the window scrolls the popup menu may be garbled
Problem:    When the window scrolls horizontally when the popup menu is
            displayed part of it may not be cleared. (Neovim issue #6184)
Solution:   Remove the menu when the windows scrolled. (closes #1524)
2017-03-01 12:29:10 +01:00
5342f00ff9 patch 8.0.0389: test for arabic does not check what is displayed
Problem:    Test for arabic does not check what is displayed.
Solution:   Improve what is asserted. (Dominique Pelle, closes #1523)
            Add a first shaping test.
2017-02-28 22:51:12 +01:00
1159b168dd patch 8.0.0388: filtering lines changes folds
Problem:    filtering lines through "cat", without changing the line count,
            changes manual folds.
Solution:   Change how marks and folds are adjusted. (Matthew Malcomson, from
            neovim #6194.
2017-02-28 21:53:56 +01:00
b113c3a618 patch 8.0.0387: compiler warnings
Problem:    compiler warnings
Solution:   Add type casts. (Christian Brabandt)
2017-02-28 21:26:17 +01:00
5b3af14b34 patch 8.0.0386: tiny build has a problem with generating the options test
Problem:    Tiny build has a problem with generating the options test.
Solution:   Change the "if" to skip over statements.
2017-02-27 22:59:40 +01:00
b5e8377364 patch 8.0.0385: no tests for arabic
Problem:    No tests for arabic.
Solution:   Add a first test for arabic. (Dominique Pelle, closes #1518)
2017-02-27 21:48:26 +01:00
d512e17ea4 patch 8.0.0384: timer test failed for no apparent reason
Problem:    Timer test failed for no apparent reason.
Solution:   Mark the test as flaky.
2017-02-27 21:35:53 +01:00
10a8da0594 patch 8.0.0383: misplaced #ifdef
Problem:    Misplaced #ifdef. (Christ van Willigen)
Solution:   Split assignment.
2017-02-27 21:11:35 +01:00
88e7688eda patch 8.0.0382: warning in tiny build for unused variable
Problem:    Warning in tiny build for unused variable. (Tony Mechelynck)
Solution:   Add #ifdefs.
2017-02-27 20:33:46 +01:00
aeb661e1f4 patch 8.0.0381: diff mode is not sufficiently tested
Problem:    Diff mode is not sufficiently tested.
Solution:   Add more diff mode tests. (Dominique Pelle, closes #1515)
2017-02-26 19:59:59 +01:00
38632faf63 patch 8.0.0380: with 'linebreak' double wide char wraps badly
Problem:    With 'linebreak' set and 'breakat' includes ">" a double-wide
            character results in "<<" displayed.
Solution:   Check for the character not to be replaced. (Ozaki Kiichi,
            closes #1456)
2017-02-26 19:40:59 +01:00
74a47162a0 patch 8.0.0379: CTRL-Z and mouse click use CTRL-O unnecessary
Problem:    CTRL-Z and mouse click use CTRL-O unnecessary.
Solution:   Remove stuffing CTRL-O. (James McCoy, closes #1453)
2017-02-26 19:09:05 +01:00
0c8485f0e4 patch 8.0.0378: possible overflow when reading corrupted undo file
Problem:    Another possible overflow when reading corrupted undo file.
Solution:   Check if allocated size is not too big. (King)
2017-02-26 18:17:10 +01:00
3eb1637b1b patch 8.0.0377: possible overflow when reading corrupted undo file
Problem:    Possible overflow when reading corrupted undo file.
Solution:   Check if allocated size is not too big. (King)
2017-02-26 18:11:36 +01:00
6d3c8586fc patch 8.0.0376: size computations in spell file reading are off
Problem:    Size computations in spell file reading are not exactly right.
Solution:   Make "len" a "long" and check with LONG_MAX.
2017-02-26 15:27:23 +01:00
5074a0e033 patch 8.0.0375: the "+ register is not tested
Problem:    The "+ register is not tested.
Solution:   Add a test using another Vim instance to change the "+ register.
            (Kazuki Kuriyama)
2017-02-26 15:08:21 +01:00
ba748c8a84 patch 8.0.0374: invalid memory access when using :sc in Ex mode
Problem:    Invalid memory access when using :sc in Ex mode. (Dominique Pelle)
Solution:   Avoid the column being negative.  Also fix a hang in Ex mode.
2017-02-26 14:00:07 +01:00
376407674f patch 8.0.0373: build fails without +folding
Problem:    Build fails without +folding.
Solution:   Move misplaced #ifdef.
2017-02-25 22:37:15 +01:00
a713ff819d patch 8.0.0372: more options are not always defined
Problem:    More options are not always defined.
Solution:   Consistently define all possible options.
2017-02-25 22:18:43 +01:00
14c2e18b63 patch 8.0.0371: leaking memory when setting v:completed_item
Problem:    Leaking memory when setting v:completed_item.
Solution:   Or the flags instead of setting them.
2017-02-25 21:39:17 +01:00
a12e40351d patch 8.0.0370: invalid memory access when setting wildchar empty
Problem:    Invalid memory access when setting wildchar empty.
Solution:   Avoid going over the end of the option value. (Dominique Pelle,
            closes #1509)  Make option test check all number options with
            empty value.
2017-02-25 21:37:57 +01:00
c43a8b8de0 patch 8.0.0369: a few options are not defined, depending on features
Problem:    The 'balloondelay', 'ballooneval' and 'balloonexpr' options are
            not defined without the +balloon_eval feature. Testing that an
            option value fails does not work for unsupported options.
Solution:   Make the options defined but not supported.  Don't test if
            setting unsupported options fails.
2017-02-25 21:12:29 +01:00
2f5463df01 patch 8.0.0368: not all options are tested with a range of values
Problem:    Not all options are tested with a range of values.
Solution:   Generate a test script from the source code.
2017-02-25 20:40:46 +01:00
f7506cade4 patch 8.0.0367: types in include files may be inconsistent
Problem:    If configure defines _LARGE_FILES some include files are included
            before it is defined.
Solution:   Include vim.h first. (Sam Thursfield, closes #1508)
2017-02-25 16:01:49 +01:00
92769c3928 patch 8.0.0366: build fails with tiny features
Problem:    Build fails with tiny features.
Solution:   Add #ifdef.
2017-02-25 15:41:37 +01:00
95c526e1f6 patch 8.0.0365: might free a dict item that wasn't allocated
Problem:    Might free a dict item that wasn't allocated.
Solution:   Call dictitem_free(). (Nikolai Pavlov)  Use this for
            b:changedtick.
2017-02-25 14:59:34 +01:00
d3f78dc9eb patch 8.0.0364: ]s does not move cursor with two spell errors in one line
Problem:    ]s does not move cursor with two spell errors in one line. (Manuel
            Ortega)
Solution:   Don't stop search immediately when wrapped, search the line first.
            (Ken Takata)  Add a test.
2017-02-25 14:21:10 +01:00
3834e3d039 patch 8.0.0363: Travis is too slow to keep up with patches
Problem:    Travis is too slow to keep up with patches.
Solution:   Increase git depth to 20
2017-02-23 20:20:53 +01:00
10c6029e28 patch 8.0.0362: tests fail on MS-Windows
Problem:    Tests fail on MS-Windows.
Solution:   Use $*.vim instead of $<.
2017-02-23 20:17:13 +01:00
8be2fbb670 patch 8.0.0361: GUI initialisation is not sufficiently tested
Problem:    GUI initialisation is not sufficiently tested.
Solution:   Add the gui_init test. (Kazuki Kuriyama)
2017-02-23 19:32:47 +01:00
b544f3c81f patch 8.0.0360: sometimes VimL is used instead of "Vim script"
Problem:    Sometimes VimL is used, which is confusing.
Solution:   Consistently use "Vim script". (Hirohito Higashi)
2017-02-23 19:03:28 +01:00
dc9a081712 patch 8.0.0359: 'number' and 'relativenumber' are not properly tested
Problem:    'number' and 'relativenumber' are not properly tested.
Solution:   Add tests, change old style to new style tests. (Ozaki Kiichi,
            closes #1447)
2017-02-23 18:46:50 +01:00
60629d6425 patch 8.0.0358: invalid memory access in C-indent code
Problem:    Invalid memory access in C-indent code.
Solution:   Don't go over end of empty line. (Dominique Pelle, closes #1492)
2017-02-23 18:08:56 +01:00
24922ec233 patch 8.0.0357: crash when setting 'guicursor' to weird value
Problem:    Crash when setting 'guicursor' to weird value.
Solution:   Avoid negative size. (Dominique Pelle, closes #1465)
2017-02-23 17:59:22 +01:00
354796c19a patch 8.0.0356: leaking memory when setting 'ttytype'
Problem:    Leaking memory when setting 'ttytype'.
Solution:   Get free_oldval from the right option entry.
2017-02-23 17:18:37 +01:00
187a4f2814 patch 8.0.0355: using uninitialized memory when 'isfname' is empty
Problem:    Using uninitialized memory when 'isfname' is empty.
Solution:   Don't call getpwnam() without an argument. (Dominique Pelle,
            closes #1464)
2017-02-23 17:07:14 +01:00
1c410400fa patch 8.0.0354: test to check that setting termcap key fails sometimes
Problem:    Test to check that setting termcap key fails sometimes.
Solution:   Check for "t_k1" to exist. (Christian Brabandt, closes #1459)
2017-02-23 15:20:03 +01:00
3457d295f4 patch 8.0.0353: if [RO] is translated it may be truncated
Problem:    If [RO] in the status line is translated to a longer string, it is
            trunctted to 4 bytes.
Solution:   Skip over the resulting string. (Jente Hidskes, closes #1499)
2017-02-23 14:55:59 +01:00
f06e5a549f patch 8.0.0352: not easy to see when a typval needs to be cleared
Problem:    The condition for when a typval needs to be cleared is too
            complicated.
Solution:   Init the type to VAR_UNKNOWN and clear it always.
2017-02-23 14:25:17 +01:00
218426896c patch 8.0.0351: no test for concatenating an empty string
Problem:    No test for concatenating an empty string that results from out of
            bounds indexing.
Solution:   Add a simple test.
2017-02-23 13:50:38 +01:00
ae177b7166 patch 8.0.0350: not enough test coverage for Perl
Problem:    Not enough test coverage for Perl.
Solution:   Add more Perl tests. (Dominique Perl, closes #1500)
2017-02-23 13:45:57 +01:00
fe344a9875 patch 8.0.0349: redrawing errors with GTK 3
Problem:    Redrawing errors with GTK 3.
Solution:   When updating, first clear all rectangles and then draw them.
            (Kazunobu Kuriyama, Christian Ludwig, closes #848)
2017-02-23 12:20:35 +01:00
b7a59906d7 patch 8.0.0348: using shadow dir on Mac lack +clipboard
Problem:    When building with a shadow directory on macOS lacks the
            +clipboard feature.
Solution:   Link *.m files, specifically os_macosx.m. (Kazunobu Kuriyama)
2017-02-22 22:04:04 +01:00
d099e03370 patch 8.0.0347: when using completion comment leader wont work
Problem:    When using CTRL-X CTRL-U inside a comment, the use of the comment
            leader may not work. (Klement)
Solution:   Save and restore did_ai. (Christian Brabandt, closes #1494)
2017-02-21 23:00:36 +01:00
bfd30590f6 patch 8.0.0346: Vim relies on limits.h to be included indirectly
Problem:    Vim relies on limits.h to be included indirectly, but on Solaris 9
            it may not be. (Ben Fritz)
Solution:   Always include limits.h.
2017-02-21 21:57:06 +01:00
3a25773772 patch 8.0.0345: islocked('d.changedtick') does not work
Problem:    islocked('d.changedtick') does not work.
Solution:   Make it work.
2017-02-21 20:47:13 +01:00
49439c4cdf patch 8.0.0344: unlet command leaks memory
Problem:    Unlet command leaks memory. (Nikolai Pavlov)
Solution:   Free the memory on error. (closes #1497)
2017-02-20 23:07:05 +01:00
e7877fe0de patch 8.0.0343: b:changedtick can be unlocked
Problem:    b:changedtick can be unlocked, even though it has no effect.
            (Nikolai Pavlov)
Solution:   Add a check and error E940. (closes #1496)
2017-02-20 22:35:33 +01:00
673911457d patch 8.0.0342: double free with EXITFREE and setting 'ttytype'
Problem:    Double free when compiled with EXITFREE and setting 'ttytype'.
Solution:   Avoid setting P_ALLOCED on 'ttytype'. (Dominique Pelle,
            closes #1461)
2017-02-19 21:07:04 +01:00
d56a79d339 patch 8.0.0341: undo does not work properly when using completion
Problem:    When using complete() and typing a character undo is saved after
            the character was inserted. (Shougo)
Solution:   Save for undo before inserting the character.
2017-02-19 15:26:18 +01:00
5acff71d3b patch 8.0.0340: not checking return valud of dict_add()
Problem:    Not checking return valud of dict_add(). (Coverity)
Solution:   Handle a failure.
2017-02-19 13:55:02 +01:00
46522af724 patch 8.0.0339: illegal memory access with vi'
Problem:    Illegal memory access with vi'
Solution:   For quoted text objects bail out if the Visual area spans more
            than one line.
2017-02-18 23:12:01 +01:00
803452046b patch 8.0.0338: :recover test fails on MS-Windows
Problem:    :recover test fails on MS-Windows.
Solution:   Use non-existing directory on MS-Windows.
2017-02-18 22:43:19 +01:00
c525e3a1c2 patch 8.0.0337: invalid memory access in :recover command
Problem:    Invalid memory access in :recover command.
Solution:   Avoid access before directory name. (Dominique Pelle,
            closes #1488)
2017-02-18 16:59:02 +01:00
3df0173fa6 Updated runtime files. 2017-02-17 22:47:16 +01:00
8c50d50b6e patch 8.0.0336: flags of :substitute not sufficiently tested
Problem:    Flags of :substitute not sufficiently tested.
Solution:   Test up to two letter flag combinations. (James McCoy, closes
            #1479)
2017-02-17 18:28:24 +01:00
507647da31 patch 8.0.0335: functions test fails
Problem:    Functions test fails.
Solution:   Use the right buffer number.
2017-02-17 16:43:49 +01:00
79518e2ace patch 8.0.0334: can't access b:changedtick from a dict reference
Problem:    Can't access b:changedtick from a dict reference.
Solution:   Make changedtick a member of the b: dict. (inspired by neovim
            #6112)
2017-02-17 16:31:35 +01:00
226c534291 patch 8.0.0333: illegal memory access when 'complete' ends in a backslash
Problem:    Illegal memory access when 'complete' ends in a backslash.
Solution:   Check for trailing backslash. (Dominique Pelle, closes #1478)
2017-02-17 14:53:15 +01:00
4e9dbc74df patch 8.0.0332: GUI test fails on some systems
Problem:    GUI test fails on some systems.
Solution:   Try different language settings. (Kazunobu Kuriyama)
2017-02-17 13:44:48 +01:00
343b8c0429 patch 8.0.0331: restoring help snapshot accesses freed memory
Problem:    Restoring help snapshot accesses freed memory. (Dominique Pelle)
Solution:   Don't restore a snapshot when the window closes.
2017-02-17 12:04:56 +01:00
84b2a38145 patch 8.0.0330: illegal memory access after "vapo"
Problem:    Illegal memory access after "vapo". (Dominique Pelle)
Solution:   Fix the cursor column.
2017-02-17 11:40:00 +01:00
1043467482 patch 8.0.0329: xfontset and guifontwide are not tested
Problem:    Xfontset and guifontwide are not tested.
Solution:   Add tests. (Kazunobu Kuriyama)
2017-02-12 19:59:08 +01:00
23a5558cfd patch 8.0.0328: the "zero count" error doesn't have a number
Problem:    The "zero count" error doesn't have a number. (Hirohito Higashi)
Solution:   Give it a number and be more specific about the error.
2017-02-12 18:45:25 +01:00
75c19464ed patch 8.0.0327: error message in cmdline window is not translated
Problem:    The E11 error message in the command line window is not
            translated.
Solution:   use _(). (Hirohito Higashi)
2017-02-12 18:34:05 +01:00
24f8f543d4 patch 8.0.0326: packadd test uses wrong directory name
Problem:    Packadd test uses wrong directory name.
Solution:   Use the variable name value. (Hirohito Higashi)
2017-02-11 23:00:36 +01:00
913727e567 patch 8.0.0325: packadd test does not clean up symlink
Problem:    Packadd test does not clean up symlink.
Solution:   Delete the link. (Hirohito Higashi)
2017-02-11 11:34:58 +01:00
f1f6f3f7df patch 8.0.0324: illegal memory access with a wrong yank range
Problem:    Illegal memory access with "1;y".
Solution:   Call check_cursor() instead of check_cursor_lnum(). (Dominique
            Pelle, closes #1455)
2017-02-09 22:28:20 +01:00
31eb139b88 patch 8.0.0323: one second pause when running cmdline test
Problem:    When running the command line tests there is a one second wait.
Solution:   Change an Esc to Ctrl-C. (Yegappan Lakshmanan)
2017-02-09 21:44:03 +01:00
399c297aa9 patch 8.0.0322: possible overflow with corrupted spell file
Problem:    Possible overflow with spell file where the tree length is
            corrupted.
Solution:   Check for an invalid length (suggested by shqking)
2017-02-09 21:07:12 +01:00
8cc2a9c062 patch 8.0.0321: errors when trying to use scripts in tiny version
Problem:    When using the tiny version trying to load the matchit plugin
            gives an error. On MS-Windows some default mappings fail.
Solution:   Add a check if the command used is available. (Christian Brabandt)
2017-02-09 20:22:30 +01:00
4d8505155e patch 8.0.0320: warning for unused variable with small build
Problem:    Warning for unused variable with small build.
Solution:   Change #ifdef to exclude FEAT_CMDWIN. (Kazunobu Kuriyama)
2017-02-09 18:25:14 +01:00
190b04cdd9 patch 8.0.0319: insert mode completion does not respect 'backspace'
Problem:    Insert mode completion does not respect "start" in 'backspace'.
Solution:   Check whether backspace can go before where insert started.
            (Hirohito Higashi)
2017-02-09 17:37:03 +01:00
a9f8ffb634 patch 8.0.0318: small mistake in 7x13 font name
Problem:    Small mistake in 7x13 font name.
Solution:   Use ISO 8859-1 name instead of 10646-1. (Kazunobu Kuriyama)
2017-02-09 16:14:53 +01:00
43dded8c59 patch 8.0.0317: no test for setting 'guifont'
Problem:    No test for setting 'guifont'.
Solution:   Add a test for X11 GUIs. (Kazunobu Kuriyama)
2017-02-09 16:06:17 +01:00
dad7309dd2 patch 8.0.0316: :help z? does not work
Problem:    ":help z?" does not work. (Pavol Juhas)
Solution:   Remove exception for z?.
2017-02-09 11:54:50 +01:00
a76f59d817 patch 8.0.0315: :help :[range] does not work
Problem:    ":help :[range]" does not work. (Tony Mechelynck)
Solution:   Translate to insert a backslash.
2017-02-09 11:41:01 +01:00
65189a1294 patch 8.0.0314: getcmd*() functions are not tested
Problem:    getcmdtype(), getcmdpos() and getcmdline() are not tested.
Solution:   Add tests. (Yegappan Lakshmanan)
2017-02-06 22:22:17 +01:00
6f785749db patch 8.0.0313: not enough testing for GUI functionality
Problem:    Not enough testing for GUI functionality.
Solution:   Add tests for the GUI font. (Kazunobu Kuriyama)
2017-02-06 22:11:55 +01:00
88989cc381 patch 8.0.0312: failure when a channel receives a split json message
Problem:    When a json message arrives in pieces, the start is dropped and
            the decoding fails.
Solution:   Do not drop the start when it is still needed. (Kay Zheng)  Add a
            test.  Reset the timeout when something is received.
2017-02-06 21:56:09 +01:00
544d3bc9f0 patch 8.0.0311: linebreak tests are old style
Problem:    Linebreak tests are old style.
Solution:   Turn the tests into new style. Share utility functions. (Ozaki
            Kiichi, closes #1444)
2017-02-05 21:14:50 +01:00
13c724fb3a patch 8.0.0310: not enough testing for GUI functionality
Problem:    Not enough testing for GUI functionality.
Solution:   Add tests for v:windowid and getwinpos[xy](). (Kazunobu Kuriyama)
2017-02-05 20:54:26 +01:00
059b7482a2 patch 8.0.0309: cannot use an empty key in json
Problem:    Cannot use an empty key in json.
Solution:   Allow for using an empty key.
2017-02-05 16:34:43 +01:00
2f9e575583 patch 8.0.0308: 'runtimepath' not update correctly when using symbolic link
Problem:    When using a symbolic link, the package path will not be inserted
            at the right position in 'runtimepath'. (Dugan Chen, Norio Takagi)
Solution:   Resolve symbolic links when finding the right position in
            'runtimepath'. (Hirohito Higashi)
2017-02-05 16:07:54 +01:00
955f198fc5 patch 8.0.0307: asan detects a memory error when EXITFREE is defined
Problem:    Asan detects a memory error when EXITFREE is defined. (Dominique
            Pelle)
Solution:   In getvcol() check for ml_get_buf() returning an empty string.
            Also skip adjusting the scroll position.  Set "exiting" in
            mch_exit() for all systems.
2017-02-05 15:10:51 +01:00
e971df39a5 patch 8.0.0306: mode() not sufficiently tested
Problem:    mode() not sufficiently tested.
Solution:   Add more tests. (Yegappan Lakshmanan)
2017-02-05 14:15:29 +01:00
aaaf57d8a9 patch 8.0.0305: invalid memory access when option has duplicate flag
Problem:    Invalid memory access when option has duplicate flag.
Solution:   Correct pointer computation. (Dominique Pelle, closes #1442)
2017-02-05 14:13:20 +01:00
1fb0d49803 patch 8.0.0304: assign test fails in the GUI
Problem:    Assign test fails in the GUI.
Solution:   Skip the test for setting t_k1.
2017-02-04 21:50:19 +01:00
a1891848d9 patch 8.0.0303: bracketed paste does not work in Visual mode
Problem:    Bracketed paste does not work in Visual mode.
Solution:   Delete the text before pasting
2017-02-04 21:34:31 +01:00
e353c402e6 patch 8.0.0302: cannot set terminal key codes with :let
Problem:    Cannot set terminal key codes with :let.
Solution:   Make it work.
2017-02-04 19:49:16 +01:00
698f8b207b patch 8.0.0301: not enough testing for setting options
Problem:    No tests for ":set completion" and various errors of the :set
            command.
Solution:   Add more :set tests. (Dominique Pelle, closes #1440)
2017-02-04 15:53:32 +01:00
25ea054458 patch 8.0.0300: cannot stop diffing hidden buffers
Problem:    Cannot stop diffing hidden buffers. (Daniel Hahler)
Solution:   When using :diffoff! make the whole list if diffed buffers empty.
            (closes #736)
2017-02-03 23:16:28 +01:00
6b40f30329 patch 8.0.0299: a window resize is sometimes not taking effect
Problem:    When the GUI window is resized Vim does not always take over the
            new size. (Luchr)
Solution:   Reset new_p_guifont in gui_resize_shell().  Call
            gui_may_resize_shell() in the main loop.
2017-02-03 22:01:47 +01:00
cbf20fbcd3 patch 8.0.0298: Ex command range with repeated search does not work
Problem:    Ex command range with repeated search does not work. (Bruce
            DeVisser)
Solution:   Skip over \/, \? and \&.
2017-02-03 21:19:04 +01:00
03ff9bcbc9 patch 8.0.0297: double free on exit when using a closure
Problem:    Double free on exit when using a closure. (James McCoy)
Solution:   Split free_al_functions in two parts. (closes #1428)
2017-02-02 22:59:27 +01:00
fd8983b09c patch 8.0.0296: bracketed paste can only append, not insert
Problem:    Bracketed paste can only append, not insert.
Solution:   When the cursor is in the first column insert the text.
2017-02-02 22:21:29 +01:00
7a073549a3 patch 8.0.0295: test_viml hangs
Problem:    test_viml hangs.
Solution:   Put resetting 'more' before sourcing the script.
2017-02-01 23:17:36 +01:00
79da563cf9 patch 8.0.0294: argument list is not stored correctly in a session file
Problem:    Argument list is not stored correctly in a session file.
            (lgpasquale)
Solution:   Use "$argadd" instead of "argadd". (closes #1434)
2017-02-01 22:52:44 +01:00
e5f2a075e3 patch 8.0.0293: some tests have a one or three second wait
Problem:    Some tests have a one or three second wait.
Solution:   Reset the 'showmode' option.  Use a test time of one to disable
            sleep after an error or warning message.
2017-02-01 22:31:49 +01:00
a2f28859bf patch 8.0.0292: the stat test is a bit slow
Problem:    The stat test is a bit slow.
Solution:   Remove a couple of sleep comments and reduce another.
2017-02-01 22:05:28 +01:00
23fa81d222 patch 8.0.0291: Visual block insertion does not insert in all lines
Problem:    Visual block insertion does not insert in all lines.
Solution:   Don't bail out of insert too early. Add a test. (Christian
            Brabandt, closes #1290)
2017-02-01 21:50:21 +01:00
04e87b72c5 patch 8.0.0290: cursor positioning wrong if wide character wraps
Problem:    If a wide character doesn't fit at the end of the screen line, and
            the line doesn't fit on the screen, then the cursor position may
            be wrong. (anliting)
Solution:   Don't skip over wide character. (Christian Brabandt, closes #1408)
2017-02-01 21:23:10 +01:00
21d7c9b601 patch 8.0.0289: no test for "ga" and :ascii
Problem:    No test for "ga" and :ascii.
Solution:   Add a test. (Dominique Pelle, closes #1429)
2017-02-01 20:53:38 +01:00
4e032e1b17 patch 8.0.0288: errors reported while running tests
Problem:    Errors reported while running tests.
Solution:   Put comma in the right place.
2017-02-01 20:48:13 +01:00
c7d9eacefa patch 8.0.0287: debug mode: cannot access function arguments
Problem:    Cannot access the arguments of the current function in debug mode.
            (Luc Hermitte)
Solution:   use get_funccal(). (Lemonboy, closes #1432, closes #1352)
2017-02-01 20:26:51 +01:00
c10f0e7cb0 patch 8.0.0286: not always redrawing after screen resize
Problem:    When concealing is active and the screen is resized in the GUI it
            is not immediately redrawn.
Solution:   Use update_prepare() and update_finish() from
            update_single_line().
2017-02-01 18:37:14 +01:00
c386267ffe patch 8.0.0285: tests fail with tiny build on Unix
Problem:    Tests fail with tiny build on Unix.
Solution:   Only set g:tester_HOME when build with the +eval feature.
2017-02-01 18:07:38 +01:00
b245559fa9 patch 8.0.0284: collapse buffers test failed once
Problem:    The Test_collapse_buffers() test failed once, looks like it is
            flaky.
Solution:   Add it to the list of flaky tests.
2017-02-01 18:00:13 +01:00
e90858d022 patch 8.0.0283: mode() does not indicate Insert mode completion
Problem:    The return value of mode() does not indicate that completion is
            active in Replace and Insert mode. (Zhen-Huan (Kenny) Hu)
Solution:   Add "c" or "x" for two kinds of completion. (Yegappan Lakshmanan,
            closes #1397)  Test some more modes.
2017-02-01 17:24:34 +01:00
0b5c93a7f2 patch 8.0.0282: need to use CTRL-O twice when in Visual-Insert mode
Problem:    When doing a Visual selection and using "I" to go to insert mode,
            CTRL-O needs to be used twice to go to Normal mode. (Coacher)
Solution:   Check for the return value of edit(). (Christian Brabandt,
            closes #1290)
2017-02-01 15:03:30 +01:00
1266d678bf patch 8.0.0281: some files are still using ARGSUSED instead of UNUSED
Problem:    MS-Windows files are still using ARGSUSED while most other files
            have UNUSED.
Solution:   Change ARGSUSED to UNUSED or delete it.
2017-02-01 13:43:36 +01:00
7c23d1d9d9 patch 8.0.0280: problem setting multi-byte environment var on MS-Windows
Problem:    On MS-Windows setting an environment variable with multi-byte
            strings does not work well.
Solution:   Use wputenv when possible. (Taro Muraoka, Ken Takata)
2017-02-01 13:14:16 +01:00
168dd00f72 patch 8.0.0279: MSVC 2015 uses a different dll name
Problem:    With MSVC 2015 the dll name is vcruntime140.dll.
Solution:   Check the MSVC version and use the right dll name. (Ken Takata)
2017-02-01 13:02:47 +01:00
f1ab9c1370 patch 8.0.0278: GUI test fails on MS-Windows
Problem:    GUI test fails on MS-Windows.
Solution:   Check that tester_HOME exists.
2017-02-01 12:32:58 +01:00
56e6bd7ba2 patch 8.0.0277: the GUI test may trigger fontconfig and take a long time
Problem:    The GUI test may trigger fontconfig and take a long time.
Solution:   Set $XDG_CACHE_HOME. (Kazunobu Kuriyama)
2017-02-01 12:08:47 +01:00
3954e3c4b5 patch 8.0.0276: unnecessary #ifdefs
Problem:    Checking for FEAT_GUI_GNOME inside GTK 3 code is unnecessary.
Solution:   Remove the #ifdef. (Kazunobu Kuriyama)
2017-02-01 11:50:09 +01:00
e3caa11090 patch 8.0.0275: the screen may be updated at the wrong time
Problem:    When checking for CTRL-C typed the GUI may detect a screen resize
            and redraw the screen, causing trouble.
Solution:   Set updating_screen in ui_breakcheck().
2017-01-31 22:07:42 +01:00
070b33da93 patch 8.0.0274: possible recursive screen updating causes trouble
Problem:    When update_single_line() is called recursively, or another screen
            update happens while it is busy, errors may occur.
Solution:   Check and update updating_screen. (Christian Brabandt)
2017-01-31 21:53:39 +01:00
c4a249a736 patch 8.0.0273: dead code detected by Coverity
Problem:    Dead code detected by Coverity when not using gnome.
Solution:   Rearrange the #ifdefs to avoid dead code.
2017-01-30 22:56:48 +01:00
432c839ebd patch 8.0.0272: crash on exit is not detected when running tests
Problem:    Crash on exit is not detected when running tests.
Solution:   Remove the dash before the command. (Dominique Pelle, closes
            #1425)
2017-01-30 22:01:01 +01:00
a4c906a4a1 patch 8.0.0271: may get ml_get error when :tcldo deletes lines
Problem:    May get ml_get error when :tcldo deletes lines or switches to
            another buffer. (Nikolai Pavlov, closes #1421)
Solution:   Check the buffer and line every time.
2017-01-29 23:26:37 +01:00
c593fee0e5 patch 8.0.0270: may get ml_get error when :rubydo deletes lines
Problem:    May get ml_get error when :rubydo deletes lines or switches to
            another buffer. (Nikolai Pavlov, issue #1421)
Solution:   Check the buffer and line every time.
2017-01-29 23:11:25 +01:00
85b5743d3e patch 8.0.0269: may get ml_get error when :perldo deletes lines
Problem:    May get ml_get error when :perldo deletes lines or switches to
            another buffer. (Nikolai Pavlov, issue #1421)
Solution:   Check the buffer and line every time.
2017-01-29 22:59:12 +01:00
d58f03b1c2 patch 8.0.0268: may get ml_get error when :luado deletes lines
Problem:    May get ml_get error when :luado deletes lines or switches to
            another buffer. (Nikolai Pavlov, issue #1421)
Solution:   Check the buffer and line every time.
2017-01-29 22:48:45 +01:00
6fe2eb43d2 patch 8.0.0267: channel test sometimes fails on Mac
Problem:    A channel test sometimes fails on Mac.
Solution:   Add the test to the list of flaky tests.
2017-01-29 21:49:51 +01:00
c625155ea4 patch 8.0.0266: compiler warning for using uninitialized variable
Problem:    Compiler warning for using uninitialized variable.
Solution:   Set tab_number also when there is an error.
2017-01-29 21:42:20 +01:00
a58883b4ea patch 8.0.0265: may get ml_get error when :pydo deletes lines
Problem:    May get ml_get error when :pydo deletes lines or switches to
            another buffer. (Nikolai Pavlov, issue #1421)
Solution:   Check the buffer and line every time.
2017-01-29 21:31:09 +01:00
d297f35eb0 patch 8.0.0264: memory error reported by ubsan
Problem:    Memory error reported by ubsan, probably for using the string
            returned by execute().
Solution:   NUL terminate the result of execute().
2017-01-29 20:31:21 +01:00
80627cf51f patch 8.0.0263: Farsi support is not tested enough
Problem:    Farsi support is not tested enough.
Solution:   Add more tests for Farsi.  Clean up the code.
2017-01-29 19:59:39 +01:00
ddf662a1c8 patch 8.0.0262: Farsi support is barely tested
Problem:    Farsi support is barely tested.
Solution:   Add more tests for Farsi.  Clean up the code.
2017-01-29 17:59:12 +01:00
24c2e48ef8 patch 8.0.0261: not enough test coverage for eval functions
Problem:    Not enough test coverage for eval functions.
Solution:   Add more tests. (Dominique Pelle, closes #1420)
2017-01-29 15:45:12 +01:00
dea2570740 patch 8.0.0260: build fails with tiny features
Problem:    Build fails with tiny features.
Solution:   Move get_tabpage_arg() inside #ifdef.
2017-01-29 15:18:10 +01:00
2f72c70657 patch 8.0.0259: tab commands do not handle count correctly
Problem:    Tab commands do not handle count correctly. (Ken Hamada)
Solution:   Add ADDR_TABS_RELATIVE. (Hirohito Higashi)
2017-01-29 14:48:10 +01:00
c9b56b2ceb patch 8.0.0258: mksession test leaves file behind
Problem:    mksession test leaves file behind.
Solution:   Delete the file.  Rename files to start with "X".
2017-01-29 14:14:09 +01:00
e0b66da691 patch 8.0.0257: test file missing in distribution
Problem:    The keyword test file is not included in the archive.
Solution:   Update the list of files.
2017-01-28 18:42:56 +01:00
690afe1fef Update runtime files. 2017-01-28 18:34:47 +01:00
3a29abcb61 patch 8.0.0256: missing changes to one file breaks test
Problem:    Tests fail because some changes were not included.
Solution:   Add changes to evalfunc.c
2017-01-28 18:31:41 +01:00
f13e00b2cf patch 8.0.0255: setpos() does not use the buffer argument for all marks
Problem:    When calling setpos() with a buffer argument it often is ignored.
            (Matthew Malcomson)
Solution:   Make the buffer argument work for all marks local to a buffer.
            (neovim #5713)  Add more tests.
2017-01-28 18:23:54 +01:00
c7b831ca15 patch 8.0.0254: error message of assert functions is sometimes incomplete
Problem:    When using an assert function one can either specify a message or
            get a message about what failed, not both.
Solution:   Concatenate the error with the message.
2017-01-28 18:08:12 +01:00
36ae89c550 patch 8.0.0253: error when loading session if winminheight is 2
Problem:    When creating a session when winminheight is 2 or larger and
            loading that session gives an error.
Solution:   Also set winminheight before setting winheight to 1. (Rafael
            Bodill, neovim #5717)
2017-01-28 17:11:14 +01:00
4019cf90b8 patch 8.0.0252: not properly recognizing word characters between 128 and 255
Problem:    Characters below 256 that are not one byte are not always
            recognized as word characters.
Solution:   Make vim_iswordc() and vim_iswordp() work the same way. Add a test
            for this. (Ozaki Kiichi)
2017-01-28 16:39:34 +01:00
f42dd3c390 patch 8.0.0251: not easy to select Python 2 or 3
Problem:    It is not so easy to write a script that works with both Python 2
            and Python 3, even when the Python code works with both.
Solution:   Add 'pyxversion', :pyx, etc. (Marc Weber, Ken Takata)
2017-01-28 16:06:38 +01:00
0c0590d982 patch 8.0.0250: virtcol() does not work well for multi-byte characters
Problem:    When virtcol() gets a column that is not the first byte of a
            multi-byte character the result is unpredictable. (Christian
            Ludwig)
Solution:   Correct the column to the first byte of a multi-byte character.
            Change the utf-8 test to new style.
2017-01-28 13:48:10 +01:00
4bc2f2e9fd patch 8.0.0249: CI failure when a submit is close to previous one
Problem:    When two submits happen quick after each other, the tests for the
            first one may error out.
Solution:   Use a git depth of 10 instead of 1. (Christian Brabandt)
2017-01-27 22:20:13 +01:00
45600ce8f2 patch 8.0.0248: vim_strcat() cannot handle overlapping arguments
Problem:    vim_strcat() cannot handle overlapping arguments.
Solution:   Use mch_memmove() instead of strcpy(). (Justin M Keyes,
            closes #1415)
2017-01-27 21:54:07 +01:00
aed6d0b81a patch 8.0.0247: need to type Ctrl-N twice to select a completion
Problem:    Under some circumstances, one needs to type Ctrl-N or Ctrl-P twice
            to have a menu entry selected. (Lifepillar)
Solution:   call ins_compl_free(). (Christian Brabandt, closes #1411)
2017-01-27 21:48:54 +01:00
3a118be150 patch 8.0.0246: compiler warnings for int to pointer conversion
Problem:    Compiler warnings for int to pointer conversion.
Solution:   Fix macro for mch_memmove(). (John Marriott)
2017-01-27 21:22:19 +01:00
16038d50c4 patch 8.0.0245: zh_CN.cp936.po has a conversion error
Problem:    The generated zh_CN.cp936.po message file is not encoded properly.
Solution:   Instead of using zh_CN.po as input, use zh_CN.UTF-8.po.
2017-01-27 20:37:49 +01:00
d9c60648e5 patch 8.0.0244: making t_BE empty only has an effect before startup
Problem:    When the user sets t_BE empty after startup to disable bracketed
            paste, this has no direct effect.
Solution:   When t_BE is made empty write t_BD.  When t_BE is made non-empty
            write the new value.
2017-01-27 20:03:18 +01:00
cc5b22b3bf patch 8.0.0243: tolower() does not work if the byte count changes
Problem:    When making a character lower case with tolower() changes the byte
            cound, it is not made lower case.
Solution:   Add strlow_save(). (Dominique Pelle, closes #1406)
2017-01-26 22:51:56 +01:00
65c836e600 patch 8.0.0242: no tests for user command completion
Problem:    Completion of user defined functions is not covered by tests.
Solution:   Add tests.  Also test various errors of user-defined commands.
            (Dominique Pelle, closes #1413)
2017-01-26 22:07:33 +01:00
52c0de1de1 patch 8.0.0241: fallback implementation of mch_memmove is unused
Problem:    Vim defines a mch_memmove() function but it doesn't work, thus is
            always unused.
Solution:   Remove the mch_memmove implementation. (suggested by Dominique
            Pelle)
2017-01-26 21:36:34 +01:00
4f7090b93d patch 8.0.0240: failure with one build on CI
Problem:    The clang build on CI fails with one configuration.
Solution:   Redo a previous patch that was accidentally reverted.
2017-01-26 21:24:02 +01:00
1e07633a5d patch 8.0.0239: no CI with an address sanitizer
Problem:    The address sanitizer sometimes finds errors, but it needs to be
            run manually.
Solution:   Add an environment to Travis with clang and the address sanitizer.
            (Christian Brabandt)  Also include changes only on github.
2017-01-26 20:11:12 +01:00
9e817c8a31 patch 8.0.0238: bracketed paste does not disable autoindent
Problem:    When using bracketed paste autoindent causes indent to be
            increased.
Solution:   Disable 'ai' and set 'paste' temporarily. (Ken Takata)
2017-01-25 21:36:17 +01:00
ba47b51ff8 patch 8.0.0237: when 'wildoptions' is "tagfile" completion may not work
Problem:    When setting wildoptions=tagfile the completion context is not set
            correctly. (desjardins)
Solution:   Check for EXPAND_TAGS_LISTFILES. (Christian Brabandt, closes #1399)
2017-01-24 21:18:19 +01:00
6a717f17ec patch 8.0.0236: gcc complains about uninitialized variable
Problem:    Gcc complains that a variable may be used uninitialized. Confusion
            between variable and label name. (John Marriott)
Solution:   Initialize it.  Rename end to end_lnum.
2017-01-24 20:47:50 +01:00
b031c4ea04 patch 8.0.0235: memory leak in diff mode
Problem:    Memory leak detected when running tests for diff mode.
Solution:   Free p_extra_free.
2017-01-24 20:14:48 +01:00
941c12da3c patch 8.0.0234: crash when using put in Visual mode
Problem:    When several lines are visually selected and one of them is short,
            using put may cause a crash. (Axel Bender)
Solution:   Check for a short line. (Christian Brabandt)
2017-01-24 19:55:43 +01:00
bff6ad1331 patch 8.0.0233: paste test fails in the GUI
Problem:    The paste test fails if the GUI is being used.
Solution:   Skip the test in the GUI.
2017-01-24 19:18:13 +01:00
48c9f3b123 patch 8.0.0232: paste does not work when 'esckeys' is off
Problem:    Pasting in Insert mode does not work when bracketed paste is used
            and 'esckeys' is off.
Solution:   When 'esckeys' is off disable bracketed paste in Insert mode.
2017-01-24 19:08:15 +01:00
076e502199 patch 8.0.0231: bracketed paste mode is not tested
Problem:    There are no tests for bracketed paste mode.
Solution:   Add a test.  Fix repeating with "normal .".
2017-01-24 18:58:30 +01:00
915350edec patch 8.0.0230: bracketed paste does not support line breaks
Problem:    When using bracketed paste line breaks are not respected.
Solution:   Turn CR characters into a line break if the text is being
            inserted. (closes #1404)
2017-01-24 17:50:52 +01:00
24a2d416ec patch 8.0.0229: local 'formatprg' option value leaks
Problem:    When freeing a buffer the local value of the 'formatprg' option is
            not cleared.
Solution:   Add missing change.
2017-01-24 17:48:36 +01:00
abbc448bc0 patch 8.0.0228: pasting in xterm on the command line has PasteStart
Problem:    When pasting test in an xterm on the command line it is surrounded
            by <PasteStart> and <PasteEnd>. (Johannes Kaltenbach)
Solution:   Add missing changes.
2017-01-24 15:57:55 +01:00
2aa5f696b9 patch 8.0.0227: crash with ff=dos when first line in file has no CR
Problem:    Crash when 'fileformat' is forced to "dos" and the first line in
            the file is empty and does not have a CR character.
Solution:   Don't check for CR before the start of the buffer.
2017-01-24 15:46:48 +01:00
1695f99d08 patch 8.0.0226: test for patch 8.0.0224 missing CR characters
Problem:    The test for patch 8.0.0224 misses the CR characters and passes
            even without the fix. (Christian Brabandt)
Solution:   Use double quotes and \<CR>.
2017-01-24 13:18:43 +01:00
9957a10d0f patch 8.0.0225: put in Visual block mode terminates early
Problem:    When a block is visually selected and put is used on the end of
            the selection only one line is changed.
Solution:   Check for the end properly. (Christian Brabandt, neovim issue
            5781)
2017-01-23 21:53:53 +01:00
7a2699e868 patch 8.0.0224: change to 'fileformats' from autocmd does not take effect
Problem:    When 'fileformats' is changed in a BufReadPre auto command, it
            does not take effect in readfile(). (Gary Johnson)
Solution:   Check the value of 'fileformats' after executing auto commands.
            (Christian Brabandt)
2017-01-23 21:31:09 +01:00
fffbf308dd patch 8.0.0223: Coverity warns for an uninitialized variable
Problem:    Coverity gets confused by the flags passed to find_tags() and
            warnts for an uninitialized variable.
Solution:   Disallow using cscope and help tags at the same time.
2017-01-23 20:47:12 +01:00
c81299684b patch 8.0.0222: blockwise put on multi-byte character misplaced
Problem:    When a multi-byte character ends in a zero byte, putting blockwise
            text puts it before the character instead of after it.
Solution:   Use int instead of char for the character under the cursor.
            (Luchr, closes #1403)  Add a test.
2017-01-22 20:04:51 +01:00
6a8ede99dd patch 8.0.0221: unnecessary condition on PROTO
Problem:    Checking if PROTO is defined inside a function has no effect.
Solution:   Remove the check for PROTO. (Hirohito Higashi)
2017-01-22 19:49:12 +01:00
15eedf1d62 patch 8.0.0220: completion of highlight names misses a few values
Problem:    Completion for :match does not show "none" and other missing
            highlight names.
Solution:   Skip over cleared entries before checking the index to be at the
            end.
2017-01-22 19:25:33 +01:00
7a40ea2138 patch 8.0.0219: ubsan reports errors for overflow
Problem:    Ubsan reports errors for integer overflow.
Solution:   Define macros for minimum and maximum values.  Select an
            expression based on the value. (Mike Williams)
2017-01-22 18:34:57 +01:00
2b2207ba69 patch 8.0.0218: no completion for :cexpr and similar commands
Problem:    No command line completion for :cexpr, :cgetexpr, :caddexpr, etc.
Solution:   Make completion work. (Yegappan Lakshmanan)  Add a test.
2017-01-22 16:46:56 +01:00
e2d74dbe19 patch 8.0.0217: build fails without cscope feature
Problem:    Build fails without the cscope feature.
Solution:   Add #ifdef.
2017-01-22 16:13:35 +01:00
e2c6037da3 patch 8.0.0216: decoding js style json may fail
Problem:    When decoding JSON with a JS style object the JSON test may use a
            NULL pointer. (Coverity)
Solution:   Check for a NULL pointer.
2017-01-22 15:56:26 +01:00
e362c3d2c3 patch 8.0.0215: NULL pointer use if cscope line looks like emacs tag
Problem:    When a Cscope line contains CTRL-L a NULL pointer may be used.
            (Coverity)
Solution:   Don't check for an emacs tag in a cscope line.
2017-01-22 15:40:00 +01:00
d7a96151e0 patch 8.0.0214: leaking memory when syntax cluster id is unknown
Problem:    Leaking memory when syntax cluster id is unknown. (Coverity)
Solution:   Free the memory.
2017-01-22 15:28:55 +01:00
ca24e2cfcf patch 8.0.0213: Netbeans specialKeys command does not check argument length
Problem:    The Netbeans "specialKeys" command does not check if the argument
            fits in the buffer. (Coverity)
Solution:   Add a length check.
2017-01-22 15:19:22 +01:00
423977d3ce patch 8.0.0212: buffer for key name may be too small
Problem:    The buffer used to store a key name theoreticaly could be too
            small. (Coverity)
Solution:   Count all possible modifier characters.  Add a check for the
            length just in case.
2017-01-22 15:05:12 +01:00
560379d7ae patch 8.0.0211: cannot build without the multi-byte feature
Problem:    Build fails if the multi-byte feature is disabled.
Solution:   Change #ifdef around ins_char_bytes.
2017-01-21 22:50:00 +01:00
ec2da36ca4 patch 8.0.0210: no support for bracketed paste
Problem:    Vim does not support bracketed paste, as implemented by xterm and
            other terminals.
Solution:   Add t_BE, t_BD, t_PS and t_PE.
2017-01-21 20:04:22 +01:00
41baa7983a patch 8.0.0209: cursor binding does not work with :substitute
Problem:    When using :substitute with the "c" flag and 'cursorbind' is set
            the cursor is not updated in other windows.
Solution:   Call do_check_cursorbind(). (Masanori Misono)
2017-01-21 14:45:09 +01:00
25b0e6b701 patch 8.0.0208: internally used commands end up in history
Problem:    Internally used commands for CTRL-Z and mouse click end up in
            history. (Matthew Malcomson)
Solution:   Use do_cmdline_cmd() instead of stuffing them in the readahead
            buffer. (James McCoy, closes #1395)
2017-01-20 21:51:53 +01:00
23c9e8b3bc patch 8.0.0207: leaking file descriptor when system() fails
Problem:    Leaking file descriptor when system() cannot find the buffer.
            (Coverity)
Solution:   Close the file descriptor.  (Dominique Pelle, closes #1398)
2017-01-20 19:59:54 +01:00
8822744b4d patch 8.0.0206: test coverage for :retab insufficient
Problem:    Test coverage for :retab insufficient.
Solution:   Add test for :retab. (Dominique Pelle, closes #1391)
2017-01-17 22:16:00 +01:00
5e4e1b1299 patch 8.0.0205: wrong behavior after :undojoin
Problem:    After :undojoin some commands don't work properly, such as :redo.
            (Matthew Malcomson)
Solution:   Don't set curbuf->b_u_curhead. (closes #1390)
2017-01-17 22:09:45 +01:00
eb46f8fa14 patch 8.0.0204: compiler warns for uninitialized variable
Problem:    Compiler warns for uninitialized variable. (Tony Mechelynck)
Solution:   When skipping set "id" to -1.
2017-01-17 19:48:53 +01:00
6e78e27b8a patch 8.0.0203: order of complication flags is sometimes wrong
Problem:    Order of complication flags is sometimes wrong.
Solution:   Put interface-specific flags before ALL_CFLAGS. (idea by Yousong
            Zhou, closes #1100)
2017-01-17 19:20:15 +01:00
4007ed4a5e patch 8.0.0202: no test for invalid syntax group name
Problem:    No test for invalid syntax group name.
Solution:   Add a test for group name error and warning.
2017-01-17 18:14:54 +01:00
d61e8aaae5 patch 8.0.0201: completion of highlight groups includes cleared names
Problem:    When completing a group name for a highlight or syntax command
            cleared groups are included.
Solution:   Skip groups that have been cleared.
2017-01-17 17:44:46 +01:00
58f60ca2fc patch 8.0.0200: some syntax arguments are not tested
Problem:    Some syntax arguments are not tested.
Solution:   Add more syntax command tests.
2017-01-17 17:19:00 +01:00
6d721c7e10 patch 8.0.0199: compiler warnings for libcall
Problem:    Warning for an unused parameter when the libcall feature is
            disabled.  Warning for a function type cast when compiling with
            -pedantic.
Solution:   Add UNUSED.  Use a different type cast. (Damien Molinier)
2017-01-17 16:56:28 +01:00
de318c5c35 patch 8.0.0198: some syntax arguments take effect even after "if 0"
Problem:    Some syntax arguments take effect even after "if 0". (Taylor
            Venable)
Solution:   Properly skip the syntax statements.  Make "syn case" and "syn
            conceal" report the current state.  Fix that "syn clear" didn't
            reset the conceal flag.  Add tests for :syntax skipping properly.
2017-01-17 16:27:10 +01:00
369b6f57c4 Update runtime files. 2017-01-17 12:22:32 +01:00
97d62d4321 patch 8.0.0197: system() test skips some parts for MS-Windows
Problem:    On MS-Windows the system() test skips a few parts.
Solution:   Swap single and double quotes for the command.
2017-01-16 22:53:57 +01:00
c011a3d083 patch 8.0.0196: profile test is slo and does not work on MS-Windows
Problem:    The test for :profile is slow and does not work on MS-Windows.
Solution:   Use the "-es" argument. (Dominique Pelle)  Swap single and double
            quotes for system()
2017-01-16 22:37:42 +01:00
a9d23c2087 patch 8.0.0195: fail to jump to static tag in current file
Problem:    Jumping to a tag that is a static item in the current file fails.
            (Kazunobu Kuriyama)
Solution:   Make sure the first byte of the tag key is not NUL. (Suggested by
            James McCoy, closes #1387)
2017-01-16 20:53:34 +01:00
e32bbded64 patch 8.0.0194: profile tests fails if total and self time are equal
Problem:    Profile tests fails if total and self time are equal.
Solution:   Make one time optional.
2017-01-15 21:12:48 +01:00
1b9750d805 patch 8.0.0193: accidentally removed #ifdef
Problem:    Accidentally removed #ifdef.
Solution:   Put it back. (Masanori Misono)
2017-01-15 20:51:37 +01:00
42b8d916c7 patch 8.0.0192: cannot build with tiny features
Problem:    Build fails with tiny features.
Solution:   Change #ifdef for hash_clear().  Avoid warning for unused
            argument.
2017-01-15 17:18:57 +01:00
4f391796b7 patch 8.0.0191: can't build with Ruby on some systems
Problem:    Some systems do not have ruby_sysinit(), causing the build to
            fail.
Solution:   Clean up how ruby_sysinit() and NtInitialize() are used. (Taro
            Muraoka)
2017-01-15 16:59:07 +01:00
810f9c361c patch 8.0.0190: finding duplicate tags uses a slow linear search
Problem:    Detecting duplicate tags uses a slow linear search.
Solution:   Use a much faster hash table solution. (James McCoy, closes #1046)
            But don't add hi_keylen, it makes hash tables 50% bigger.
2017-01-15 16:52:51 +01:00
296b1f28ca patch 8.0.0189: profile commands are not tested
Problem:    There are no tests for the :profile command.
Solution:   Add tests. (Dominique Pelle, closes #1383)
2017-01-15 15:22:33 +01:00
9506cad7a1 patch 8.0.0188: redrawing for 'cursorbind' is inefficient
Problem:    Using NOT_VALID for redraw_later() to update the cursor
            line/column highlighting is not efficient.
Solution:   Call validate_cursor() when 'cul' or 'cuc' is set.
2017-01-15 13:53:49 +01:00
fe6ce331d9 patch 8.0.0187: cant build with new Ruby version
Problem:    Building with a new Ruby version fails.
Solution:   Use ruby_sysinit() instead of NtInitialize(). (Tomas Volf,
            closes #1382)
2017-01-14 20:12:01 +01:00
5869cf060e patch 8.0.0186: confusing error message from assert_notequal()
Problem:    The error message from assert_notequal() is confusing.
Solution:   Only mention the expected value.
2017-01-14 20:06:14 +01:00
fad609d067 patch 8.0.0185: system() test fails on MS-Windows
Problem:    The system() test fails on MS-Windows.
Solution:   Skip the test on MS-Windows.
2017-01-14 19:38:36 +01:00
2b7bc567b9 patch 8.0.0184: when an error is caught Vim still exits with non-zero result
Problem:    When in Ex mode and an error is caught by try-catch, Vim still
            exits with a non-zero exit code.
Solution:   Don't set ex_exitval when inside a try-catch. (partly by Christian
            Brabandt)
2017-01-14 19:24:52 +01:00
7173b47958 patch 8.0.0183: ubsan warns for unaligned address
Problem:    Ubsan warns for using a pointer that is not aligned.
Solution:   First copy the address. (Yegappan Lakshmanan)
2017-01-14 17:04:38 +01:00
e47683a091 patch 8.0.0182: cursor ilne not update when 'cursorbind' is set
Problem:    When 'cursorbind' and 'cursorline' are set, but 'cursorcolumn' is
            not, then the cursor line highlighting is not updated. (Hirohito
            Higashi)
Solution:   Call redraw_later() with NOT_VALID.
2017-01-14 15:52:46 +01:00
519d7785f4 patch 8.0.0181: with cursorbind set cursor column highlighting is off
Problem:    When 'cursorbind' and 'cursorcolumn' are both on, the column
            highlignt in non-current windows is wrong.
Solution:   Add validate_cursor(). (Masanori Misono, closes #1372)
2017-01-14 14:54:33 +01:00
83381f7129 patch 8.0.0180: error E937 is used twice
Problem:    Error E937 is used both for duplicate key in JSON and for trying
            to delete a buffer that is in use.
Solution:   Rename the JSON error to E938. (Norio Takagi, closes #1376)
2017-01-14 14:36:08 +01:00
9be7c04e6c patch 8.0.0179: cannot have a local value for 'formatprg'
Problem:    'formatprg' is a global option but the value may depend on the
            type of buffer. (Sung Pae)
Solution:   Make 'formatprg' global-local. (closes #1380)
2017-01-14 14:28:30 +01:00
9b73c4a215 patch 8.0.0178: command count test fails on MS-Windows
Problem:    test_command_count may fail when a previous test interferes, seen
            on MS-Windows.
Solution:   Run it separately.
2017-01-13 22:30:08 +01:00
e13b9afe12 patch 8.0.0177: BufEnter autocommand not fired for a directory
Problem:    When opening a buffer on a directory and inside a try/catch then
            the BufEnter event is not triggered.
Solution:   Return NOTDONE from readfile() for a directory and deal with the
            three possible return values. (Justin M. Keyes, closes #1375,
            closes #1353)
2017-01-13 22:01:02 +01:00
70bcd7336f patch 8.0.0176: cannot use :change inside a function definition
Problem:    Using :change in between :function and :endfunction fails.
Solution:   Recognize :change inside a function. (ichizok, closes #1374)
2017-01-12 22:20:54 +01:00
972c3b8f1b patch 8.0.0175: setting language on MS-Windows does not always work
Problem:    Setting language in gvim on MS-Windows does not work when
            libintl.dll is dynamically linked with msvcrt.dll.
Solution:   Use putenv() from libintl as well. (Ken Takata, closes #1082)
2017-01-12 21:44:49 +01:00
b8f7bd68f6 patch 8.0.0174: executing "locale -a" on MS-Windows needlessly
Problem:    For completion "locale -a" is executed on MS-Windows, even though
            it most likely won't work.
Solution:   Skip executing "locale -a" on MS-Windows. (Ken Takata)
2017-01-12 20:28:25 +01:00
a1fa892939 patch 8.0.0173: build fails with EBCDIC defined
Problem:    When compiling with EBCDIC defined the build fails. (Yaroslav
            Kuzmin)
Solution:   Move sortFunctions() to the right file.  Avoid warning for
            redefining __SUSV3.
2017-01-12 20:06:33 +01:00
1d669c233c patch 8.0.0172: command line window does not work
Problem:    The command selected in the command line window is not executed.
            (Andrey Starodubtsev)
Solution:   Save and restore the command line at a lower level. (closes #1370)
2017-01-11 22:40:19 +01:00
ee142add22 patch 8.0.0171: JS style JSON does not support single quotes
Problem:    JS style JSON does not support single quotes.
Solution:   Allow for single quotes. (Yasuhiro Matsumoto, closes #1371)
2017-01-11 21:50:08 +01:00
e32abbe42c patch 8.0.0170: crash in channel test
Problem:    Channel test fails for using freed memory.
Solution:   Fix memory use in json_decode().
2017-01-10 22:57:34 +01:00
8b2f19536f patch 8.0.0169: json_decode() may run out of stack space
Problem:    For complicated string json_decode() may run out of stack space.
Solution:   Change the recursive solution into an iterative solution.
2017-01-10 19:44:18 +01:00
872004132f patch 8.0.0168: not all float functionality is tested
Problem:    Still some float functionality is not covered by tests.
Solution:   Add more tests. (Dominique Pelle, closes #1364)
2017-01-10 16:31:20 +01:00
08243d26d2 patch 8.0.0167: str2nr()/str2float() fail with negative values
Problem:    str2nr() and str2float() do not always work with negative values.
Solution:   Be more flexible about handling signs. (LemonBoy, closes #1332)
            Add more tests.
2017-01-10 16:12:29 +01:00
03c60c1573 patch 8.0.0166: JSON with a duplicate key gives an internal error
Problem:    JSON with a duplicate key gives an internal error. (Lcd)
Solution:   Give a normal error.  Avoid an error when parsing JSON from a
            remote client fails.
2017-01-10 15:15:37 +01:00
f446b48ff0 patch 8.0.0165: ubsan warns for integer overflow
Problem:    Ubsan warns for integer overflow.
Solution:   Swap two conditions. (Dominique Pelle)
2017-01-10 13:55:14 +01:00
caa55b65c2 patch 8.0.0164: outdated and misplaced comments
Problem:    Outdated and misplaced comments.
Solution:   Fix the comments.
2017-01-10 13:51:09 +01:00
68563937f5 Updated runtime files. 2017-01-10 13:31:15 +01:00
6abda995a5 patch 8.0.0163: cannot build with Ruby 2.4
Problem:    Ruby 2.4 no longer supports rb_cFixnum.
Solution:   move rb_cFixnum into an #ifdef. (Kazuki Sakamoto, closes #1365)
2017-01-09 21:10:31 +01:00
009c7b2640 patch 8.0.0162: build error on Fedora 23
Problem:    Build error on Fedora 23 with small features and gnome2.
Solution:   Undefine ngettext(). (Hirohito Higashi)
2017-01-09 20:30:27 +01:00
4d0504019c patch 8.0.0161: can't build with small features
Problem:    Build fails when using small features.
Solution:   Update #ifdef for using save_ccline. (Hirohito Higashi)
2017-01-09 12:58:11 +01:00
de33011ec6 patch 8.0.0160: EMSG() is sometimes used where it should be IEMSG()
Problem:    EMSG() is sometimes used for internal errors.
Solution:   Change them to IEMSG(). (Dominique Pelle)  And a few more.
2017-01-08 20:50:52 +01:00
c695cec469 patch 8.0.0159: crash on startup when updating tabline
Problem:    Using a NULL pointer when using feedkeys() to trigger drawing a
            tabline.
Solution:   Skip drawing a tabline if TabPageIdxs is NULL. (Dominique Pelle)
            Also fix recursing into getcmdline() from the cmd window.
2017-01-08 20:00:04 +01:00
6247361101 patch 8.0.0158: float funcion test fails on MS-Windows
Problem:    On MS-Windows some float functions return a different value when
            passed unusual values.  strtod() doesn't work for "inf" and "nan".
Solution:   Accept both results.  Fix str2float() for MS-Windows.  Also
            reorder assert function arguments.
2017-01-08 19:25:40 +01:00
2d02839050 patch 8.0.0157: no completion for :syntax spell and :syntax sync
Problem:    No command line completion for ":syntax spell" and ":syntax sync".
Solution:   Implement the completion. (Dominique Pelle)
2017-01-08 18:28:22 +01:00
453b576ee5 patch 8.0.0156: not enough test coverage for float functions
Problem:    Several float functions are not covered by tests.
Solution:   Add float tests. (Dominique Pelle)
2017-01-08 17:59:14 +01:00
a216255a4f patch 8.0.0155: ubsan complains about NULL pointer
Problem:    When sorting zero elements a NULL pointer is passed to qsort(),
            which ubsan warns for.
Solution:   Don't call qsort() if there are no elements. (Dominique Pelle)
2017-01-08 17:46:20 +01:00
31f19ce0a0 patch 8.0.0154: system() test fails on OS/X
Problem:    system() test fails on OS/X.
Solution:   Deal with leading spaces.
2017-01-08 14:14:43 +01:00
9d9c356517 patch 8.0.0153: system() test fails on MS-Windows
Problem:    system() test fails on MS-Windows.
Solution:   Deal when extra space and CR.
2017-01-08 13:55:06 +01:00
04e94c7881 patch 8.0.0152: stray channellog created when running tests
Problem:    Running the channel test creates channellog.
Solution:   Delete the debug line.
2017-01-08 13:38:58 +01:00
12c4492dd3 patch 8.0.0151: passing buffer content to system() is clumsy
Problem:    To pass buffer content to system() and systemlist() one has to
            first create a string or list.
Solution:   Allow passing a buffer number. (LemonBoy, closes #1240)
2017-01-08 13:26:03 +01:00
7069bf18e1 patch 8.0.0150: completion for :filter does not skip the pattern
Problem:    When the pattern of :filter does not have a separator then
            completion of the command fails.
Solution:   Skip over the pattern. (Ozaki Kiichi, clodes #1299)
2017-01-07 20:39:53 +01:00
cbd4de44e8 patch 8.0.0149: :earlier does not work after reading the undo file
Problem:    ":earlier" and ":later" do not work after startup or reading the
            undo file.
Solution:   Use absolute time stamps instead of relative to the Vim start
            time. (Christian Brabandt, Pavel Juhas, closes #1300, closes
            #1254)
2017-01-07 16:14:57 +01:00
c6aa475a27 patch 8.0.0148: wrong indent in C preprocessor with line continuation
Problem:    When a C preprocessor statement has two line continuations the
            following line does not have the right indent. (Ken Takata)
Solution:   Add the indent of the previous continuation line. (Hirohito
            Higashi)
2017-01-07 15:39:43 +01:00
6e450a5754 patch 8.0.0147: searchpair() fails when 'magic' is off
Problem:    searchpair() does not work when 'magic' is off. (Chris Paul)
Solution:   Add \m in the pattern. (Christian Brabandt, closes #1341)
2017-01-06 20:03:58 +01:00
287266527a patch 8.0.0146: termguicolors uses wrong colors on MS-Windows with ConEmu
Problem:    When using 'termguicolors' on MS-Windows the RGB definition causes
            the colors to be wrong.
Solution:   Undefined RGB and use our own. (Gabriel Barta)
2017-01-06 18:16:19 +01:00
29891c4ed4 patch 8.0.0145: running tests on MS-Windows is noisy
Problem:    Running tests on MS-Windows is a little bit noisy.
Solution:   Redirect some output to "nul". (Ken Takata)
2017-01-06 18:00:12 +01:00
aaeabfbca5 Only install coveralls when used. 2017-01-06 16:47:24 +01:00
14a612fa2e Better solution to make coveralls work again. 2017-01-06 16:35:04 +01:00
7034a83743 Tune travis config for coverage with gcc only. 2017-01-06 16:01:59 +01:00
a4ce25bd98 Another attempt to make coveralls work. 2017-01-06 15:37:45 +01:00
294740d2ac Attempt to make coverage working again. 2017-01-06 15:28:44 +01:00
9269315f63 patch 8.0.0144: when using MSVC the GvimExt directory is cleaned twice
Problem:    When using MSVC the GvimExt directory is cleaned twice.
Solution:   Remove the lines. (Ken Takata)
2017-01-06 14:55:36 +01:00
f845b87f2b patch 8.0.0143: line number of current buffer in getbufinfo() is wrong
Problem:    Line number of current buffer in getbufinfo() is wrong.
Solution:   For the current buffer use the current line number. (Ken Takata)
2017-01-06 14:04:54 +01:00
0cdb72aa38 patch 8.0.0142
Problem:    Normal colors are wrong with 'termguicolors'.
Solution:   Initialize to INVALCOLOR instead of zero. (Ben Jackson, closes
            #1344)
2017-01-02 21:37:40 +01:00
bc2eada542 Updated runtime files. 2017-01-02 21:27:47 +01:00
269aec7e61 patch 8.0.0141
Problem:    Nested function test fails on AppVeyor.
Solution:   Disable the test on Windows for now.
2017-01-02 18:32:39 +01:00
f8eb9c51e5 patch 8.0.0140
Problem:    Pasting inserted text in Visual mode does not work properly.
            (Matthew Malcomson)
Solution:   Stop Visual mode before stuffing the inserted text. (Christian
            Brabandt, from neovim #5709)
2017-01-02 17:31:24 +01:00
5e1e6d265d patch 8.0.0139
Problem:    Warning for unused argument.
Solution:   Add UNUSED.
2017-01-02 17:26:00 +01:00
b094ff4b2b patch 8.0.0138
Problem:    Small build fails.
Solution:   Add #ifdef.
2017-01-02 16:16:39 +01:00
777b30f827 patch 8.0.0137
Problem:    When 'maxfuncdepth' is set above 200 the nesting is limited to
            200. (Brett Stahlman)
Solution:   Allow for Ex command recursion depending on 'maxfuncdepth'.
2017-01-02 15:26:27 +01:00
54b2bfa399 patch 8.0.0136
Problem:    When using indent folding and changing indent the wrong fold is
            opened. (Jonathan Fudger)
Solution:   Open the fold under the cursor a bit later. (Christian Brabandt)
2017-01-02 14:57:08 +01:00
ded2782783 patch 8.0.0135
Problem:    An address relative to the current line, ":.,+3y", does not work
            properly on a closed fold. (Efraim Yawitz)
Solution:   Correct for including the closed fold. (Christian Brabandt)
2017-01-02 14:27:34 +01:00
c4bfedabe0 patch 8.0.0134
Problem:    Null pointer access reported by UBsan.
Solution:   Check curwin->w_buffer is not NULL. (Yegappan Lakshmanan)
2016-12-14 21:42:00 +01:00
fe38b494ff patch 8.0.0133
Problem:    "2;'(" causes ml_get errors in an empty buffer.  (Dominique Pelle)
Solution:   Check the cursor line earlier.
2016-12-11 21:34:23 +01:00
4c8980b717 patch 8.0.0132
Problem:    Test fails because of using :finish.
Solution:   Change to return.
2016-12-11 15:24:48 +01:00
73b484c4da patch 8.0.0131
Problem:    Not enough test coverage for syntax commands.
Solution:   Add more tests. (Dominique Pelle)
2016-12-11 15:11:17 +01:00
63de19e805 patch 8.0.0130
Problem:    Configure uses "ushort" while the Vim code doesn't.
Solution:   Use "unsigned short" instead. (Fredrik Fornwall, closes #1314)
2016-12-09 20:11:26 +01:00
0df3c7f2a0 patch 8.0.0129
Problem:    Parallel make still doesn't work. (Lewis Muir)
Solution:   Define OBJ_MAIN.
2016-12-09 19:57:14 +01:00
7089237885 patch 8.0.0128
Problem:    Display test fails on MS-Windows.
Solution:   Set 'isprint' to "@".
2016-12-09 19:51:49 +01:00
73fd498886 patch 8.0.0127
Problem:    Cancelling completion still inserts text when formatting is done
            for 'textwidth'. (lacygoill)
Solution:   Don't format when CTRL-E was typed. (Hirohito Higashi,
            closes #1312)
2016-12-09 19:36:56 +01:00
6270660611 patch 8.0.0126
Problem:    Display problem with 'foldcolumn' and a wide character.
            (esiegerman)
Solution:   Don't use "extra" but an allocated buffer. (Christian Brabandt,
            closes #1310)
2016-12-09 19:28:48 +01:00
eaaa9bbda6 patch 8.0.0125
Problem:    Not enough testing for entering Ex commands.
Solution:   Add test for CTRL-\ e {expr}. (Dominique Pelle)
2016-12-09 18:42:20 +01:00
3421566376 patch 8.0.0124
Problem:    Internal error for assert_inrange(1, 1).
Solution:   Adjust number of allowed arguments. (Dominique Pelle)
2016-12-04 13:37:41 +01:00
a899e6ecc4 patch 8.0.0123
Problem:    Modern Sun compilers define "__sun" instead of "sun".
Solution:   Use __sun. (closes #1296)
2016-12-03 16:40:51 +01:00
3fad98e8af patch 8.0.0122
Problem:    Channel test is still flaky on OS X.
Solution:   Add a short sleep.
2016-12-03 15:23:40 +01:00
a2477fd349 patch 8.0.0121
Problem:    Setting 'cursorline' changes the curswant column. (Daniel Hahler)
Solution:   Add the P_RWINONLY flag. (closes #1297)
2016-12-03 15:13:20 +01:00
5643db84c6 patch 8.0.0120
Problem:    Channel test is still flaky on OS X.
Solution:   Set the drop argument to "never".
2016-12-03 14:29:10 +01:00
21efc3633e patch 8.0.0119
Problem:    No test for using CTRL-R on the command line.
Solution:   Add a test. (Dominique Pelle) And some more.
2016-12-03 14:05:49 +01:00
99c5eb4fd7 Add objects dirstamp to gitignore. 2016-12-02 21:24:21 +01:00
5162822914 patch 8.0.0118
Problem:    "make proto" adds extra function prototype.
Solution:   Add #ifdef.
2016-12-01 23:03:28 +01:00
cf49790443 Updated runtime files. 2016-12-01 22:57:02 +01:00
327054df45 patch 8.0.0117
Problem:    Parallel make fails. (J. Lewis Muir)
Solution:   Make sure the objects directory exists. (closes #1259)
2016-12-01 21:46:14 +01:00
6dbf66aa3e patch 8.0.0116
Problem:    When reading English help and using CTRl-] the language from
            'helplang' is used.
Solution:   Make help tag jumps keep the language. (Tatsuki, test by Hirohito
            Higashi, closes #1249)
2016-12-01 21:32:32 +01:00
e3af763d5e patch 8.0.0115
Problem:    When building with Cygwin libwinpthread isn't found.
Solution:   Link winpthread statically. (jmmerz, closes #1255, closes #1256)
2016-12-01 20:37:47 +01:00
b04a98f6c3 patch 8.0.0114
Problem:    Coding style not optimal.
Solution:   Add spaces. (Ken Takata)
2016-12-01 20:32:29 +01:00
87f3d202a9 patch 8.0.0113
Problem:    MS-Windows: message box to prompt for saving changes may appear on
            the wrong monitor.
Solution:   Adjust the CenterWindow function. (Ken Takata)
2016-12-01 20:18:50 +01:00
eca626fcdb patch 8.0.0112
Problem:    Tests 92 and 93 are old style.
Solution:   Make test92 and test93 new style. (Hirohito Higashi, closes #1289)
2016-12-01 18:47:38 +01:00
eebd84eb94 patch 8.0.0111
Problem:    The :history command is not tested.
Solution:   Add tests. (Dominique Pelle)
2016-12-01 17:57:44 +01:00
5a030a540f patch 8.0.0110
Problem:    Drop command doesn't use existing window.
Solution:   Check the window width properly. (Hirohito Higashi)
2016-12-01 17:48:29 +01:00
b129a447f3 patch 8.0.0109
Problem:    Still checking if memcmp() exists while every system should have
            it now.
Solution:   Remove vim_memcmp().  (James McCoy, closes #1295)
2016-12-01 17:25:20 +01:00
65e08ee1d2 patch 8.0.0108
Problem:    The channel "drop" option is not tested.
Solution:   Add a test.
2016-12-01 16:41:50 +01:00
958dc6923d patch 8.0.0107
Problem:    When reading channel output in a timer, messages may go missing.
            (Skywind)
Solution:   Add the "drop" option.  Write error messages in the channel log.
            Don't have ch_canread() check for the channel being open.
2016-12-01 15:34:12 +01:00
0945eaface patch 8.0.0106
Problem:    Cannot use a semicolon in 'backupext'. (Jeff)
Solution:   Allow for a few more characters when "secure" isn't set.
2016-11-29 22:10:48 +01:00
4b785f69c0 patch 8.0.0105
Problem:    When using ch_read() with zero timeout, can't tell the difference
            between reading an empty line and nothing available.
Solution:   Add ch_canread().
2016-11-29 21:54:44 +01:00
f422bcc7f9 patch 8.0.0104
Problem:    Value of 'thesaurus' option not checked properly.
Solution:   Add P_NDNAME flag. (Daisuke Suzuki)
2016-11-26 17:45:53 +01:00
8a8199e4a1 patch 8.0.0103
Problem:    May not process channel readahead. (skywind)
Solution:   If there is readahead don't block on input.
2016-11-26 15:13:33 +01:00
7554da4033 patch 8.0.0102
Problem:    Cannot set 'dictionary' to a path.
Solution:   Allow for slash and backslash.  Add a test (partly by Daisuke
            Suzuki, closes #1279, closes #1284)
2016-11-25 22:04:13 +01:00
031cb743ae patch 8.0.0101
Problem:    Some options are not strictly checked.
Solution:   Add flags for strickter checks.
2016-11-24 21:46:19 +01:00
319afe3804 patch 8.0.0100
Problem:    Options that are a file name may contain non-filename characters.
Solution:   Check for more invalid characters.
2016-11-24 18:30:59 +01:00
73095288da patch 8.0.0099
Problem:    Popup menu always appears above the cursor when it is in the lower
            half of the screen. (Matt Gardner)
Solution:   Compute the available space better. (Hirohito Higashi,
            closes #1241)
2016-11-24 17:47:07 +01:00
58c358753e patch 8.0.0098
Problem:    Can't build on MS-Windows.
Solution:   Add missing parenthesis.
2016-11-24 17:33:17 +01:00
833eb1d752 patch 8.0.0097
Problem:    When a channel callback consumes a lot of time Vim becomes
            unresponsive. (skywind)
Solution:   Bail out of checking channel readahead after 100 msec.
2016-11-24 17:22:50 +01:00
2cab0e1910 patch 8.0.0096
Problem:    When the input or output is not a tty Vim appears to hang.
Solution:   Add the --ttyfail argument.  Also add the "ttyin" and "ttyout"
            features to be able to check in Vim script.
2016-11-24 15:09:07 +01:00
182707ac10 patch 8.0.0095
Problem:    Problems with GTK 3.22.2 fixed in 3.22.4.
Solution:   Adjust the #ifdefs. (Kazunobu Kuriyama)
2016-11-21 20:55:58 +01:00
63e4344edc patch 8.0.0094
Problem:    When vimrun.exe is not found the error message is not properly
            encoded.
Solution:   Use utf-16 and MessageBoxW(). (Ken Takata)
2016-11-19 17:28:44 +01:00
dda39aeafc patch 8.0.0093
Problem:    Not using multiprocess build feature.
Solution:   Enable multiprocess build with MSVC 10. (Ken Takata)
2016-11-19 17:17:12 +01:00
ca8b8d6956 patch 8.0.0092
Problem:    C indenting does not support nested namespaces that C++ 17 has.
Solution:   Add check that passes double colon inside a name. (Pauli, closes
            #1214)
2016-11-17 21:30:27 +01:00
9f0e423c28 patch 8.0.0091
Problem:    Test_help_complete sometimes fails in MS-Windows console.
Solution:   Use getcompletion() instead of feedkeys() and command line
            completion. (Hirohito Higashi)
2016-11-17 19:48:18 +01:00
6c896867c4 patch 8.0.0090
Problem:    Test_help_complete sometimes fails in MS-Windows console.
Solution:   Use getcompletion() instead of feedkeys() and command line
            completion. (Hirohito Higashi)
2016-11-17 19:46:51 +01:00
a859f04b4d patch 8.0.0089
Problem:    Various problems with GTK 3.22.2.
Solution:   Fix the problems, add #ifdefs. (Kazunobu Kuriyama)
2016-11-17 19:11:55 +01:00
cc28e2d05d patch 8.0.0088
Problem:    When a test fails in Setup or Teardown the problem is not reported.
Solution:   Add a try/catch. (Hirohito Higashi)
2016-11-17 17:56:13 +01:00
7df915d113 patch 8.0.0087
Problem:    When the channel callback gets job info the job may already have
            been deleted. (lifepillar)
Solution:   Do not delete the job when the channel is still useful. (ichizok,
            closes #1242, closes #1245)
2016-11-17 17:25:32 +01:00
c0514bf477 Updated runtime files. 2016-11-17 14:50:09 +01:00
2256c99471 patch 8.0.0086
Problem:    Cannot add a comment after ":hide". (Norio Takagi)
Solution:   Make it work, add a test. (Hirohito Higashi)
2016-11-15 21:17:07 +01:00
8a01f969c1 patch 8.0.0085
Problem:    Using freed memory with recursive function call. (Dominique Pelle)
Solution:   Make a copy of the function name.
2016-11-14 21:50:00 +01:00
7618e00d3b patch 8.0.0084
Problem:    Using freed memory when adding to a quickfix list. (Domenique
            Pelle)
Solution:   Clear the directory name.
2016-11-13 15:09:26 +01:00
8e63905263 patch 8.0.0083
Problem:    Using freed memory with win_getid(). (Domenique Pelle)
Solution:   For the current tab use curwin.
2016-11-13 14:31:40 +01:00
3f7d090726 patch 8.0.0082
Problem:    Extension for configure should be ".ac".
Solution:   Rename configure.in to configure.ac. (James McCoy, closes #1173)
2016-11-12 21:13:42 +01:00
d4db7719bd patch 8.0.0081
Problem:    Inconsistent function names.
Solution:   Rename do_cscope to ex_cscope.  Clean up comments.
2016-11-12 19:16:46 +01:00
b6be3ea45b patch 8.0.0080
Problem:    The OS X build fails on Travis.
Solution:   Skip the virtual framebuffer on OS X.
2016-11-12 18:30:39 +01:00
2b946c9f9b patch 8.0.0079
Problem:    Accessing freed memory in quickfix. (Domenique Pelle)
Solution:   Do not free the current list when adding to it.
2016-11-12 18:14:44 +01:00
63bed3d319 patch 8.0.0078
Problem:    Accessing freed memory in quickfix.
Solution:   Reset pointer when freeing 'errorformat'. (Domenique Pelle)
2016-11-12 15:36:54 +01:00
e3505dfc85 patch 8.0.0077
Problem:    The GUI code is not tested by Travis.
Solution:   Install the virtual framebuffer.
2016-11-11 21:57:45 +01:00
79cbdcb1ee patch 8.0.0076
Problem:    Channel log has double parens ()().
Solution:   Remove () for write_buf_line. (Yasuhiro Matsumoto)
2016-11-11 21:14:03 +01:00
8a5883b748 patch 8.0.0075
Problem:    Using number for exception type lacks type checking.
Solution:   Use an enum.
2016-11-10 20:20:05 +01:00
95f096030e patch 8.0.0074
Problem:    Cannot make Vim fail on an internal error.
Solution:   Add IEMSG() and IEMSG2(). (Domenique Pelle)  Avoid reporting an
            internal error without mentioning where.
2016-11-10 20:01:45 +01:00
459ca56312 patch 8.0.0073
Problem:    More comparisons between firstwin and lastwin.
Solution:   Use ONE_WINDOW for consistency. (Hirohito Higashi)
2016-11-10 18:16:33 +01:00
38bc495637 patch 8.0.0072
Problem:    MS-Windows: Crash with long font name. (Henry Hu)
Solution:   Fix comparing with LF_FACESIZE. (Ken Takata, closes #1243)
2016-11-10 17:10:51 +01:00
c4d4ac22f7 patch 8.0.0071
Problem:    Exit value from a shell command is wrong. (Hexchain Tong)
Solution:   Do not check for ended jobs while waiting for a shell command.
            (ichizok, closes #1196)
2016-11-07 22:42:57 +01:00
3f9ebf32a3 patch 8.0.0070
Problem:    Tests referred in Makefile that no longer exist.
Solution:   Remove test71 and test74 entries. (Michael Soyka)
2016-11-07 22:13:32 +01:00
a1f4cb93ba patch 8.0.0069
Problem:    Compiler warning for self-comparison.
Solution:   Define ONE_WINDOW and add #ifdef.
2016-11-06 15:25:42 +01:00
25de4c232d Updated runtime files. 2016-11-06 14:48:06 +01:00
21662be221 patch 8.0.0068
Problem:    Checking did_throw after executing autocommands is wrong. (Daniel
            Hahler)
Solution:   Call aborting() instead, and only when autocommands were executed.
2016-11-06 14:46:44 +01:00
98500fdc61 patch 8.0.0067
Problem:    VMS has a problem with infinity.
Solution:   Avoid an overflow. (Zoltan Arpadffy)
2016-11-06 14:17:16 +01:00
4a08b0dc4d patch 8.0.0066
Problem:    when calling an operator function when 'linebreak' is set, it is
            internally reset before calling the operator function.
Solution:   Restore 'linebreak' before calling op_function(). (Christian
            Brabandt)
2016-11-05 21:55:13 +01:00
40d3f137e7 patch 8.0.0065
Problem:    Compiler warning for unused function in tiny build. (Tony
            Mechelynck)
Solution:   Add #ifdef.
2016-11-05 20:13:35 +01:00
eb828d01d9 patch 8.0.0064
Problem:    Normal test fails on MS-Windows.
Solution:   Don't try using an illegal file name.
2016-11-05 19:54:01 +01:00
55952d4dd4 patch 8.0.0063
Problem:    Compiler warning for comparing with unsigned. (Zoltan Arpadffy)
Solution:   Change <= to ==.
2016-11-05 14:58:34 +01:00
8161551724 patch 8.0.0062
Problem:    No digraph for HORIZONTAL ELLIPSIS.
Solution:   Use ",.". (Hans Ginzel, closes #1226)
2016-11-04 22:17:16 +01:00
aab3383e70 patch 8.0.0061
Problem:    Compiler warning for unused variable.
Solution:   Add #ifdef. (John Marriott)
2016-11-04 22:08:29 +01:00
426f375422 patch 8.0.0060
Problem:    When using an Ex command for 'keywordprg' it is escaped as with a
            shell command. (Romain Lafourcade)
Solution:   Escape for an Ex command. (closes #1175)
2016-11-04 21:22:37 +01:00
de5e2c219b patch 8.0.0059
Problem:    Vim does not build on VMS systems.
Solution:   Various changes for VMS. (Zoltan Arpadffy)
2016-11-04 20:35:31 +01:00
91e44a3305 patch 8.0.0058
Problem:    Positioning of the popup menu is not good.
Solution:   Position it better. (Hirohito Higashi)
2016-11-04 20:08:52 +01:00
9376f5f482 patch 8.0.0057
Problem:    Tests fail without the 'keymap' features.
Solution:   Check for feature in test.
2016-11-04 16:41:20 +01:00
d0b5138ba4 patch 8.0.0056
Problem:    When setting 'filetype' there is no check for a valid name.
Solution:   Only allow valid characters in 'filetype', 'syntax' and 'keymap'.
2016-11-04 15:23:45 +01:00
3a117e19e0 patch 8.0.0055
Problem:    Minor comment and style deficiencies.
Solution:   Update comments and fix style.
2016-10-30 21:57:52 +01:00
b4ada79aa7 Runtime file updates. 2016-10-30 21:55:26 +01:00
fb63090b62 patch 8.0.0054
Problem:    On Windows job_stop() stops cmd.exe, not the processes it runs.
            (Linwei)
Solution:   Iterate over all processes and terminate the one where the parent
            is the job process. Now only when there is no job object.
            (Yasuhiro Matsumoto, closes #1203)
2016-10-29 14:55:00 +02:00
60ef3e81f4 patch 8.0.0053
Problem:    No test for what 8.0.0047 fixes.
Solution:   Add a test. (Hirohito Higashi)
2016-10-29 14:37:56 +02:00
35a1f59d63 patch 8.0.0052
Problem:    Conceal test passes even without the bug fix.
Solution:   Add a redraw command. (Christian Brabandt)
2016-10-28 22:10:27 +02:00
14207f487c patch 8.0.0051
Problem:    New code for job_stop() breaks channel test on AppVeyor.
Solution:   Revert the change.
2016-10-27 21:13:10 +02:00
01688ad545 patch 8.0.0050
Problem:    An exiting job is detected with a large latency.
Solution:   Check for pending job more often. (Ozaki Kiichi)  Change the
            double loop in mch_inchar() into one.
2016-10-27 20:00:07 +02:00
2f97912800 patch 8.0.0049
Problem:    When a match ends in part of concealed text highlighting, it might
            mess up concealing by resetting prev_syntax_id.
Solution:   Do not reset prev_syntax_id and add a test to verify. (Christian
            Brabandt, closes #1092)
2016-10-27 17:27:44 +02:00
6d5ad4c411 Updated runtime files. 2016-10-27 17:00:16 +02:00
a350bab042 patch 8.0.0048
Problem:    On Windows job_stop() stops cmd.exe, not the processes it runs.
            (Linwei)
Solution:   Iterate over all processes and terminate the one where the parent
            is the job process. (Yasuhiro Matsumoto, closes #1184)
2016-10-27 16:46:53 +02:00
50e5376926 patch 8.0.0047
Problem:    Crash when using the preview window from an unnamed buffer.
            (lifepillar)
Solution:   Do not clear the wrong buffer. (closes #1200)
2016-10-27 14:49:15 +02:00
46fceaaa8d Updated runtime files. 2016-10-23 21:21:08 +02:00
7756e7465d patch 8.0.0046
Problem:    Using NUL instead of NULL.
Solution:   Change to NULL. (Dominique Pelle)
2016-10-21 20:35:37 +02:00
bb09ceb954 patch 8.0.0045
Problem:    Calling job_stop() right after job_start() does not work.
Solution:   Block signals while fork is still busy. (Ozaki Kiichi, closes
            #1155)
2016-10-18 16:27:23 +02:00
025e3e0baf patch 8.0.0044
Problem:    In diff mode the cursor may end up below the last line, resulting
            in an ml_get error.
Solution:   Check the line to be valid.
2016-10-18 14:50:18 +02:00
9ec7fa82a2 patch 8.0.0043
Problem:    When using Insert mode completion with 'completeopt' containing
            "noinsert" with CTRL-N the change is not saved for undo.  (Tommy
            Allen)
Solution:   Call stop_arrow() before inserting for any key.
2016-10-18 13:06:41 +02:00
cbd3bd6cbe patch 8.0.0042
Problem:    When using Insert mode completion with 'completeopt' containing
            "noinsert" change is not saved for undo.  (Tommy Allen)
Solution:   Call stop_arrow() before inserting for pressing Enter.
2016-10-17 20:47:02 +02:00
869e35270e patch 8.0.0041
Problem:    When using Insert mode completion but not actually inserting
            anything an undo item is still created. (Tommy Allen)
Solution:   Do not call stop_arrow() when not inserting anything.
2016-10-16 15:35:47 +02:00
8507747600 patch 8.0.0040
Problem:    Whole line highlighting with matchaddpos() does not work.
Solution:   Check for zero length. (Hirohito Higashi)
2016-10-16 14:35:48 +02:00
156919f99a patch 8.0.0039
Problem:    When Vim 8 reads an old viminfo and exits, the next time marks are
            not read from viminfo. (Ned Batchelder)
Solution:   Set a mark when it wasn't set before, even when the timestamp is
            zero. (closes #1170)
2016-10-15 20:46:20 +02:00
ca291aec99 patch 8.0.0038
Problem:    OPEN_CHR_FILES not defined for FreeBSD using Debian userland
            files.
Solution:   Check for __FreeBSD_kernel__. (James McCoy, closes #1166)
2016-10-15 19:33:50 +02:00
0a9046fbcb patch 8.0.0037
Problem:    Get E924 when switching tabs. ()
Solution:   Use win_valid_any_tab() instead of win_valid(). (Martin Vuille,
            closes #1167, closes #1171)
2016-10-15 19:28:13 +02:00
97792de276 patch 8.0.0036
Problem:    Detecting that a job has finished may take a while.
Solution:   Check for a finished job more often (Ozaki Kiichi)
2016-10-15 18:36:49 +02:00
472e85970e patch 8.0.0035
Problem:    Order of matches for 'omnifunc' is messed up. (Danny Su)
Solution:   Do not set compl_curr_match when called from complete_check().
            (closes #1168)
2016-10-15 17:06:47 +02:00
9e507ca8a3 patch 8.0.0034
Problem:    No completion for ":messages".
Solution:   Complete "clear" argument. (Hirohito Higashi)
2016-10-15 15:39:39 +02:00
a6c27ee6db patch 8.0.0033
Problem:    Cannot use overlapping positions with matchaddpos().
Solution:   Check end of match. (Ozaki Kiichi) Add a test (Hirohito Higashi)
2016-10-15 14:56:30 +02:00
4575876dc8 Updated runtime files. 2016-10-12 23:08:06 +02:00
3e8474dd50 patch 8.0.0032
Problem:    Tests may change the input file when something goes wrong.
Solution:   Avoid writing the input file.
2016-10-12 17:52:42 +02:00
e8ef3a0934 patch 8.0.0031
Problem:    After ":bwipeout" 'fileformat' is not set to the right default.
Solution:   Get the default from 'fileformats'. (Mike Williams)
2016-10-12 17:45:29 +02:00
0ba407012c patch 8.0.0030
Problem:    Mouse mode is not automatically detected for tmux.
Solution:   Check for 'term' to be "tmux". (Michael Henry)
2016-10-12 14:50:54 +02:00
cea912af72 patch 8.0.0029
Problem:    Code for MS-Windows is complicated because of the exceptions for
            old systems.
Solution:   Drop support for MS-Windows older than Windows XP. (Ken Takata)
2016-10-12 14:20:24 +02:00
a7c023ec88 patch 8.0.0028
Problem:    Superfluous semicolons.
Solution:   Remove them. (Ozaki Kiichi)
2016-10-12 12:13:35 +02:00
dc08328821 Updated runtime files. 2016-10-11 08:57:33 +02:00
dc0ccaee68 patch 8.0.0027
Problem:    A channel is closed when reading on stderr or stdout fails, but
            there may still be something to read on another part.
Solution:   Turn ch_to_be_closed into a bitfield. (Ozaki Kiichi)
2016-10-09 17:28:01 +02:00
9b45794818 patch 8.0.0026
Problem:    Error format with %W, %C and %Z does not work. (Gerd Wachsmuth)
Solution:   Skip code when qf_multiignore is set. (Lcd)
2016-10-09 16:10:05 +02:00
936c48f8ca patch 8.0.0025
Problem:    Inconsistent use of spaces vs tabs in gd test.
Solution:   Use tabs. (Anton Lindqvist)
2016-10-09 15:50:48 +02:00
8ddef48d1e patch 8.0.0024
Problem:    When the netbeans channel closes, "DETACH" is put in the output
            part. (Ozaki Kiichi)
Solution:   Write "DETACH" in the socket part.
2016-10-09 15:43:25 +02:00
226630a030 patch 8.0.0023
Problem:    "gd" and "gD" may find a match in a comment or string.
Solution:   Ignore matches in comments and strings. (Anton Lindqvist)
2016-10-08 19:21:31 +02:00
ec68a99464 patch 8.0.0022
Problem:    If a channel in NL mode is missing the NL at the end the remaining
            characters are dropped.
Solution:   When the channel is closed use the remaining text. (Ozaki Kiichi)
2016-10-03 21:37:41 +02:00
84dbd494dc patch 8.0.0021
Problem:    In the GUI when redrawing the cursor it may be on the second half
            of a double byte character.
Solution:   Correct the cursor column. (Yasuhiro Matsumoto)
2016-10-02 23:09:31 +02:00
6100d02aab patch 8.0.0020
Problem:    The regexp engines are not reentrant.
Solution:   Add regexec_T and save/restore the state when needed.
2016-10-02 16:51:57 +02:00
2ec618c9fe Updated runtime files. 2016-10-01 14:47:05 +02:00
b3435b0a3a patch 8.0.0019
Problem:    Test_command_count is old style.
Solution:   Turn it into a new style test. (Naruhiko Nishino)
            Use more assert functions.
2016-09-29 20:54:59 +02:00
b9c31e71f5 patch 8.0.0018
Problem:    When using ":sleep" channel input is not handled.
Solution:   When there is a channel check for input also when not in raw mode.
            Check every 100 msec.
2016-09-29 15:18:57 +02:00
1777785751 Missing part of patch 8.0.0014 2016-09-27 21:30:22 +02:00
890680ca63 patch 8.0.0017
Problem:    Cannot get the number of the current quickfix or location list.
Solution:   Use the current list if "nr" in "what" is zero. (Yegappan
            Lakshmanan)  Remove debug command from test.
2016-09-27 21:28:56 +02:00
0e77b7691e patch 8.0.0016
Problem:    Build fails.
Solution:   Include missing change.
2016-09-26 22:58:58 +02:00
7ef3810d28 patch 8.0.0015
Problem:    Can't tell which part of a channel has "buffered" status.
Solution:   Add an optional argument to ch_status().  Let ch_info() also
            return "buffered" for out_status and err_status.
2016-09-26 22:36:58 +02:00
1eceadaf48 patch 8.0.0014
Problem:    Crypt tests are old style.
Solution:   Convert to new style.
2016-09-26 20:14:56 +02:00
c79d6aa01d patch 8.0.0013
Problem:    Missing comma in list.
Solution:   Add the comma.
2016-09-25 22:27:37 +02:00
3e496b0ea3 Updated runtime files. 2016-09-25 22:11:48 +02:00
9af4184276 patch 8.0.0012
Problem:    Typos in comments.
Solution:   Change "its" to "it's". (Matthew Brener, closes #1088)
2016-09-25 21:45:05 +02:00
20eeb6129d Fix patch applied twice. 2016-09-25 21:06:50 +02:00
947000d6e4 patch 8.0.0011
Problem:    On OSX Test_pipe_through_sort_all() sometimes fails.
Solution:   Add the test to the list of flaky tests.
2016-09-25 21:03:02 +02:00
680e015bfe patch 8.0.0010
Problem:    Crash when editing file that starts with crypt yeader. (igor2x)
Solution:   Check for length of text. (Christian Brabandt) Add a test.
2016-09-25 20:54:11 +02:00
3f1c15b24a patch 8.0.0009
Problem:    Unecessary workround for AppVeyor.
Solution:   Revert patch 7.4.990. (Christian Brabandt)
2016-09-25 20:22:02 +02:00
50ba526fbf Updated runtime files. 2016-09-22 22:33:02 +02:00
9e02cfa226 patch 8.0.0008
Problem:    Popup complete test is disabled.
Solution:   Enable the test and change the assert. (Hirohito Higashi)
2016-09-22 21:27:11 +02:00
bbe917d9d4 patch 8.0.0007
Problem:    Vim 7.4 is still mentioned in a few places.
Solution:   Update to Vim 8.  (Uncle Bill, closes #1094)
2016-09-21 22:41:24 +02:00
ebdd90ac28 patch 8.0.0006
Problem:    ":lb" is interpreted as ":lbottom" while the documentation says it
            means ":lbuffer".
Solution:   Adjust the order of the commands. (haya14busa, closes #1093)
2016-09-20 21:39:14 +02:00
d07969093a Updated runtime files. 2016-09-16 20:02:31 +02:00
3c4ebeba17 patch 8.0.0005
Problem:    Netbeans test fails with Python 3. (Jonathonf)
Solution:   Encode the string before sending it. (closes #1070)
2016-09-15 11:44:27 +02:00
5582ef1438 patch 8.0.0004
Problem:    A string argument for function() that is not a function name
            results in an error message with NULL. (Christian Brabandt)
Solution:   Use the argument for the error message.
2016-09-14 22:16:13 +02:00
789a5c0e3d patch 8.0.0003
Problem:    getwinvar() returns wrong Value of boolean and number options,
            especially non big endian systems. (James McCoy)
Solution:   Cast the pointer to long or int. (closes #1060)
2016-09-12 19:51:11 +02:00
b56e7ff0db Update translations for intro page. 2016-09-12 16:41:04 +02:00
9e1e7afc1f patch 8.0.0002
Problem:    The netrw plugin does not work.
Solution:   Make it accept version 8.0.
2016-09-12 16:31:10 +02:00
6401024869 patch 8.0.0001
Problem:    Intro screen still mentions version7. (Paul)
Solution:   Change it to version8.
2016-09-12 16:23:34 +02:00
bb76f24af2 Vim 8.0 release 2016-09-12 14:24:39 +02:00
edeb846c1f patch 7.4.2367
Problem:    Test runner misses a comma.
Solution:   Add the comma.
2016-09-12 13:32:02 +02:00
100f27721b patch 7.4.2366
Problem:    MS-Windows gvim.exe does not have DirectX support.
Solution:   Add the DIRECTX to the script.
2016-09-12 13:18:29 +02:00
1b01005823 patch 7.4.2365
Problem:    Needless line break. Confusing directory name.
Solution:   Remove line break.  Prepend "../" to "tools".
2016-09-12 12:24:11 +02:00
220adb1e9f A few more runtime updates. 2016-09-12 12:17:26 +02:00
e1c8c7a674 patch 7.4.2364
Problem:    Sort test sometimes fails.
Solution:   Add it to the list of flaky tests.
2016-09-11 16:48:50 +02:00
cbeab96f87 patch 7.4.2363
Problem:    Superfluous function prototypes.
Solution:   Remove them.
2016-09-11 15:08:56 +02:00
7e1479b86c Updated runtime files, Japanese translations. 2016-09-11 15:07:27 +02:00
4930a76a03 patch 7.4.2362
Problem:    Illegal memory access with ":1@". (Dominique Pelle)
Solution:   Correct cursor column after setting the line number.  Also avoid
            calling end_visual_mode() when not in Visual mode.
2016-09-11 14:39:53 +02:00
ee39ef0b93 patch 7.4.2361
Problem:    Checking for last_timer_id to overflow is not reliable. (Ozaki
            Kiichi)
Solution:   Check for the number not going up.
2016-09-10 19:17:42 +02:00
80c3fd7c55 patch 7.4.2360
Problem:    Invalid memory access when formatting. (Dominique Pelle)
Solution:   Make sure cursor line and column are associated.
2016-09-10 15:52:55 +02:00
26fe0d5691 patch 7.4.2359
Problem:    Memory leak in timer_start().
Solution:   Check the right field to be NULL.
2016-09-10 14:27:30 +02:00
d47d83745f patch 7.4.2358
Problem:    Compiler warnings with Solaris Studio when using GTK3.
Solution:   Define FUNC2GENERIC depending on the system. (Kazunobu Kuriyama)
2016-09-09 22:13:24 +02:00
46643713dc patch 7.4.2357
Problem:    Attempt to read history entry while not initialized.
Solution:   Skip when the index is negative.
2016-09-09 21:42:36 +02:00
ea683da58c patch 7.4.2356
Problem:    Reading past end of line when using previous substitute pattern.
            (Dominique Pelle)
Solution:   Don't set "pat" only set "searchstr".
2016-09-09 21:41:34 +02:00
16b3578f35 patch 7.4.2355
Problem:    Regexp fails to match when using "\>\)\?". (Ramel)
Solution:   When a state is already in the list, but addstate_here() is used
            and the existing state comes later, add the new state anyway.
2016-09-09 20:29:50 +02:00
d563883a1f patch 7.4.2354
Problem:    The example that explains nested backreferences does not work
            properly with the new regexp engine. (Harm te Hennepe)
Solution:   Also save the end position when adding a state. (closes #990)
2016-09-09 17:59:50 +02:00
2931f2a5df patch 7.4.2353
Problem:    Not enough test coverage for Normal mode commands.
Solution:   Add more tests. (Christian Brabandt)
2016-09-09 16:59:08 +02:00
922a443cfd patch 7.4.2352
Problem:    Netbeans test fails in shadow directory.
Solution:   Also copy README.txt to the shadow directory.
2016-09-09 16:03:48 +02:00
ff330ff2c4 patch 7.4.2351
Problem:    Netbeans test fails when run from unpacked MS-Windows sources.
Solution:   Open README.txt instead of Makefile.
2016-09-09 15:31:34 +02:00
cf703fe9d6 patch 7.4.2350
Problem:    Test 86 and 87 fail with some version of Python.
Solution:   Unify "can't" and "cannot".  Unify quotes.
2016-09-09 14:59:39 +02:00
2321ca2a78 patch 7.4.2349
Problem:    Valgrind reports using uninitialzed memory. (Dominique Pelle)
Solution:   Check the length before checking for a NUL.
2016-09-09 14:17:18 +02:00
9a27c7fde6 patch 7.4.2348
Problem:    Crash on exit when EXITFREE is defined. (Dominique Pelle)
Solution:   Don't access curwin when exiting.
2016-09-09 12:57:09 +02:00
c4a908e836 patch 7.4.2347
Problem:    Crash when closing a buffer while Visual mode is active.
            (Dominique Pelle)
Solution:   Adjust the position before computing the number of lines.
            When closing the current buffer stop Visual mode.
2016-09-08 23:35:30 +02:00
abd468ed0f Updated runtime files 2016-09-08 22:22:43 +02:00
f18c4dbbe5 patch 7.4.2346
Problem:    Autocommand test fails when run directly, passes when run as part
            of test_alot.
Solution:   Add command to make the cursor move.  Close a tab page.
2016-09-08 22:10:06 +02:00
0eaadec6b2 patch 7.4.2345
Problem:    For MinGW RUBY_API_VER_LONG isn't set correctly.  Many default
            version numbers are outdated.
Solution:   Set RUBY_API_VER_LONG to RUBY_VER_LONG. Use latest stable releases
            for defaults. (Ken Takata)
2016-09-08 20:28:45 +02:00
169ebb0804 patch 7.4.2344
Problem:    The "Reading from channel output..." message can be unwanted.
            Appending to a buffer leaves an empty first line behind.
Solution:   Add the "out_msg" and "err_msg" options. Writing the first line
            overwrites the first, empty line.
2016-09-07 23:32:23 +02:00
53f1673cd9 patch 7.4.2343
Problem:    Too many old file tests.
Solution:   Turn several into new style tests. (Yegappan Lakshmanan)
2016-09-07 20:46:39 +02:00
1b0c1d050e patch 7.4.2342
Problem:    Typo in MS-Windows build script.
Solution:   change "w2" to "22".
2016-09-06 23:23:52 +02:00
aeac9006d5 patch 7.4.2341
Problem:    Tiny things.  Test doesn't clean up properly.
Solution:   Adjust comment and white space. Restore option value.
2016-09-06 22:15:08 +02:00
64d8e25bf6 Updated runtime files. 2016-09-06 22:12:34 +02:00
6384c5db8d patch 7.4.2340
Problem:    MS-Windows: Building with Ruby uses old version.
Solution:   Update to 2.2.X. Use clearer name for the API version. (Ken
            Takata)
2016-09-06 22:06:35 +02:00
100f5c90f4 patch 7.4.2339
Problem:    Tab page test fails when run as fake root.
Solution:   Check 'buftype' instead of 'filetype'. (James McCoy, closes #1042)
2016-09-06 21:33:52 +02:00
7947312871 patch 7.4.2338
Problem:    Can't build with small features. (John Marriott)
Solution:   Nearly always define FEAT_TAG_BINS.
2016-09-06 21:32:11 +02:00
77b642501a patch 7.4.2337
Problem:    taglist() is still slow. (Luc Hermitte)
Solution:   Check for CTRL-C less often when finding duplicates.
2016-09-06 21:14:27 +02:00
df0db16cf7 patch 7.4.2336
Problem:    Running normal mode tests leave a couple of files behind.
            (Yegappan Lakshmanan)
Solution:   Delete the files. (Christian Brabandt)
2016-09-06 20:37:41 +02:00
72b4b870fc patch 7.4.2335
Problem:    taglist() is slow. (Luc Hermitte)
Solution:   Check for CTRL-C less often when doing a linear search. (closes
            #1044)
2016-09-06 20:24:50 +02:00
1b0c2fcf6e patch 7.4.2334
Problem:    On MS-Windows test_getcwd leaves Xtopdir behind.
Solution:   Set 'noswapfile'. (Michael Soyka)
2016-09-05 23:29:26 +02:00
31845093b7 patch 7.4.2333
Problem:    Outdated comments in test.
Solution:   Cleanup normal mode test. (Christian Brabandt)
2016-09-05 22:58:31 +02:00
75537a93e9 patch 7.4.2332
Problem:    Crash when stop_timer() is called in a callback of a callback.
            Vim hangs when the timer callback uses too much time.
Solution:   Set tr_id to -1 when a timer is to be deleted. Don't keep calling
            callbacks forever. (Ozaki Kiichi)
2016-09-05 22:45:28 +02:00
33a80eeb85 patch 7.4.2331
Problem:    Using CTRL-X CTRL-V to complete a command line from Insert mode
            does not work after entering an expression on the command line.
Solution:   Don't use "ccline" when not actually using a command line. (test
            by Hirohito Higashi)
2016-09-05 21:51:14 +02:00
030cddc7ec patch 7.4.2330
Problem:    Coverity complains about not checking curwin to be NULL.
Solution:   Use firstwin to avoid the warning.
2016-09-04 23:41:42 +02:00
26b84339fd patch 7.4.2329
Problem:    Error for min() and max() contains %s. (Nikolay Pavlov)
Solution:   Pass the function name. (closes #1040)
2016-09-04 21:42:36 +02:00
f9e687e068 patch 7.4.2328
Problem:    Crash when BufWinLeave autocmd goes to another tab page. (Hirohito
            Higashi)
Solution:   Make close_buffer() go back to the right window.
2016-09-04 21:33:09 +02:00
c8fe338d64 patch 7.4.2327
Problem:    Freeing a variable that is on the stack.
Solution:   Don't free res_tv or err_tv. (Ozaki Kiichi)
2016-09-04 20:44:42 +02:00
d5824ce1b5 patch 7.4.2326
Problem:    Illegal memory access when Visual selection starts in invalid
            position. (Dominique Pelle)
Solution:   Correct position when needed.
2016-09-04 20:35:01 +02:00
30180b8dad patch 7.4.2325
Problem:    Tiny build fails.
Solution:   Add #ifdef.
2016-09-04 19:57:56 +02:00
e0ab94e712 patch 7.4.2324
Problem:    Crash when editing a new buffer and BufUnload autocommand wipes
            out the new buffer. (Norio Takagi)
Solution:   Don't allow wiping out this buffer. (partly by Hirohito Higashi)
            Move old style test13 into test_autocmd. Avoid ml_get error when
            editing a file.
2016-09-04 19:50:54 +02:00
d77f9d595e patch 7.4.2323
Problem:    Using freed memory when using 'formatexpr'. (Dominique Pelle)
Solution:   Make a copy of 'formatexpr' before evaluating it.
2016-09-04 15:13:39 +02:00
bc54f3f3fe patch 7.4.2322
Problem:    Access memory beyond the end of the line. (Dominique Pelle)
Solution:   Adjust the cursor column.
2016-09-04 14:34:28 +02:00
dac1947bb3 patch 7.4.2321
Problem:    When a test is commented out we forget about it.
Solution:   Let a test throw an exception with "Skipped" and list skipped test
            functions. (Christian Brabandt)
2016-09-03 22:35:40 +02:00
dda933d06c patch 7.4.2320
Problem:    Redraw problem when using 'incsearch'.
Solution:   Save the current view when deleting characters. (Christian
            Brabandt) Fix that the '" mark is set in the wrong position. Don't
            change the search start when using BS.
2016-09-03 21:04:58 +02:00
b07a82b6d5 patch 7.4.2319
Problem:    No way for a system wide vimrc to stop loading defaults.vim.
            (Christian Hesse)
Solution:   Bail out of defaults.vim if skip_defaults_vim was set.
2016-09-03 20:08:56 +02:00
349e7d94e6 patch 7.4.2318
Problem:    When 'incsearch' is not set CTRL-T and CTRL-G are not inserted as
            before.
Solution:   Move #ifdef and don't use goto.
2016-09-03 20:04:34 +02:00
0913a1089a patch 7.4.2317
Problem:    Normal mode tests fail on MS-Windows.
Solution:   Do some tests only on Unix.  Set 'fileformat' to "unix".
2016-09-03 19:11:59 +02:00
f7f3e32fcc patch 7.4.2316
Problem:    Channel sort test is flaky.
Solution:   Add a check the output has been read.
2016-09-03 18:47:24 +02:00
87bc3f7459 patch 7.4.2315
Problem:    Insufficient testing for Normal mode commands.
Solution:   Add a big test. (Christian Brabandt, closes #1029)
2016-09-03 17:33:54 +02:00
de653f0880 patch 7.4.2314
Problem:    No error when deleting an augroup while it's the current one.
Solution:   Disallow deleting an augroup when it's the current one.
2016-09-03 16:59:06 +02:00
b62cc36a60 patch 7.4.2313
Problem:    Crash when deleting an augroup and listing an autocommand.
            (Dominique Pelle)
Solution:   Make sure deleted_augroup is valid.
2016-09-03 16:43:53 +02:00
5a49789a9b patch 7.4.2312
Problem:    Crash when autocommand moves to another tab. (Dominique Pelle)
Solution:   When navigating to another window halfway the :edit command go
            back to the right window.
2016-09-03 16:29:04 +02:00
dd905a2ae1 patch 7.4.2311
Problem:    Appveyor 64 bit build still using Python 3.4
Solution:   Switch to Python 3.5. (Ken Takata, closes #1032)
2016-09-02 22:26:04 +02:00
a5d4121eed patch 7.4.2310
Problem:    Accessing freed memory when a timer does not repeat.
Solution:   Free after removing it. (Dominique Pelle)
2016-09-02 22:18:49 +02:00
11fbc2866c patch 7.4.2309
Problem:    Crash when doing tabnext in a BufUnload autocmd. (Dominique Pelle)
Solution:   When detecting that the tab page changed, don't just abort but
            delete the window where w_buffer is NULL.
2016-09-02 21:48:32 +02:00
44f660c421 patch 7.4.2308
Problem:    Old charsearch test still listed in Makefile.
Solution:   Remove the line.
2016-09-02 20:03:20 +02:00
cd055da370 patch 7.4.2307
Problem:    Several tests are old style.
Solution:   Turn them into new style tests. (Yegappan Lakshmanan)
2016-09-02 19:50:48 +02:00
da9ce2cde1 patch 7.4.2306
Problem:    Default value for 'langremap' is wrong.
Solution:   Set the right value. (Jürgen Krämer)  Add a test.
2016-09-02 19:34:10 +02:00
19a1669ffc patch 7.4.2305
Problem:    Marks, writefile and nested function tests are old style.
Solution:   Turn them into new style tests. (Yegappan Lakshmanan)
2016-09-01 22:19:47 +02:00
417ccd7138 patch 7.4.2304
Problem:    In a timer callback the timer itself can't be found or stopped.
            (Thinca)
Solution:   Do not remove the timer from the list, remember whether it was
            freed.
2016-09-01 21:26:20 +02:00
779f2fc3a7 patch 7.4.2303
Problem:    When using "is" the mode isn't always updated.
Solution:   Redraw the command line. (Christian Brabandt)
2016-09-01 20:58:24 +02:00
f1b512a0b6 patch 7.4.2302
Problem:    Default interface versions for MS-Windows are outdated.
Solution:   Use Active Perl 5.24, Python 3.5.2.  Could only make it work with
            Ruby 1.9.2.
2016-09-01 20:50:54 +02:00
641ad6c7ac patch 7.4.2301
Problem:    MS-Windows: some files remain after testing.
Solution:   Close the channel output file.  Wait for the file handle to be
            closed before deleting the file.
2016-09-01 18:32:11 +02:00
5c80908ced patch 7.4.2300
Problem:    Get warning for deleting autocommand group when the autocommand
            using the group is scheduled for deletion. (Pavol Juhas)
Solution:   Check for deleted autocommand.
2016-09-01 16:21:48 +02:00
04c4ce650f patch 7.4.2299
Problem:    QuickFixCmdPre and QuickFixCmdPost autocommands are not always
            triggered.
Solution:   Also trigger on ":expr", ":cbuffer", etc. (Yegappan Lakshmanan)
2016-09-01 15:45:58 +02:00
0874a83e9b patch 7.4.2298
Problem:    It is not possible to close the "in" part of a channel.
Solution:   Add ch_close_in().
2016-09-01 15:11:51 +02:00
d8b554904d patch 7.4.2297
Problem:    When starting a job that reads from a buffer and reaching the end,
            the job hangs.
Solution:   Close the pipe or socket when all lines were read.
2016-09-01 14:35:22 +02:00
f37506f60f Updated runtime files. Remove HiLink commands. 2016-08-31 22:22:10 +02:00
c628fdcd46 patch 7.4.2296
Problem:    No tests for :undolist and "U" command.
Solution:   Add tests. (Dominique Pelle)
2016-08-31 20:33:27 +02:00
89bcfda683 Updated runtime files. Remove version checks for Vim older than 6.0. 2016-08-30 23:26:57 +02:00
4792255eff patch 7.4.2295
Problem:    Cscope test fails.
Solution:   Avoid checking for specific line and column numbers.
2016-08-30 10:56:50 +02:00
64cefedfc8 patch 7.4.2294
Problem:    Sign test fails on MS-Windows when using the distributed zip
            archives.
Solution:   Create dummy files instead of relying on files in the pixmaps
            directory.
2016-08-29 23:06:28 +02:00
edf3f97ae2 patch 7.4.2293
Problem:    Modelines in source code are inconsistant.
Solution:   Use the same line in most files.  Add 'noet'.  (Naruhiko Nishino)
2016-08-29 22:49:24 +02:00
965ed14973 patch 7.4.2292
Problem:    Not all systems understand %F in printf().
Solution:   Use %f.
2016-08-29 22:31:24 +02:00
0418609534 patch 7.4.2291
Problem:    printf() handles floats wrong when there is a sign.
Solution:   Fix placing the sign.  Add tests. (Dominique Pelle)
2016-08-29 21:55:35 +02:00
7f7bd297d6 patch 7.4.2290
Problem:    Compiler warning in tiny build. (Tony Mechelynck)
Solution:   Add #ifdef around infinity_str().
2016-08-28 21:21:31 +02:00
7683aaa506 patch 7.4.2289
Problem:    When installing and $DESTDIR is set the icons probably won't be
            installed.
Solution:   Create the icon directories if $DESTDIR is not empty. (Danek
            Duvall)
2016-08-28 21:00:50 +02:00
cb03397aba patch 7.4.2288
Problem:    MS-Windows build instructions are clumsy. "dosbin" doesn't build.
Solution:   Add rename.bat. Fix building "dosbin".
2016-08-28 20:14:38 +02:00
6fc8227ebf patch 7.4.2287
Problem:    The callback passed to ch_sendraw() is not used.
Solution:   Pass the read part, not the send part. (haya14busa, closes #1019)
2016-08-28 19:26:43 +02:00
fec246d2c5 patch 7.4.2286
Problem:    The tee program isn't included.  Makefile contains build
            instructions that don't work.
Solution:   Update the Filelist and build instructions. Remove build
            instructions for DOS and old Windows.  Add the tee program.
2016-08-28 18:47:14 +02:00
36f44c21da Updated runtime files. 2016-08-28 18:17:20 +02:00
d90b6c02e2 patch 7.4.2285
Problem:    Generated files are outdated.
Solution:   Generate the files.  Avoid errors when generating prototypes.
2016-08-28 18:10:45 +02:00
f4145d8e99 patch 7.4.2284
Problem:    Comment in scope header file is outdated. (KillTheMule)
Solution:   Point to the help instead. (closes #1017)
2016-08-28 17:15:25 +02:00
885c00eabe patch 7.4.2283
Problem:    Part of ":oldfiles" command isn't cleared. (Lifepillar)
Solution:   Clear the rest of the line. (closes 1018)
2016-08-28 17:08:17 +02:00
0abe0522d0 patch 7.4.2282
Problem:    When a child process is very fast waiting 10 msec for it is
            noticeable. (Ramel Eshed)
Solution:   Start waiting for 1 msec and gradually increase.
2016-08-28 16:53:12 +02:00
0426bae2ab patch 7.4.2281
Problem:    Timer test fails sometimes.
Solution:   Reduce minimum time by 1 msec.
2016-08-28 16:06:05 +02:00
e999782e36 patch 7.4.2280
Problem:    printf() doesn't handle infinity float values correctly.
Solution:   Add a table with possible infinity values. (Dominique Pelle)
2016-08-28 16:03:38 +02:00
46328f9a1c patch 7.4.2279
Problem:    Starting diff mode with the cursor in the last line might end up
            only showing one closed fold. (John Beckett)
Solution:   Scroll the window to show the same relative cursor position.
2016-08-28 15:39:57 +02:00
4427db9bb2 patch 7.4.2278
Problem:    New users have no idea of the 'scrolloff' option.
Solution:   Set 'scrolloff' in defaults.vim.
2016-08-28 14:39:44 +02:00
6a402edbeb patch 7.4.2277
Problem:    Memory leak in getbufinfo() when there is a sign. (Dominique
            Pelle)
Solution:   Remove extra vim_strsave().
2016-08-28 14:11:24 +02:00
1773ddfdcd patch 7.4.2276
Problem:    Command line test fails on Windows when run twice.
Solution:   Wipe the buffer so that the directory can be deleted.
2016-08-28 13:38:54 +02:00
e67d546f3c patch 7.4.2275
Problem:    ":diffoff!" does not remove filler lines.
Solution:   Force a redraw and invalidate the cursor. (closes #1014)
2016-08-27 22:40:42 +02:00
818078ddfb Updated runtime files and translations. 2016-08-27 21:58:42 +02:00
73d4e4c892 patch 7.4.2274
Problem:    Command line completion on "find **/filename" drops sub-directory.
Solution:   Handle this case separately. (Harm te Hennepe, closes #932, closes
            #939)
2016-08-27 21:55:13 +02:00
3056735ae8 patch 7.4.2273
Problem:    getwininfo() and getbufinfo() are inefficient.
Solution:   Do not make a copy of all window/buffer-local options.  Make it
            possible to get them with gettabwinvar() or getbufvar().
2016-08-27 21:25:44 +02:00
9f8187c335 patch 7.4.2272
Problem:    getbufinfo(), getwininfo() and gettabinfo() are inefficient.
Solution:   Instead of making a copy of the variables dictionary, use a
            reference.
2016-08-27 20:34:01 +02:00
ffdf08c94e patch 7.4.2271
Problem:    Netbeans test doesn't read settings from file.
Solution:   Use "-Xnbauth".
2016-08-27 19:52:47 +02:00
821179809d patch 7.4.2270
Problem:    Insufficient testing for NUL bytes on a raw channel.
Solution:   Add a test for writing and reading.
2016-08-27 19:21:48 +02:00
e17bdffff7 patch 7.4.2269
Problem:    Using 'hlsearch' highlighting instead of matchpos if there is no
            search match.
Solution:   Pass NULL as last item to next_search_hl() when searching for
            'hlsearch' match. (Shane Harper, closes #1013)
2016-08-27 18:34:29 +02:00
1195669f9e patch 7.4.2268
Problem:    Using CTRL-N and CTRL-P for incsearch shadows completion keys.
Solution:   Use CTRL-T and CTRL-G instead.
2016-08-27 16:26:56 +02:00
44ca54aeb9 patch 7.4.2267
Problem:    Build fails on MS-Windows.
Solution:   Add define to get isinf().
2016-08-27 15:41:32 +02:00
9992237a3e patch 7.4.2266
Problem:    printf() test fails on Windows. "-inf" is not used.
Solution:   Check for Windows-specific values for "nan".  Add sign to "inf"
            when appropriate.
2016-08-27 15:26:35 +02:00
76efafba2a patch 7.4.2265
Problem:    printf() isn't tested much.
Solution:   Add more tests for printf(). (Dominique Pelle)
2016-08-27 14:21:21 +02:00
2b529bb626 patch 7.4.2264
Problem:    When adding entries to an empty quickfix list the title is reset.
Solution:   Improve handling of the title. (Yegappan Lakshmanan)
2016-08-27 13:35:35 +02:00
d29459baa6 patch 7.4.2263
Problem:    :filter does not work for many commands.  Can only get matching
            messages.
Solution:   Make :filter work for :command, :map, :list, :number and :print.
            Make ":filter!" show non-matching lines.
2016-08-26 22:29:11 +02:00
2570957607 patch 7.4.2262
Problem:    Fail to read register content from viminfo if it is 438 characters
            long. (John Chen)
Solution:   Adjust the check for line wrapping. (closes #1010)
2016-08-26 20:41:16 +02:00
7df0f6313a patch 7.4.2261
Problem:    Build fails with small features.
Solution:   Move "else" inside the #ifdef.
2016-08-26 19:56:00 +02:00
e4a3bcf28d Updated runtime files. Add Scala files. 2016-08-26 19:52:37 +02:00
dd74ab9b46 patch 7.4.2260
Problem:    Channel test is flaky.
Solution:   Add a newline to separate JSON messages.
2016-08-26 19:20:26 +02:00
4d6f32cbfb patch 7.4.2259
Problem:    With 'incsearch' can only see the next match.
Solution:   Make CTRL-N/CTRL-P move to the previous/next match. (Christian
            Brabandt)
2016-08-26 19:13:46 +02:00
f1f0792e55 patch 7.4.2258
Problem:    Two JSON messages are sent without a separator.
Solution:   Separate messages with a NL. (closes #1001)
2016-08-26 17:58:53 +02:00
9f28953f0c patch 7.4.2257
Problem:    Coverity complains about not checking for NULL.
Solution:   Check for out of memory.
2016-08-26 16:39:03 +02:00
db249f26ed patch 7.4.2256
Problem:    Coverity complains about null pointer check.
Solution:   Remove wrong and superfluous error check.
2016-08-26 16:29:47 +02:00
ec42059b78 patch 7.4.2255
Problem:    The script that checks translations can't handle plurals.
Solution:   Check for plural msgid and msgstr entries.  Leave the cursor on
            the first error.
2016-08-26 15:51:53 +02:00
54b6352c6f patch 7.4.2254
Problem:    Compiler warnings in MzScheme code.
Solution:   Add UNUSED.  Remove unreachable code.
2016-08-26 12:55:09 +02:00
78c7e274f2 patch 7.4.2253
Problem:    Check for Windows 3.1 will always return false.  (Christian
            Brabandt)
Solution:   Remove the dead code.
2016-08-25 23:19:29 +02:00
424d74bb20 patch 7.4.2252
Problem:    Compiler warnings for signed/unsigned in expression.
Solution:   Remove type cast. (Dominique Pelle)
2016-08-25 23:02:11 +02:00
015efc32c1 patch 7.4.2251
Problem:    In rare cases diffing 4 buffers is not enough.
Solution:   Raise the limit to 8. (closes #1000)
2016-08-24 22:34:33 +02:00
5b30291785 patch 7.4.2250
Problem:    Some error message cannot be translated.
Solution:   Enclose them in _() and N_(). (Dominique Pelle)
2016-08-24 22:11:55 +02:00
ba2099034f patch 7.4.2249
Problem:    Missing colon in error message.
Solution:   Add the colon. (Dominique Pelle)
2016-08-24 22:06:38 +02:00
358308dd99 patch 7.4.2248
Problem:    When cancelling the :ptjump prompt a preview window is opened for
            a following command.
Solution:   Reset g_do_tagpreview. (Hirohito Higashi)  Add a test.  Avoid that
            the test runner gets stuck in trying to close a window.
2016-08-24 21:21:26 +02:00
b58fe4588c patch 7.4.2247
Problem:    Tiny build fails. (Tony Mechelynck)
Solution:   Remove #ifdef.
2016-08-24 00:39:05 +02:00
d6f2ee32dc patch 7.4.2246
Problem:    Oldfiles test fails.
Solution:   Include missing changes.
2016-08-24 00:30:52 +02:00
77401add71 patch 7.4.2245
Problem:    Filter test fails.
Solution:   Include missing changes.
2016-08-24 00:12:12 +02:00
7b668e83d0 patch 7.4.2244
Problem:    Adding pattern to ":oldfiles" is not a generic solution.
Solution:   Add the ":filter /pat/ cmd" command modifier.  Only works for some
            commands right now.
2016-08-23 23:51:21 +02:00
1b58cdd160 patch 7.4.2243
Problem:    Warning for assigning negative value to unsigned. (Danek Duvall)
Solution:   Make cterm_normal_fg_gui_color and _bg_ guicolor_T, cast to long_u
            only when an unsigned is needed.
2016-08-22 23:04:33 +02:00
17f1347b86 patch 7.4.2242
Problem:    Timer test sometimes fails.
Solution:   Increase the maximum time for callback timer test.
2016-08-22 22:47:45 +02:00
973365dcc4 patch 7.4.2241
Problem:    Timer test sometimes fails.
Solution:   Increase the maximum time for repeating timer.
2016-08-22 22:02:56 +02:00
f267f8bdf7 patch 7.4.2240
Problem:    Tests using the sleep time can be flaky.
Solution:   Use reltime() if available. (Partly by Shane Harper)
2016-08-22 21:40:29 +02:00
9baf297c99 patch 7.4.2239
Problem:    Warning for missing declaration of skip_vimgrep_pat(). (John
            Marriott)
Solution:   Move it to another file.
2016-08-21 22:39:35 +02:00
de7762a2c1 patch 7.4.2238
Problem:    With SGR mouse reporting (suckless terminal) the mouse release and
            scroll up/down is confused.
Solution:   Don't see a release as a scroll up/down. (Ralph Eastwood)
2016-08-21 21:03:37 +02:00
9b7f8ce9eb patch 7.4.2237
Problem:    Can't use "." and "$" with ":tab".
Solution:   Support a range for ":tab". (Hirohito Higashi)
2016-08-21 19:07:17 +02:00
920694c1b6 patch 7.4.2236
Problem:    The 'langnoremap' option leads to double negatives.  And it does
            not work for the last character of a mapping.
Solution:   Add 'langremap' with the opposite value.  Keep 'langnoremap' for
            backwards compatibility.  Make it work for the last character of a
            mapping.  Make the test work.
2016-08-21 17:45:02 +02:00
989f592f7f patch 7.4.2235
Problem:    submatch() does not check for a valid argument.
Solution:   Give an error if the argument is out of range. (Dominique Pelle)
2016-08-21 15:26:54 +02:00
dd1248143e patch 7.4.2234
Problem:    Can't build with +eval but without +quickfix. (John Marriott)
Solution:   Move skip_vimgrep_pat() to separate #ifdef block.
2016-08-21 15:00:03 +02:00
843b884461 patch 7.4.2233
Problem:    Crash when using funcref() with invalid name. (Dominique Pelle)
Solution:   Check for NULL translated name.
2016-08-21 14:36:15 +02:00
e07e797db0 patch 7.4.2232
Problem:    The default ttimeoutlen is very long.
Solution:   Use "100". (Hirohito Higashi)
2016-08-20 19:22:16 +02:00
e11d61a3b1 patch 7.4.2231
Problem:    ":oldfiles" output is a very long list.
Solution:   Add a pattern argument. (Coot, closes #575)
2016-08-20 18:36:54 +02:00
66e29d7112 patch 7.4.2230
Problem:    There is no equivalent of 'smartcase' for a tag search.
Solution:   Add value "followscs" and "smart" to 'tagcase'. (Christian
            Brabandt, closes #712) Turn tagcase test into new style.
2016-08-20 16:57:02 +02:00
f04507d132 patch 7.4.2229
Problem:    Startup test fails on Solaris.
Solution:   Recognize a character device. (Danek Duvall)
2016-08-20 15:05:39 +02:00
9e4d8215d3 patch 7.4.2228
Problem:    Test files have inconsistant modelines.
Solution:   Don't set 'tabstop' to 2, use 'sts' and 'sw'.
2016-08-18 23:04:48 +02:00
7571d55f7d Updated runtime files. 2016-08-18 22:54:46 +02:00
1381d79147 patch 7.4.2227
Problem:    Tab page tests are old style.
Solution:   Change into new style tests. (Hirohito Higashi)
2016-08-18 22:11:42 +02:00
3392883770 patch 7.4.2226
Problem:    The field names used by getbufinfo(), gettabinfo() and
            getwininfo() are not consistent.
Solution:   Use bufnr, winnr and tabnr. (Yegappan Lakshmanan)
2016-08-18 21:22:04 +02:00
bfd096d020 patch 7.4.2225
Problem:    Crash when placing a sign in a deleted buffer.
Solution:   Check for missing buffer name. (Dominique Pelle). Add a test.
2016-08-17 22:29:09 +02:00
af9c4c9b57 patch 7.4.2224
Problem:    Compiler warnings with older compiler and 64 bit numbers.
Solution:   Add "LL" to large values. (Mike Williams)
2016-08-17 21:51:56 +02:00
d3c907b5d2 patch 7.4.2223
Problem:    Buffer overflow when using latin1 character with feedkeys().
Solution:   Check for an illegal character.  Add a test.
2016-08-17 21:32:09 +02:00
6bff02eb53 patch 7.4.2222
Problem:    Sourcing a script where a character has 0x80 as a second byte does
            not work. (Filipe L B Correia)
Solution:   Turn 0x80 into K_SPECIAL KS_SPECIAL KE_FILLER. (Christian
            Brabandt, closes #728)  Add a test case.
2016-08-16 22:50:55 +02:00
91984b9034 patch 7.4.2221
Problem:    printf() does not support binary format.
Solution:   Add %b and %B. (Ozaki Kiichi)
2016-08-16 21:58:41 +02:00
e5a8f35b42 patch 7.4.2220
Problem:    printf() gives an error when the argument for %s is not a string.
            (Ozaki Kiichi)
Solution:   Behave like invoking string() on the argument. (Ken Takata)
2016-08-16 21:30:54 +02:00
f5a39447a8 patch 7.4.2219
Problem:    Recursive call to substitute gets stuck in sandbox. (Nikolai
            Pavlov)
Solution:   Handle the recursive call. (Christian Brabandt, closes #950)
            Add a test.
2016-08-16 21:04:41 +02:00
13d216d302 patch 7.4.2218
Problem:    Can't build with +timers when +digraph is not included.
Solution:   Change #ifdef for e_number_exp. (Damien)
2016-08-16 19:21:11 +02:00
dc1f1645cb Updated runtime files. 2016-08-16 18:33:43 +02:00
4f416e4124 patch 7.4.2217
Problem:    When using matchaddpos() a character after the end of the line can
            be highlighted.
Solution:   Only highlight existing characters. (Hirohito Higashi)
2016-08-16 16:08:18 +02:00
22177f0c08 patch 7.4.2216
Problem:    Test fails without the +sign feature.
Solution:   Only check for signcolumn with the +sign feature.
2016-08-15 22:54:49 +02:00
386600f0cb patch 7.4.2215
Problem:    It's not easy to find out if a window is a quickfix or location
            list window.
Solution:   Add "loclist" and "quickfix" entries to the dict returnec by
            getwininfo(). (Yegappan Lakshmanan)
2016-08-15 22:16:25 +02:00
16350cb979 patch 7.4.2214
Problem:    A font that uses ligatures messes up the screen display.
Solution:   Put spaces between characters when building the glyph table.
            (based on a patch from Manuel Schiller)
2016-08-14 20:27:34 +02:00
58b853460a patch 7.4.2213
Problem:    Cannot highlight the "~" lines at the end of a window differently.
Solution:   Add the EndOfBuffer highlighting. (Marco Hinz, James McCoy)
2016-08-14 19:54:54 +02:00
e59215c7dc patch 7.4.2212
Problem:    Mark " is not set when closing a window in another tab. (Guraga)
Solution:   Check all tabs for the window to be valid. (based on patch by
            Hirohito Higashi, closes #974)
2016-08-14 19:08:45 +02:00
e56132bb41 patch 7.4.2211
Problem:    Mouse support is not automatically enabled with simple term.
Solution:   Recognize "st" and other names. (Manuel Schiller, closes #963)
2016-08-14 18:23:21 +02:00
cff50f5ec9 patch 7.4.2210
Problem:    On OSX configure mixes up a Python framework and the Unix layout.
Solution:   Make configure check properly. (Tim D. Smith, closes #980)
2016-08-14 17:32:52 +02:00
35a4cfa200 patch 7.4.2209
Problem:    Cannot map <M-">. (Stephen Riehm)
Solution:   Solve the memory access problem in another way. (Dominique Pelle)
            Allow for using <M-\"> in a string.
2016-08-14 16:07:48 +02:00
2d1a248762 patch 7.4.2208
Problem:    Test for mappings is old style.
Solution:   Convert the test to new style.
2016-08-14 15:32:11 +02:00
d58b0f982a patch 7.4.2207
Problem:    The +xpm feature is not sorted properly in :version output.
Solution:   Move it up. (Tony Mechelynck)
2016-08-13 16:39:56 +02:00
4ae209597c patch 7.4.2206
Problem:    Warning for unused function.
Solution:   Put the function inside #ifdef. (John Marriott)
2016-08-13 15:29:14 +02:00
e9d58a6459 patch 7.4.2205
Problem:    'wildignore' always applies to getcompletion().
Solution:   Add an option to use 'wildignore' or not. (Yegappan Lakshmanan)
2016-08-13 15:07:41 +02:00
0952131376 Updated runtime files. 2016-08-12 22:54:35 +02:00
b5ae48e9ff patch 7.4.2204
Problem:    It is not easy to get information about buffers, windows and
            tabpages.
Solution:   Add getbufinfo(), getwininfo() and gettabinfo(). (Yegappan
            Lakshmanan)
2016-08-12 22:23:25 +02:00
ebcccad573 patch 7.4.2203
Problem:    Test fails with normal features.
Solution:   Check is signs are supported.
2016-08-12 19:17:13 +02:00
b338483152 patch 7.4.2202
Problem:    Build fails with small features.
Solution:   Correct option initialization.
2016-08-12 18:51:58 +02:00
95ec9d6a6a patch 7.4.2201
Problem:    The sign column disappears when the last sign is deleted.
Solution:   Add the 'signcolumn' option. (Christian Brabandt)
2016-08-12 18:29:59 +02:00
d823fa910c patch 7.4.2200
Problem:    Cannot get all information about a quickfix list.
Solution:   Add an optional argument to get/set loc/qf list(). (Yegappan
            Lakshmanan)
2016-08-12 16:29:27 +02:00
107abd2ca5 patch 7.4.2199
Problem:    In the GUI the cursor is hidden when redrawing any window,
            causing flicker.
Solution:   Only undraw the cursor when updating the window it's in.
2016-08-12 14:08:25 +02:00
0e5d3a2940 patch 7.4.2198
Problem:    Test alot sometimes fails under valgrind. (Dominique Pelle)
Solution:   Avoid passing a callback with the wrong number of arguments.
2016-08-11 22:52:42 +02:00
c257487035 patch 7.4.2197
Problem:    All functions are freed on exit, which may hide leaks.
Solution:   Only free named functions, not reference counted ones.
2016-08-11 22:51:05 +02:00
91c5262b19 patch 7.4.2196
Problem:    glob2regpat test doesn't test everything on MS-Windows.
Solution:   Add patterns with backslash handling.
2016-08-10 23:02:45 +02:00
bcc1dcc981 patch 7.4.2195
Problem:    MS-Windows: The vimrun program does not support Unicode.
Solution:   Use GetCommandLineW().  Cleanup old #ifdefs. (Ken Takata)
2016-08-10 22:02:40 +02:00
446a973ce3 patch 7.4.2194
Problem:    Sign tests don't cover enough.
Solution:   Add more test cases. (Dominique Pelle)
2016-08-10 21:36:23 +02:00
717e196060 patch 7.4.2193
Problem:    With Gnome when the GUI can't start test_startup hangs.
Solution:   Call gui_mch_early_init_check(). (Hirohito Higashi)
2016-08-10 21:28:44 +02:00
a6b7a08ae0 patch 7.4.2192
Problem:    Generating prototypes with Cygwin doesn't work well.
Solution:   Change #ifdefs. (Ken Takata)
2016-08-10 20:53:05 +02:00
a357e44ccd patch 7.4.2191
Problem:    No automatic prototype for vim_main2().
Solution:   Move the #endif. (Ken Takata)
2016-08-10 20:45:07 +02:00
50fa8dd00c patch 7.4.2190
Problem:    When startup test fails it's not easy to find out why.
            GUI test fails with Gnome.
Solution:   Add the help entry matches to a list an assert that.
            Set $HOME for Gnome to create .gnome2 directory.
2016-08-09 22:58:21 +02:00
f71d7b9ee5 patch 7.4.2189
Problem:    Cannot detect encoding in a fifo.
Solution:   Extend the stdin way of detecting encoding to fifo.  Add a test
            for detecting encoding on stdin and fifo. (Ken Takata)
2016-08-09 22:14:05 +02:00
c9fb77c692 patch 7.4.2188
Problem:    Completion does not work properly with some plugins.
Solution:   Revert the part related to typing CTRL-E. (closes #972)
2016-08-09 21:51:40 +02:00
7547a78446 patch 7.4.2187
Problem:    glob2regpat test fails on Windows.
Solution:   Remove the checks that use backslashes.
2016-08-08 23:26:51 +02:00
36d1c0fef4 patch 7.4.2186
Problem:    Timers test is flaky.
Solution:   Relax the sleep time check.
2016-08-08 22:46:14 +02:00
71dd9744cf patch 7.4.2185
Problem:    Test glob2regpat does not test much.
Solution:   Add a few more test cases. (Dominique Pelle)
2016-08-08 22:42:04 +02:00
7a9a5f4019 patch 7.4.2184
Problem:    Tests that use RunVim() do not actually perform the test.
Solution:   Use "return" instead of "call". (Ken Takata)
2016-08-08 22:34:14 +02:00
09de17536d patch 7.4.2183
Problem:    Sign tests are old style.
Solution:   Turn them into new style tests. (Dominique Pelle)
2016-08-08 22:26:48 +02:00
2147746cf8 patch 7.4.2182
Problem:    Color Grey40 used in startup but not in the short list.
Solution:   Add Grey40 to the builtin colors.
2016-08-08 20:43:27 +02:00
a772ec5e91 patch 7.4.2181
Problem:    Compiler warning for unused variable.
Solution:   Remove it. (Dominique Pelle)
2016-08-07 20:20:50 +02:00
b73598e2f0 patch 7.4.2180
Problem:    There is no easy way to stop all timers.  There is no way to
            temporary pause a timer.
Solution:   Add timer_stopall() and timer_pause().
2016-08-07 18:22:53 +02:00
e4a76ad0e7 patch 7.4.2179
Problem:    Reading from stdin test fails on MS-Windows.
Solution:   Strip the extra space.
2016-08-07 16:50:10 +02:00
3a93838339 patch 7.4.2178
Problem:    No test for reading from stdin.
Solution:   Add a test.
2016-08-07 16:36:40 +02:00
ba98bef191 patch 7.4.2177
Problem:    No testing for -C and -N command line flags, file arguments,
            startuptime.
Solution:   Add tests.
2016-08-07 15:51:39 +02:00
a8e691d449 patch 7.4.2176
Problem:    #ifdefs in main() are complicated.
Solution:   Always define vim_main2().  Move params to the file level.
            (suggested by Ken Takata)
2016-08-07 15:19:26 +02:00
812ad4f3a2 patch 7.4.2175
Problem:    Insufficient testing of cscope.
Solution:   Add more tests. (Dominique Pelle)
2016-08-07 14:03:13 +02:00
c8ce615299 patch 7.4.2174
Problem:    Adding duplicate flags to 'whichwrap' leaves commas behind.
Solution:   Also remove the commas. (Naruhiko Nishino)
2016-08-07 13:48:20 +02:00
3321e9d8a3 patch 7.4.2173
Problem:    Can't test help on MS-Windows.
Solution:   Skip the test.
2016-08-06 23:03:59 +02:00
472a0a880a patch 7.4.2172
Problem:    No test for "vim --help".
Solution:   Add a test.
2016-08-06 22:31:42 +02:00
00ff380295 patch 7.4.2171
Problem:    MS-Windows build fails.
Solution:   Add QueryPerformanceCounter().
2016-08-06 22:27:28 +02:00
8e97bd74b5 patch 7.4.2170
Problem:    Cannot get information about timers.
Solution:   Add timer_info().
2016-08-06 22:05:07 +02:00
446cce6d53 patch 7.4.2169
Problem:    Startup test gets stuck on MS-Windows.
Solution:   Use double quotes.
2016-08-06 21:37:27 +02:00
5b4a3767f6 patch 7.4.2168
Problem:    Not running the startup test on MS-Windows.
Solution:   Write vimcmd.
2016-08-06 20:36:34 +02:00
c96a2f3b88 patch 7.4.2167
Problem:    Small build can't run tests.
Solution:   Don't try setting 'packpath'.
2016-08-06 19:45:31 +02:00
328604307b patch 7.4.2166
Problem:    Small build can't run startup test.
Solution:   Skip the test.
2016-08-06 19:24:23 +02:00
83b3c3d8a0 patch 7.4.2165
Problem:    Startup test fails on MS-Windows.
Solution:   Don't check output if RunVim() returns zero.
2016-08-06 19:16:43 +02:00
66459b7c98 patch 7.4.2164
Problem:    It is not possible to use plugins in an "after" directory to tune
            the behavior of a package.
Solution:   First load plugins from non-after directories, then packages and
            finally plugins in after directories.
            Reset 'loadplugins' before executing --cmd arguments.
2016-08-06 19:01:55 +02:00
d76a0c15f8 patch 7.4.2163
Problem:    match() and related functions tested with old style test.
Solution:   Convert to new style test. (Hirohito Higashi)
2016-08-06 15:29:22 +02:00
7522f69821 patch 7.4.2162
Problem:    Result of getcompletion('', 'sign') depends on previous
            completion.
Solution:   Call set_context_in_sign_cmd(). (Dominique Pelle)
2016-08-06 14:12:50 +02:00
7ab6defcaf patch 7.4.2161
Problem:    Expression test fails without conceal feature.
Solution:   Only check "conceal" with the conceal feature.
2016-08-05 22:51:13 +02:00
7dc5e2e486 patch 7.4.2160
Problem:    setmatches() mixes up values. (Nikolai Pavlov)
Solution:   Save the string instead of reusing a shared buffer.
2016-08-05 22:22:06 +02:00
5971dab112 patch 7.4.2159
Problem:    Insufficient testing for cscope.
Solution:   Add more tests. (Dominique Pelle)
2016-08-05 21:25:29 +02:00
b650b9878e patch 7.4.2158
Problem:    Result of getcompletion('', 'cscope') depends on previous
            completion. (Christian Brabandt)
Solution:   Call set_context_in_cscope_cmd().
2016-08-05 20:35:13 +02:00
46c4d4ac66 patch 7.4.2157
Problem:    Test_job_start_fails() is expected to report memory leaks, making
            it hard to see other leaks in test_partial.
Solution:   Move Test_job_start_fails() to a separate test file.
2016-08-05 19:31:57 +02:00
c90f2aedd0 patch 7.4.2156
Problem:    Compiler warning.
Solution:   Add type cast. (Ken Takata, Mike Williams)
2016-08-04 22:00:15 +02:00
9d5b876d45 patch 7.4.2155
Problem:    Quotes make GUI test fail on MS-Windows.
Solution:   Remove quotes, strip white space.
2016-08-04 21:21:13 +02:00
fe9489233c patch 7.4.2154
Problem:    Test_communicate() fails sometimes.
Solution:   Add it to the flaky tests.
2016-08-04 21:11:32 +02:00
877e957798 patch 7.4.2153
Problem:    GUI test isn't testing much.
Solution:   Turn into a new style test.  Execute a shell command.
2016-08-04 20:05:50 +02:00
ee695f787a patch 7.4.2152
Problem:    No proper translation of messages with a count.
Solution:   Use ngettext(). (Sergey Alyoshin)
2016-08-03 22:08:45 +02:00
cf25fdb8f1 patch 7.4.2151
Problem:    Quickfix test fails on MS-Windows.
Solution:   Close the help window. (Christian Brabandt)
2016-08-03 21:04:53 +02:00
4c38d66d25 patch 7.4.2150
Problem:    Warning with MinGW 64. (John Marriott)
Solution:   Change return type. (Ken Takata)
2016-08-03 20:54:57 +02:00
7cba71d7e3 patch 7.4.2149
Problem:    If a test leaves a window open a following test may fail.
Solution:   Always close extra windows after running a test.
2016-08-02 23:04:49 +02:00
edf634e0f1 patch 7.4.2148
Problem:    Not much testing for cscope.
Solution:   Add a test that uses the cscope program. (Christian Brabandt)
2016-08-02 23:01:40 +02:00
abb71fbd39 patch 7.4.2147
Problem:    test_alot fails.
Solution:   Close window.
2016-08-02 22:51:42 +02:00
472472898a patch 7.4.2146
Problem:    Not enough testing for popup menu.  CTRL-E does not always work
            properly.
Solution:   Add more tests.  When using CTRL-E check if the popup menu is
            visible. (Christian Brabandt)
2016-08-02 22:36:02 +02:00
86f2cd5bc5 patch 7.4.2145
Problem:    Win32: Using CreateThread/ExitThread is not safe.
Solution:   Use _beginthreadex and return from the thread. (Ken Takata)
2016-08-02 21:55:17 +02:00
796aa9c804 patch 7.4.2144
Problem:    On MS-Windows quickix does not handle a line with 1023 bytes
            ending in CR-LF properly.
Solution:   Don't consider CR a line break. (Ken Takata)
2016-08-02 21:41:28 +02:00
bc8801c931 Updated runtime files. 2016-08-02 21:04:33 +02:00
bc7ce675b2 patch 7.4.2143
Problem:    A funccal is garbage collected while it can still be used.
Solution:   Set copyID in all referenced functions.  Do not list lambda
            functions with ":function".
2016-08-01 22:49:22 +02:00
8dd3a43d75 patch 7.4.2142
Problem:    Leaking memory when redefining a function.
Solution:   Don't increment the function reference count when it's found by
            name. Don't remove the wrong function from the hashtab.  More
            reference counting fixes.
2016-08-01 20:46:25 +02:00
ba96e9af38 patch 7.4.2141
Problem:    Coverity reports bogus NULL check.
Solution:   When checking for a variable in the funccal scope don't pass the
            varname.
2016-08-01 17:10:20 +02:00
acadbeabe1 patch 7.4.2140
Problem:    Tiny build fails.
Solution:   Add dummy typedefs.
2016-08-01 16:35:59 +02:00
0588d4f9d2 patch 7.4.2139
Problem:    :delfunction causes illegal memory access.
Solution:   Correct logic when deciding to free a function.
2016-08-01 16:29:47 +02:00
2d3d60a7d4 patch 7.4.2138
Problem:    Test 86 and 87 fail.
Solution:   Call func_ref() also for regular functions.
2016-08-01 16:27:23 +02:00
437bafe4c8 patch 7.4.2137
Problem:    Using function() with a name will find another function when it is
            redefined.
Solution:   Add funcref().  Refer to lambda using a partial.  Fix several
            reference counting issues.
2016-08-01 15:40:54 +02:00
5801644819 patch 7.4.2136
Problem:    Closure function fails.
Solution:   Don't reset uf_scoped when it points to another funccal.
2016-07-31 18:30:22 +02:00
89eaa4185e patch 7.4.2135
Problem:    Various tiny issues.
Solution:   Update comments, white space, etc.
2016-07-31 14:17:27 +02:00
b54c3ff317 patch 7.4.2134
Problem:    No error for using function() badly.
Solution:   Check for passing wrong function name. (Ken Takata)
2016-07-31 14:11:58 +02:00
fc1f2015e8 patch 7.4.2133
Problem:    Can't build with tiny features.
Solution:   Add #ifdef.
2016-07-30 23:18:47 +02:00
31440a1f2b patch 7.4.2132
Problem:    test_partial has memory leaks reported.
Solution:   Add a note about why this happens.
2016-07-30 23:14:28 +02:00
57e69ff2cc patch 7.4.2131
Problem:    More memory leaks when using partial, e.g. for "exit-cb".
Solution:   Don't copy the callback when using a partial.
2016-07-30 23:05:09 +02:00
623e263ffb patch 7.4.2130
Problem:    Pending timers cause false memory leak reports.
Solution:   Free all timers on exit.
2016-07-30 22:47:56 +02:00
3ab14355ed patch 7.4.2129
Problem:    Memory leak when using timer_start(). (Dominique Pelle)
Solution:   Don't copy the callback when using a partial.
2016-07-30 22:32:11 +02:00
1e2258297b patch 7.4.2128
Problem:    Memory leak when saving for undo fails.
Solution:   Free allocated memory. (Hirohito Higashi)
2016-07-30 21:48:59 +02:00
3bcfca3ab4 patch 7.4.2127
Problem:    The short form of ":noswapfile" is ":noswap" instead of ":now".
            (Kent Sibilev)
Solution:   Only require three characters.  Add a test for the short forms.
2016-07-30 19:39:29 +02:00
90d121fa36 patch 7.4.2126
Problem:    No tests for :diffget and :diffput
Solution:   Add tests.
2016-07-30 19:11:25 +02:00
b20617b0b0 Add OSX build to Travis CI. (Christian Brabandt) 2016-07-30 17:41:49 +02:00
a5c0cc1133 patch 7.4.2125
Problem:    Compiler warning for loss of data.
Solution:   Add a type cast. (Christian Brabandt)
2016-07-30 16:40:39 +02:00
623cf88f9c patch 7.4.2124
Problem:    diffmode test leaves files behind, breaking another test.
Solution:   Delete the files.
2016-07-30 16:36:01 +02:00
42093c0ec5 patch 7.4.2123
Problem:    No new style test for diff mode.
Solution:   Add a test.  Check that folds are in sync.
2016-07-30 16:16:54 +02:00
b822cb0f93 patch 7.4.2122
Problem:    Mac: don't get +clipboard in huge build.
Solution:   Move #define down below including featureh.h
2016-07-30 14:12:23 +02:00
9532fe7fbe patch 7.4.2121
Problem:    No easy way to check if lambda and closure are supported.
Solution:   Add the +lambda feature.
2016-07-29 22:50:35 +02:00
10ce39a0d5 patch 7.4.2120
Problem:    User defined functions can't be a closure.
Solution:   Add the "closure" argument. Allow using :unlet on a bound
            variable. (Yasuhiro Matsumoto, Ken Takata)
2016-07-29 22:37:06 +02:00
1e96d9bf98 patch 7.4.2119
Problem:    Closures are not supported.
Solution:   Capture variables in lambdas from the outer scope. (Yasuhiro
            Matsumoto, Ken Takata)
2016-07-29 22:15:09 +02:00
83a2a80d6f patch 7.4.2118
Problem:    Mac: can't build with tiny features.
Solution:   Don't define FEAT_CLIPBOARD unconditionally. (Kazunobu Kuriyama)
2016-07-29 21:01:10 +02:00
f2c4c39119 patch 7.4.2117
Problem:    Deleting an augroup that still has autocmds does not give a
            warning.  The next defined augroup takes its place.
Solution:   Give a warning and prevent the index being used for another group
            name.
2016-07-29 20:50:24 +02:00
c73e4474b1 patch 7.4.2116
Problem:    The default vimrc for Windows is very conservative.
Solution:   Use the defaults.vim in the Windows installer.
2016-07-29 18:33:38 +02:00
b9a46fec3e patch 7.4.2115
Problem:    Loading defaults.vim with -C argument.
Solution:   Don't load the defaults script with -C argument.  Test sourcing
            the defaults script.  Set 'display' to "truncate".
2016-07-29 18:13:42 +02:00
d05b191b91 patch 7.4.2114
Problem:    Tiny build fails.
Solution:   Always include vim_time().
2016-07-29 17:03:54 +02:00
170b10b421 patch 7.4.2113
Problem:    Test for undo is flaky.
Solution:   Turn it into a new style test.  Use test_settime() to avoid
            flakyness.
2016-07-29 16:15:27 +02:00
b56195ed00 patch 7.4.2112
Problem:    getcompletion(.., 'dir') returns a match with trailing "*" when
            there are no matches. (Chdiza)
Solution:   Return an empty list when there are no matches.  Add a trailing
            slash to directories. (Yegappan Lakshmanan)  Add tests for no
            matches. (closes #947)
2016-07-28 22:53:37 +02:00
471a897569 Update gitignore for new test binary. (Oyvind Holm, closes #954) 2016-07-28 22:36:37 +02:00
8c08b5b569 patch 7.4.2111
Problem:    Defaults are very conservative.
Solution:   Move settings from vimrc_example.vim to defaults.vim.  Load
            defaults.vim if no .vimrc was found.
2016-07-28 22:24:15 +02:00
eac784eced patch 7.4.2110
Problem:    When there is an CmdUndefined autocmd then the error for a missing
            command is E464 instead of E492. (Manuel Ortega)
Solution:   Don't let the pointer be NULL.
2016-07-28 22:08:24 +02:00
ad9c2a08f0 patch 7.4.2109
Problem:    Setting 'display' to "lastline" is a drastic change, while
            omitting it results in lots of "@" lines.
Solution:   Add "truncate" to show "@@@" for a truncated line.
2016-07-27 23:26:04 +02:00
adfc5c2f9c patch 7.4.2108
Problem:    Netbeans test is flaky.
Solution:   Wait for the cursor to be positioned.
2016-07-27 22:56:48 +02:00
d955a0971c patch 7.4.2107
Problem:    Misplaced equal sign.
Solution:   Remove it.
2016-07-26 22:14:09 +02:00
ac77aec4da patch 7.4.2106
Problem:    Clang warns about missing field in initializer.
Solution:   Define COMMA and use it.  (Kazunobu Kuriyama)
2016-07-26 22:02:54 +02:00
eec2981bbe patch 7.4.2105
Problem:    Configure reports default features to be "normal" while it is
            "huge".
Solution:   Change the default text.
2016-07-26 21:27:36 +02:00
97baee80f0 patch 7.4.2104
Problem:    Code duplication when unreferencing a function.
Solution:   De-duplicate.
2016-07-26 20:46:08 +02:00
e99e84497b patch 7.4.2103
Problem:    Can't have "augroup END" right after ":au!".
Solution:   Check for the bar character before the command argument.
2016-07-26 20:43:40 +02:00
45a249513f patch 7.4.2102
Problem:    Tiny build with GUI fails.
Solution:   Revert one FOR_ALL_ change.
2016-07-24 22:25:15 +02:00
2932359000 patch 7.4.2101
Problem:    Looping over windows, buffers and tab pages is inconsistant.
Solution:   Use FOR_ALL_ macros everywhere. (Yegappan Lakshmanan)
2016-07-24 22:04:11 +02:00
6835dc61ae patch 7.4.2100
Problem:    "cgn" and "dgn" do not work correctly with a single character
            match and the replacement includes the searched pattern. (John
            Beckett)
Solution:   If the match is found in the wrong column try in the next column.
            Turn the test into new style. (Christian Brabandt)
2016-07-24 17:33:05 +02:00
73ac0c4281 patch 7.4.2099
Problem:    When a keymap is active only "(lang)" is displayed. (Ilya
            Dogolazky)
Solution:   Show the keymap name. (Dmitri Vereshchagin, closes #933)
2016-07-24 16:17:59 +02:00
6f1d9a096b Updated runtime files. 2016-07-24 14:12:38 +02:00
00b24be454 patch 7.4.2098
Problem:    Text object tests are old style.
Solution:   Turn them into new style tests. (James McCoy, closes #941)
2016-07-23 22:04:47 +02:00
d4f31dc454 patch 7.4.2097
Problem:    Warning from 64 bit compiler.
Solution:   use size_t instead of int. (Mike Williams)
2016-07-23 17:28:22 +02:00
b49edc11a1 patch 7.4.2096
Problem:    Lambda functions show up with completion.
Solution:   Don't show lambda functions. (Ken Takata)
2016-07-23 15:47:34 +02:00
61c04493b0 patch 7.4.2095
Problem:    Man test fails when run with the GUI.
Solution:   Adjust for different behavior of GUI.  Add assert_inrange().
2016-07-23 15:35:35 +02:00
4658228262 patch 7.4.2094
Problem:    The color allocation in X11 is overly complicated.
Solution:   Remove find_closest_color(), XAllocColor() already does this.
            (Kazunobu Kuriyama)
2016-07-23 14:35:12 +02:00
a58c58b7e1 patch 7.4.2093
Problem:    Netbeans test fails once in a while.  Leaving log file behind.
Solution:   Add it to the list of flaky tests.  Disable logfile.
2016-07-23 14:01:15 +02:00
870b749ce1 patch 7.4.2092
Problem:    GTK 3 build fails with older GTK version.
Solution:   Check the pango version. (Kazunobu Kuriyama)
2016-07-22 22:26:52 +02:00
2e45d21c81 patch 7.4.2091
Problem:    Coverity reports a resource leak when out of memory.
Solution:   Close the file before returning.
2016-07-22 22:12:38 +02:00
df48fb456f patch 7.4.2090
Problem:    Using submatch() in a lambda passed to substitute() is verbose.
Solution:   Use a static list and pass it as an optional argument to the
            function.  Fix memory leak.
2016-07-22 21:50:18 +02:00
36edf0685c patch 7.4.2089
Problem:    Color handling of X11 GUIs is too complicated.
Solution:   Simplify the code.  Use RGBA where appropriate. (Kazunobu
            Kuriyama)
2016-07-21 22:10:12 +02:00
f36213597d patch 7.4.2088
Problem:    Keymap test fails with normal features.
Solution:   Bail out if the keymap feature is not supported.
2016-07-21 22:03:02 +02:00
e25bc5abb4 patch 7.4.2087
Problem:    Digraph code test coverage is still low.
Solution:   Add more tests. (Christian Brabandt)
2016-07-21 21:23:38 +02:00
ac105ed3c4 patch 7.4.2086
Problem:    Using the system default encoding makes tests unpredictable.
Solution:   Always use utf-8 or latin1 in the new style tests.  Remove setting
            encoding and scriptencoding where it is not needed.
2016-07-21 20:33:32 +02:00
dfd63e30d1 patch 7.4.2085
Problem:    Digraph tests fails on some systems.
Solution:   Run it separately and set 'encoding' early.
2016-07-21 10:11:03 +02:00
6008433381 patch 7.4.2084
Problem:    New digraph test makes testing hang.
Solution:   Don't set "nocp".
2016-07-20 22:23:49 +02:00
19df5cc04d patch 7.4.2083
Problem:    Coverity complains about not restoring a value.
Solution:   Restore the value, although it's not really needed.  Change return
            to jump to cleanup, might leak memory.
2016-07-20 22:11:06 +02:00
397eadbe25 patch 7.4.2082
Problem:    Not much test coverage for digraphs.
Solution:   Add a new style digraph test. (Christian Brabandt)
2016-07-20 22:01:12 +02:00
c1542744e7 patch 7.4.2081
Problem:    Line numbers in the error list are not always adjusted.
Solution:   Set b_has_qf_entry properly. (Yegappan Lakshmanan)
2016-07-20 21:44:37 +02:00
b869c0da31 patch 7.4.2080
Problem:    When using PERROR() on some systems assert_fails() does not see
            the error.
Solution:   Make PERROR() always report the error.
2016-07-20 00:10:51 +02:00
53bdec2ac9 patch 7.4.2079
Problem:    Netbeans test fails on non-Unix systems.
Solution:   Only do the permission check on Unix systems.
2016-07-20 00:03:18 +02:00
ca8942c6e3 patch 7.4.2078
Problem:    Running checks in po diretory fails.
Solution:   Add colors used in syntax.c to the builtiin color table.
2016-07-19 23:36:31 +02:00
12c11d5530 patch 7.4.2077
Problem:    Cannot update 'tabline' when a tab was closed.
Solution:   Add the TabClosed autocmd event. (partly by Felipe Morales)
2016-07-19 23:13:03 +02:00
4f0383bc3f patch 7.4.2076
Problem:    Syntax error when dict has '>' key.
Solution:   Check for endchar. (Ken Takata)
2016-07-19 22:43:11 +02:00
c917da4b3e patch 7.4.2075
Problem:    No autocommand event to initialize a window or tab page.
Solution:   Add WinNew and TabNew events. (partly by Felipe Morales)
2016-07-19 22:31:36 +02:00
0a0f641b98 patch 7.4.2074
Problem:    One more place using a dummy variable.
Solution:   Use offsetof(). (Ken Takata)
2016-07-19 21:30:13 +02:00
68015bbd84 patch 7.4.2073
Problem:    rgb.txt is read for every color name.
Solution:   Load rgb.txt once. (Christian Brabandt)  Add a test.
2016-07-19 21:05:21 +02:00
72ab729c3d patch 7.4.2072
Problem:    substitute() does not support a Funcref argument.
Solution:   Support a Funcref like it supports  a string starting with "\=".
2016-07-19 19:10:51 +02:00
f562e72df7 patch 7.4.2071
Problem:    The return value of type() is difficult to use.
Solution:   Define v:t_ constants. (Ken Takata)
2016-07-19 17:25:25 +02:00
6cfdb2a3ba patch 7.4.2070
Problem:    Missing change to include file.
Solution:   Include the spell header file.
2016-07-19 17:01:31 +02:00
9ccfebddc3 patch 7.4.2069
Problem:    spell.c is too big.
Solution:   Split it in spell file handling and spell checking.
2016-07-19 16:39:08 +02:00
b9644433d2 patch 7.4.2068
Problem:    Not all arguments of trunc_string() are tested.  Memory access
            error when running the message tests.
Solution:   Add another test case. (Yegappan Lakshmanan)  Make it easy to run
            unittests with valgrind.  Fix the access error.
2016-07-19 12:33:44 +02:00
16ec3c9be3 patch 7.4.2067
Problem:    Compiler warning for char/char_u conversion. (Tony Mechelynck)
            Inefficient code.
Solution:   Use more lines to fill with spaces. (Nikolai Pavlov) Add type cast.
2016-07-18 22:22:39 +02:00
c1fb763184 patch 7.4.2066
Problem:    getcompletion() not well tested.
Solution:   Add more testing.
2016-07-17 23:34:21 +02:00
69aa099641 patch 7.4.2065
Problem:    Compiler warns for uninitialzed variable. (John Marriott)
Solution:   Set lnum to the right value.
2016-07-17 22:33:53 +02:00
4f5c5f2980 patch 7.4.2064
Problem:    Coverity warns for possible buffer overflow.
Solution:   Use vim_strcat() instead of strcat().
2016-07-17 22:25:36 +02:00
73dad1e64c patch 7.4.2063
Problem:    eval.c is still too big.
Solution:   Split off internal functions to evalfunc.c.
2016-07-17 22:13:49 +02:00
840268400d patch 7.4.2062
Problem:    Using dummy variable to compute struct member offset.
Solution:   Use offsetof().
2016-07-17 20:37:43 +02:00
e87e6dddc2 patch 7.4.2061
Problem:    qf_init_ext() is too big.
Solution:   Move code to qf_parse_line() (Yegappan Lakshmanan)
2016-07-17 19:25:04 +02:00
a9093fe094 patch 7.4.2060
Problem:    Wrong file name.
Solution:   Fix typo.
2016-07-17 19:02:16 +02:00
6583c44857 patch 7.4.2059
Problem:    Non-Unix builds fail.
Solution:   Update Makefiles for new files.
2016-07-17 18:41:47 +02:00
a9b579f3d7 patch 7.4.2058
Problem:    eval.c is too big.
Solution:   Move user functions to userfunc.c
2016-07-17 18:29:19 +02:00
da861d631d patch 7.4.2057
Problem:    eval.c is too big.
Solution:   Move List functions to list.c
2016-07-17 15:46:27 +02:00
1abc52c159 patch 7.4.2056
Problem:    Build fails.
Solution:   Add missing changes.
2016-07-17 15:06:51 +02:00
cd52459c38 patch 7.4.2055
Problem:    eval.c is too big.
Solution:   Move Dictionary functions to dict.c.
2016-07-17 14:57:05 +02:00
42ebd06642 Update runtime files. 2016-07-17 13:35:14 +02:00
2cb70a2744 Put building with interfaces on the right target. 2016-07-16 21:58:01 +02:00
b2b050ab16 patch 7.4.2054
Problem:    Wrong part of #ifdef removed.
Solution:   Use the right part. (Hirohito Higashi)
2016-07-16 21:52:46 +02:00
87776a1ac1 Correct build condition. 2016-07-16 21:37:49 +02:00
8de7465d77 Add missing "then". 2016-07-16 21:24:36 +02:00
1a9f947cde Add a separate build target for the unittests. Hopefully the coverage will be merged then. 2016-07-16 21:18:34 +02:00
8211fcbdc9 Run unittests before scripttests. Hopefully does not mess up coverage. 2016-07-16 20:55:12 +02:00
e21d62435e patch 7.4.2053
Problem:    Can't run scripttests in the top directory.
Solution:   Add targets to the top Makefile.
2016-07-16 20:43:14 +02:00
c3e539fa70 patch 7.4.2052
Problem:    Coverage report is messed up by the unittests.
Solution:   Add a separate test target for script tests.  Use that when
            collecting coverage information.
2016-07-16 20:37:56 +02:00
502ae4ba63 patch 7.4.2051
Problem:    No proper testing of trunc_string().
Solution:   Add a unittest for message.c.
2016-07-16 19:50:13 +02:00
015102e91e patch 7.4.2050
Problem:    When using ":vimgrep" may end up with duplicate buffers.
Solution:   When adding an error list entry pass the buffer number if possible.
2016-07-16 18:24:56 +02:00
f6acffbe83 patch 7.4.2049
Problem:    There is no way to get a list of the error lists.
Solution:   Add ":chistory" and ":lhistory".
2016-07-16 16:54:24 +02:00
a06ecab7a5 patch 7.4.2048
Problem:    There is still code and help for unsupported systems.
Solution:   Remove the code and text. (Hirohito Higashi)
2016-07-16 14:47:36 +02:00
bfafb4c4a0 patch 7.4.2047
Problem:    Compiler warning for initializing a struct.
Solution:   Initialize in another way. (Anton Lindqvist)
2016-07-16 14:20:45 +02:00
269f595f9e Updated runtime files. 2016-07-15 22:54:41 +02:00
e0d3797664 patch 7.4.2046
Problem:    The qf_init_ext() function is too big.
Solution:   Refactor it. (Yegappan Lakshmanan)
2016-07-15 22:36:01 +02:00
5ef2e76284 patch 7.4.2045
Problem:    Memory leak when using a function callback.
Solution:   Don't save the function name when it's in the partial.
2016-07-15 21:29:35 +02:00
069c1e7fa9 patch 7.4.2044
Problem:    filter() and map() either require a string or defining a function.
Solution:   Support lambda, a short way to define a function that evaluates an
            expression. (Yasuhiro Matsumoto, Ken Takata)
2016-07-15 21:25:08 +02:00
93431df9eb patch 7.4.2043
Problem:    setbuvfar() causes a screen redraw.
Solution:   Only use aucmd_prepbuf() for options.
2016-07-15 20:14:44 +02:00
fdadad994a patch 7.4.2042
Problem:    GTK: display updating is not done properly and can be slow.
Solution:   Use gdk_display_flush() instead of gdk_display_sync(). Don't call
            gdk_window_process_updates().  (Kazunobu Kuriyama)
2016-07-15 17:49:58 +02:00
603d657219 patch 7.4.2041
Problem:    Netbeans file authentication not tested.
Solution:   Add a test.
2016-07-15 17:41:56 +02:00
a6aa78a3e3 patch 7.4.2040
Problem:    New files missing from distribution.
Solution:   Add new test scripts.
2016-07-15 17:11:37 +02:00
321efdd77a patch 7.4.2039
Problem:    The Netbeans integration is not tested.
Solution:   Add a first Netbeans test.
2016-07-15 17:09:11 +02:00
9280e3f95d patch 7.4.2038
Problem:    Small build still fails.
Solution:   Adjust more #ifdefs.
2016-07-14 23:03:19 +02:00
7399895520 patch 7.4.2037
Problem:    Small build fails.
Solution:   Adjust #ifdefs.
2016-07-14 22:34:34 +02:00
480778b805 patch 7.4.2036
Problem:    Looking up a buffer by number is slow if there are many.
Solution:   Use a hashtab.
2016-07-14 22:09:39 +02:00
da4127794a patch 7.4.2035
Problem:    On Solaris with ZFS the ACL may get removed.
Solution:   Always restore the ACL for Solaris ZFS. (Danek Duvall)
2016-07-14 20:37:07 +02:00
f62e797ffa patch 7.4.2034
Problem:    Build fails with some version of MinGW. (illusorypan)
Solution:   Recognize mingw32. (Ken Takata, closes #921)
2016-07-14 20:25:03 +02:00
6d20e17544 patch 7.4.2033
Problem:    'cscopequickfix' option does not accept new value "a".
Solution:   Adjust list of command characters. (Ken Takata)
2016-07-13 22:44:12 +02:00
3e946fdc7b patch 7.4.2032
Problem:    Build fails with 64 bit MinGW. (Axel Bender)
Solution:   Handle dash vs. underscore. (Ken Takata, Hirohito Higashi)
2016-07-13 20:54:43 +02:00
89b10421ca patch 7.4.2031
Problem:    The list_lbr_utf8 test fails if ~/.vim/syntax/c.vim sets
            'textwidth' to a non-zero value. (Oyvind A. Holm)
Solution:   Add a setup.vim file that sets 'runtimepath' and $HOME to a safe
            value. (partly by Christian Brabandt, closes #912)
2016-07-12 22:51:22 +02:00
e048539195 patch 7.4.2030
Problem:    ARCH must be set properly when using MinGW.
Solution:   Detect the default value of ARCH from the current compiler. (Ken
            Takata)
2016-07-12 21:17:03 +02:00
38ee6b041e patch 7.4.2029
Problem:    printf() does not work with 64 bit numbers.
Solution:   use the "L" length modifier. (Ken Takata)
2016-07-12 21:11:33 +02:00
5498a41f5a patch 7.4.2028
Problem:    cppcheck warns for using index before limits check.
Solution:   Swap the expressions. (Dominique Pelle)
2016-07-11 23:19:05 +02:00
4c06815c44 patch 7.4.2027
Problem:    Can't build with +eval but without +menu.
Solution:   Add #ifdef. (John Marriott)
2016-07-11 23:15:25 +02:00
1436d8d51c patch 7.4.2026
Problem:    Reference counting for callbacks isn't right.
Solution:   Add free_callback(). (Ken Takata)  Fix reference count.
2016-07-11 22:41:15 +02:00
da3a77d9ec patch 7.4.2025
Problem:    The cursor blinking stops or is irregular when receiving date over
            a channel and writing it in a buffer, and when updating the status
            line. (Ramel Eshed)
Solution:   Make it a bit better by flushing GUI output.  Don't redraw the
            cursor after updating the screen if the blink state is off.
2016-07-10 23:16:09 +02:00
7c0a2f367f patch 7.4.2024
Problem:    More buf_valid() calls can be optimized.
Solution:   Use bufref_valid() instead.
2016-07-10 22:11:16 +02:00
ea3f2e7be4 patch 7.4.2023
Problem:    buflist_findname_stat() may find a dummy buffer.
Solution:   Set the BF_DUMMY flag after loading a dummy buffer.  Start
            finding buffers from the end of the list.
2016-07-10 20:27:32 +02:00
25065ec375 patch 7.4.2022
Problem:    Warnings from 64 bit compiler.
Solution:   Add type casts. (Mike Williams)
2016-07-10 19:22:53 +02:00
19ff9bf454 patch 7.4.2021
Problem:    Still too many buf_valid() calls.
Solution:   Make au_new_curbuf a bufref.  Use bufref_valid() in more places.
2016-07-10 19:03:57 +02:00
453f37dbfd patch 7.4.2020
Problem:    Can't build without +autocmd feature.
Solution:   Adjust #ifdefs.
2016-07-10 18:33:59 +02:00
c4a927ca8d patch 7.4.2019
Problem:    When ignoring case utf_fold() may consume a lot of time.
Solution:   Optimize for ASCII.
2016-07-10 18:24:27 +02:00
b25f9a97e9 patch 7.4.2018
Problem:    buf_valid() can be slow when there are many buffers.
Solution:   Add bufref_valid(), only go through the buffer list when a buffer
            was freed.
2016-07-10 18:21:50 +02:00
8240433f48 patch 7.4.2017
Problem:    When there are many errors adding them to the quickfix list takes
            a long time.
Solution:   Add BLN_NOOPT.  Don't call buf_valid() in buf_copy_options().
            Remember the last file name used.  When going through the buffer
            list start from the end of the list.  Only call buf_valid() when
            autocommands were executed.
2016-07-10 17:00:38 +02:00
2bc127f940 patch 7.4.2016
Problem:    Warning from MinGW about _WIN32_WINNT redefined. (John Marriott)
Solution:   First undefine it. (Ken Takata)
2016-07-10 13:57:40 +02:00
5c71994f4e patch 7.4.2015
Problem:    When a file gets a name when writing it 'acd' is not effective.
            (Dan Church)
Solution:   Invoke DO_AUTOCHDIR after writing the file. (Allen Haim, closes
            #777, closes #803)  Add test_autochdir() to enable 'acd' before
            "starting" is reset.
2016-07-09 23:40:45 +02:00
32b808a4bd patch 7.4.2014
Problem:    Using "noinsert" in 'completeopt' does not insert match.
Solution:   Set compl_enter_selects. (Shougo, closes #875)
2016-07-09 21:57:20 +02:00
67081e5061 patch 7.4.2013
Problem:    Using "noinsert" in 'completeopt' breaks redo.
Solution:   Set compl_curr_match. (Shougo, closes #874)
2016-07-09 21:49:03 +02:00
063b9d15ab Updated runtime files. 2016-07-09 20:21:48 +02:00
0d3e24be56 patch 7.4.2012
Problem:    Test for getcompletion() does not pass on all systems.
Solution:   Only test what is supported.
2016-07-09 19:20:59 +02:00
aa4d73235b patch 7.4.2011
Problem:    It is not easy to get a list of command arguments.
Solution:   Add getcompletion(). (Yegappan Lakshmanan)
2016-07-09 18:50:29 +02:00
537ef08408 patch 7.4.2010
Problem:    There is a :cbottom command but no :lbottom command.
Solution:   Add :lbottom. (Yegappan Lakshmanan)
2016-07-09 17:56:19 +02:00
ed59aa60d3 patch 7.4.2009
Problem:    Messages test fails.
Solution:   Don't set redir_execute before returning.
2016-07-09 17:41:12 +02:00
79815f1ec7 patch 7.4.2008
Problem:    evalcmd() has a confusing name.
Solution:   Rename to execute().  Make silent optional.  Support a list of
            commands.
2016-07-09 17:07:29 +02:00
fc4ad61607 patch 7.4.2007
Problem:    Running the tests leaves a viminfo file behind.
Solution:   Make the viminfo option empty.
2016-07-09 15:38:32 +02:00
30445cb6e9 patch 7.4.2006
Problem:    Crash when using tabnext in BufUnload autocmd. (Norio Takagi)
Solution:   First check that the current buffer is the right one. (Hirohito
            Higashi)
2016-07-09 15:21:02 +02:00
ee1deb4a00 patch 7.4.2005
Problem:    After using evalcmd() message output is in the wrong position.
            (Christian Brabandt)
Solution:   Reset msg_col.
2016-07-08 23:06:21 +02:00
65549bdef5 patch 7.4.2004
Problem:    GUI: cursor displayed in the wrong position.
Solution:   Correct screen_cur_col and screen_cur_row.
2016-07-08 22:52:37 +02:00
144445d15f patch 7.4.2003
Problem:    Still cursor flickering when a callback updates the screen. (David
            Samvelyan)
Solution:   Put the cursor in the right position after updating the screen.
2016-07-08 21:41:54 +02:00
a06ec8f345 patch 7.4.2002
Problem:    Crash when passing number to filter() or map().
Solution:   Convert to a string. (Ozaki Kiichi)
2016-07-08 20:11:07 +02:00
ba768495c2 patch 7.4.2001
Problem:    Tiny build fails. (Tony Mechelynck)
Solution:   Add #ifdef.
2016-07-08 15:32:54 +02:00
245a7cb6d3 patch 7.4.2000
Problem:    Evalcmd test fails.
Solution:   Add missing piece.
2016-07-08 10:53:12 +02:00
bc5d6dd1dd patch 7.4.1999
Problem:    evalcmd() doesn't work recursively.
Solution:   Use redir_evalcmd instead of redir_vname.
2016-07-07 23:04:18 +02:00
bf2cc5f36d patch 7.4.1998
Problem:    When writing buffer lines to a job there is no NL to NUL
            conversion.
Solution:   Make it work symmetrical with writing lines from a job into a
            buffer.
2016-07-07 20:45:06 +02:00
dcb1700186 patch 7.4.1997
Problem:    Cannot easily scroll the quickfix window.
Solution:   Add ":cbottom".
2016-07-07 18:58:59 +02:00
1e5e1231ac patch 7.4.1996
Problem:    Capturing the output of a command takes a few commands.
Solution:   Add evalcmd().
2016-07-07 17:33:02 +02:00
9d5d3c9c44 patch 7.4.1995
Problem:    GUI: cursor drawn in wrong place if a timer callback causes a
            screen update. (David Samvelyan)
Solution:   Also redraw the cursor when it's blinking and on.
2016-07-07 16:43:02 +02:00
05e418d436 patch 7.4.1994
Problem:    True-false test fails.
Solution:   Filter the dict to only keep the value that matters.
2016-07-07 16:35:16 +02:00
6bb450145e patch 7.4.1993
Problem:    Not all TRUE and FALSE arguments are tested.
Solution:   Add a few more tests.
2016-07-07 15:11:19 +02:00
e381d3d5e0 patch 7.4.1992
Problem:    Values for true and false can be confusing.
Solution:   Update the documentation.  Add a test.  Make v:true evaluate to
            TRUE for a non-zero-arg.
2016-07-07 14:50:41 +02:00
00efded106 patch 7.4.1991
Problem:    glob() does not add a symbolic link when there are no wildcards.
Solution:   Remove the call to mch_getperm().
2016-07-07 14:29:10 +02:00
80632db65e patch 7.4.1990
Problem:    Cscope items are not sorted.
Solution:   Put the new "a" command first. (Ken Takata)
2016-07-05 22:28:40 +02:00
b33c7eb5b8 patch 7.4.1989
Problem:    filter() and map() only accept a string argument.
Solution:   Implement using a Funcref argument (Yasuhiro Matsumoto, Ken
            Takata)
2016-07-04 22:29:49 +02:00
ab9c89b68d patch 7.4.1988
Problem:    When updating viminfo with file marks there is no time order.
Solution:   Remember the time when a buffer was last used, store marks for
            the most recently used buffers.
2016-07-03 17:47:26 +02:00
dec85cf750 patch 7.4.1987
Problem:    When copying unrecognized lines for viminfo, end up with useless
            continuation lines.
Solution:   Skip continuation lines.
2016-07-02 22:33:46 +02:00
fef524bbff patch 7.4.1986
Problem:    Compiler warns for loss of data.
Solution:   Use size_t instead of int. (Christian Brabandt)
2016-07-02 22:07:22 +02:00
3b98b83001 patch 7.4.1985
Problem:    Missing changes in VMS build file.
Solution:   Use the right file name.
2016-07-02 21:45:17 +02:00
e18dbe865d Updated runtime files. 2016-07-02 21:42:23 +02:00
0fcc7c6dd1 patch 7.4.1984
Problem:    Not all quickfix features are tested.
Solution:   Add a few more tests. (Yegappan Lakshmanan)
2016-07-02 21:22:52 +02:00
75464dc434 patch 7.4.1983
Problem:    farsi.c and arabic.c are included in a strange way.
Solution:   Build them like other files.
2016-07-02 20:27:50 +02:00
951fa1819a patch 7.4.1982
Problem:    Viminfo file contains duplicate change marks.
Solution:   Drop duplicate marks.
2016-07-02 19:20:06 +02:00
ee2615af64 patch 7.4.1981
Problem:    No testing for Farsi code.
Solution:   Add a minimal test.  Clean up Farsi code.
2016-07-02 18:25:34 +02:00
361c8f0e51 patch 7.4.1980
Problem:    'errorformat' is parsed for every call to ":caddexpr".  Can't add
            to two location lists asynchronously.
Solution:   Keep the previously parsed data when appropriate. (mostly by
            Yegappan Lakshmanan)
2016-07-02 15:41:47 +02:00
2acfbed9db patch 7.4.1979
Problem:    Getting value of binary option is wrong. (Kent Sibilev)
Solution:   Fix type cast.  Add a test.
2016-07-01 23:14:02 +02:00
c5af40ae64 patch 7.4.1978
Problem:    Large file test does not delete its output.
Solution:   Delete the output. Check size properly when possible. (Ken Takata)
2016-07-01 21:49:06 +02:00
bde9810d61 patch 7.4.1977
Problem:    With 64 bit changes don't need three calls to sprintf().
Solution:   Simplify the code, use vim_snprintf(). (Ken Takata)
2016-07-01 20:03:42 +02:00
22fcfad292 patch 7.4.1976
Problem:    Number variables are not 64 bits while they could be.
Solution:   Add the num64 feature. (Ken Takata)
2016-07-01 18:17:26 +02:00
8767f52fbf patch 7.4.1975
Problem:    On MS-Windows large files (> 2Gbyte) cause problems.
Solution:   Use "off_T" instead of "off_t".  Use "stat_T" instead of "struct
            stat".  Use 64 bit system functions if available.  (Ken Takata)
2016-07-01 17:17:39 +02:00
4a6c670b84 patch 7.4.1974
Problem:    GUI has a problem with some termcodes.
Solution:   Handle negative numbers. (Kazunobu Kuriyama)
2016-07-01 15:48:05 +02:00
4c5717ed8a patch 7.4.1973
Problem:    On MS-Windows the package directory may be added at the end
            because of forward/backward slash differences. (Matthew
            Desjardins)
Solution:   Ignore slash differences.
2016-07-01 15:39:40 +02:00
1373 changed files with 105818 additions and 66770 deletions

4
.gitignore vendored
View File

@ -5,6 +5,7 @@ src/xxd/xxd
src/auto/if_perl.c src/auto/if_perl.c
src/auto/gui_gtk_gresources.c src/auto/gui_gtk_gresources.c
src/auto/gui_gtk_gresources.h src/auto/gui_gtk_gresources.h
src/objects/.dirstamp
src/tags src/tags
# We do need src/auto/configure. # We do need src/auto/configure.
@ -77,5 +78,8 @@ src/testdir/test.log
src/testdir/dostmp/* src/testdir/dostmp/*
src/testdir/messages src/testdir/messages
src/testdir/viminfo src/testdir/viminfo
src/testdir/opt_test.vim
src/memfile_test src/memfile_test
src/json_test src/json_test
src/message_test
src/kword_test

View File

@ -1,19 +1,63 @@
language: c language: c
os:
- osx
- linux
compiler: compiler:
- clang - clang
- gcc - gcc
env: env:
- COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src - BUILD=yes TEST=scripttests COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
"CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-python3interp --enable-rubyinterp --enable-luainterp'" "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-python3interp --enable-rubyinterp --enable-luainterp'"
CHECK_AUTOCONF=yes - BUILD=no TEST=unittests COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=yes
- COVERAGE=no FEATURES=normal CONFOPT= SHADOWOPT="-C src/shadow" SRCDIR=./src/shadow CHECK_AUTOCONF=no - BUILD=yes TEST=test COVERAGE=no FEATURES=normal CONFOPT= SHADOWOPT="-C src/shadow" SRCDIR=./src/shadow CHECK_AUTOCONF=no
- COVERAGE=no FEATURES=small CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no - BUILD=yes TEST=test COVERAGE=no FEATURES=small CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
- COVERAGE=no FEATURES=tiny CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no - BUILD=yes TEST=test COVERAGE=no FEATURES=tiny CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
# Mac OSX build
- BUILD=yes TEST=test COVERAGE=no FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
"CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp'"
# ASAN build
- BUILD=yes TEST=test SANITIZER_CFLAGS="-g -O1 -DABORT_ON_INTERNAL_ERROR -DEXITFREE -fsanitize=address -fno-omit-frame-pointer"
FEATURES=huge SRCDIR=./src CHECK_AUTOCONF=no ASAN_OPTIONS="print_stacktrace=1 log_path=asan"
"CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp'"
sudo: false sudo: false
# instead of a 2*2*8 matrix (2*os + 2*compiler + 8*env),
# exclude some builds on mac os x and linux
# linux: 2*compiler + 5*env + mac: 2*compiler + 2*env
matrix:
exclude:
- os: osx
env: BUILD=yes TEST=test COVERAGE=no FEATURES=normal CONFOPT= SHADOWOPT="-C src/shadow" SRCDIR=./src/shadow CHECK_AUTOCONF=no
- os: osx
env: BUILD=no TEST=unittests COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=yes
- os: osx
env: BUILD=yes TEST=test COVERAGE=no FEATURES=small CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
- os: osx
env: BUILD=yes TEST=scripttests COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
"CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-python3interp --enable-rubyinterp --enable-luainterp'"
- os: osx
env: BUILD=yes TEST=test SANITIZER_CFLAGS="-g -O1 -DABORT_ON_INTERNAL_ERROR -DEXITFREE -fsanitize=address -fno-omit-frame-pointer"
FEATURES=huge SRCDIR=./src CHECK_AUTOCONF=no ASAN_OPTIONS="print_stacktrace=1 log_path=asan"
"CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp'"
- os: linux
compiler: gcc
env: BUILD=yes TEST=test SANITIZER_CFLAGS="-g -O1 -DABORT_ON_INTERNAL_ERROR -DEXITFREE -fsanitize=address -fno-omit-frame-pointer"
FEATURES=huge SRCDIR=./src CHECK_AUTOCONF=no ASAN_OPTIONS="print_stacktrace=1 log_path=asan"
"CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp'"
- os: linux
compiler: clang
env: BUILD=no TEST=unittests COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=yes
- os: linux
compiler: clang
env: BUILD=yes TEST=test COVERAGE=no FEATURES=small CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
- os: linux
env: BUILD=yes TEST=test COVERAGE=no FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
"CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp'"
branches: branches:
except: except:
- /^v[0-9]/ - /^v[0-9]/
@ -28,18 +72,32 @@ addons:
- python3-dev - python3-dev
- liblua5.1-0-dev - liblua5.1-0-dev
- lua5.1 - lua5.1
- cscope
before_install: before_install:
- pip install --user cpp-coveralls - if [ "$COVERAGE" = "yes" ]; then pip install --user cpp-coveralls; fi
# needed for https support for coveralls
# building cffi only works with gcc, not with clang
- if [ "$COVERAGE" = "yes" ]; then CC=gcc pip install --user pyopenssl ndg-httpsclient pyasn1; fi
# Lua is not installed on Travis OSX
- if [ "$TRAVIS_OS_NAME" = "osx" ]; then brew install lua; export LUA_PREFIX=/usr/local; fi
# Start virtual framebuffer to be able to test the GUI. Does not work on OS X.
before_script:
- if [ "$TRAVIS_OS_NAME" = "linux" ]; then export DISPLAY=:99.0 && sh -e /etc/init.d/xvfb start && sleep 3; fi
script: script:
- NPROC=$(getconf _NPROCESSORS_ONLN) - NPROC=$(getconf _NPROCESSORS_ONLN)
- if [ "$CHECK_AUTOCONF" = "yes" -a "$CC" = "gcc" ]; then make -C src autoconf; fi - if [ "$CHECK_AUTOCONF" = "yes" -a "$CC" = "gcc" ]; then make -C src autoconf; fi
- if [ "x$SHADOWOPT" != x ]; then make -C src shadow; fi && (cd ${SRCDIR} && ./configure --with-features=$FEATURES $CONFOPT --enable-fail-if-missing && make -j$NPROC) - if [ "x$SHADOWOPT" != x ]; then make -C src shadow; fi
- ${SRCDIR}/vim --version - (cd ${SRCDIR} && ./configure --with-features=$FEATURES $CONFOPT --enable-fail-if-missing && if [ "$BUILD" = "yes" ]; then make -j$NPROC; fi)
- make $SHADOWOPT test - if [ "$BUILD" = "yes" ]; then ${SRCDIR}/vim --version; fi
- if [ -n "$ASAN_OPTIONS" ]; then export PATH=/usr/lib/llvm-$(clang -v 2>&1 | sed -n 's/.*version \([1-9]\.[0-9][0-9]*\).*/\1/p')/bin:$PATH; fi
- make $SHADOWOPT $TEST
- if [ -n "$ASAN_OPTIONS" ]; then for log in $(find -type f -name 'asan.*' -size +0); do cat "$log"; err=1; done; fi
- if [ -n "$err" ]; then exit 1; fi
after_success: after_success:
- if [ x"$COVERAGE" = "xyes" ]; 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
# vim:set sts=2 sw=2 tw=0 et: # vim:set sts=2 sw=2 tw=0 et:

View File

@ -18,10 +18,12 @@ SRC_ALL = \
src/charset.c \ src/charset.c \
src/crypt.c \ src/crypt.c \
src/crypt_zip.c \ src/crypt_zip.c \
src/dict.c \
src/diff.c \ src/diff.c \
src/digraph.c \ src/digraph.c \
src/edit.c \ src/edit.c \
src/eval.c \ src/eval.c \
src/evalfunc.c \
src/ex_cmds.c \ src/ex_cmds.c \
src/ex_cmds.h \ src/ex_cmds.h \
src/ex_cmds2.c \ src/ex_cmds2.c \
@ -43,6 +45,8 @@ SRC_ALL = \
src/hashtab.c \ src/hashtab.c \
src/json.c \ src/json.c \
src/json_test.c \ src/json_test.c \
src/kword_test.c \
src/list.c \
src/keymap.h \ src/keymap.h \
src/macros.h \ src/macros.h \
src/main.c \ src/main.c \
@ -53,6 +57,7 @@ SRC_ALL = \
src/memline.c \ src/memline.c \
src/menu.c \ src/menu.c \
src/message.c \ src/message.c \
src/message_test.c \
src/misc1.c \ src/misc1.c \
src/misc2.c \ src/misc2.c \
src/move.c \ src/move.c \
@ -74,6 +79,8 @@ SRC_ALL = \
src/sha256.c \ src/sha256.c \
src/structs.h \ src/structs.h \
src/spell.c \ src/spell.c \
src/spell.h \
src/spellfile.c \
src/syntax.c \ src/syntax.c \
src/tag.c \ src/tag.c \
src/term.c \ src/term.c \
@ -81,13 +88,16 @@ SRC_ALL = \
src/termlib.c \ src/termlib.c \
src/ui.c \ src/ui.c \
src/undo.c \ src/undo.c \
src/userfunc.c \
src/version.c \ src/version.c \
src/version.h \ src/version.h \
src/vim.h \ src/vim.h \
src/winclip.c \ src/winclip.c \
src/window.c \ src/window.c \
src/tee/tee.c \
src/xxd/xxd.c \ src/xxd/xxd.c \
src/main.aap \ src/main.aap \
src/testdir/gen_opt_test.vim \
src/testdir/main.aap \ src/testdir/main.aap \
src/testdir/README.txt \ src/testdir/README.txt \
src/testdir/Make_all.mak \ src/testdir/Make_all.mak \
@ -95,6 +105,12 @@ SRC_ALL = \
src/testdir/*.py \ src/testdir/*.py \
src/testdir/sautest/autoload/*.vim \ src/testdir/sautest/autoload/*.vim \
src/testdir/runtest.vim \ src/testdir/runtest.vim \
src/testdir/shared.vim \
src/testdir/view_util.vim \
src/testdir/setup.vim \
src/testdir/gui_init.vim \
src/testdir/setup_gui.vim \
src/testdir/gui_preinit.vim \
src/testdir/test[0-9]*.ok \ src/testdir/test[0-9]*.ok \
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 \
@ -112,25 +128,30 @@ SRC_ALL = \
src/testdir/pythonx/topmodule/submodule/subsubmodule/subsubsubmodule.py \ src/testdir/pythonx/topmodule/submodule/subsubmodule/subsubsubmodule.py \
src/testdir/python_after/*.py \ src/testdir/python_after/*.py \
src/testdir/python_before/*.py \ src/testdir/python_before/*.py \
src/testdir/pyxfile/*.py \
src/testdir/bench*.in \ src/testdir/bench*.in \
src/testdir/bench*.vim \ src/testdir/bench*.vim \
src/testdir/samples/*.txt \ src/testdir/samples/*.txt \
src/proto.h \ src/proto.h \
src/proto/arabic.pro \
src/proto/blowfish.pro \ src/proto/blowfish.pro \
src/proto/buffer.pro \ src/proto/buffer.pro \
src/proto/channel.pro \ src/proto/channel.pro \
src/proto/charset.pro \ src/proto/charset.pro \
src/proto/crypt.pro \ src/proto/crypt.pro \
src/proto/crypt_zip.pro \ src/proto/crypt_zip.pro \
src/proto/dict.pro \
src/proto/diff.pro \ src/proto/diff.pro \
src/proto/digraph.pro \ src/proto/digraph.pro \
src/proto/edit.pro \ src/proto/edit.pro \
src/proto/eval.pro \ src/proto/eval.pro \
src/proto/evalfunc.pro \
src/proto/ex_cmds.pro \ src/proto/ex_cmds.pro \
src/proto/ex_cmds2.pro \ src/proto/ex_cmds2.pro \
src/proto/ex_docmd.pro \ src/proto/ex_docmd.pro \
src/proto/ex_eval.pro \ src/proto/ex_eval.pro \
src/proto/ex_getln.pro \ src/proto/ex_getln.pro \
src/proto/farsi.pro \
src/proto/fileio.pro \ src/proto/fileio.pro \
src/proto/fold.pro \ src/proto/fold.pro \
src/proto/getchar.pro \ src/proto/getchar.pro \
@ -139,6 +160,7 @@ SRC_ALL = \
src/proto/hardcopy.pro \ src/proto/hardcopy.pro \
src/proto/hashtab.pro \ src/proto/hashtab.pro \
src/proto/json.pro \ src/proto/json.pro \
src/proto/list.pro \
src/proto/main.pro \ src/proto/main.pro \
src/proto/mark.pro \ src/proto/mark.pro \
src/proto/mbyte.pro \ src/proto/mbyte.pro \
@ -160,12 +182,14 @@ SRC_ALL = \
src/proto/search.pro \ src/proto/search.pro \
src/proto/sha256.pro \ src/proto/sha256.pro \
src/proto/spell.pro \ src/proto/spell.pro \
src/proto/spellfile.pro \
src/proto/syntax.pro \ src/proto/syntax.pro \
src/proto/tag.pro \ src/proto/tag.pro \
src/proto/term.pro \ src/proto/term.pro \
src/proto/termlib.pro \ src/proto/termlib.pro \
src/proto/ui.pro \ src/proto/ui.pro \
src/proto/undo.pro \ src/proto/undo.pro \
src/proto/userfunc.pro \
src/proto/version.pro \ src/proto/version.pro \
src/proto/winclip.pro \ src/proto/winclip.pro \
src/proto/window.pro \ src/proto/window.pro \
@ -190,7 +214,7 @@ SRC_UNIX = \
src/config.mk.dist \ src/config.mk.dist \
src/config.mk.in \ src/config.mk.in \
src/configure \ src/configure \
src/configure.in \ src/configure.ac \
src/gui_at_fs.c \ src/gui_at_fs.c \
src/gui_at_sb.c \ src/gui_at_sb.c \
src/gui_at_sb.h \ src/gui_at_sb.h \
@ -247,6 +271,7 @@ SRC_UNIX = \
src/workshop.h \ src/workshop.h \
src/wsdebug.c \ src/wsdebug.c \
src/wsdebug.h \ src/wsdebug.h \
src/tee/Makefile \
src/xxd/Makefile \ src/xxd/Makefile \
# source files for both DOS and Unix # source files for both DOS and Unix
@ -298,6 +323,7 @@ SRC_DOS = \
src/Make_dvc.mak \ src/Make_dvc.mak \
src/Make_ming.mak \ src/Make_ming.mak \
src/Make_mvc.mak \ src/Make_mvc.mak \
tools/rename.bat \
src/bigvim.bat \ src/bigvim.bat \
src/bigvim64.bat \ src/bigvim64.bat \
src/msvcsetup.bat \ src/msvcsetup.bat \
@ -341,6 +367,7 @@ SRC_DOS = \
src/vimrun.c \ src/vimrun.c \
src/xpm_w32.c \ src/xpm_w32.c \
src/xpm_w32.h \ src/xpm_w32.h \
src/tee/Make_mvc.mak \
src/xxd/Make_bc5.mak \ src/xxd/Make_bc5.mak \
src/xxd/Make_ming.mak \ src/xxd/Make_ming.mak \
src/xxd/Make_mvc.mak \ src/xxd/Make_mvc.mak \
@ -510,8 +537,9 @@ RT_ALL = \
runtime/macros/urm/examples \ runtime/macros/urm/examples \
runtime/macros/urm/urm \ runtime/macros/urm/urm \
runtime/macros/urm/urm.vim \ runtime/macros/urm/urm.vim \
runtime/mswin.vim \ runtime/defaults.vim \
runtime/evim.vim \ runtime/evim.vim \
runtime/mswin.vim \
runtime/optwin.vim \ runtime/optwin.vim \
runtime/ftplugin.vim \ runtime/ftplugin.vim \
runtime/ftplugof.vim \ runtime/ftplugof.vim \

133
Makefile
View File

@ -32,7 +32,7 @@ first:
# Some make programs use the last target for the $@ default; put the other # Some make programs use the last target for the $@ default; put the other
# targets separately to always let $@ expand to "first" by default. # targets separately to always let $@ expand to "first" by default.
all install uninstall tools config configure reconfig proto depend lint tags types test testclean clean distclean: all install uninstall tools config configure reconfig proto depend lint tags types test scripttests unittests testclean clean distclean:
@if test ! -f src/auto/config.mk; then \ @if test ! -f src/auto/config.mk; then \
cp src/config.mk.dist src/auto/config.mk; \ cp src/config.mk.dist src/auto/config.mk; \
fi fi
@ -51,12 +51,9 @@ all install uninstall tools config configure reconfig proto depend lint tags typ
# #
# dossrc vim##src.zip sources for MS-DOS # dossrc vim##src.zip sources for MS-DOS
# dosrt vim##rt.zip runtime for MS-DOS # dosrt vim##rt.zip runtime for MS-DOS
# dosbin vim##d16.zip binary for MS-DOS 16 bits # dosbin vim##w32.zip binary for Win32
# vim##d32.zip binary for MS-DOS 32 bits
# vim##w32.zip binary for Win32
# gvim##.zip binary for GUI Win32 # gvim##.zip binary for GUI Win32
# gvim##ole.zip OLE exe for Win32 GUI # gvim##ole.zip OLE exe for Win32 GUI
# gvim##_s.zip exe for Win32s GUI
# #
# OBSOLETE # OBSOLETE
# amisrc vim##src.tgz sources for Amiga # amisrc vim##src.tgz sources for Amiga
@ -70,25 +67,17 @@ all install uninstall tools config configure reconfig proto depend lint tags typ
# To do all this you need the Unix archive and compiled binaries. # To do all this you need the Unix archive and compiled binaries.
# Before creating an archive first delete all backup files, *.orig, etc. # Before creating an archive first delete all backup files, *.orig, etc.
MAJOR = 7 MAJOR = 8
MINOR = 4 MINOR = 0
# Uncomment this line if the Win32s version is to be included.
# DOSBIN_S = dosbin_s
# Uncomment this line if the 16 bit DOS version is to be included.
# DOSBIN_D16 = dosbin_d16
# Uncomment this line if the 32 bit DOS version is to be included.
# DOSBIN_D32 = dosbin_d32
# CHECKLIST for creating a new version: # CHECKLIST for creating a new version:
# #
# - Update Vim version number. For a test version in: src/version.h, Contents, # - Update Vim version number. For a test version in: src/version.h,
# MAJOR/MINOR above, VIMMAJOR and VIMMINOR in src/Makefile, README*.txt, # READMEdir/Contents, MAJOR/MINOR above, VIMMAJOR and VIMMINOR in
# runtime/doc/*.txt and nsis/gvim.nsi. # src/Makefile, README.txt, README.md, READMEdir/README*.txt,
# runtime/doc/*.txt and make nsis/gvim_version.nsh.
# For a minor/major version: src/GvimExt/GvimExt.reg, src/vim.def, # For a minor/major version: src/GvimExt/GvimExt.reg, src/vim.def,
# src/vim16.def, src/gvim.exe.mnf. # src/gvim.exe.mnf.
# - Compile Vim with GTK, Perl, Python, Python3, TCL, Ruby, MZscheme, Lua (if # - Compile Vim with GTK, Perl, Python, Python3, TCL, Ruby, MZscheme, Lua (if
# you can make it all work), Cscope and "huge" features. Exclude workshop # you can make it all work), Cscope and "huge" features. Exclude workshop
# and SNiFF. # and SNiFF.
@ -108,7 +97,7 @@ MINOR = 4
# - Check for missing entries in runtime/makemenu.vim (with checkmenu script). # - Check for missing entries in runtime/makemenu.vim (with checkmenu script).
# - Check for missing options in runtime/optwin.vim et al. (with check.vim). # - Check for missing options in runtime/optwin.vim et al. (with check.vim).
# - Do "make menu" to update the runtime/synmenu.vim file. # - Do "make menu" to update the runtime/synmenu.vim file.
# - Add remarks for changes to runtime/doc/version7.txt. # - Add remarks for changes to runtime/doc/version8.txt.
# - Check that runtime/doc/help.txt doesn't contain entries in "LOCAL # - Check that runtime/doc/help.txt doesn't contain entries in "LOCAL
# ADDITIONS". # ADDITIONS".
# - In runtime/doc run "make" and "make html" to check for errors. # - In runtime/doc run "make" and "make html" to check for errors.
@ -131,8 +120,9 @@ MINOR = 4
# #
# MS-Windows: # MS-Windows:
# - Run make on Unix to update the ".mo" files. # - Run make on Unix to update the ".mo" files.
# - Get libintl-8.dll and libiconv-2.dll. E.g. from # - Get libintl-8.dll, libiconv-2.dll and libgcc_s_sjlj-1.dll. E.g. from
# https://mlocati.github.io/gettext-iconv-windows/ . # https://mlocati.github.io/gettext-iconv-windows/ .
# Use the "shared-32.zip file and extract the archive to get the files.
# Put them in the top directory, "make dosrt" uses them. # Put them in the top directory, "make dosrt" uses them.
# - > make dossrc # - > make dossrc
# > make dosrt # > make dosrt
@ -149,31 +139,35 @@ MINOR = 4
# - > cd src # - > cd src
# > nmake -f Make_mvc.mak # > nmake -f Make_mvc.mak
# - Run the tests: # - Run the tests:
# > rm testdir/*.out testdir/*.res # > nmake -f Make_mvc.mak testclean
# > nmake -f Make_mvc.mak test # > nmake -f Make_mvc.mak test
# - check the output. # - check the output.
# - Rename vim.exe to vimw32.exe, xxd/xxd.exe to xxdw32.exe. # - Rename (using ../tools/rename.bat):
# - Rename vim.pdb to vimw32.pdb. # vim.exe to vimw32.exe
# - Rename install.exe to installw32.exe and uninstal.exe to uninstalw32.exe. # tee/tee.exe to teew32.exe
# xxd/xxd.exe to xxdw32.exe
# vim.pdb to vimw32.pdb
# install.exe to installw32.exe
# uninstal.exe to uninstalw32.exe
# Win32 GUI version build: # Win32 GUI version build:
# - > cd src # - > cd src
# > nmake -f Make_mvc.mak GUI=yes # > nmake -f Make_mvc.mak GUI=yes
# - Run the tests: # - Run the tests:
# > rm testdir/*.out testdir/*.res # > nmake -f Make_mvc.mak testclean
# > nmake -f Make_mvc.mak testgvim # > nmake -f Make_mvc.mak testgvim
# - check the output. # - check the output.
# - move "gvim.exe" to here (otherwise the OLE version will overwrite it). # - move "gvim.exe" to here (otherwise the OLE version will overwrite it).
# - Move gvim.pdb to here. # - Move gvim.pdb to here.
# - Copy "GvimExt/gvimext.dll" to here. # - Copy "GvimExt/gvimext.dll" to here.
# - Delete vimrun.exe, install.exe and uninstal.exe. # - Delete vimrun.exe, install.exe and uninstal.exe.
# Win32 GUI version with OLE, PERL, TCL, PYTHON and dynamic IME: # Win32 GUI version with OLE, PERL, Ruby, TCL, PYTHON and dynamic IME:
# - Install the interfaces you want, see src/INSTALLpc.txt # - Install the interfaces you want, see src/INSTALLpc.txt
# - Build: # - Build:
# > cd src # > cd src
# Adjust bigvim.bat to match the version of each interface you want. # Adjust bigvim.bat to match the version of each interface you want.
# > bigvim.bat # > bigvim.bat
# - Run the tests: # - Run the tests:
# > rm testdir/*.out testdir/*.res # > nmake -f Make_mvc.mak testclean
# > nmake -f Make_mvc.mak testgvim # > nmake -f Make_mvc.mak testgvim
# - check the output. # - check the output.
# - Rename "gvim.exe" to "gvim_ole.exe". # - Rename "gvim.exe" to "gvim_ole.exe".
@ -187,7 +181,8 @@ MINOR = 4
# NSIS self installing exe: # NSIS self installing exe:
# - To get NSIS see http://nsis.sourceforge.net # - To get NSIS see http://nsis.sourceforge.net
# - Make sure gvim_ole.exe, vimw32.exe, installw32.exe, # - Make sure gvim_ole.exe, vimw32.exe, installw32.exe,
# uninstalw32.exe and xxdw32.exe have been build as mentioned above. # uninstalw32.exe, teew32.exe and xxdw32.exe have been build as mentioned
# above.
# - copy these files (get them from a binary archive or build them): # - copy these files (get them from a binary archive or build them):
# gvimext.dll in src/GvimExt # gvimext.dll in src/GvimExt
# gvimext64.dll in src/GvimExt # gvimext64.dll in src/GvimExt
@ -199,6 +194,7 @@ MINOR = 4
# version). # version).
# - go to ../nsis and do: # - go to ../nsis and do:
# > makensis gvim.nsi (takes a few minutes). # > makensis gvim.nsi (takes a few minutes).
# ignore warning for libwinpthread-1.dll
# - Copy gvim##.exe to the dist directory. # - Copy gvim##.exe to the dist directory.
# #
# 64 bit builds (these are not in the normal distribution, the 32 bit build # 64 bit builds (these are not in the normal distribution, the 32 bit build
@ -221,15 +217,7 @@ MINOR = 4
# 32 bit DOS version: Support was removed in 7.4.1399. When syncing to before # 32 bit DOS version: Support was removed in 7.4.1399. When syncing to before
# that it probably won't build. # that it probably won't build.
# #
# Win32s GUI version: (requires a very old compiler) # Win32s GUI version: Support was removed in patch 7.4.1364.
# - Set environment for Visual C++ 4.1 (requires a new console window):
# "vcvars32.bat" (use the path for VC 4.1 e:\msdev\bin)
# - "nmake -f Make_mvc.mak GUI=yes INTL=no clean" (use the path for VC 4.1)
# - "nmake -f Make_mvc.mak GUI=yes INTL=no" (use the path for VC 4.1)
# - Rename "gvim.exe" to "gvim_w32s.exe".
# - Rename "install.exe" to "installw32.exe"
# - Rename "uninstal.exe" to "uninstalw32.exe"
# - The produced uninstalw32.exe and vimrun.exe are used.
# #
# OS/2 support was removed in patch 7.4.1008. If you want to give it a try # OS/2 support was removed in patch 7.4.1008. If you want to give it a try
# sync to before that and check the old version of this Makefile for # sync to before that and check the old version of this Makefile for
@ -268,12 +256,9 @@ dist/comment:
mkdir dist/comment mkdir dist/comment
COMMENT_RT = comment/$(VERSION)-rt COMMENT_RT = comment/$(VERSION)-rt
COMMENT_D16 = comment/$(VERSION)-bin-d16
COMMENT_D32 = comment/$(VERSION)-bin-d32
COMMENT_W32 = comment/$(VERSION)-bin-w32 COMMENT_W32 = comment/$(VERSION)-bin-w32
COMMENT_GVIM = comment/$(VERSION)-bin-gvim COMMENT_GVIM = comment/$(VERSION)-bin-gvim
COMMENT_OLE = comment/$(VERSION)-bin-ole COMMENT_OLE = comment/$(VERSION)-bin-ole
COMMENT_W32S = comment/$(VERSION)-bin-w32s
COMMENT_SRC = comment/$(VERSION)-src COMMENT_SRC = comment/$(VERSION)-src
COMMENT_HTML = comment/$(VERSION)-html COMMENT_HTML = comment/$(VERSION)-html
COMMENT_FARSI = comment/$(VERSION)-farsi COMMENT_FARSI = comment/$(VERSION)-farsi
@ -281,12 +266,6 @@ COMMENT_FARSI = comment/$(VERSION)-farsi
dist/$(COMMENT_RT): dist/comment dist/$(COMMENT_RT): dist/comment
echo "Vim - Vi IMproved - v$(VDOT) runtime files for MS-DOS and MS-Windows" > dist/$(COMMENT_RT) echo "Vim - Vi IMproved - v$(VDOT) runtime files for MS-DOS and MS-Windows" > dist/$(COMMENT_RT)
dist/$(COMMENT_D16): dist/comment
echo "Vim - Vi IMproved - v$(VDOT) binaries for MS-DOS 16 bit real mode" > dist/$(COMMENT_D16)
dist/$(COMMENT_D32): dist/comment
echo "Vim - Vi IMproved - v$(VDOT) binaries for MS-DOS 32 bit protected mode" > dist/$(COMMENT_D32)
dist/$(COMMENT_W32): dist/comment dist/$(COMMENT_W32): dist/comment
echo "Vim - Vi IMproved - v$(VDOT) binaries for MS-Windows NT/95" > dist/$(COMMENT_W32) echo "Vim - Vi IMproved - v$(VDOT) binaries for MS-Windows NT/95" > dist/$(COMMENT_W32)
@ -296,9 +275,6 @@ dist/$(COMMENT_GVIM): dist/comment
dist/$(COMMENT_OLE): dist/comment dist/$(COMMENT_OLE): dist/comment
echo "Vim - Vi IMproved - v$(VDOT) MS-Windows GUI binaries with OLE support" > dist/$(COMMENT_OLE) echo "Vim - Vi IMproved - v$(VDOT) MS-Windows GUI binaries with OLE support" > dist/$(COMMENT_OLE)
dist/$(COMMENT_W32S): dist/comment
echo "Vim - Vi IMproved - v$(VDOT) GUI binaries for MS-Windows 3.1/3.11" > dist/$(COMMENT_W32S)
dist/$(COMMENT_SRC): dist/comment dist/$(COMMENT_SRC): dist/comment
echo "Vim - Vi IMproved - v$(VDOT) sources for MS-DOS and MS-Windows" > dist/$(COMMENT_SRC) echo "Vim - Vi IMproved - v$(VDOT) sources for MS-DOS and MS-Windows" > dist/$(COMMENT_SRC)
@ -493,6 +469,7 @@ dosrt_files: dist prepare no_title.vim
done done
cp libintl-8.dll dist/vim/$(VIMRTDIR)/ cp libintl-8.dll dist/vim/$(VIMRTDIR)/
cp libiconv-2.dll dist/vim/$(VIMRTDIR)/ cp libiconv-2.dll dist/vim/$(VIMRTDIR)/
cp libgcc_s_sjlj-1.dll dist/vim/$(VIMRTDIR)/
# Used before uploading. Don't delete the AAPDIR/sign files! # Used before uploading. Don't delete the AAPDIR/sign files!
@ -501,7 +478,8 @@ runtime_unix2dos: dosrt_files
cd dist/vim/$(VIMRTDIR); tar cf - * \ cd dist/vim/$(VIMRTDIR); tar cf - * \
| (cd ../../../runtime/dos; tar xf -) | (cd ../../../runtime/dos; tar xf -)
dosbin: prepare dosbin_gvim dosbin_w32 $(DOSBIN_D32) dosbin_ole $(DOSBIN_S) $(DOSBIN_D16) dosbin: prepare dosbin_gvim dosbin_w32 dosbin_ole $(DOSBIN_S)
-rm $(IN_README_DIR)
# make Win32 gvim # make Win32 gvim
dosbin_gvim: dist no_title.vim dist/$(COMMENT_GVIM) dosbin_gvim: dist no_title.vim dist/$(COMMENT_GVIM)
@ -512,8 +490,8 @@ dosbin_gvim: dist no_title.vim dist/$(COMMENT_GVIM)
tar cf - \ tar cf - \
$(BIN_DOS) \ $(BIN_DOS) \
| (cd dist/vim/$(VIMRTDIR); tar xf -) | (cd dist/vim/$(VIMRTDIR); tar xf -)
-rm $(IN_README_DIR)
cp gvim.exe dist/vim/$(VIMRTDIR)/gvim.exe cp gvim.exe dist/vim/$(VIMRTDIR)/gvim.exe
cp teew32.exe dist/vim/$(VIMRTDIR)/tee.exe
cp xxdw32.exe dist/vim/$(VIMRTDIR)/xxd.exe cp xxdw32.exe dist/vim/$(VIMRTDIR)/xxd.exe
cp vimrun.exe dist/vim/$(VIMRTDIR)/vimrun.exe cp vimrun.exe dist/vim/$(VIMRTDIR)/vimrun.exe
cp installw32.exe dist/vim/$(VIMRTDIR)/install.exe cp installw32.exe dist/vim/$(VIMRTDIR)/install.exe
@ -532,43 +510,13 @@ dosbin_w32: dist no_title.vim dist/$(COMMENT_W32)
$(BIN_DOS) \ $(BIN_DOS) \
| (cd dist/vim/$(VIMRTDIR); tar xf -) | (cd dist/vim/$(VIMRTDIR); tar xf -)
cp vimw32.exe dist/vim/$(VIMRTDIR)/vim.exe cp vimw32.exe dist/vim/$(VIMRTDIR)/vim.exe
cp teew32.exe dist/vim/$(VIMRTDIR)/tee.exe
cp xxdw32.exe dist/vim/$(VIMRTDIR)/xxd.exe cp xxdw32.exe dist/vim/$(VIMRTDIR)/xxd.exe
cp installw32.exe dist/vim/$(VIMRTDIR)/install.exe cp installw32.exe dist/vim/$(VIMRTDIR)/install.exe
cp uninstalw32.exe dist/vim/$(VIMRTDIR)/uninstal.exe cp uninstalw32.exe dist/vim/$(VIMRTDIR)/uninstal.exe
cd dist && zip -9 -rD -z vim$(VERSION)w32.zip vim <$(COMMENT_W32) cd dist && zip -9 -rD -z vim$(VERSION)w32.zip vim <$(COMMENT_W32)
cp vimw32.pdb dist/vim$(VERSION)w32.pdb cp vimw32.pdb dist/vim$(VERSION)w32.pdb
# make 32bit DOS
dosbin_d32: dist no_title.vim dist/$(COMMENT_D32)
-rm -rf dist/vim$(VERSION)d32.zip
-rm -rf dist/vim
mkdir dist/vim
mkdir dist/vim/$(VIMRTDIR)
tar cf - \
$(BIN_DOS) \
| (cd dist/vim/$(VIMRTDIR); tar xf -)
cp vimd32.exe dist/vim/$(VIMRTDIR)/vim.exe
cp xxdd32.exe dist/vim/$(VIMRTDIR)/xxd.exe
cp installd32.exe dist/vim/$(VIMRTDIR)/install.exe
cp uninstald32.exe dist/vim/$(VIMRTDIR)/uninstal.exe
cp csdpmi4b.zip dist/vim/$(VIMRTDIR)
cd dist && zip -9 -rD -z vim$(VERSION)d32.zip vim <$(COMMENT_D32)
# make 16bit DOS
dosbin_d16: dist no_title.vim dist/$(COMMENT_D16)
-rm -rf dist/vim$(VERSION)d16.zip
-rm -rf dist/vim
mkdir dist/vim
mkdir dist/vim/$(VIMRTDIR)
tar cf - \
$(BIN_DOS) \
| (cd dist/vim/$(VIMRTDIR); tar xf -)
cp vimd16.exe dist/vim/$(VIMRTDIR)/vim.exe
cp xxdd16.exe dist/vim/$(VIMRTDIR)/xxd.exe
cp installd16.exe dist/vim/$(VIMRTDIR)/install.exe
cp uninstald16.exe dist/vim/$(VIMRTDIR)/uninstal.exe
cd dist && zip -9 -rD -z vim$(VERSION)d16.zip vim <$(COMMENT_D16)
# make Win32 gvim with OLE # make Win32 gvim with OLE
dosbin_ole: dist no_title.vim dist/$(COMMENT_OLE) dosbin_ole: dist no_title.vim dist/$(COMMENT_OLE)
-rm -rf dist/gvim$(VERSION)ole.zip -rm -rf dist/gvim$(VERSION)ole.zip
@ -579,6 +527,7 @@ dosbin_ole: dist no_title.vim dist/$(COMMENT_OLE)
$(BIN_DOS) \ $(BIN_DOS) \
| (cd dist/vim/$(VIMRTDIR); tar xf -) | (cd dist/vim/$(VIMRTDIR); tar xf -)
cp gvim_ole.exe dist/vim/$(VIMRTDIR)/gvim.exe cp gvim_ole.exe dist/vim/$(VIMRTDIR)/gvim.exe
cp teew32.exe dist/vim/$(VIMRTDIR)/tee.exe
cp xxdw32.exe dist/vim/$(VIMRTDIR)/xxd.exe cp xxdw32.exe dist/vim/$(VIMRTDIR)/xxd.exe
cp vimrun.exe dist/vim/$(VIMRTDIR)/vimrun.exe cp vimrun.exe dist/vim/$(VIMRTDIR)/vimrun.exe
cp installw32.exe dist/vim/$(VIMRTDIR)/install.exe cp installw32.exe dist/vim/$(VIMRTDIR)/install.exe
@ -590,22 +539,6 @@ dosbin_ole: dist no_title.vim dist/$(COMMENT_OLE)
cd dist && zip -9 -rD -z gvim$(VERSION)ole.zip vim <$(COMMENT_OLE) cd dist && zip -9 -rD -z gvim$(VERSION)ole.zip vim <$(COMMENT_OLE)
cp gvim_ole.pdb dist/gvim$(VERSION)ole.pdb cp gvim_ole.pdb dist/gvim$(VERSION)ole.pdb
# make Win32s gvim
dosbin_s: dist no_title.vim dist/$(COMMENT_W32S)
-rm -rf dist/gvim$(VERSION)_s.zip
-rm -rf dist/vim
mkdir dist/vim
mkdir dist/vim/$(VIMRTDIR)
tar cf - \
$(BIN_DOS) \
| (cd dist/vim/$(VIMRTDIR); tar xf -)
cp gvim_w32s.exe dist/vim/$(VIMRTDIR)/gvim.exe
cp xxdd32.exe dist/vim/$(VIMRTDIR)/xxd.exe
cp README_w32s.txt dist/vim/$(VIMRTDIR)
cp installw32.exe dist/vim/$(VIMRTDIR)/install.exe
cp uninstalw32.exe dist/vim/$(VIMRTDIR)/uninstal.exe
cd dist && zip -9 -rD -z gvim$(VERSION)_s.zip vim <$(COMMENT_W32S)
html: dist dist/$(COMMENT_HTML) html: dist dist/$(COMMENT_HTML)
-rm -rf dist/vim$(VERSION)html.zip -rm -rf dist/vim$(VERSION)html.zip
cd runtime/doc && zip -9 -z ../../dist/vim$(VERSION)html.zip *.html <../../dist/$(COMMENT_HTML) cd runtime/doc && zip -9 -z ../../dist/vim$(VERSION)html.zip *.html <../../dist/$(COMMENT_HTML)

View File

@ -1,4 +1,4 @@
`README.md` for version 7.4 of Vim: Vi IMproved. `README.md` for version 8.0 of Vim: Vi IMproved.
[![Build Status](https://travis-ci.org/vim/vim.svg?branch=master)](https://travis-ci.org/vim/vim) [![Build Status](https://travis-ci.org/vim/vim.svg?branch=master)](https://travis-ci.org/vim/vim)
[![Coverage Status](https://coveralls.io/repos/vim/vim/badge.svg?branch=master&service=github)](https://coveralls.io/github/vim/vim?branch=master) [![Coverage Status](https://coveralls.io/repos/vim/vim/badge.svg?branch=master&service=github)](https://coveralls.io/github/vim/vim?branch=master)
[![Appveyor Build status](https://ci.appveyor.com/api/projects/status/o2qht2kjm02sgghk?svg=true)](https://ci.appveyor.com/project/chrisbra/vim) [![Appveyor Build status](https://ci.appveyor.com/api/projects/status/o2qht2kjm02sgghk?svg=true)](https://ci.appveyor.com/project/chrisbra/vim)

View File

@ -1,4 +1,4 @@
README.txt for version 7.4 of Vim: Vi IMproved. README.txt for version 8.0 of Vim: Vi IMproved.
WHAT IS VIM? WHAT IS VIM?

View File

@ -9,10 +9,10 @@ Vim Vi IMproved. A clone of the UNIX text editor Vi. Very useful
messages, shows current file name in window title, on-line messages, shows current file name in window title, on-line
help, rectangular cut/paste, etc., etc., etc... help, rectangular cut/paste, etc., etc., etc...
Version 7.4. Also runs under UNIX, MS-Windows, Mac, etc. Version 8.0. Also runs under UNIX, MS-Windows, Mac, etc.
vim74rt.tgz contains the documentation and syntax files. vim80rt.tgz contains the documentation and syntax files.
vim74bin.tgz contains the binaries. vim80bin.tgz contains the binaries.
vim74src.tgz contains the sources. vim80src.tgz contains the sources.
Author: Bram Moolenaar et al. Author: Bram Moolenaar et al.

View File

@ -1,4 +1,4 @@
README_ami.txt for version 7.4 of Vim: Vi IMproved. README_ami.txt for version 8.0 of Vim: Vi IMproved.
This file explains the installation of Vim on Amiga systems. This file explains the installation of Vim on Amiga systems.
See README.txt for general information about Vim. See README.txt for general information about Vim.
@ -16,8 +16,8 @@ easily upgrade to a new version. For example:
You would then unpack the archives like this: You would then unpack the archives like this:
cd dh0:editors cd dh0:editors
tar xf t:vim60bin.tar tar xf t:vim80bin.tar
tar xf t:vim60rt.tar tar xf t:vim80rt.tar
Set the $VIM environment variable to point to the top directory of your Vim Set the $VIM environment variable to point to the top directory of your Vim
files. For the above example: files. For the above example:

View File

@ -1,8 +1,8 @@
README_amibin.txt for version 7.4 of Vim: Vi IMproved. README_amibin.txt for version 8.0 of Vim: Vi IMproved.
See "README.txt" for general information about Vim. See "README.txt" for general information about Vim.
See "README_ami.txt" for installation instructions for the Amiga. See "README_ami.txt" for installation instructions for the Amiga.
These files are in the runtime archive (vim60rt.tgz). These files are in the runtime archive (vim80rt.tgz).
The Amiga "bin" archive contains the Vim executable for the Amiga. It was The Amiga "bin" archive contains the Vim executable for the Amiga. It was

View File

@ -1,8 +1,8 @@
README_amisrc.txt for version 7.4 of Vim: Vi IMproved. README_amisrc.txt for version 8.0 of Vim: Vi IMproved.
See "README.txt" for general information about Vim. See "README.txt" for general information about Vim.
See "README_ami.txt" for installation instructions for the Amiga. See "README_ami.txt" for installation instructions for the Amiga.
These files are in the runtime archive (vim60rt.tgz). These files are in the runtime archive (vim80rt.tgz).
The Amiga source archive contains the files needed to compile Vim on the The Amiga source archive contains the files needed to compile Vim on the

View File

@ -1,16 +1,16 @@
README_bindos.txt for version 7.4 of Vim: Vi IMproved. README_bindos.txt for version 8.0 of Vim: Vi IMproved.
See "README.txt" for general information about Vim. See "README.txt" for general information about Vim.
See "README_dos.txt" for installation instructions for MS-DOS and MS-Windows. See "README_dos.txt" for installation instructions for MS-DOS and MS-Windows.
These files are in the runtime archive (vim74rt.zip). These files are in the runtime archive (vim80rt.zip).
There are several binary distributions of Vim for the PC. You would normally There are several binary distributions of Vim for the PC. You would normally
pick only one of them, but it's also possible to install several. pick only one of them, but it's also possible to install several.
These ones are available (the version number may differ): These ones are available (the version number may differ):
vim74w32.zip Windows 95/98/NT/etc. console version vim80w32.zip Windows 95/98/NT/etc. console version
gvim74.zip Windows 95/98/NT/etc. GUI version gvim80.zip Windows 95/98/NT/etc. GUI version
gvim74ole.zip Windows 95/98/NT/etc. GUI version with OLE gvim80ole.zip Windows 95/98/NT/etc. GUI version with OLE
You MUST also get the runtime archive (vim74rt.zip). You MUST also get the runtime archive (vim80rt.zip).
The sources are also available (vim74src.zip). The sources are also available (vim80src.zip).

View File

@ -1,4 +1,4 @@
README_dos.txt for version 7.4 of Vim: Vi IMproved. README_dos.txt for version 8.0 of Vim: Vi IMproved.
This file explains the installation of Vim on MS-DOS and MS-Windows systems. This file explains the installation of Vim on MS-DOS and MS-Windows systems.
See "README.txt" for general information about Vim. See "README.txt" for general information about Vim.
@ -41,19 +41,19 @@ These are the normal steps to install Vim from the .zip archives:
located. Check the $VIM setting to see where it points to: located. Check the $VIM setting to see where it points to:
set VIM set VIM
For example, if you have For example, if you have
C:\vim\vim54 C:\vim\vim80
do do
cd C:\ cd C:\
Binary and runtime Vim archives are normally unpacked in the same location, Binary and runtime Vim archives are normally unpacked in the same location,
on top of each other. on top of each other.
2. Unpack the zip archives. This will create a new directory "vim\vim74", 2. Unpack the zip archives. This will create a new directory "vim\vim80",
in which all the distributed Vim files are placed. Since the directory in which all the distributed Vim files are placed. Since the directory
name includes the version number, it is unlikely that you overwrite name includes the version number, it is unlikely that you overwrite
existing files. existing files.
Examples: Examples:
pkunzip -d gvim74.zip pkunzip -d gvim80.zip
unzip vim74w32.zip unzip vim80w32.zip
You need to unpack the runtime archive and at least one of the binary You need to unpack the runtime archive and at least one of the binary
archives. When using more than one binary version, be careful not to archives. When using more than one binary version, be careful not to
@ -69,7 +69,7 @@ These are the normal steps to install Vim from the .zip archives:
archive and follow the instructions in the documentation. archive and follow the instructions in the documentation.
3. Change to the new directory: 3. Change to the new directory:
cd vim\vim74 cd vim\vim80
Run the "install.exe" program. It will ask you a number of questions about Run the "install.exe" program. It will ask you a number of questions about
how you would like to have your Vim setup. Among these are: how you would like to have your Vim setup. Among these are:
- You can tell it to write a "_vimrc" file with your preferences in the - You can tell it to write a "_vimrc" file with your preferences in the
@ -80,8 +80,8 @@ These are the normal steps to install Vim from the .zip archives:
console or in a shell. You can select one of the directories in your console or in a shell. You can select one of the directories in your
$PATH. If you skip this, you can add Vim to the search path manually: $PATH. If you skip this, you can add Vim to the search path manually:
The simplest is to add a line to your autoexec.bat. Examples: The simplest is to add a line to your autoexec.bat. Examples:
set path=%path%;C:\vim\vim74 set path=%path%;C:\vim\vim80
set path=%path%;D:\editors\vim\vim74 set path=%path%;D:\editors\vim\vim80
- Create entries for Vim on the desktop and in the Start menu. - Create entries for Vim on the desktop and in the Start menu.
That's it! That's it!
@ -93,8 +93,8 @@ Remarks:
won't show a menubar. Then you need to set the $VIM environment variable to won't show a menubar. Then you need to set the $VIM environment variable to
point to the top directory of your Vim files. Example: point to the top directory of your Vim files. Example:
set VIM=C:\editors\vim set VIM=C:\editors\vim
Vim version 7.4 will look for your vimrc file in $VIM, and for the runtime Vim version 8.0 will look for your vimrc file in $VIM, and for the runtime
files in $VIM/vim74. See ":help $VIM" for more information. files in $VIM/vim80. See ":help $VIM" for more information.
- To avoid confusion between distributed files of different versions and your - To avoid confusion between distributed files of different versions and your
own modified vim scripts, it is recommended to use this directory layout: own modified vim scripts, it is recommended to use this directory layout:
@ -105,14 +105,14 @@ Remarks:
C:\vim\vimfiles\ftplugin\*.vim Filetype plugins C:\vim\vimfiles\ftplugin\*.vim Filetype plugins
C:\vim\... Other files you made. C:\vim\... Other files you made.
Distributed files: Distributed files:
C:\vim\vim74\vim.exe The Vim version 7.4 executable. C:\vim\vim80\vim.exe The Vim version 8.0 executable.
C:\vim\vim74\doc\*.txt The version 7.4 documentation files. C:\vim\vim80\doc\*.txt The version 8.0 documentation files.
C:\vim\vim74\bugreport.vim A Vim version 7.4 script. C:\vim\vim80\bugreport.vim A Vim version 8.0 script.
C:\vim\vim74\... Other version 7.4 distributed files. C:\vim\vim80\... Other version 8.0 distributed files.
In this case the $VIM environment variable would be set like this: In this case the $VIM environment variable would be set like this:
set VIM=C:\vim set VIM=C:\vim
Then $VIMRUNTIME will automatically be set to "$VIM\vim74". Don't add Then $VIMRUNTIME will automatically be set to "$VIM\vim80". Don't add
"vim74" to $VIM, that won't work. "vim80" to $VIM, that won't work.
- You can put your Vim executable anywhere else. If the executable is not - You can put your Vim executable anywhere else. If the executable is not
with the other Vim files, you should set $VIM. The simplest is to add a line with the other Vim files, you should set $VIM. The simplest is to add a line
@ -136,8 +136,8 @@ Remarks:
Select Properties. Select Properties.
5. In the Program tab, change the "Cmdline" to add "/c" and the name of the 5. In the Program tab, change the "Cmdline" to add "/c" and the name of the
Vim executable. Examples: Vim executable. Examples:
C:\command.com /c C:\vim\vim74\vim.exe C:\command.com /c C:\vim\vim80\vim.exe
C:\command.com /c D:\editors\vim\vim74\vim.exe C:\command.com /c D:\editors\vim\vim80\vim.exe
6. Select the font, window size, etc. that you like. If this isn't 6. Select the font, window size, etc. that you like. If this isn't
possible, select "Advanced" in the Program tab, and deselect "MS-DOS possible, select "Advanced" in the Program tab, and deselect "MS-DOS
mode". mode".

View File

@ -1,4 +1,4 @@
README_extra.txt for version 7.4 of Vim: Vi IMproved. README_extra.txt for version 8.0 of Vim: Vi IMproved.
These extra files of Vim are for special purposes. This README explains what These extra files of Vim are for special purposes. This README explains what
the files are for. For general information about Vim, see the "README.txt" the files are for. For general information about Vim, see the "README.txt"

View File

@ -1,8 +1,28 @@
README_mac.txt for version 7.4 of Vim: Vi IMproved. README_mac.txt for version 8.0 of Vim: Vi IMproved.
This file explains the installation of Vim on Macintosh systems. This file explains the installation of Vim on Macintosh systems.
See "README.txt" for general information about Vim. See "README.txt" for general information about Vim.
Sorry, this text still needs to be written! To build from sources, like on Unix
1. Get the build tools: "clang" and "make". These can be installed with the
"CommandLineTools" package. If you don't have one, do
xcode-select --install
Just like for any software development with OS X.
2. Get the source code. Best is to use git (which you need to install first),
see http://www.vim.org/git.php
Or you can download and unpack the Unix tar archive, see
http://www.vim.org/download.php
3. Go to the top directory of the source tree, do
make
sudo make install
A newly built vim will be installed under "/usr/local".
If you can't manage to make this work, there is a fallback using Homebrew:
1. Install Homebrew from http://brew.sh/
2. Install latest Vim with: brew install vim

View File

@ -1,4 +1,4 @@
README_ole.txt for version 7.4 of Vim: Vi IMproved. README_ole.txt for version 8.0 of Vim: Vi IMproved.
This archive contains gvim.exe with OLE interface and VisVim. This archive contains gvim.exe with OLE interface and VisVim.
This version of gvim.exe can also load a number of interface dynamically (you This version of gvim.exe can also load a number of interface dynamically (you

View File

@ -1,4 +1,4 @@
README_os2.txt for version 7.4 of Vim: Vi IMproved. README_os2.txt for version 8.0 of Vim: Vi IMproved.
This file used to explain the installation of Vim on OS/2 systems. This file used to explain the installation of Vim on OS/2 systems.
However, support for OS/2 has been removed in patch 7.4.1008. However, support for OS/2 has been removed in patch 7.4.1008.

View File

@ -1,4 +1,4 @@
README_zOS.txt for version 7.4 of Vim: Vi IMproved. README_zOS.txt for version 8.0 of Vim: Vi IMproved.
This readme explains how to build Vim on z/OS. Formerly called OS/390. This readme explains how to build Vim on z/OS. Formerly called OS/390.
See "README.txt" for general information about Vim. See "README.txt" for general information about Vim.
@ -78,7 +78,7 @@ Change to the vim directory and do:
With X11: With X11:
--------- ---------
WARNING: This instruction was not tested with Vim 7.4. WARNING: This instruction was not tested with Vim 7.4 or later.
There are two ways for building VIM with X11 support. The first way is simple There are two ways for building VIM with X11 support. The first way is simple
and results in a big executable (~13 Mb), the second needs a few additional and results in a big executable (~13 Mb), the second needs a few additional

View File

@ -1,8 +1,8 @@
README_src.txt for version 7.4 of Vim: Vi IMproved. README_src.txt for version 8.0 of Vim: Vi IMproved.
The source archive contains the files needed to compile Vim on Unix systems. The source archive contains the files needed to compile Vim on Unix systems.
It is packed for Unix systems (NL line separator). It is packed for Unix systems (NL line separator).
For more information, see the README.txt file that comes with the runtime For more information, see the README.txt file that comes with the runtime
archive (vim-7.4-rt.tar.gz). To be able to run Vim you MUST get the runtime archive (vim-8.0-rt.tar.gz). To be able to run Vim you MUST get the runtime
archive too! archive too!

View File

@ -1,8 +1,8 @@
README_srcdos.txt for version 7.4 of Vim: Vi IMproved. README_srcdos.txt for version 8.0 of Vim: Vi IMproved.
See "README.txt" for general information about Vim. See "README.txt" for general information about Vim.
See "README_dos.txt" for installation instructions for MS-DOS and MS-Windows. See "README_dos.txt" for installation instructions for MS-DOS and MS-Windows.
These files are in the runtime archive (vim74rt.zip). These files are in the runtime archive (vim80rt.zip).
The DOS source archive contains the files needed to compile Vim on MS-DOS or The DOS source archive contains the files needed to compile Vim on MS-DOS or

View File

@ -1,4 +1,4 @@
README_unix.txt for version 7.4 of Vim: Vi IMproved. README_unix.txt for version 8.0 of Vim: Vi IMproved.
This file explains the installation of Vim on Unix systems. This file explains the installation of Vim on Unix systems.
See "README.txt" for general information about Vim. See "README.txt" for general information about Vim.

View File

@ -1,4 +1,4 @@
README_vms.txt for version 7.4 of Vim: Vi IMproved. README_vms.txt for version 8.0 of Vim: Vi IMproved.
This file explains the installation of Vim on VMS systems. This file explains the installation of Vim on VMS systems.
See "README.txt" in the runtime archive for information about Vim. See "README.txt" in the runtime archive for information about Vim.

View File

@ -1,4 +1,4 @@
README_w32s.txt for version 7.4 of Vim: Vi IMproved. README_w32s.txt for version 8.0 of Vim: Vi IMproved.
This archive contains the gvim.exe that was specifically compiled for use in This archive contains the gvim.exe that was specifically compiled for use in
the Win32s subsystem in MS-Windows 3.1 and 3.11. the Win32s subsystem in MS-Windows 3.1 and 3.11.

View File

@ -16,9 +16,6 @@ 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'
# Work around for Python 2.7.11's bug
- reg copy HKLM\SOFTWARE\Python\PythonCore\2.7 HKLM\SOFTWARE\Python\PythonCore\2.7-32 /s /reg:32
- reg copy HKLM\SOFTWARE\Python\PythonCore\2.7 HKLM\SOFTWARE\Python\PythonCore\2.7-32 /s /reg:64
build_script: build_script:
- src/appveyor.bat - src/appveyor.bat
@ -26,9 +23,10 @@ build_script:
test_script: test_script:
- cd src/testdir - cd src/testdir
# Testing with MSVC gvim # Testing with MSVC gvim
- path C:\Python35-x64;%PATH%
- nmake -f Make_dos.mak VIMPROG=..\gvim - nmake -f Make_dos.mak VIMPROG=..\gvim
- nmake -f Make_dos.mak clean - nmake -f Make_dos.mak clean
# Testing with MingW console version # Testing with MingW console version
- nmake -f Make_dos.mak VIMPROG=..\vim - nmake -f Make_dos.mak VIMPROG=..\vim
# vim: sw=2 sts=2 et ts=2 sr # vim: sw=2 sts=2 et ts=8 sr

View File

@ -188,6 +188,7 @@ Section "Vim executables and runtime files"
File /oname=install.exe ${VIMSRC}\installw32.exe File /oname=install.exe ${VIMSRC}\installw32.exe
File /oname=uninstal.exe ${VIMSRC}\uninstalw32.exe File /oname=uninstal.exe ${VIMSRC}\uninstalw32.exe
File ${VIMSRC}\vimrun.exe File ${VIMSRC}\vimrun.exe
File /oname=tee.exe ${VIMSRC}\teew32.exe
File /oname=xxd.exe ${VIMSRC}\xxdw32.exe File /oname=xxd.exe ${VIMSRC}\xxdw32.exe
File ${VIMTOOLS}\diff.exe File ${VIMTOOLS}\diff.exe
File ${VIMRT}\vimtutor.bat File ${VIMRT}\vimtutor.bat
@ -384,6 +385,7 @@ SectionEnd
File ${VIMRT}\libintl-8.dll File ${VIMRT}\libintl-8.dll
File ${VIMRT}\libiconv-2.dll File ${VIMRT}\libiconv-2.dll
File /nonfatal ${VIMRT}\libwinpthread-1.dll File /nonfatal ${VIMRT}\libwinpthread-1.dll
File /nonfatal ${VIMRT}\libgcc_s_sjlj-1.dll
SectionEnd SectionEnd
!endif !endif

View File

@ -1,6 +1,6 @@
# Generated from Makefile: define the version numbers # Generated from Makefile: define the version numbers
!ifndef __GVIM_VER__NSH__ !ifndef __GVIM_VER__NSH__
!define __GVIM_VER__NSH__ !define __GVIM_VER__NSH__
!define VER_MAJOR 7 !define VER_MAJOR 8
!define VER_MINOR 4 !define VER_MINOR 0
!endif !endif

View File

@ -2,12 +2,13 @@
" Description: Perform Ada specific completion & tagging. " Description: Perform Ada specific completion & tagging.
" Language: Ada (2005) " Language: Ada (2005)
" $Id: ada.vim 887 2008-07-08 14:29:01Z krischik $ " $Id: ada.vim 887 2008-07-08 14:29:01Z krischik $
" Maintainer: Martin Krischik <krischik@users.sourceforge.net> " Maintainer: Mathias Brousset <mathiasb17@gmail.com>
" Martin Krischik <krischik@users.sourceforge.net>
" Taylor Venable <taylor@metasyntax.net> " Taylor Venable <taylor@metasyntax.net>
" Neil Bird <neil@fnxweb.com> " Neil Bird <neil@fnxweb.com>
" Ned Okie <nokie@radford.edu> " Ned Okie <nokie@radford.edu>
" $Author: krischik $ " $Author: krischik $
" $Date: 2008-07-08 16:29:01 +0200 (Di, 08 Jul 2008) $ " $Date: 2017-01-31 20:20:05 +0200 (Mon, 01 Jan 2017) $
" Version: 4.6 " Version: 4.6
" $Revision: 887 $ " $Revision: 887 $
" $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/autoload/ada.vim $ " $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/autoload/ada.vim $
@ -23,6 +24,7 @@
" 09.05.2007 MK Session just won't work no matter how much " 09.05.2007 MK Session just won't work no matter how much
" tweaking is done " tweaking is done
" 19.09.2007 NO still some mapleader problems " 19.09.2007 NO still some mapleader problems
" 31.01.2017 MB fix more mapleader problems
" Help Page: ft-ada-functions " Help Page: ft-ada-functions
"------------------------------------------------------------------------------ "------------------------------------------------------------------------------
@ -447,7 +449,7 @@ function ada#Switch_Session (New_Session)
if a:New_Session != v:this_session if a:New_Session != v:this_session
" "
" We actualy got a new session - otherwise there " We actually got a new session - otherwise there
" is nothing to do. " is nothing to do.
" "
if strlen (v:this_session) > 0 if strlen (v:this_session) > 0
@ -585,11 +587,11 @@ function ada#Map_Menu (Text, Keys, Command)
\ " :" . a:Command . "<CR>" \ " :" . a:Command . "<CR>"
execute execute
\ "nnoremap <buffer>" . \ "nnoremap <buffer>" .
\ escape(l:leader . "a" . a:Keys , '\') . \ " <Leader>a" . a:Keys .
\" :" . a:Command \" :" . a:Command
execute execute
\ "inoremap <buffer>" . \ "inoremap <buffer>" .
\ escape(l:leader . "a" . a:Keys , '\') . \ " <Learder>a" . a:Keys .
\" <C-O>:" . a:Command \" <C-O>:" . a:Command
endif endif
return return

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,184 @@
" Language: ConTeXt typesetting engine
" Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
" Latest Revision: 2016 Oct 21
let s:keepcpo= &cpo
set cpo&vim
" Helper functions {{{
function! s:context_echo(message, mode)
redraw
echo "\r"
execute 'echohl' a:mode
echomsg '[ConTeXt]' a:message
echohl None
endf
function! s:sh()
return has('win32') || has('win64') || has('win16') || has('win95')
\ ? ['cmd.exe', '/C']
\ : ['/bin/sh', '-c']
endfunction
" For backward compatibility
if exists('*win_getid')
function! s:win_getid()
return win_getid()
endf
function! s:win_id2win(winid)
return win_id2win(a:winid)
endf
else
function! s:win_getid()
return winnr()
endf
function! s:win_id2win(winnr)
return a:winnr
endf
endif
" }}}
" ConTeXt jobs {{{
if has('job')
let g:context_jobs = []
" Print the status of ConTeXt jobs
function! context#job_status()
let l:jobs = filter(g:context_jobs, 'job_status(v:val) == "run"')
let l:n = len(l:jobs)
call s:context_echo(
\ 'There '.(l:n == 1 ? 'is' : 'are').' '.(l:n == 0 ? 'no' : l:n)
\ .' job'.(l:n == 1 ? '' : 's').' running'
\ .(l:n == 0 ? '.' : ' (' . join(l:jobs, ', ').').'),
\ 'ModeMsg')
endfunction
" Stop all ConTeXt jobs
function! context#stop_jobs()
let l:jobs = filter(g:context_jobs, 'job_status(v:val) == "run"')
for job in l:jobs
call job_stop(job)
endfor
sleep 1
let l:tmp = []
for job in l:jobs
if job_status(job) == "run"
call add(l:tmp, job)
endif
endfor
let g:context_jobs = l:tmp
if empty(g:context_jobs)
call s:context_echo('Done. No jobs running.', 'ModeMsg')
else
call s:context_echo('There are still some jobs running. Please try again.', 'WarningMsg')
endif
endfunction
function! context#callback(path, job, status)
if index(g:context_jobs, a:job) != -1 && job_status(a:job) != 'run' " just in case
call remove(g:context_jobs, index(g:context_jobs, a:job))
endif
call s:callback(a:path, a:job, a:status)
endfunction
function! context#close_cb(channel)
call job_status(ch_getjob(a:channel)) " Trigger exit_cb's callback for faster feedback
endfunction
function! s:typeset(path)
call add(g:context_jobs,
\ job_start(add(s:sh(), context#command() . ' ' . shellescape(fnamemodify(a:path, ":t"))), {
\ 'close_cb' : 'context#close_cb',
\ 'exit_cb' : function(get(b:, 'context_callback', get(g:, 'context_callback', 'context#callback')),
\ [a:path]),
\ 'in_io' : 'null'
\ }))
endfunction
else " No jobs
function! context#job_status()
call s:context_echo('Not implemented', 'WarningMsg')
endfunction!
function! context#stop_jobs()
call s:context_echo('Not implemented', 'WarningMsg')
endfunction
function! context#callback(path, job, status)
call s:callback(a:path, a:job, a:status)
endfunction
function! s:typeset(path)
execute '!' . context#command() . ' ' . shellescape(fnamemodify(a:path, ":t"))
call call(get(b:, 'context_callback', get(g:, 'context_callback', 'context#callback')),
\ [a:path, 0, v:shell_error])
endfunction
endif " has('job')
function! s:callback(path, job, status) abort
if a:status < 0 " Assume the job was terminated
return
endif
" Get info about the current window
let l:winid = s:win_getid() " Save window id
let l:efm = &l:errorformat " Save local errorformat
let l:cwd = fnamemodify(getcwd(), ":p") " Save local working directory
" Set errorformat to parse ConTeXt errors
execute 'setl efm=' . escape(b:context_errorformat, ' ')
try " Set cwd to expand error file correctly
execute 'lcd' fnameescape(fnamemodify(a:path, ':h'))
catch /.*/
execute 'setl efm=' . escape(l:efm, ' ')
throw v:exception
endtry
try
execute 'cgetfile' fnameescape(fnamemodify(a:path, ':r') . '.log')
botright cwindow
finally " Restore cwd and errorformat
execute s:win_id2win(l:winid) . 'wincmd w'
execute 'lcd ' . fnameescape(l:cwd)
execute 'setl efm=' . escape(l:efm, ' ')
endtry
if a:status == 0
call s:context_echo('Success!', 'ModeMsg')
else
call s:context_echo('There are errors. ', 'ErrorMsg')
endif
endfunction
function! context#command()
return get(b:, 'context_mtxrun', get(g:, 'context_mtxrun', 'mtxrun'))
\ . ' --script context --autogenerate --nonstopmode'
\ . ' --synctex=' . (get(b:, 'context_synctex', get(g:, 'context_synctex', 0)) ? '1' : '0')
\ . ' ' . get(b:, 'context_extra_options', get(g:, 'context_extra_options', ''))
endfunction
" Accepts an optional path (useful for big projects, when the file you are
" editing is not the project's root document). If no argument is given, uses
" the path of the current buffer.
function! context#typeset(...) abort
let l:path = fnamemodify(strlen(a:000[0]) > 0 ? a:1 : expand("%"), ":p")
let l:cwd = fnamemodify(getcwd(), ":p") " Save local working directory
call s:context_echo('Typesetting...', 'ModeMsg')
execute 'lcd' fnameescape(fnamemodify(l:path, ":h"))
try
call s:typeset(l:path)
finally " Restore local working directory
execute 'lcd ' . fnameescape(l:cwd)
endtry
endfunction!
"}}}
let &cpo = s:keepcpo
unlet s:keepcpo
" vim: sw=2 fdm=marker

View File

@ -0,0 +1,25 @@
" Language: ConTeXt typesetting engine
" Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
" Latest Revision: 2016 Oct 15
let s:keepcpo= &cpo
set cpo&vim
" Complete keywords in MetaPost blocks
function! contextcomplete#Complete(findstart, base)
if a:findstart == 1
if len(synstack(line('.'), 1)) > 0 &&
\ synIDattr(synstack(line('.'), 1)[0], "name") ==# 'contextMPGraphic'
return syntaxcomplete#Complete(a:findstart, a:base)
else
return -3
endif
else
return syntaxcomplete#Complete(a:findstart, a:base)
endif
endfunction
let &cpo = s:keepcpo
unlet s:keepcpo
" vim: sw=2 fdm=marker

View File

@ -236,7 +236,7 @@ fun! getscript#GetLatestVimScripts()
" call Decho("..depscript<".depscript.">") " call Decho("..depscript<".depscript.">")
" found a "GetLatestVimScripts: # #" line in the script; " found a "GetLatestVimScripts: # #" line in the script;
" check if its already in the datafile by searching backwards from llp1, " check if it's already in the datafile by searching backwards from llp1,
" the (prior to reading in the plugin script) last line plus one of the GetLatestVimScripts.dat file, " the (prior to reading in the plugin script) last line plus one of the GetLatestVimScripts.dat file,
" for the script-id with no wrapping allowed. " for the script-id with no wrapping allowed.
let curline = line(".") let curline = line(".")

View File

@ -1,6 +1,6 @@
" Vim autoload file for editing compressed files. " Vim autoload file for editing compressed files.
" Maintainer: Bram Moolenaar <Bram@vim.org> " Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2014 Nov 05 " Last Change: 2016 Sep 28
" These functions are used by the gzip plugin. " These functions are used by the gzip plugin.
@ -63,6 +63,9 @@ fun gzip#read(cmd)
" set 'modifiable' " set 'modifiable'
let ma_save = &ma let ma_save = &ma
setlocal ma setlocal ma
" set 'write'
let write_save = &write
set write
" Reset 'foldenable', otherwise line numbers get adjusted. " Reset 'foldenable', otherwise line numbers get adjusted.
if has("folding") if has("folding")
let fen_save = &fen let fen_save = &fen
@ -127,6 +130,7 @@ fun gzip#read(cmd)
let &pm = pm_save let &pm = pm_save
let &cpo = cpo_save let &cpo = cpo_save
let &l:ma = ma_save let &l:ma = ma_save
let &write = write_save
if has("folding") if has("folding")
let &l:fen = fen_save let &l:fen = fen_save
endif endif

View File

@ -1,7 +1,7 @@
" Vim completion script " Vim completion script
" Language: Java Script " Language: Java Script
" Maintainer: Mikolaj Machowski ( mikmach AT wp DOT pl ) " Maintainer: Mikolaj Machowski ( mikmach AT wp DOT pl )
" Last Change: 2006 Apr 30 " Last Change: 2017 Mar 04
function! javascriptcomplete#CompleteJS(findstart, base) function! javascriptcomplete#CompleteJS(findstart, base)
if a:findstart if a:findstart
@ -563,7 +563,7 @@ function! javascriptcomplete#CompleteJS(findstart, base)
for i in arguments for i in arguments
let g:ia = i let g:ia = i
let f_elements = matchlist(i, 'function\s\+\(\k\+\)\s*(\(.\{-}\))') let f_elements = matchlist(i, 'function\s\+\(\k\+\)\s*(\(.\{-}\))')
if len(f_elements) == 3 if len(f_elements) >= 3
let b:js_menuinfo[f_elements[1].'('] = f_elements[2] let b:js_menuinfo[f_elements[1].'('] = f_elements[2]
endif endif
endfor endfor

View File

@ -22,8 +22,8 @@
if &cp || exists("g:loaded_netrw") if &cp || exists("g:loaded_netrw")
finish finish
endif endif
" netrw requires vim having patch 213; netrw will benefit from vim's having patch#656, too " netrw requires vim having patch 7.4.213; netrw will benefit from vim's having patch#656, too
if v:version < 704 || !has("patch213") if v:version < 704 || (v:version == 704 && !has("patch213"))
if !exists("s:needpatch213") if !exists("s:needpatch213")
unsilent echomsg "***sorry*** this version of netrw requires vim v7.4 with patch 213" unsilent echomsg "***sorry*** this version of netrw requires vim v7.4 with patch 213"
endif endif

View File

@ -3,7 +3,7 @@
" Maintainer: Dávid Szabó ( complex857 AT gmail DOT com ) " Maintainer: Dávid Szabó ( complex857 AT gmail DOT com )
" Previous Maintainer: Mikolaj Machowski ( mikmach AT wp DOT pl ) " Previous Maintainer: Mikolaj Machowski ( mikmach AT wp DOT pl )
" URL: https://github.com/shawncplus/phpcomplete.vim " URL: https://github.com/shawncplus/phpcomplete.vim
" Last Change: 2015 Jul 13 " Last Change: 2016 Oct 10
" "
" OPTIONS: " OPTIONS:
" "
@ -195,6 +195,8 @@ function! phpcomplete#CompletePHP(findstart, base) " {{{
" }}} " }}}
elseif context =~? 'implements' elseif context =~? 'implements'
return phpcomplete#CompleteClassName(a:base, ['i'], current_namespace, imports) return phpcomplete#CompleteClassName(a:base, ['i'], current_namespace, imports)
elseif context =~? 'instanceof'
return phpcomplete#CompleteClassName(a:base, ['c', 'n'], current_namespace, imports)
elseif context =~? 'extends\s\+.\+$' && a:base == '' elseif context =~? 'extends\s\+.\+$' && a:base == ''
return ['implements'] return ['implements']
elseif context =~? 'extends' elseif context =~? 'extends'
@ -787,6 +789,8 @@ function! phpcomplete#CompleteClassName(base, kinds, current_namespace, imports)
if kinds == ['c', 'i'] if kinds == ['c', 'i']
let filterstr = 'v:val =~? "\\(class\\|interface\\)\\s\\+[a-zA-Z_\\x7f-\\xff][a-zA-Z_0-9\\x7f-\\xff]*\\s*"' let filterstr = 'v:val =~? "\\(class\\|interface\\)\\s\\+[a-zA-Z_\\x7f-\\xff][a-zA-Z_0-9\\x7f-\\xff]*\\s*"'
elseif kinds == ['c', 'n']
let filterstr = 'v:val =~? "\\(class\\|namespace\\)\\s\\+[a-zA-Z_\\x7f-\\xff][a-zA-Z_0-9\\x7f-\\xff]*\\s*"'
elseif kinds == ['c'] elseif kinds == ['c']
let filterstr = 'v:val =~? "class\\s\\+[a-zA-Z_\\x7f-\\xff][a-zA-Z_0-9\\x7f-\\xff]*\\s*"' let filterstr = 'v:val =~? "class\\s\\+[a-zA-Z_\\x7f-\\xff][a-zA-Z_0-9\\x7f-\\xff]*\\s*"'
elseif kinds == ['i'] elseif kinds == ['i']
@ -931,7 +935,7 @@ function! phpcomplete#EvaluateModifiers(modifiers, required_modifiers, prohibite
endfor endfor
for modifier in a:modifiers for modifier in a:modifiers
" if the modifier is prohibited its a no match " if the modifier is prohibited it's a no match
if index(a:prohibited_modifiers, modifier) != -1 if index(a:prohibited_modifiers, modifier) != -1
return 0 return 0
endif endif
@ -996,7 +1000,7 @@ function! phpcomplete#CompleteUserClass(context, base, sccontent, visibility) "
let required_modifiers += ['static'] let required_modifiers += ['static']
endif endif
let all_variable = filter(deepcopy(a:sccontent), let all_variable = filter(deepcopy(a:sccontent),
\ 'v:val =~ "^\\s*\\(var\\s\\+\\|public\\s\\+\\|protected\\s\\+\\|private\\s\\+\\|final\\s\\+\\|abstract\\s\\+\\|static\\s\\+\\)\\+\\$"') \ 'v:val =~ "\\(^\\s*\\(var\\s\\+\\|public\\s\\+\\|protected\\s\\+\\|private\\s\\+\\|final\\s\\+\\|abstract\\s\\+\\|static\\s\\+\\)\\+\\$\\|^\\s*\\(\\/\\|\\*\\)*\\s*@property\\s\\+\\S\\+\\s\\S\\{-}\\s*$\\)"')
let variables = [] let variables = []
for i in all_variable for i in all_variable
@ -1160,6 +1164,14 @@ function! phpcomplete#GetTaglist(pattern) " {{{
endif endif
let tags = taglist(a:pattern) let tags = taglist(a:pattern)
for tag in tags
for prop in keys(tag)
if prop == 'cmd' || prop == 'static' || prop == 'kind' || prop == 'builtin'
continue
endif
let tag[prop] = substitute(tag[prop], '\\\\', '\\', 'g')
endfor
endfor
let s:cache_tags[a:pattern] = tags let s:cache_tags[a:pattern] = tags
let has_key = has_key(s:cache_tags, a:pattern) let has_key = has_key(s:cache_tags, a:pattern)
let s:cache_tags_checksum = cache_checksum let s:cache_tags_checksum = cache_checksum
@ -1379,7 +1391,7 @@ function! phpcomplete#GetCallChainReturnType(classname_candidate, class_candidat
" Get Structured information of all classes and subclasses including namespace and includes " Get Structured information of all classes and subclasses including namespace and includes
" try to find the method's return type in docblock comment " try to find the method's return type in docblock comment
for classstructure in classcontents for classstructure in classcontents
let docblock_target_pattern = 'function\s\+&\?'.method.'\|\(public\|private\|protected\|var\).\+\$'.method let docblock_target_pattern = 'function\s\+&\?'.method.'\>\|\(public\|private\|protected\|var\).\+\$'.method.'\>\|@property.\+\$'.method.'\>'
let doc_str = phpcomplete#GetDocBlock(split(classstructure.content, '\n'), docblock_target_pattern) let doc_str = phpcomplete#GetDocBlock(split(classstructure.content, '\n'), docblock_target_pattern)
if doc_str != '' if doc_str != ''
break break
@ -1387,8 +1399,17 @@ function! phpcomplete#GetCallChainReturnType(classname_candidate, class_candidat
endfor endfor
if doc_str != '' if doc_str != ''
let docblock = phpcomplete#ParseDocBlock(doc_str) let docblock = phpcomplete#ParseDocBlock(doc_str)
if has_key(docblock.return, 'type') || has_key(docblock.var, 'type') if has_key(docblock.return, 'type') || has_key(docblock.var, 'type') || len(docblock.properties) > 0
let type = has_key(docblock.return, 'type') ? docblock.return.type : docblock.var.type let type = has_key(docblock.return, 'type') ? docblock.return.type : has_key(docblock.var, 'type') ? docblock.var.type : ''
if type == ''
for property in docblock.properties
if property.description =~? method
let type = property.type
break
endif
endfor
endif
" there's a namespace in the type, threat the type as FQCN " there's a namespace in the type, threat the type as FQCN
if type =~ '\\' if type =~ '\\'
@ -1554,6 +1575,9 @@ function! phpcomplete#GetClassName(start_line, context, current_namespace, impor
elseif get(methodstack, 0) =~# function_invocation_pattern elseif get(methodstack, 0) =~# function_invocation_pattern
let function_name = matchstr(methodstack[0], '^\s*\zs'.function_name_pattern) let function_name = matchstr(methodstack[0], '^\s*\zs'.function_name_pattern)
let function_file = phpcomplete#GetFunctionLocation(function_name, a:current_namespace) let function_file = phpcomplete#GetFunctionLocation(function_name, a:current_namespace)
if function_file == ''
let function_file = phpcomplete#GetFunctionLocation(function_name, '\')
endif
if function_file == 'VIMPHP_BUILTINFUNCTION' if function_file == 'VIMPHP_BUILTINFUNCTION'
" built in function, grab the return type from the info string " built in function, grab the return type from the info string
@ -1569,7 +1593,7 @@ function! phpcomplete#GetClassName(start_line, context, current_namespace, impor
let [class_candidate_namespace, function_imports] = phpcomplete#GetCurrentNameSpace(file_lines) let [class_candidate_namespace, function_imports] = phpcomplete#GetCurrentNameSpace(file_lines)
" try to expand the classname of the returned type with the context got from the function's source file " try to expand the classname of the returned type with the context got from the function's source file
let [classname_candidate, unused] = phpcomplete#ExpandClassName(classname_candidate, class_candidate_namespace, function_imports) let [classname_candidate, class_candidate_namespace] = phpcomplete#ExpandClassName(classname_candidate, class_candidate_namespace, function_imports)
endif endif
endif endif
if classname_candidate != '' if classname_candidate != ''
@ -1650,9 +1674,10 @@ function! phpcomplete#GetClassName(start_line, context, current_namespace, impor
let sub_methodstack = phpcomplete#GetMethodStack(matchstr(line, '^\s*'.object.'\s*=&\?\s*\s\+\zs.*')) let sub_methodstack = phpcomplete#GetMethodStack(matchstr(line, '^\s*'.object.'\s*=&\?\s*\s\+\zs.*'))
let [classname_candidate, class_candidate_namespace] = phpcomplete#GetCallChainReturnType( let [classname_candidate, class_candidate_namespace] = phpcomplete#GetCallChainReturnType(
\ classname, \ classname,
\ a:current_namespace, \ namespace_for_class,
\ a:imports, \ a:imports,
\ sub_methodstack) \ sub_methodstack)
return (class_candidate_namespace == '\' || class_candidate_namespace == '') ? classname_candidate : class_candidate_namespace.'\'.classname_candidate return (class_candidate_namespace == '\' || class_candidate_namespace == '') ? classname_candidate : class_candidate_namespace.'\'.classname_candidate
endif endif
endif endif
@ -1783,6 +1808,9 @@ function! phpcomplete#GetClassName(start_line, context, current_namespace, impor
let [function_name, function_namespace] = phpcomplete#ExpandClassName(function_name, a:current_namespace, a:imports) let [function_name, function_namespace] = phpcomplete#ExpandClassName(function_name, a:current_namespace, a:imports)
let function_file = phpcomplete#GetFunctionLocation(function_name, function_namespace) let function_file = phpcomplete#GetFunctionLocation(function_name, function_namespace)
if function_file == ''
let function_file = phpcomplete#GetFunctionLocation(function_name, '\')
endif
if function_file == 'VIMPHP_BUILTINFUNCTION' if function_file == 'VIMPHP_BUILTINFUNCTION'
" built in function, grab the return type from the info string " built in function, grab the return type from the info string
@ -1798,7 +1826,7 @@ function! phpcomplete#GetClassName(start_line, context, current_namespace, impor
let classname_candidate = docblock.return.type let classname_candidate = docblock.return.type
let [class_candidate_namespace, function_imports] = phpcomplete#GetCurrentNameSpace(file_lines) let [class_candidate_namespace, function_imports] = phpcomplete#GetCurrentNameSpace(file_lines)
" try to expand the classname of the returned type with the context got from the function's source file " try to expand the classname of the returned type with the context got from the function's source file
let [classname_candidate, unused] = phpcomplete#ExpandClassName(classname_candidate, class_candidate_namespace, function_imports) let [classname_candidate, class_candidate_namespace] = phpcomplete#ExpandClassName(classname_candidate, class_candidate_namespace, function_imports)
break break
endif endif
endif endif
@ -1861,6 +1889,8 @@ function! phpcomplete#GetClassName(start_line, context, current_namespace, impor
for tag in tags for tag in tags
if tag.kind ==? 'v' && tag.cmd =~? '=\s*new\s\+\zs'.class_name_pattern.'\ze' if tag.kind ==? 'v' && tag.cmd =~? '=\s*new\s\+\zs'.class_name_pattern.'\ze'
let classname = matchstr(tag.cmd, '=\s*new\s\+\zs'.class_name_pattern.'\ze') let classname = matchstr(tag.cmd, '=\s*new\s\+\zs'.class_name_pattern.'\ze')
" unescape the classname, it would have "\" doubled since it is an ex command
let classname = substitute(classname, '\\\(\_.\)', '\1', 'g')
return classname return classname
endif endif
endfor endfor
@ -2077,6 +2107,19 @@ function! phpcomplete#GetClassContentsStructure(file_path, file_lines, class_nam
endif endif
call searchpair('{', '', '}', 'W') call searchpair('{', '', '}', 'W')
let class_closing_bracket_line = line('.') let class_closing_bracket_line = line('.')
" Include class docblock
let doc_line = cfline - 1
if getline(doc_line) =~? '^\s*\*/'
while doc_line != 0
if getline(doc_line) =~? '^\s*/\*\*'
let cfline = doc_line
break
endif
let doc_line -= 1
endwhile
endif
let classcontent = join(getline(cfline, class_closing_bracket_line), "\n") let classcontent = join(getline(cfline, class_closing_bracket_line), "\n")
let used_traits = [] let used_traits = []
@ -2241,8 +2284,19 @@ function! phpcomplete#GetDocBlock(sccontent, search) " {{{
let line = a:sccontent[i] let line = a:sccontent[i]
" search for a function declaration " search for a function declaration
if line =~? a:search if line =~? a:search
let l = i - 1 if line =~? '@property'
" start backward serch for the comment block let doc_line = i
while doc_line != sccontent_len - 1
if a:sccontent[doc_line] =~? '^\s*\*/'
let l = doc_line
break
endif
let doc_line += 1
endwhile
else
let l = i - 1
endif
" start backward search for the comment block
while l != 0 while l != 0
let line = a:sccontent[l] let line = a:sccontent[l]
" if it's a one line docblock like comment and we can just return it right away " if it's a one line docblock like comment and we can just return it right away
@ -2263,7 +2317,7 @@ function! phpcomplete#GetDocBlock(sccontent, search) " {{{
return '' return ''
end end
while l != 0 while l >= 0
let line = a:sccontent[l] let line = a:sccontent[l]
if line =~? '^\s*/\*\*' if line =~? '^\s*/\*\*'
let comment_start = l let comment_start = l
@ -2297,9 +2351,10 @@ function! phpcomplete#ParseDocBlock(docblock) " {{{
\ 'return': {}, \ 'return': {},
\ 'throws': [], \ 'throws': [],
\ 'var': {}, \ 'var': {},
\ 'properties': [],
\ } \ }
let res.description = substitute(matchstr(a:docblock, '\zs\_.\{-}\ze\(@var\|@param\|@return\|$\)'), '\(^\_s*\|\_s*$\)', '', 'g') let res.description = substitute(matchstr(a:docblock, '\zs\_.\{-}\ze\(@type\|@var\|@param\|@return\|$\)'), '\(^\_s*\|\_s*$\)', '', 'g')
let docblock_lines = split(a:docblock, "\n") let docblock_lines = split(a:docblock, "\n")
let param_lines = filter(copy(docblock_lines), 'v:val =~? "^@param"') let param_lines = filter(copy(docblock_lines), 'v:val =~? "^@param"')
@ -2334,15 +2389,26 @@ function! phpcomplete#ParseDocBlock(docblock) " {{{
endif endif
endfor endfor
let var_line = filter(copy(docblock_lines), 'v:val =~? "^@var"') let var_line = filter(copy(docblock_lines), 'v:val =~? "^\\(@var\\|@type\\)"')
if len(var_line) > 0 if len(var_line) > 0
let var_parts = matchlist(var_line[0], '@var\s\+\(\S\+\)\s*\(.*\)') let var_parts = matchlist(var_line[0], '\(@var\|@type\)\s\+\(\S\+\)\s*\(.*\)')
let res['var'] = { let res['var'] = {
\ 'line': var_parts[0], \ 'line': var_parts[0],
\ 'type': phpcomplete#GetTypeFromDocBlockParam(get(var_parts, 1, '')), \ 'type': phpcomplete#GetTypeFromDocBlockParam(get(var_parts, 2, '')),
\ 'description': get(var_parts, 2, '')} \ 'description': get(var_parts, 3, '')}
endif endif
let property_lines = filter(copy(docblock_lines), 'v:val =~? "^@property"')
for property_line in property_lines
let parts = matchlist(property_line, '\(@property\)\s\+\(\S\+\)\s*\(.*\)')
if len(parts) > 0
call add(res.properties, {
\ 'line': parts[0],
\ 'type': phpcomplete#GetTypeFromDocBlockParam(get(parts, 2, '')),
\ 'description': get(parts, 3, '')})
endif
endfor
return res return res
endfunction endfunction
" }}} " }}}
@ -2498,6 +2564,7 @@ function! phpcomplete#GetCurrentNameSpace(file_lines) " {{{
let name = matchstr(name, '\\\zs[^\\]\+\ze$') let name = matchstr(name, '\\\zs[^\\]\+\ze$')
endif endif
endif endif
" leading slash is not required use imports are always absolute " leading slash is not required use imports are always absolute
let imports[name] = {'name': object, 'kind': ''} let imports[name] = {'name': object, 'kind': ''}
endfor endfor
@ -2533,6 +2600,7 @@ function! phpcomplete#GetCurrentNameSpace(file_lines) " {{{
elseif !exists('no_namespace_candidate') elseif !exists('no_namespace_candidate')
" save the first namespacless match to be used if no better " save the first namespacless match to be used if no better
" candidate found later on " candidate found later on
let tag.namespace = namespace_for_classes
let no_namespace_candidate = tag let no_namespace_candidate = tag
endif endif
endif endif

View File

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

View File

@ -117,7 +117,7 @@ fun! tar#Browse(tarfile)
if !filereadable(a:tarfile) if !filereadable(a:tarfile)
" call Decho('a:tarfile<'.a:tarfile.'> not filereadable') " call Decho('a:tarfile<'.a:tarfile.'> not filereadable')
if a:tarfile !~# '^\a\+://' if a:tarfile !~# '^\a\+://'
" if its an url, don't complain, let url-handlers such as vim do its thing " if it's an url, don't complain, let url-handlers such as vim do its thing
redraw! redraw!
echohl Error | echo "***error*** (tar#Browse) File not readable<".a:tarfile.">" | echohl None echohl Error | echo "***error*** (tar#Browse) File not readable<".a:tarfile.">" | echohl None
endif endif

View File

@ -347,7 +347,7 @@ fun! vimball#Vimball(really,...)
" call Decho("exe tabn ".curtabnr) " call Decho("exe tabn ".curtabnr)
exe "tabn ".curtabnr exe "tabn ".curtabnr
" set up help if its a doc/*.txt file " set up help if it's a doc/*.txt file
" call Decho("didhelp<".didhelp."> fname<".fname.">") " call Decho("didhelp<".didhelp."> fname<".fname.">")
if a:really && didhelp == "" && fname =~ 'doc/[^/]\+\.\(txt\|..x\)$' if a:really && didhelp == "" && fname =~ 'doc/[^/]\+\.\(txt\|..x\)$'
let didhelp= substitute(fname,'^\(.*\<doc\)[/\\][^.]*\.\(txt\|..x\)$','\1','') let didhelp= substitute(fname,'^\(.*\<doc\)[/\\][^.]*\.\(txt\|..x\)$','\1','')

View File

@ -1,7 +1,7 @@
" zip.vim: Handles browsing zipfiles " zip.vim: Handles browsing zipfiles
" AUTOLOAD PORTION " AUTOLOAD PORTION
" Date: Jul 02, 2013 " Date: Sep 13, 2016
" Version: 27 " Version: 28
" Maintainer: Charles E Campbell <NdrOchip@ScampbellPfamily.AbizM-NOSPAM> " Maintainer: Charles E Campbell <NdrOchip@ScampbellPfamily.AbizM-NOSPAM>
" License: Vim License (see vim's :help license) " License: Vim License (see vim's :help license)
" Copyright: Copyright (C) 2005-2013 Charles E. Campbell {{{1 " Copyright: Copyright (C) 2005-2013 Charles E. Campbell {{{1
@ -20,10 +20,10 @@
if &cp || exists("g:loaded_zip") if &cp || exists("g:loaded_zip")
finish finish
endif endif
let g:loaded_zip= "v27" let g:loaded_zip= "v28"
if v:version < 702 if v:version < 702
echohl WarningMsg echohl WarningMsg
echo "***warning*** this version of zip needs vim 7.2" echo "***warning*** this version of zip needs vim 7.2 or later"
echohl Normal echohl Normal
finish finish
endif endif
@ -53,6 +53,9 @@ endif
if !exists("g:zip_unzipcmd") if !exists("g:zip_unzipcmd")
let g:zip_unzipcmd= "unzip" let g:zip_unzipcmd= "unzip"
endif endif
if !exists("g:zip_extractcmd")
let g:zip_extractcmd= g:zip_unzipcmd
endif
" ---------------- " ----------------
" Functions: {{{1 " Functions: {{{1
@ -62,14 +65,14 @@ endif
" zip#Browse: {{{2 " zip#Browse: {{{2
fun! zip#Browse(zipfile) fun! zip#Browse(zipfile)
" call Dfunc("zip#Browse(zipfile<".a:zipfile.">)") " call Dfunc("zip#Browse(zipfile<".a:zipfile.">)")
" sanity check: insure that the zipfile has "PK" as its first two letters " sanity check: ensure that the zipfile has "PK" as its first two letters
" (zipped files have a leading PK as a "magic cookie") " (zipped files have a leading PK as a "magic cookie")
if !filereadable(a:zipfile) || readfile(a:zipfile, "", 1)[0] !~ '^PK' if !filereadable(a:zipfile) || readfile(a:zipfile, "", 1)[0] !~ '^PK'
exe "noautocmd e ".fnameescape(a:zipfile) exe "noautocmd e ".fnameescape(a:zipfile)
" call Dret("zip#Browse : not a zipfile<".a:zipfile.">") " call Dret("zip#Browse : not a zipfile<".a:zipfile.">")
return return
" else " Decho " else " Decho
" call Decho("zip#Browse: a:zipfile<".a:zipfile."> passed PK test - its a zip file") " call Decho("zip#Browse: a:zipfile<".a:zipfile."> passed PK test - it's a zip file")
endif endif
let repkeep= &report let repkeep= &report
@ -92,7 +95,7 @@ fun! zip#Browse(zipfile)
endif endif
if !filereadable(a:zipfile) if !filereadable(a:zipfile)
if a:zipfile !~# '^\a\+://' if a:zipfile !~# '^\a\+://'
" if its an url, don't complain, let url-handlers such as vim do its thing " if it's an url, don't complain, let url-handlers such as vim do its thing
redraw! redraw!
echohl Error | echo "***error*** (zip#Browse) File not readable<".a:zipfile.">" | echohl None echohl Error | echo "***error*** (zip#Browse) File not readable<".a:zipfile.">" | echohl None
" call inputsave()|call input("Press <cr> to continue")|call inputrestore() " call inputsave()|call input("Press <cr> to continue")|call inputrestore()
@ -136,8 +139,10 @@ fun! zip#Browse(zipfile)
return return
endif endif
" Maps associated with zip plugin
setlocal noma nomod ro setlocal noma nomod ro
noremap <silent> <buffer> <cr> :call <SID>ZipBrowseSelect()<cr> noremap <silent> <buffer> <cr> :call <SID>ZipBrowseSelect()<cr>
noremap <silent> <buffer> x :call zip#Extract()<cr>
let &report= repkeep let &report= repkeep
" call Dret("zip#Browse") " call Dret("zip#Browse")
@ -204,6 +209,15 @@ fun! zip#Read(fname,mode)
endif endif
" call Decho("zipfile<".zipfile.">") " call Decho("zipfile<".zipfile.">")
" call Decho("fname <".fname.">") " call Decho("fname <".fname.">")
" sanity check
if !executable(substitute(g:zip_unzipcmd,'\s\+.*$','',''))
redraw!
echohl Error | echo "***error*** (zip#Read) sorry, your system doesn't appear to have the ".g:zip_unzipcmd." program" | echohl None
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
let &report= repkeep
" call Dret("zip#Write")
return
endif
" the following code does much the same thing as " the following code does much the same thing as
" exe "keepj sil! r! ".g:zip_unzipcmd." -p -- ".s:Escape(zipfile,1)." ".s:Escape(fnameescape(fname),1) " exe "keepj sil! r! ".g:zip_unzipcmd." -p -- ".s:Escape(zipfile,1)." ".s:Escape(fnameescape(fname),1)
@ -236,9 +250,9 @@ fun! zip#Write(fname)
set report=10 set report=10
" sanity checks " sanity checks
if !executable(g:zip_zipcmd) if !executable(substitute(g:zip_zipcmd,'\s\+.*$','',''))
redraw! redraw!
echohl Error | echo "***error*** (zip#Write) sorry, your system doesn't appear to have the zip pgm" | echohl None echohl Error | echo "***error*** (zip#Write) sorry, your system doesn't appear to have the ".g:zip_zipcmd." program" | echohl None
" call inputsave()|call input("Press <cr> to continue")|call inputrestore() " call inputsave()|call input("Press <cr> to continue")|call inputrestore()
let &report= repkeep let &report= repkeep
" call Dret("zip#Write") " call Dret("zip#Write")
@ -344,6 +358,48 @@ fun! zip#Write(fname)
" call Dret("zip#Write") " call Dret("zip#Write")
endfun endfun
" ---------------------------------------------------------------------
" zip#Extract: extract a file from a zip archive {{{2
fun! zip#Extract()
" call Dfunc("zip#Extract()")
let repkeep= &report
set report=10
let fname= getline(".")
" call Decho("fname<".fname.">")
" sanity check
if fname =~ '^"'
let &report= repkeep
" call Dret("zip#Extract")
return
endif
if fname =~ '/$'
redraw!
echohl Error | echo "***error*** (zip#Extract) Please specify a file, not a directory" | echohl None
let &report= repkeep
" call Dret("zip#Extract")
return
endif
" extract the file mentioned under the cursor
" call Decho("system(".g:zip_extractcmd." ".shellescape(b:zipfile)." ".shellescape(shell).")")
call system(g:zip_extractcmd." ".shellescape(b:zipfile)." ".shellescape(shell))
" call Decho("zipfile<".b:zipfile.">")
if v:shell_error != 0
echohl Error | echo "***error*** ".g:zip_extractcmd." ".b:zipfile." ".fname.": failed!" | echohl NONE
elseif !filereadable(fname)
echohl Error | echo "***error*** attempted to extract ".fname." but it doesn't appear to be present!"
else
echo "***note*** successfully extracted ".fname
endif
" restore option
let &report= repkeep
" call Dret("zip#Extract")
endfun
" --------------------------------------------------------------------- " ---------------------------------------------------------------------
" s:Escape: {{{2 " s:Escape: {{{2
fun! s:Escape(fname,isfilt) fun! s:Escape(fname,isfilt)

View File

@ -41,9 +41,16 @@ this autocmd might be useful:
autocmd SourcePre */colors/blue_sky.vim set background=dark autocmd SourcePre */colors/blue_sky.vim set background=dark
Replace "blue_sky" with the name of the colorscheme. Replace "blue_sky" with the name of the colorscheme.
In case you want to tweak a colorscheme after it was loaded, check out that In case you want to tweak a colorscheme after it was loaded, check out the
ColorScheme autocmd event. ColorScheme autocmd event.
To customize a colorscheme use another name, e.g. "~/.vim/colors/mine.vim",
and use `:runtime` to load the original colorscheme:
" load the "evening" colorscheme
runtime colors/evening.vim
" change the color of statements
hi Statement ctermfg=Blue guifg=Blue
To see which highlight group is used where, find the help for To see which highlight group is used where, find the help for
"highlight-groups" and "group-name". "highlight-groups" and "group-name".

View File

@ -1,6 +1,6 @@
" Vim color file " Vim color file
" Maintainer: Bram Moolenaar <Bram@vim.org> " Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2006 Apr 14 " Last Change: 2016 Oct 10
" This color scheme uses a dark grey background. " This color scheme uses a dark grey background.
@ -46,8 +46,8 @@ hi CursorColumn term=reverse ctermbg=Black guibg=grey40
hi CursorLine term=underline cterm=underline guibg=grey40 hi CursorLine term=underline cterm=underline guibg=grey40
" Groups for syntax highlighting " Groups for syntax highlighting
hi Constant term=underline ctermfg=Magenta guifg=#ffa0a0 guibg=grey5 hi Constant term=underline ctermfg=Magenta guifg=#ffa0a0
hi Special term=bold ctermfg=LightRed guifg=Orange guibg=grey5 hi Special term=bold ctermfg=LightRed guifg=Orange
if &t_Co > 8 if &t_Co > 8
hi Statement term=bold cterm=bold ctermfg=Yellow guifg=#ffff60 gui=bold hi Statement term=bold cterm=bold ctermfg=Yellow guifg=#ffff60 gui=bold
endif endif

View File

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

View File

@ -1,7 +1,7 @@
" Vim compiler file " Vim compiler file
" Compiler: BDF to PCF Conversion " Compiler: BDF to PCF Conversion
" Maintainer: Nikolai Weibull <now@bitwi.se> " Previous Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2006-04-19 " Latest Revision: 2006-04-19
if exists("current_compiler") if exists("current_compiler")
finish finish

View File

@ -0,0 +1,54 @@
" Vim compiler file
" Compiler: ConTeXt typesetting engine
" Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
" Last Change: 2016 Oct 21
if exists("current_compiler")
finish
endif
let s:keepcpo= &cpo
set cpo&vim
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
endif
" If makefile exists and we are not asked to ignore it, we use standard make
" (do not redefine makeprg)
if get(b:, 'context_ignore_makefile', get(g:, 'context_ignore_makefile', 0)) ||
\ (!filereadable('Makefile') && !filereadable('makefile'))
let current_compiler = 'context'
" The following assumes that the current working directory is set to the
" directory of the file to be typeset
let &l:makeprg = get(b:, 'context_mtxrun', get(g:, 'context_mtxrun', 'mtxrun'))
\ . ' --script context --autogenerate --nonstopmode --synctex='
\ . (get(b:, 'context_synctex', get(g:, 'context_synctex', 0)) ? '1' : '0')
\ . ' ' . get(b:, 'context_extra_options', get(g:, 'context_extra_options', ''))
\ . ' ' . shellescape(expand('%:p:t'))
else
let current_compiler = 'make'
endif
let b:context_errorformat = ''
\ . '%-Popen source%.%#> %f,'
\ . '%-Qclose source%.%#> %f,'
\ . "%-Popen source%.%#name '%f',"
\ . "%-Qclose source%.%#name '%f',"
\ . '%Etex %trror%.%#mp error on line %l in file %f:%.%#,'
\ . 'tex %trror%.%#error on line %l in file %f: %m,'
\ . '%Elua %trror%.%#error on line %l in file %f:,'
\ . '%+Emetapost %#> error: %#,'
\ . '! error: %#%m,'
\ . '%-C %#,'
\ . '%C! %m,'
\ . '%Z[ctxlua]%m,'
\ . '%+C<*> %.%#,'
\ . '%-C%.%#,'
\ . '%Z...%m,'
\ . '%-Zno-error,'
\ . '%-G%.%#' " Skip remaining lines
execute 'CompilerSet errorformat=' . escape(b:context_errorformat, ' ')
let &cpo = s:keepcpo
unlet s:keepcpo

View File

@ -0,0 +1,16 @@
" Vim compiler file
" Compiler: csslint for CSS
" Maintainer: Daniel Moch <daniel@danielmoch.com>
" Last Change: 2016 May 21
if exists("current_compiler")
finish
endif
let current_compiler = "csslint"
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
endif
CompilerSet makeprg=csslint\ --format=compact
CompilerSet errorformat=%-G,%-G%f:\ lint\ free!,%f:\ line\ %l\\,\ col\ %c\\,\ %trror\ -\ %m,%f:\ line\ %l\\,\ col\ %c\\,\ %tarning\ -\ %m,%f:\ line\ %l\\,\ col\ %c\\,\ %m

View File

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

View File

@ -1,7 +1,7 @@
" Vim compiler file " Vim compiler file
" Compiler: GNU C Compiler " Compiler: GNU C Compiler
" Maintainer: Nikolai Weibull <now@bitwi.se> " Previous Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2010-10-14 " Latest Revision: 2010-10-14
" added line suggested by Anton Lindqvist 2016 Mar 31 " added line suggested by Anton Lindqvist 2016 Mar 31
if exists("current_compiler") if exists("current_compiler")

26
runtime/compiler/ghc.vim Normal file
View File

@ -0,0 +1,26 @@
" Vim compiler file
" Compiler: GHC Haskell Compiler
" Maintainer: Daniel Campoverde <alx@sillybytes.net>
" Latest Revision: 2016-11-29
if exists("current_compiler")
finish
endif
let current_compiler = "ghc"
let s:cpo_save = &cpo
set cpo&vim
CompilerSet errorformat=
\%-G%.%#:\ build,
\%-G%.%#preprocessing\ library\ %.%#,
\%-G[%.%#]%.%#,
\%E%f:%l:%c:\ %m,
\%-G--%.%#
if exists('g:compiler_ghc_ignore_unmatched_lines')
CompilerSet errorformat+=%-G%.%#
endif
let &cpo = s:cpo_save
unlet s:cpo_save

View File

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

View File

@ -0,0 +1,16 @@
" Vim compiler file
" Compiler: Pylint for Python
" Maintainer: Daniel Moch <daniel@danielmoch.com>
" Last Change: 2016 May 20
if exists("current_compiler")
finish
endif
let current_compiler = "pylint"
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
endif
CompilerSet makeprg=pylint\ --output-format=text\ --msg-template=\"{path}:{line}:{column}:{C}:\ [{symbol}]\ {msg}\"\ --reports=no
CompilerSet errorformat=%A%f:%l:%c:%t:\ %m,%A%f:%l:\ %m,%A%f:(%l):\ %m,%-Z%p^%.%#,%-G%.%#

View File

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

View File

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

View File

@ -1,7 +1,7 @@
" Vim compiler file " Vim compiler file
" Compiler: reStructuredText Documentation Format " Compiler: reStructuredText Documentation Format
" Maintainer: Nikolai Weibull <now@bitwi.se> " Previous Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2006-04-19 " Latest Revision: 2006-04-19
if exists("current_compiler") if exists("current_compiler")
finish finish

View File

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

View File

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

125
runtime/defaults.vim Normal file
View File

@ -0,0 +1,125 @@
" The default vimrc file.
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last change: 2016 Sep 02
"
" This is loaded if no vimrc file was found.
" Except when Vim is run with "-u NONE" or "-C".
" Individual settings can be reverted with ":set option&".
" Other commands can be reverted as mentioned below.
" When started as "evim", evim.vim will already have done these settings.
if v:progname =~? "evim"
finish
endif
" Bail out if something that ran earlier, e.g. a system wide vimrc, does not
" want Vim to use these default values.
if exists('skip_defaults_vim')
finish
endif
" Use Vim settings, rather than Vi settings (much better!).
" This must be first, because it changes other options as a side effect.
set nocompatible
" Allow backspacing over everything in insert mode.
set backspace=indent,eol,start
set history=200 " keep 200 lines of command line history
set ruler " show the cursor position all the time
set showcmd " display incomplete commands
set wildmenu " display completion matches in a status line
set ttimeout " time out for key codes
set ttimeoutlen=100 " wait up to 100ms after Esc for special key
" Show @@@ in the last line if it is truncated.
set display=truncate
" Show a few lines of context around the cursor. Note that this makes the
" text scroll if you mouse-click near the start or end of the window.
set scrolloff=5
" Do incremental searching when it's possible to timeout.
if has('reltime')
set incsearch
endif
" Do not recognize octal numbers for Ctrl-A and Ctrl-X, most users find it
" confusing.
set nrformats-=octal
" For Win32 GUI: remove 't' flag from 'guioptions': no tearoff menu entries.
if has('win32')
set guioptions-=t
endif
" Don't use Ex mode, use Q for formatting.
" Revert with ":unmap Q".
map Q gq
" CTRL-U in insert mode deletes a lot. Use CTRL-G u to first break undo,
" so that you can undo CTRL-U after inserting a line break.
" Revert with ":iunmap <C-U>".
inoremap <C-U> <C-G>u<C-U>
" In many terminal emulators the mouse works just fine. By enabling it you
" can position the cursor, Visually select and scroll with the mouse.
if has('mouse')
set mouse=a
endif
" Switch syntax highlighting on when the terminal has colors or when using the
" GUI (which always has colors).
if &t_Co > 2 || has("gui_running")
" Revert with ":syntax off".
syntax on
" I like highlighting strings inside C comments.
" Revert with ":unlet c_comment_strings".
let c_comment_strings=1
endif
" Only do this part when compiled with support for autocommands.
if has("autocmd")
" Enable file type detection.
" Use the default filetype settings, so that mail gets 'tw' set to 72,
" 'cindent' is on in C files, etc.
" Also load indent files, to automatically do language-dependent indenting.
" Revert with ":filetype off".
filetype plugin indent on
" Put these in an autocmd group, so that you can revert them with:
" ":augroup vimStartup | au! | augroup END"
augroup vimStartup
au!
" When editing a file, always jump to the last known cursor position.
" Don't do it when the position is invalid or when inside an event handler
" (happens when dropping a file on gvim).
autocmd BufReadPost *
\ if line("'\"") >= 1 && line("'\"") <= line("$") |
\ exe "normal! g`\"" |
\ endif
augroup END
endif " has("autocmd")
" Convenient command to see the difference between the current buffer and the
" file it was loaded from, thus the changes you made.
" Only define it when not defined already.
" Revert with: ":delcommand DiffOrig".
if !exists(":DiffOrig")
command DiffOrig vert new | set bt=nofile | r ++edit # | 0d_ | diffthis
\ | wincmd p | diffthis
endif
if has('langmap') && exists('+langremap')
" Prevent that the langmap option applies to characters that result from a
" mapping. If set (default), this may break plugins (but it's backward
" compatible).
set nolangremap
endif

View File

@ -1,4 +1,4 @@
*arabic.txt* For Vim version 7.4. Last change: 2010 Nov 13 *arabic.txt* For Vim version 8.0. Last change: 2010 Nov 13
VIM REFERENCE MANUAL by Nadim Shaikli VIM REFERENCE MANUAL by Nadim Shaikli

View File

@ -1,4 +1,4 @@
*autocmd.txt* For Vim version 7.4. Last change: 2016 Jun 09 *autocmd.txt* For Vim version 8.0. Last change: 2017 Jan 14
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -33,7 +33,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* *E203* *E204* *E143* *E855* *E937*
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.
@ -52,9 +52,6 @@ effects. Be careful not to destroy your text.
============================================================================== ==============================================================================
2. Defining autocommands *autocmd-define* 2. Defining autocommands *autocmd-define*
Note: The ":autocmd" command cannot be followed by another command, since any
'|' is considered part of the command.
*:au* *:autocmd* *:au* *:autocmd*
:au[tocmd] [group] {event} {pat} [nested] {cmd} :au[tocmd] [group] {event} {pat} [nested] {cmd}
Add {cmd} to the list of commands that Vim will Add {cmd} to the list of commands that Vim will
@ -67,6 +64,12 @@ Note: The ":autocmd" command cannot be followed by another command, since any
The special pattern <buffer> or <buffer=N> defines a buffer-local autocommand. The special pattern <buffer> or <buffer=N> defines a buffer-local autocommand.
See |autocmd-buflocal|. See |autocmd-buflocal|.
Note: The ":autocmd" command can only be followed by another command when the
'|' appears before {cmd}. This works: >
:augroup mine | au! BufRead | augroup END
But this sees "augroup" as part of the defined command: >
:augroup mine | au BufRead * set tw=70 | augroup END
Note that special characters (e.g., "%", "<cword>") in the ":autocmd" Note that special characters (e.g., "%", "<cword>") in the ":autocmd"
arguments are not expanded when the autocommand is defined. These will be arguments are not expanded when the autocommand is defined. These will be
expanded when the Event is recognized, and the {cmd} is executed. The only expanded when the Event is recognized, and the {cmd} is executed. The only
@ -76,11 +79,15 @@ exception is that "<sfile>" is expanded when the autocmd is defined. Example:
Here Vim expands <sfile> to the name of the file containing this line. Here Vim expands <sfile> to the name of the file containing this line.
When your .vimrc file is sourced twice, the autocommands will appear twice. `:autocmd` adds to the list of autocommands regardless of whether they are
To avoid this, put this command in your .vimrc file, before defining already present. When your .vimrc file is sourced twice, the autocommands
autocommands: > will appear twice. To avoid this, define your autocommands in a group, so
that you can easily clear them: >
:autocmd! " Remove ALL autocommands for the current group. augroup vimrc
autocmd! " Remove all vimrc autocommands
au BufNewFile,BufRead *.html so <sfile>:h/html.vim
augroup END
If you don't want to remove all autocommands, you can instead use a variable If you don't want to remove all autocommands, you can instead use a variable
to ensure that Vim includes the autocommands only once: > to ensure that Vim includes the autocommands only once: >
@ -127,8 +134,13 @@ prompt. When one command outputs two messages this can happen anyway.
:au[tocmd]! [group] {event} :au[tocmd]! [group] {event}
Remove ALL autocommands for {event}. Remove ALL autocommands for {event}.
Warning: You should not do this without a group for
|BufRead| and other common events, it can break
plugins, syntax highlighting, etc.
:au[tocmd]! [group] Remove ALL autocommands. :au[tocmd]! [group] Remove ALL autocommands.
Warning: You should normally not do this without a
group, it breaks plugins, syntax highlighting, etc.
When the [group] argument is not given, Vim uses the current group (as defined When the [group] argument is not given, Vim uses the current group (as defined
with ":augroup"); otherwise, Vim uses the group defined with [group]. with ":augroup"); otherwise, Vim uses the group defined with [group].
@ -293,6 +305,9 @@ Name triggered by ~
|CursorMoved| the cursor was moved in Normal mode |CursorMoved| the cursor was moved in Normal mode
|CursorMovedI| the cursor was moved in Insert mode |CursorMovedI| the cursor was moved in Insert mode
|WinNew| after creating a new window
|TabNew| after creating a new tab page
|TabClosed| after closing a tab page
|WinEnter| after entering another window |WinEnter| after entering another window
|WinLeave| before leaving a window |WinLeave| before leaving a window
|TabEnter| after entering another tab page |TabEnter| after entering another tab page
@ -413,8 +428,8 @@ BufUnload Before unloading a buffer. This is when the
NOTE: When this autocommand is executed, the NOTE: When this autocommand is executed, the
current buffer "%" may be different from the current buffer "%" may be different from the
buffer being unloaded "<afile>". buffer being unloaded "<afile>".
Don't change to another buffer, it will cause Don't change to another buffer or window, it
problems. will cause problems!
When exiting and v:dying is 2 or more this When exiting and v:dying is 2 or more this
event is not triggered. event is not triggered.
*BufWinEnter* *BufWinEnter*
@ -778,7 +793,9 @@ QuickFixCmdPre Before a quickfix command is run (|:make|,
|:vimgrepadd|, |:lvimgrepadd|, |:cscope|, |:vimgrepadd|, |:lvimgrepadd|, |:cscope|,
|:cfile|, |:cgetfile|, |:caddfile|, |:lfile|, |:cfile|, |:cgetfile|, |:caddfile|, |:lfile|,
|:lgetfile|, |:laddfile|, |:helpgrep|, |:lgetfile|, |:laddfile|, |:helpgrep|,
|:lhelpgrep|). |:lhelpgrep|, |:cexpr|, |:cgetexpr|,
|:caddexpr|, |:cbuffer|, |:cgetbuffer|,
|:caddbuffer|).
The pattern is matched against the command The pattern is matched against the command
being run. When |:grep| is used but 'grepprg' being run. When |:grep| is used but 'grepprg'
is set to "internal" it still matches "grep". is set to "internal" it still matches "grep".
@ -874,6 +891,8 @@ Syntax When the 'syntax' option has been set. The
where this option was set, and <amatch> for where this option was set, and <amatch> for
the new value of 'syntax'. the new value of 'syntax'.
See |:syn-on|. See |:syn-on|.
*TabClosed*
TabClosed After closing a tab page.
*TabEnter* *TabEnter*
TabEnter Just after entering a tab page. |tab-page| TabEnter Just after entering a tab page. |tab-page|
After triggering the WinEnter and before After triggering the WinEnter and before
@ -882,6 +901,10 @@ TabEnter Just after entering a tab page. |tab-page|
TabLeave Just before leaving a tab page. |tab-page| TabLeave Just before leaving a tab page. |tab-page|
A WinLeave event will have been triggered A WinLeave event will have been triggered
first. first.
*TabNew*
TabNew When a tab page was created. |tab-page|
A WinEnter event will have been triggered
first, TabEnter follows.
*TermChanged* *TermChanged*
TermChanged After the value of 'term' has changed. Useful 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
@ -967,6 +990,11 @@ WinLeave Before leaving a window. If the window to be
WinLeave autocommands (but not for ":new"). WinLeave autocommands (but not for ":new").
Not used for ":qa" or ":q" when exiting Vim. Not used for ":qa" or ":q" when exiting Vim.
*WinNew*
WinNew When a new window was created. Not done for
the first window, when Vim has just started.
Before a WinEnter event.
============================================================================== ==============================================================================
6. Patterns *autocmd-patterns* *{pat}* 6. Patterns *autocmd-patterns* *{pat}*
@ -1048,6 +1076,9 @@ Note that for all systems the '/' character is used for path separator (even
MS-DOS and OS/2). This was done because the backslash is difficult to use MS-DOS and OS/2). This was done because the backslash is difficult to use
in a pattern and to make the autocommands portable across different systems. in a pattern and to make the autocommands portable across different systems.
It is possible to use |pattern| items, but they may not work as expected,
because of the translation done for the above.
*autocmd-changes* *autocmd-changes*
Matching with the pattern is done when an event is triggered. Changing the Matching with the pattern is done when an event is triggered. Changing the
buffer name in one of the autocommands, or even deleting the buffer, does not buffer name in one of the autocommands, or even deleting the buffer, does not
@ -1146,10 +1177,12 @@ name!
different from existing {event} names, as this different from existing {event} names, as this
most likely will not do what you intended. most likely will not do what you intended.
*:augroup-delete* *E367* *:augroup-delete* *E367* *W19* *E936*
:aug[roup]! {name} Delete the autocmd group {name}. Don't use :aug[roup]! {name} Delete the autocmd group {name}. Don't use
this if there is still an autocommand using this if there is still an autocommand using
this group! This is not checked. this group! You will get a warning if doing
it anyway. when the group is the current group
you will get error E936.
To enter autocommands for a specific group, use this method: To enter autocommands for a specific group, use this method:
1. Select the group with ":augroup {name}". 1. Select the group with ":augroup {name}".

View File

@ -1,4 +1,4 @@
*change.txt* For Vim version 7.4. Last change: 2016 Apr 12 *change.txt* For Vim version 8.0. Last change: 2017 Feb 12
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -635,12 +635,14 @@ For other systems the tmpnam() library function is used.
For the {pattern} see |pattern|. For the {pattern} see |pattern|.
{string} can be a literal string, or something {string} can be a literal string, or something
special; see |sub-replace-special|. special; see |sub-replace-special|.
*E939*
When [range] and [count] are omitted, replace in the When [range] and [count] are omitted, replace in the
current line only. current line only. When [count] is given, replace in
When [count] is given, replace in [count] lines, [count] lines, starting with the last line in [range].
starting with the last line in [range]. When [range] When [range] is omitted start in the current line.
is omitted start in the current line. [count] must be a positive number. Also see
Also see |cmdline-ranges|. |cmdline-ranges|.
See |:s_flags| for [flags]. See |:s_flags| for [flags].
:[range]s[ubstitute] [flags] [count] :[range]s[ubstitute] [flags] [count]
@ -684,6 +686,7 @@ g& Synonym for `:%s//~/&` (repeat last substitute with
*:s_flags* *:s_flags*
The flags that you can use for the substitute commands: The flags that you can use for the substitute commands:
*:&&*
[&] Must be the first one: Keep the flags from the previous substitute [&] Must be the first one: Keep the flags from the previous substitute
command. Examples: > command. Examples: >
:&& :&&
@ -872,6 +875,7 @@ The numbering of "\1", "\2" etc. is done based on which "\(" comes first in
the pattern (going left to right). When a parentheses group matches several the pattern (going left to right). When a parentheses group matches several
times, the last one will be used for "\1", "\2", etc. Example: > times, the last one will be used for "\1", "\2", etc. Example: >
:s/\(\(a[a-d] \)*\)/\2/ modifies "aa ab x" to "ab x" :s/\(\(a[a-d] \)*\)/\2/ modifies "aa ab x" to "ab x"
The "\2" is for "\(a[a-d] \)". At first it matches "aa ", secondly "ab ".
When using parentheses in combination with '|', like in \([ab]\)\|\([cd]\), When using parentheses in combination with '|', like in \([ab]\)\|\([cd]\),
either the first or second pattern in parentheses did not match, so either either the first or second pattern in parentheses did not match, so either
@ -912,8 +916,7 @@ Exceptions:
Substitute with an expression *sub-replace-expression* Substitute with an expression *sub-replace-expression*
*sub-replace-\=* *s/\=* *sub-replace-\=* *s/\=*
When the substitute string starts with "\=" the remainder is interpreted as an When the substitute string starts with "\=" the remainder is interpreted as an
expression. This does not work recursively: a |substitute()| function inside expression.
the expression cannot use "\=" for the substitute string.
The special meaning for characters as mentioned at |sub-replace-special| does The special meaning for characters as mentioned at |sub-replace-special| does
not apply except for "<CR>". A <NL> character is used as a line break, you not apply except for "<CR>". A <NL> character is used as a line break, you

View File

@ -1,4 +1,4 @@
*channel.txt* For Vim version 7.4. Last change: 2016 Jun 02 *channel.txt* For Vim version 8.0. Last change: 2016 Dec 02
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -6,13 +6,9 @@
Inter-process communication *channel* Inter-process communication *channel*
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
Vim uses channels to communicate with other processes. Vim uses channels to communicate with other processes.
A channel uses a socket or pipes *socket-interface* A channel uses a socket or pipes. *socket-interface*
Jobs can be used to start processes and communicate with them. Jobs can be used to start processes and communicate with them.
Vim current supports up to 10 simultaneous channels.
The Netbeans interface also uses a channel. |netbeans| The Netbeans interface also uses a channel. |netbeans|
1. Overview |job-channel-overview| 1. Overview |job-channel-overview|
@ -29,13 +25,15 @@ The Netbeans interface also uses a channel. |netbeans|
{Vi does not have any of these features} {Vi does not have any of these features}
{only when compiled with the |+channel| feature for channel stuff} {only when compiled with the |+channel| feature for channel stuff}
You can check this with: `has('channel')`
{only when compiled with the |+job| feature for job stuff} {only when compiled with the |+job| feature for job stuff}
You can check this with: `has('job')`
============================================================================== ==============================================================================
1. Overview *job-channel-overview* 1. Overview *job-channel-overview*
There are four main types of jobs: There are four main types of jobs:
1. A deamon, serving several Vim instances. 1. A daemon, serving several Vim instances.
Vim connects to it with a socket. Vim connects to it with a socket.
2. One job working with one Vim instance, asynchronously. 2. One job working with one Vim instance, asynchronously.
Uses a socket or pipes. Uses a socket or pipes.
@ -58,7 +56,7 @@ Common combination are:
- Using a job connected through pipes in NL mode. E.g., to run a style - Using a job connected through pipes in NL mode. E.g., to run a style
checker and receive errors and warnings. checker and receive errors and warnings.
- Using a deamon, connecting over a socket in JSON mode. E.g. to lookup - Using a deamon, connecting over a socket in JSON mode. E.g. to lookup
crosss-refrences in a database. cross-references in a database.
============================================================================== ==============================================================================
2. Channel demo *channel-demo* *demoserver.py* 2. Channel demo *channel-demo* *demoserver.py*
@ -157,7 +155,13 @@ Use |ch_status()| to see if the channel could be opened.
func MyCloseHandler(channel) func MyCloseHandler(channel)
< Vim will invoke callbacks that handle data before invoking < Vim will invoke callbacks that handle data before invoking
close_cb, thus when this function is called no more data will close_cb, thus when this function is called no more data will
be received. be passed to the callbacks.
*channel-drop*
"drop" Specifies when to drop messages:
"auto" When there is no callback to handle a message.
The "close_cb" is also considered for this.
"never" All messages will be kept.
*waittime* *waittime*
"waittime" The time to wait for the connection to be made in "waittime" The time to wait for the connection to be made in
milliseconds. A negative number waits forever. milliseconds. A negative number waits forever.
@ -251,9 +255,15 @@ In which {number} is different every time. It must be used in the response
This way Vim knows which sent message matches with which received message and This way Vim knows which sent message matches with which received message and
can call the right handler. Also when the messages arrive out of order. can call the right handler. Also when the messages arrive out of order.
A newline character is terminating the JSON text. This can be used to
separate the read text. For example, in Python:
splitidx = read_text.find('\n')
message = read_text[:splitidx]
rest = read_text[splitidx + 1:]
The sender must always send valid JSON to Vim. Vim can check for the end of The sender must always send valid JSON to Vim. Vim can check for the end of
the message by parsing the JSON. It will only accept the message if the end the message by parsing the JSON. It will only accept the message if the end
was received. was received. A newline after the message is optional.
When the process wants to send a message to Vim without first receiving a When the process wants to send a message to Vim without first receiving a
message, it must use the number zero: message, it must use the number zero:
@ -273,7 +283,7 @@ With a JSON channel the process can send commands to Vim that will be
handled by Vim internally, it does not require a handler for the channel. handled by Vim internally, it does not require a handler for the channel.
Possible commands are: *E903* *E904* *E905* Possible commands are: *E903* *E904* *E905*
["redraw" {forced}] ["redraw", {forced}]
["ex", {Ex command}] ["ex", {Ex command}]
["normal", {Normal mode command}] ["normal", {Normal mode command}]
["expr", {expression}, {number}] ["expr", {expression}, {number}]
@ -365,7 +375,7 @@ Leave out the fourth argument if no response is to be sent:
============================================================================== ==============================================================================
6. Using a RAW or NL channel *channel-raw* 6. Using a RAW or NL channel *channel-raw*
If mode is RAW or NL then a message can be send like this: > If mode is RAW or NL then a message can be sent like this: >
let response = ch_evalraw(channel, {string}) let response = ch_evalraw(channel, {string})
The {string} is sent as-is. The response will be what can be read from the The {string} is sent as-is. The response will be what can be read from the
@ -393,6 +403,9 @@ This {string} can also be JSON, use |json_encode()| to create it and
It is not possible to use |ch_evalexpr()| or |ch_sendexpr()| on a raw channel. It is not possible to use |ch_evalexpr()| or |ch_sendexpr()| on a raw channel.
A String in Vim cannot contain NUL bytes. To send or receive NUL bytes read
or write from a buffer. See |in_io-buffer| and |out_io-buffer|.
============================================================================== ==============================================================================
7. More channel functions *channel-more* 7. More channel functions *channel-more*
@ -411,7 +424,11 @@ This uses the channel timeout. To read without a timeout, just get any
message that is available: > message that is available: >
let output = ch_read(channel, {'timeout': 0}) let output = ch_read(channel, {'timeout': 0})
When no message was available then the result is v:none for a JSON or JS mode When no message was available then the result is v:none for a JSON or JS mode
channels, an empty string for a RAW or NL channel. channels, an empty string for a RAW or NL channel. You can use |ch_canread()|
to check if there is something to read.
Note that when there is no callback message are dropped. To avoid that add a
close callback to the channel.
To read all output from a RAW channel that is available: > To read all output from a RAW channel that is available: >
let output = ch_readraw(channel) let output = ch_readraw(channel)
@ -458,6 +475,11 @@ it like this: >
Without the handler you need to read the output with |ch_read()| or Without the handler you need to read the output with |ch_read()| or
|ch_readraw()|. You can do this in the close callback, see |read-in-close-cb|. |ch_readraw()|. You can do this in the close callback, see |read-in-close-cb|.
Note that if the job exits before you read the output, the output may be lost.
This depends on the system (on Unix this happens because closing the write end
of a pipe causes the read end to get EOF). To avoid this make the job sleep
for a short while before it exits.
The handler defined for "out_cb" will not receive stderr. If you want to The handler defined for "out_cb" will not receive stderr. If you want to
handle that separately, add an "err_cb" handler: > handle that separately, add an "err_cb" handler: >
let job = job_start(command, {"out_cb": "MyHandler", let job = job_start(command, {"out_cb": "MyHandler",
@ -478,7 +500,7 @@ For example, to start a job and write its output in buffer "dummy": >
Job input from a buffer ~ Job input from a buffer ~
*in_io-buffer*
To run a job that reads from a buffer: > To run a job that reads from a buffer: >
let job = job_start({command}, let job = job_start({command},
\ {'in_io': 'buffer', 'in_name': 'mybuffer'}) \ {'in_io': 'buffer', 'in_name': 'mybuffer'})
@ -494,6 +516,13 @@ A special mode is when "in_top" is set to zero and "in_bot" is not set: Every
time a line is added to the buffer, the last-but-one line will be send to the time a line is added to the buffer, the last-but-one line will be send to the
job stdin. This allows for editing the last line and sending it when pressing job stdin. This allows for editing the last line and sending it when pressing
Enter. Enter.
*channel-close-in*
When not using the special mode the pipe or socket will be closed after the
last line has been written. This signals the reading end that the input
finished. You can also use |ch_close_in()| to close it sooner.
NUL bytes in the text will be passed to the job (internally Vim stores these
as NL bytes).
Reading job output in the close callback ~ Reading job output in the close callback ~
@ -502,7 +531,7 @@ If the job can take some time and you don't need intermediate results, you can
add a close callback and read the output there: > add a close callback and read the output there: >
func! CloseHandler(channel) func! CloseHandler(channel)
while ch_status(a:channel) == 'buffered' while ch_status(a:channel, {'part': 'out'}) == 'buffered'
echomsg ch_read(a:channel) echomsg ch_read(a:channel)
endwhile endwhile
endfunc endfunc
@ -515,7 +544,7 @@ You will want to do something more useful than "echomsg".
To start another process without creating a channel: > To start another process without creating a channel: >
let job = job_start(command, let job = job_start(command,
\ {"in_io": "null", "out_io": "null", "err_io": "null"}) \ {"in_io": "null", "out_io": "null", "err_io": "null"})
This starts {command} in the background, Vim does not wait for it to finish. This starts {command} in the background, Vim does not wait for it to finish.
@ -566,20 +595,27 @@ See |job_setoptions()| and |ch_setoptions()|.
"out_cb": handler Callback for when there is something to read on "out_cb": handler Callback for when there is something to read on
stdout. Only for when the channel uses pipes. When stdout. Only for when the channel uses pipes. When
"out_cb" wasn't set the channel callback is used. "out_cb" wasn't set the channel callback is used.
The two arguments are the channel and the message.
*job-err_cb* *err_cb* *job-err_cb* *err_cb*
"err_cb": handler Callback for when there is something to read on "err_cb": handler Callback for when there is something to read on
stderr. Only for when the channel uses pipes. When stderr. Only for when the channel uses pipes. When
"err_cb" wasn't set the channel callback is used. "err_cb" wasn't set the channel callback is used.
The two arguments are the channel and the message.
*job-close_cb* *job-close_cb*
"close_cb": handler Callback for when the channel is closed. Same as "close_cb": handler Callback for when the channel is closed. Same as
"close_cb" on |ch_open()|, see |close_cb|. "close_cb" on |ch_open()|, see |close_cb|.
*job-drop*
"drop" Specifies when to drop messages. Same as "drop" on
|ch_open()|, see |channel-drop|. For "auto" the
exit_cb is not considered.
*job-exit_cb* *job-exit_cb*
"exit_cb": handler Callback for when the job ends. The arguments are the "exit_cb": handler Callback for when the job ends. The arguments are the
job and the exit status. job and the exit status.
Vim checks about every 10 seconds for jobs that ended. Vim checks up to 10 times per second for jobs that
The check also be triggered by calling |job_status()|, ended. The check can also be triggered by calling
which may then invoke the exit_cb handler. |job_status()|, which may then invoke the exit_cb
handler.
Note that data can be buffered, callbacks may still be Note that data can be buffered, callbacks may still be
called after the process ends. called after the process ends.
*job-timeout* *job-timeout*
@ -607,7 +643,7 @@ See |job_setoptions()| and |ch_setoptions()|.
"channel": {channel} Use an existing channel instead of creating a new one. "channel": {channel} Use an existing channel instead of creating a new one.
The parts of the channel that get used for the new job The parts of the channel that get used for the new job
will be disconnected from what they were used before. will be disconnected from what they were used before.
If the channel was still use by another job this may If the channel was still used by another job this may
cause I/O errors. cause I/O errors.
Existing callbacks and other settings remain. Existing callbacks and other settings remain.
@ -625,29 +661,33 @@ See |job_setoptions()| and |ch_setoptions()|.
"out_io": "null" disconnect stdout (goes to /dev/null) "out_io": "null" disconnect stdout (goes to /dev/null)
"out_io": "pipe" stdout is connected to the channel (default) "out_io": "pipe" stdout is connected to the channel (default)
"out_io": "file" stdout writes to a file "out_io": "file" stdout writes to a file
"out_io": "buffer" stdout appends to a buffer (see below) "out_io": "buffer" stdout appends to a buffer (see below)
"out_name": "/path/file" the name of the file or buffer to write to "out_name": "/path/file" the name of the file or buffer to write to
"out_buf": number the number of the buffer to write to "out_buf": number the number of the buffer to write to
"out_modifiable": 0 when writing to a buffer, 'modifiable' will be off "out_modifiable": 0 when writing to a buffer, 'modifiable' will be off
(see below) (see below)
"out_msg": 0 when writing to a new buffer, the first line will be
set to "Reading from channel output..."
*job-err_io* *err_name* *err_buf* *job-err_io* *err_name* *err_buf*
"err_io": "out" stderr messages to go to stdout "err_io": "out" stderr messages to go to stdout
"err_io": "null" disconnect stderr (goes to /dev/null) "err_io": "null" disconnect stderr (goes to /dev/null)
"err_io": "pipe" stderr is connected to the channel (default) "err_io": "pipe" stderr is connected to the channel (default)
"err_io": "file" stderr writes to a file "err_io": "file" stderr writes to a file
"err_io": "buffer" stderr appends to a buffer (see below) "err_io": "buffer" stderr appends to a buffer (see below)
"err_name": "/path/file" the name of the file or buffer to write to "err_name": "/path/file" the name of the file or buffer to write to
"err_buf": number the number of the buffer to write to "err_buf": number the number of the buffer to write to
"err_modifiable": 0 when writing to a buffer, 'modifiable' will be off "err_modifiable": 0 when writing to a buffer, 'modifiable' will be off
(see below) (see below)
"err_msg": 0 when writing to a new buffer, the first line will be
set to "Reading from channel error..."
"block_write": number only for testing: pretend every other write to stdin "block_write": number only for testing: pretend every other write to stdin
will block will block
Writing to a buffer ~ Writing to a buffer ~
*out_io-buffer*
When the out_io or err_io mode is "buffer" and there is a callback, the text When the out_io or err_io mode is "buffer" and there is a callback, the text
is appended to the buffer before invoking the callback. is appended to the buffer before invoking the callback.
@ -670,8 +710,16 @@ buffer number.
For a new buffer 'buftype' is set to "nofile" and 'bufhidden' to "hide". If For a new buffer 'buftype' is set to "nofile" and 'bufhidden' to "hide". If
you prefer other settings, create the buffer first and pass the buffer number. you prefer other settings, create the buffer first and pass the buffer number.
*out_modifiable* *err_modifiable*
The "out_modifiable" and "err_modifiable" options can be used to set the The "out_modifiable" and "err_modifiable" options can be used to set the
'modifiable' option off, or write to a buffer that has 'modifiable' off. That
means that lines will be appended to the buffer, but the user can't easily
change the buffer.
*out_msg* *err_msg*
The "out_msg" option can be used to specify whether a new buffer will have the
first line set to "Reading from channel output...". The default is to add the
message. "err_msg" does the same for channel error.
'modifiable' option off, or write to a buffer that has 'modifiable' off. That 'modifiable' option off, or write to a buffer that has 'modifiable' off. That
means that lines will be appended to the buffer, but the user can't easily means that lines will be appended to the buffer, but the user can't easily
change the buffer. change the buffer.
@ -684,7 +732,8 @@ When the buffer written to is displayed in a window and the cursor is in the
first column of the last line, the cursor will be moved to the newly added first column of the last line, the cursor will be moved to the newly added
line and the window is scrolled up to show the cursor if needed. line and the window is scrolled up to show the cursor if needed.
Undo is synced for every added line. Undo is synced for every added line. NUL bytes are accepted (internally Vim
stores these as NL bytes).
Writing to a file ~ Writing to a file ~

View File

@ -1,4 +1,4 @@
*cmdline.txt* For Vim version 7.4. Last change: 2015 Dec 17 *cmdline.txt* For Vim version 8.0. Last change: 2016 Sep 27
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -229,9 +229,10 @@ CTRL-Y When there is a modeless selection, copy the selection into
the clipboard. |modeless-selection| the clipboard. |modeless-selection|
If there is no selection CTRL-Y is inserted as a character. If there is no selection CTRL-Y is inserted as a character.
CTRL-J *c_CTRL-J* *c_<NL>* *c_<CR>* *c_CR* CTRL-M or CTRL-J *c_CTRL-M* *c_CTRL-J* *c_<NL>* *c_<CR>* *c_CR*
<CR> or <NL> start entered command <CR> or <NL> start entered command
*c_<Esc>* *c_Esc*
CTRL-[ *c_CTRL-[* *c_<Esc>* *c_Esc*
<Esc> When typed and 'x' not present in 'cpoptions', quit <Esc> When typed and 'x' not present in 'cpoptions', quit
Command-line mode without executing. In macros or when 'x' Command-line mode without executing. In macros or when 'x'
present in 'cpoptions', start entered command. present in 'cpoptions', start entered command.
@ -358,8 +359,11 @@ terminals)
List entries 6 to 12 from the search history: > List entries 6 to 12 from the search history: >
:history / 6,12 :history / 6,12
< <
List the recent five entries from all histories: > List the penultimate entry from all histories: >
:history all -5, :history all -2
<
List the most recent two entries from all histories: >
:history all -2,
:keepp[atterns] {command} *:keepp* *:keeppatterns* :keepp[atterns] {command} *:keepp* *:keeppatterns*
Execute {command}, without adding anything to the search Execute {command}, without adding anything to the search
@ -423,12 +427,26 @@ CTRL-L A match is done on the pattern in front of the cursor. If
If there are multiple matches the longest common part is If there are multiple matches the longest common part is
inserted in place of the pattern. If the result is shorter inserted in place of the pattern. If the result is shorter
than the pattern, no completion is done. than the pattern, no completion is done.
*/_CTRL-L*
When 'incsearch' is set, entering a search pattern for "/" or When 'incsearch' is set, entering a search pattern for "/" or
"?" and the current match is displayed then CTRL-L will add "?" and the current match is displayed then CTRL-L will add
one character from the end of the current match. If one character from the end of the current match. If
'ignorecase' and 'smartcase' are set and the command line has 'ignorecase' and 'smartcase' are set and the command line has
no uppercase characters, the added character is converted to no uppercase characters, the added character is converted to
lowercase. lowercase.
*c_CTRL-G* */_CTRL-G*
CTRL-G When 'incsearch' is set, entering a search pattern for "/" or
"?" and the current match is displayed then CTRL-G will move
to the next match (does not take |search-offset| into account)
Use CTRL-T to move to the previous match. Hint: on a regular
keyboard T is above G.
*c_CTRL-T* */_CTRL-T*
CTRL-T When 'incsearch' is set, entering a search pattern for "/" or
"?" and the current match is displayed then CTRL-T will move
to the previous match (does not take |search-offset| into
account).
Use CTRL-G to move to the next match. Hint: on a regular
keyboard T is above G.
The 'wildchar' option defaults to <Tab> (CTRL-E when in Vi compatible mode; in The 'wildchar' option defaults to <Tab> (CTRL-E when in Vi compatible mode; in
a previous version <Esc> was used). In the pattern standard wildcards '*' and a previous version <Esc> was used). In the pattern standard wildcards '*' and
@ -1042,10 +1060,10 @@ There are several ways to leave the command-line window:
Insert and in Normal mode. Insert and in Normal mode.
CTRL-C Continue in Command-line mode. The command-line under the CTRL-C Continue in Command-line mode. The command-line under the
cursor is used as the command-line. Works both in Insert and cursor is used as the command-line. Works both in Insert and
in Normal mode. ":close" also works. There is no redraw, in Normal mode. There is no redraw, thus the window will
thus the window will remain visible. remain visible.
:quit Discard the command line and go back to Normal mode. :quit Discard the command line and go back to Normal mode.
":exit", ":xit" and CTRL-\ CTRL-N also work. ":close", ":exit", ":xit" and CTRL-\ CTRL-N also work.
:qall Quit Vim, unless there are changes in some buffer. :qall Quit Vim, unless there are changes in some buffer.
:qall! Quit Vim, discarding changes to any buffer. :qall! Quit Vim, discarding changes to any buffer.

View File

@ -1,4 +1,4 @@
*debug.txt* For Vim version 7.4. Last change: 2012 Feb 11 *debug.txt* For Vim version 8.0. Last change: 2012 Feb 11
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar

View File

@ -1,4 +1,4 @@
*debugger.txt* For Vim version 7.4. Last change: 2005 Mar 29 *debugger.txt* For Vim version 8.0. Last change: 2005 Mar 29
VIM REFERENCE MANUAL by Gordon Prieur VIM REFERENCE MANUAL by Gordon Prieur

View File

@ -1,4 +1,4 @@
*develop.txt* For Vim version 7.4. Last change: 2016 Jan 31 *develop.txt* For Vim version 8.0. Last change: 2017 Jan 05
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -177,7 +177,7 @@ The basic steps to make changes to the code:
5. Make a patch with "git diff". You can also create a pull request on 5. Make a patch with "git diff". You can also create a pull request on
github, but it's the diff that matters. github, but it's the diff that matters.
6. Make a note about what changed, preferably mentioning the problem and the 6. Make a note about what changed, preferably mentioning the problem and the
solution. Send an email to the vim-dev maillist with an explanation and solution. Send an email to the |vim-dev| maillist with an explanation and
include the diff. Or create a pull request on github. include the diff. Or create a pull request on github.

View File

@ -1,12 +1,12 @@
*diff.txt* For Vim version 7.4. Last change: 2015 Nov 01 *diff.txt* For Vim version 8.0. Last change: 2017 Feb 03
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
*diff* *vimdiff* *gvimdiff* *diff-mode* *diff* *vimdiff* *gvimdiff* *diff-mode*
This file describes the |+diff| feature: Showing differences between two, This file describes the |+diff| feature: Showing differences between two to
three or four versions of the same file. eight versions of the same file.
The basics are explained in section |08.7| of the user manual. The basics are explained in section |08.7| of the user manual.
@ -117,7 +117,7 @@ To make these commands use a vertical split, prepend |:vertical|. Examples: >
If you always prefer a vertical split include "vertical" in 'diffopt'. If you always prefer a vertical split include "vertical" in 'diffopt'.
*E96* *E96*
There can be up to four buffers with 'diff' set. There can be up to eight buffers with 'diff' set.
Since the option values are remembered with the buffer, you can edit another Since the option values are remembered with the buffer, you can edit another
file for a moment and come back to the same file and be in diff mode again. file for a moment and come back to the same file and be in diff mode again.
@ -131,6 +131,8 @@ file for a moment and come back to the same file and be in diff mode again.
related options only happens in a window that has 'diff' set, related options only happens in a window that has 'diff' set,
if the current window does not have 'diff' set then no options if the current window does not have 'diff' set then no options
in it are changed. in it are changed.
Hidden buffers are also removed from the list of diff'ed
buffers.
The `:diffoff` command resets the relevant options to the values they had when The `:diffoff` command resets the relevant options to the values they had when
using `:diffsplit`, `:diffpatch` , `:diffthis`. or starting Vim in diff mode. using `:diffsplit`, `:diffpatch` , `:diffthis`. or starting Vim in diff mode.
@ -164,7 +166,8 @@ The alignment of text will go wrong when:
All the buffers edited in a window where the 'diff' option is set will join in All the buffers edited in a window where the 'diff' option is set will join in
the diff. This is also possible for hidden buffers. They must have been the diff. This is also possible for hidden buffers. They must have been
edited in a window first for this to be possible. edited in a window first for this to be possible. To get rid of the hidden
buffers use `:diffoff!`.
*:DiffOrig* *diff-original-file* *:DiffOrig* *diff-original-file*
Since 'diff' is a window-local option, it's possible to view the same buffer Since 'diff' is a window-local option, it's possible to view the same buffer

View File

@ -1,4 +1,4 @@
*digraph.txt* For Vim version 7.4. Last change: 2014 Jun 19 *digraph.txt* For Vim version 8.0. Last change: 2016 Nov 04
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -147,7 +147,7 @@ a standard meaning:
Two 2 Hook Two 2 Hook
Nine 9 Horn Nine 9 Horn
Equals = Cyrillic (= used as second char) Equals = Cyrillic (= used as second char)
Asterisk * Greek Asterisk * Greek
Percent sign % Greek/Cyrillic special Percent sign % Greek/Cyrillic special
Plus + smalls: Arabic, capitals: Hebrew Plus + smalls: Arabic, capitals: Hebrew
@ -926,6 +926,7 @@ char digraph hex dec official name ~
† /- 2020 8224 DAGGER † /- 2020 8224 DAGGER
‡ /= 2021 8225 DOUBLE DAGGER ‡ /= 2021 8225 DOUBLE DAGGER
‥ .. 2025 8229 TWO DOT LEADER ‥ .. 2025 8229 TWO DOT LEADER
… ,. 2026 8230 HORIZONTAL ELLIPSIS
‰ %0 2030 8240 PER MILLE SIGN ‰ %0 2030 8240 PER MILLE SIGN
1' 2032 8242 PRIME 1' 2032 8242 PRIME
″ 2' 2033 8243 DOUBLE PRIME ″ 2' 2033 8243 DOUBLE PRIME

View File

@ -1,4 +1,4 @@
*editing.txt* For Vim version 7.4. Last change: 2016 Mar 28 *editing.txt* For Vim version 8.0. Last change: 2016 Nov 24
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -181,7 +181,8 @@ start editing another file, Vim will refuse this. In order to overrule this
protection, add a '!' to the command. The changes will then be lost. For protection, add a '!' to the command. The changes will then be lost. For
example: ":q" will not work if the buffer was changed, but ":q!" will. To see example: ":q" will not work if the buffer was changed, but ":q!" will. To see
whether the buffer was changed use the "CTRL-G" command. The message includes whether the buffer was changed use the "CTRL-G" command. The message includes
the string "[Modified]" if the buffer has been changed. the string "[Modified]" if the buffer has been changed, or "+" if the 'm' flag
is in 'shortmess'.
If you want to automatically save the changes without asking, switch on the If you want to automatically save the changes without asking, switch on the
'autowriteall' option. 'autowrite' is the associated Vi-compatible option 'autowriteall' option. 'autowrite' is the associated Vi-compatible option
@ -976,12 +977,12 @@ WRITING WITH MULTIPLE BUFFERS *buffer-write*
*:wa* *:wall* *:wa* *:wall*
:wa[ll] Write all changed buffers. Buffers without a file :wa[ll] Write all changed buffers. Buffers without a file
name or which are readonly are not written. {not in name cause an error message. Buffers which are
Vi} readonly are not written. {not in Vi}
:wa[ll]! Write all changed buffers, even the ones that are :wa[ll]! Write all changed buffers, even the ones that are
readonly. Buffers without a file name are not readonly. Buffers without a file name are not
written. {not in Vi} written and cause an error message. {not in Vi}
Vim will warn you if you try to overwrite a file that has been changed Vim will warn you if you try to overwrite a file that has been changed
@ -1114,10 +1115,12 @@ The names can be in upper- or lowercase.
edited. See |:confirm| and 'confirm'. {not in Vi} edited. See |:confirm| and 'confirm'. {not in Vi}
:q[uit]! Quit without writing, also when the current buffer has :q[uit]! Quit without writing, also when the current buffer has
changes. If this is the last window and there is a changes. The buffer is unloaded, also when it has
modified hidden buffer, the current buffer is 'hidden' set.
abandoned and the first changed hidden buffer becomes If this is the last window and there is a modified
the current buffer. hidden buffer, the current buffer is abandoned and the
first changed hidden buffer becomes the current
buffer.
Use ":qall!" to exit always. Use ":qall!" to exit always.
:cq[uit] Quit always, without writing, and return an error :cq[uit] Quit always, without writing, and return an error

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
*farsi.txt* For Vim version 7.4. Last change: 2015 Aug 29 *farsi.txt* For Vim version 8.0. Last change: 2015 Aug 29
VIM REFERENCE MANUAL by Mortaza Ghassab Shiran VIM REFERENCE MANUAL by Mortaza Ghassab Shiran

View File

@ -1,4 +1,4 @@
*filetype.txt* For Vim version 7.4. Last change: 2016 Jun 20 *filetype.txt* For Vim version 8.0. Last change: 2017 Jan 04
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -573,6 +573,8 @@ Man {number} {name}
Global mapping: Global mapping:
<Leader>K Displays the manual page for the word under the cursor. <Leader>K Displays the manual page for the word under the cursor.
<Plug>ManPreGetPage idem, allows for using a mapping: >
nmap <F1> <Plug>ManPreGetPage<CR>
Local mappings: Local mappings:
CTRL-] Jump to the manual page for the word under the cursor. CTRL-] Jump to the manual page for the word under the cursor.
@ -644,6 +646,17 @@ These maps can be disabled with >
:let g:no_pdf_maps = 1 :let g:no_pdf_maps = 1
< <
PYTHON *ft-python-plugin* *PEP8*
By default the following options are set, in accordance with PEP8: >
setlocal expandtab shiftwidth=4 softtabstop=4 tabstop=8
To disable this behaviour, set the following variable in your vimrc: >
let g:python_recommended_style = 0
RPM SPEC *ft-spec-plugin* RPM SPEC *ft-spec-plugin*
Since the text for this plugin is rather long it has been put in a separate Since the text for this plugin is rather long it has been put in a separate

View File

@ -1,4 +1,4 @@
*fold.txt* For Vim version 7.4. Last change: 2016 Jan 02 *fold.txt* For Vim version 8.0. Last change: 2016 Jan 02
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -64,7 +64,7 @@ whichever is lower. These are empty or white lines and lines starting
with a character in 'foldignore'. White space is skipped before checking for with a character in 'foldignore'. White space is skipped before checking for
characters in 'foldignore'. For C use "#" to ignore preprocessor lines. characters in 'foldignore'. For C use "#" to ignore preprocessor lines.
When you want to ignore lines in another way, use the 'expr' method. The When you want to ignore lines in another way, use the "expr" method. The
|indent()| function can be used in 'foldexpr' to get the indent of a line. |indent()| function can be used in 'foldexpr' to get the indent of a line.
@ -139,7 +139,7 @@ fold level. But note that foldlevel() may return -1 if the level is not known
yet. And it returns the level at the start of the line, while a fold might yet. And it returns the level at the start of the line, while a fold might
end in that line. end in that line.
It may happened that folds are not updated properly. You can use |zx| or |zX| It may happen that folds are not updated properly. You can use |zx| or |zX|
to force updating folds. to force updating folds.

View File

@ -1,4 +1,4 @@
*ft_ada.txt* For Vim version 7.4. Last change: 2010 Jul 20 *ft_ada.txt* For Vim version 8.0. Last change: 2010 Jul 20
ADA FILE TYPE PLUG-INS REFERENCE MANUAL~ ADA FILE TYPE PLUG-INS REFERENCE MANUAL~

View File

@ -1,4 +1,4 @@
*ft_sql.txt* For Vim version 7.4. Last change: 2013 May 15 *ft_sql.txt* For Vim version 8.0. Last change: 2013 May 15
by David Fishburn by David Fishburn

View File

@ -1,4 +1,4 @@
*gui.txt* For Vim version 7.4. Last change: 2014 Mar 08 *gui.txt* For Vim version 8.0. Last change: 2014 Mar 08
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar

View File

@ -1,4 +1,4 @@
*gui_w32.txt* For Vim version 7.4. Last change: 2014 Dec 20 *gui_w32.txt* For Vim version 8.0. Last change: 2014 Dec 20
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -49,10 +49,6 @@ If you want Vim to start with a maximized window, add this command to your
vimrc or gvimrc file: > vimrc or gvimrc file: >
au GUIEnter * simalt ~x au GUIEnter * simalt ~x
< <
*gui-w32s*
There is a specific version of gvim.exe that runs under the Win32s subsystem
of Windows 3.1 or 3.11. See |win32s|.
Using Vim as a plugin *gui-w32-windowid* Using Vim as a plugin *gui-w32-windowid*
@ -100,9 +96,10 @@ when you have got a new version):
You can also install Vim in the "Send To" menu: You can also install Vim in the "Send To" menu:
1. Start a Windows Explorer 1. Start a Windows Explorer
2. Navigate to your sendto directory: 2. Navigate to your sendto directory:
Windows 95: %windir%\sendto (e.g. "c:\windows\sendto")
Windows NT: %windir%\profiles\%user%\sendto (e.g. Windows NT: %windir%\profiles\%user%\sendto (e.g.
"c:\winnt\profiles\mattha\sendto"). "c:\winnt\profiles\mattha\sendto")
Windows XP: C:\Documents and Settings\%user%\SendTo
Windows Vista: C:\Users\%user%\AppData\Roaming\Microsoft\Windows\SendTo .
3. Right-click in the file pane and select New->Shortcut 3. Right-click in the file pane and select New->Shortcut
4. Follow the shortcut wizard, using the full path to VIM/GVIM. 4. Follow the shortcut wizard, using the full path to VIM/GVIM.
@ -274,35 +271,17 @@ WARNING: If you close this window with the "X" button, and confirm the
question if you really want to kill the application, Vim may be killed too! question if you really want to kill the application, Vim may be killed too!
(This does not apply to commands run asynchronously with ":!start".) (This does not apply to commands run asynchronously with ":!start".)
In Windows 95, the window in which the commands are executed is always 25x80 The window in which the commands are executed will be the default you have set
characters, to be as DOS compatible as possible (this matters!). The default up for "Console" in Control Panel.
system font is used. On NT, the window will be the default you have set up for
"Console" in Control Panel. On Win32s, the properties of the DOS box are
determined by _default.pif in the windows directory.
*msdos-mode*
If you get a dialog that says "This program is set to run in MS-DOS mode..."
when you run an external program, you can solve this by changing the
properties of the associated shortcut:
- Use a Windows Explorer to find the command.com that is used. It can be
c:\command.com, c:\dos\command.com, c:\windows\command.com, etc.
- With the right mouse button, select properties of this command.com.
- In the Program tab select "Advanced".
- Unselect "MS-DOS mode".
- Click "OK" twice.
*win32-!start* *win32-!start*
Normally, Vim waits for a command to complete before continuing (this makes Normally, Vim waits for a command to complete before continuing (this makes
sense for most shell commands which produce output for Vim to use). If you sense for most shell commands which produce output for Vim to use). If you
want Vim to start a program and return immediately, you can use the following want Vim to start a program and return immediately, you can use the following
syntax on W95 & NT: > syntax: >
:!start [/min] {command} :!start [/min] {command}
The optional "/min" causes the window to be minimized. The optional "/min" causes the window to be minimized.
On Win32s, you will have to go to another window instead. Don't forget that
you must tell Windows 3.1x to keep executing a DOS command in the background
while you switch back to Vim.
============================================================================== ==============================================================================
5. Special colors *win32-colors* 5. Special colors *win32-colors*
@ -311,7 +290,7 @@ On Win32, the normal DOS colors can be used. See |dos-colors|.
Additionally the system configured colors can also be used. These are known Additionally the system configured colors can also be used. These are known
by the names Sys_XXX, where XXX is the appropriate system color name, from the by the names Sys_XXX, where XXX is the appropriate system color name, from the
following list (see the Win32 documentation for full descriptions). Case is following list (see the Win32 documentation for full descriptions). Case is
ignored. Note: On Win32s not all of these colors are supported. ignored.
Sys_3DDKShadow Sys_3DFace Sys_BTNFace Sys_3DDKShadow Sys_3DFace Sys_BTNFace
Sys_3DHilight Sys_3DHighlight Sys_BTNHilight Sys_3DHilight Sys_3DHighlight Sys_BTNHilight

View File

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

View File

@ -1,4 +1,4 @@
*hangulin.txt* For Vim version 7.4. Last change: 2015 Nov 24 *hangulin.txt* For Vim version 8.0. Last change: 2015 Nov 24
VIM REFERENCE MANUAL by Chi-Deok Hwang and Sung-Hyun Nam VIM REFERENCE MANUAL by Chi-Deok Hwang and Sung-Hyun Nam
@ -81,8 +81,8 @@ And there should be no ':set guifont'. If it exists, then Gvim ignores
':set guifontset'. It means VIM runs without fontset supporting. ':set guifontset'. It means VIM runs without fontset supporting.
So, you can see only English. Hangul does not be correctly displayed. So, you can see only English. Hangul does not be correctly displayed.
After 'fontset' feature is enabled, VIM does not allow using english After "fontset" feature is enabled, VIM does not allow using english
font only in 'font' setting for syntax. font only in "font" setting for syntax.
For example, if you use > For example, if you use >
:set guifontset=eng_font,your_font :set guifontset=eng_font,your_font
in your .gvimrc, then you should do for syntax > in your .gvimrc, then you should do for syntax >

View File

@ -1,4 +1,4 @@
*hebrew.txt* For Vim version 7.4. Last change: 2007 Jun 14 *hebrew.txt* For Vim version 8.0. Last change: 2007 Jun 14
VIM REFERENCE MANUAL by Ron Aaron (and Avner Lottem) VIM REFERENCE MANUAL by Ron Aaron (and Avner Lottem)

View File

@ -1,4 +1,4 @@
*help.txt* For Vim version 7.4. Last change: 2016 Mar 31 *help.txt* For Vim version 8.0. Last change: 2016 Sep 12
VIM - main help file VIM - main help file
k k
@ -135,6 +135,7 @@ Advanced editing ~
|autocmd.txt| automatically executing commands on an event |autocmd.txt| automatically executing commands on an event
|filetype.txt| settings done specifically for a type of file |filetype.txt| settings done specifically for a type of file
|eval.txt| expression evaluation, conditional commands |eval.txt| expression evaluation, conditional commands
|channel.txt| Jobs, Channels, inter-process communication
|fold.txt| hide (fold) ranges of lines |fold.txt| hide (fold) ranges of lines
Special issues ~ Special issues ~

View File

@ -1,4 +1,4 @@
*helphelp.txt* For Vim version 7.4. Last change: 2016 Apr 01 *helphelp.txt* For Vim version 8.0. Last change: 2017 Feb 09
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -28,10 +28,16 @@ Help on help files *helphelp*
*{subject}* *E149* *E661* *{subject}* *E149* *E661*
:h[elp] {subject} Like ":help", additionally jump to the tag {subject}. :h[elp] {subject} Like ":help", additionally jump to the tag {subject}.
{subject} can include wildcards like "*", "?" and For example: >
:help options
< {subject} can include wildcards such as "*", "?" and
"[a-z]": "[a-z]":
:help z? jump to help for any "z" command :help z? jump to help for any "z" command
:help z. jump to the help for "z." :help z. jump to the help for "z."
But when a tag exists it is taken literally:
:help :? jump to help for ":?"
If there is no full match for the pattern, or there If there is no full match for the pattern, or there
are several matches, the "best" match will be used. are several matches, the "best" match will be used.
A sophisticated algorithm is used to decide which A sophisticated algorithm is used to decide which
@ -68,18 +74,19 @@ Help on help files *helphelp*
example to find help for CTRL-V in Insert mode: > example to find help for CTRL-V in Insert mode: >
:help i^V :help i^V
< <
To use a regexp |pattern|, first do ":help" and then It is also possible to first do ":help" and then
use ":tag {pattern}" in the help window. The use ":tag {pattern}" in the help window. The
":tnext" command can then be used to jump to other ":tnext" command can then be used to jump to other
matches, "tselect" to list matches and choose one. > matches, "tselect" to list matches and choose one. >
:help index| :tse z. :help index
:tselect /.*mode
< When there is no argument you will see matches for < When there is no argument you will see matches for
"help", to avoid listing all possible matches (that "help", to avoid listing all possible matches (that
would be very slow). would be very slow).
The number of matches displayed is limited to 300. The number of matches displayed is limited to 300.
This command can be followed by '|' and another The `:help` command can be followed by '|' and another
command, but you don't need to escape the '|' inside a command, but you don't need to escape the '|' inside a
help command. So these both work: > help command. So these both work: >
:help | :help |
@ -307,7 +314,7 @@ the applicable Vim version. The last field specifies the last modification
date of the file. Each field is separated by a tab. date of the file. Each field is separated by a tab.
At the bottom of the help file, place a Vim modeline to set the 'textwidth' At the bottom of the help file, place a Vim modeline to set the 'textwidth'
and 'tabstop' options and the 'filetype' to 'help'. Never set a global option and 'tabstop' options and the 'filetype' to "help". Never set a global option
in such a modeline, that can have consequences undesired by whoever reads that in such a modeline, that can have consequences undesired by whoever reads that
help. help.

View File

@ -1,4 +1,4 @@
*howto.txt* For Vim version 7.4. Last change: 2006 Apr 02 *howto.txt* For Vim version 8.0. Last change: 2006 Apr 02
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar

View File

@ -1,4 +1,4 @@
*if_cscop.txt* For Vim version 7.4. Last change: 2011 Jun 12 *if_cscop.txt* For Vim version 8.0. Last change: 2011 Jun 12
VIM REFERENCE MANUAL by Andy Kahn VIM REFERENCE MANUAL by Andy Kahn

View File

@ -1,4 +1,4 @@
*if_lua.txt* For Vim version 7.4. Last change: 2015 Oct 16 *if_lua.txt* For Vim version 8.0. Last change: 2015 Oct 16
VIM REFERENCE MANUAL by Luis Carvalho VIM REFERENCE MANUAL by Luis Carvalho
@ -59,6 +59,12 @@ Example:
EOF EOF
endfunction endfunction
< <
To see what version of Lua you have: >
:lua print(_VERSION)
If you use LuaJIT you can also use this: >
:lua print(jit.version)
<
*:luado* *:luado*
:[range]luado {body} Execute Lua function "function (line, linenr) {body} :[range]luado {body} Execute Lua function "function (line, linenr) {body}

View File

@ -1,4 +1,4 @@
*if_mzsch.txt* For Vim version 7.4. Last change: 2016 Jan 24 *if_mzsch.txt* For Vim version 8.0. Last change: 2016 Jan 24
VIM REFERENCE MANUAL by Sergey Khorev VIM REFERENCE MANUAL by Sergey Khorev
@ -97,6 +97,9 @@ procedures is restricted.
:mzscheme (require (prefix vim- vimext)) ; for MzScheme < 4.x :mzscheme (require (prefix vim- vimext)) ; for MzScheme < 4.x
:mzscheme (require (prefix-in vim- 'vimext)) ; MzScheme 4.x :mzscheme (require (prefix-in vim- 'vimext)) ; MzScheme 4.x
:mzscheme (vim-set-buff-line 10 "This is line #10") :mzscheme (vim-set-buff-line 10 "This is line #10")
To see what version of MzScheme you have: >
:mzscheme (display (version))
< <
Inline script usage: > Inline script usage: >
function! <SID>SetFirstLine() function! <SID>SetFirstLine()
@ -246,7 +249,7 @@ Windows *mzscheme-window*
5. mzeval() Vim function *mzscheme-mzeval* 5. mzeval() Vim function *mzscheme-mzeval*
To facilitate bi-directional interface, you can use |mzeval()| function to To facilitate bi-directional interface, you can use |mzeval()| function to
evaluate MzScheme expressions and pass their values to VimL. evaluate MzScheme expressions and pass their values to Vim script.
============================================================================== ==============================================================================
6. Using Function references *mzscheme-funcref* 6. Using Function references *mzscheme-funcref*

View File

@ -1,4 +1,4 @@
*if_ole.txt* For Vim version 7.4. Last change: 2008 Aug 16 *if_ole.txt* For Vim version 8.0. Last change: 2008 Aug 16
VIM REFERENCE MANUAL by Paul Moore VIM REFERENCE MANUAL by Paul Moore

View File

@ -1,4 +1,4 @@
*if_perl.txt* For Vim version 7.4. Last change: 2015 Oct 16 *if_perl.txt* For Vim version 8.0. Last change: 2015 Oct 16
VIM REFERENCE MANUAL by Sven Verdoolaege VIM REFERENCE MANUAL by Sven Verdoolaege
@ -83,6 +83,9 @@ Example vim script: >
EOF EOF
endfunction endfunction
< <
To see what version of Perl you have: >
:perl print $^V
<
*:perldo* *:perld* *:perldo* *:perld*
:[range]perld[o] {cmd} Execute Perl command {cmd} for each line in the :[range]perld[o] {cmd} Execute Perl command {cmd} for each line in the

View File

@ -1,4 +1,4 @@
*if_pyth.txt* For Vim version 7.4. Last change: 2015 Nov 10 *if_pyth.txt* For Vim version 8.0. Last change: 2017 Feb 18
VIM REFERENCE MANUAL by Paul Moore VIM REFERENCE MANUAL by Paul Moore
@ -16,6 +16,7 @@ The Python Interface to Vim *python* *Python*
8. pyeval(), py3eval() Vim functions |python-pyeval| 8. pyeval(), py3eval() Vim functions |python-pyeval|
9. Dynamic loading |python-dynamic| 9. Dynamic loading |python-dynamic|
10. Python 3 |python3| 10. Python 3 |python3|
11. Python X |python_x|
{Vi does not have any of these commands} {Vi does not have any of these commands}
@ -56,7 +57,11 @@ Example: >
print 'EAT ME' print 'EAT ME'
EOF EOF
endfunction endfunction
<
To see what version of Python you have: >
:python import sys
:python print(sys.version)
Note: Python is very sensitive to the indenting. Make sure the "class" line Note: Python is very sensitive to the indenting. Make sure the "class" line
and "EOF" do not have any indent. and "EOF" do not have any indent.
@ -169,8 +174,8 @@ vim.eval(str) *python-eval*
:py tagList = vim.eval('taglist("eval_expr")') :py tagList = vim.eval('taglist("eval_expr")')
< The latter will return a python list of python dicts, for instance: < The latter will return a python list of python dicts, for instance:
[{'cmd': '/^eval_expr(arg, nextcmd)$/', 'static': 0, 'name': [{'cmd': '/^eval_expr(arg, nextcmd)$/', 'static': 0, 'name': ~
'eval_expr', 'kind': 'f', 'filename': './src/eval.c'}] 'eval_expr', 'kind': 'f', 'filename': './src/eval.c'}] ~
vim.bindeval(str) *python-bindeval* vim.bindeval(str) *python-bindeval*
Like |python-eval|, but returns special objects described in Like |python-eval|, but returns special objects described in
@ -671,11 +676,11 @@ vim.Function object *python-Function*
dictionary. Note that explicit `self` keyword used when dictionary. Note that explicit `self` keyword used when
calling resulting object overrides this attribute. calling resulting object overrides this attribute.
auto_rebind Boolean. True if partial created from this Python object auto_rebind Boolean. True if partial created from this Python object
and stored in the VimL dictionary should be automatically and stored in the Vim script dictionary should be
rebound to the dictionary it is stored in when this automatically rebound to the dictionary it is stored in
dictionary is indexed. Exposes Vim internal difference when this dictionary is indexed. Exposes Vim internal
between `dict.func` (auto_rebind=True) and difference between `dict.func` (auto_rebind=True) and
`function(dict.func,dict)` (auto_rebind=False). This `function(dict.func,dict)` (auto_rebind=False). This
attribute makes no sense if `self` attribute is `None`. attribute makes no sense if `self` attribute is `None`.
Constructor additionally accepts `args`, `self` and `auto_rebind` Constructor additionally accepts `args`, `self` and `auto_rebind`
@ -706,7 +711,8 @@ vim.Function object *python-Function*
8. pyeval() and py3eval() Vim functions *python-pyeval* 8. pyeval() and py3eval() Vim functions *python-pyeval*
To facilitate bi-directional interface, you can use |pyeval()| and |py3eval()| To facilitate bi-directional interface, you can use |pyeval()| and |py3eval()|
functions to evaluate Python expressions and pass their values to VimL. functions to evaluate Python expressions and pass their values to Vim script.
|pyxeval()| is also available.
============================================================================== ==============================================================================
9. Dynamic loading *python-dynamic* 9. Dynamic loading *python-dynamic*
@ -725,9 +731,11 @@ To use the Python interface the Python DLL must be in your search path. In a
console window type "path" to see what directories are used. The 'pythondll' console window type "path" to see what directories are used. The 'pythondll'
or 'pythonthreedll' option can be also used to specify the Python DLL. or 'pythonthreedll' option can be also used to specify the Python DLL.
The name of the DLL must 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 is "python24.dll". That is for Python 2.4. To know for Currently the name for Python 2 is "python27.dll", that is for Python 2.7.
sure edit "gvim.exe" and search for "python\d*.dll\c". That is the default value for 'pythondll'. For Python 3 it is python35.dll
(Python 3.5). To know for sure edit "gvim.exe" and search for
"python\d*.dll\c".
Unix ~ Unix ~
@ -744,6 +752,10 @@ match the Python 2.x or Python 3 version Vim was compiled with.
The `:py3` and `:python3` commands work similar to `:python`. A simple check The `:py3` and `:python3` commands work similar to `:python`. A simple check
if the `:py3` command is working: > if the `:py3` command is working: >
:py3 print("Hello") :py3 print("Hello")
To see what version of Python you have: >
:py3 import sys
:py3 print(sys.version)
< *:py3file* < *:py3file*
The `:py3file` command works similar to `:pyfile`. The `:py3file` command works similar to `:pyfile`.
*:py3do* *:py3do*
@ -803,5 +815,69 @@ 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.
==============================================================================
11. Python X *python_x* *pythonx*
Because most python code can be written so that it works with python 2.6+ and
python 3 the pyx* functions and commands have been written. They work exactly
the same as the Python 2 and 3 variants, but select the Python version using
the 'pyxversion' setting.
You should set 'pyxversion' in your |.vimrc| to prefer Python 2 or Python 3
for Python commands. If you change this setting at runtime you may risk that
state of plugins (such as initialization) may be lost.
If you want to use a module, you can put it in the {rtp}/pythonx directory.
See |pythonx-directory|.
*:pyx* *:pythonx*
The `:pyx` and `:pythonx` commands work similar to `:python`. A simple check
if the `:pyx` command is working: >
:pyx print("Hello")
To see what version of Python is being used: >
:pyx import sys
:pyx print(sys.version)
<
*:pyxfile* *python_x-special-comments*
The `:pyxfile` command works similar to `:pyfile`. However you can add one of
these comments to force Vim using `:pyfile` or `:py3file`: >
#!/any string/python2 " Shebang. Must be the first line of the file.
#!/any string/python3 " Shebang. Must be the first line of the file.
# requires python 2.x " Maximum lines depend on 'modelines'.
# requires python 3.x " Maximum lines depend on 'modelines'.
Unlike normal modelines, the bottom of the file is not checked.
If none of them are found, the 'pyxversion' setting is used.
*W20* *W21*
If Vim does not support the selected Python version a silent message will be
printed. Use `:messages` to read them.
*:pyxdo*
The `:pyxdo` command works similar to `:pydo`.
*has-pythonx*
You can test if pyx* commands are available with: >
if has('pythonx')
echo 'pyx* commands are available. (Python ' . &pyx . ')'
endif
When compiled with only one of |+python| or |+python3|, the has() returns 1.
When compiled with both |+python| and |+python3|, the test depends on the
'pyxversion' setting. If 'pyxversion' is 0, it tests Python 3 first, and if
it is not available then Python 2. If 'pyxversion' is 2 or 3, it tests only
Python 2 or 3 respectively.
Note that for `has('pythonx')` to work it may try to dynamically load Python 3
or 2. This may have side effects, especially when Vim can only load one of
the two.
If a user prefers Python 2 and want to fallback to Python 3, he needs to set
'pyxversion' explicitly in his |.vimrc|. E.g.: >
if has('python')
set pyx=2
elseif has('python3')
set pyx=3
endif
============================================================================== ==============================================================================
vim:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:ft=help:norl:

View File

@ -1,4 +1,4 @@
*if_ruby.txt* For Vim version 7.4. Last change: 2015 Dec 03 *if_ruby.txt* For Vim version 8.0. Last change: 2016 Sep 01
VIM REFERENCE MANUAL by Shugo Maeda VIM REFERENCE MANUAL by Shugo Maeda
@ -58,6 +58,9 @@ Example Vim script: >
EOF EOF
endfunction endfunction
< <
To see what version of Ruby you have: >
:ruby print RUBY_VERSION
<
*:rubydo* *:rubyd* *E265* *:rubydo* *:rubyd* *E265*
:[range]rubyd[o] {cmd} Evaluate Ruby command {cmd} for each line in the :[range]rubyd[o] {cmd} Evaluate Ruby command {cmd} for each line in the
@ -69,7 +72,7 @@ Example Vim script: >
*:rubyfile* *:rubyf* *:rubyfile* *:rubyf*
:rubyf[ile] {file} Execute the Ruby script in {file}. This is the same as :rubyf[ile] {file} Execute the Ruby script in {file}. This is the same as
":ruby load 'file'", but allows file name completion. `:ruby load 'file'`, but allows file name completion.
Executing Ruby commands is not possible in the |sandbox|. Executing Ruby commands is not possible in the |sandbox|.
@ -204,21 +207,19 @@ MS-Windows ~
You need to install the right version of Ruby for this to work. You can find You need to install the right version of Ruby for this to work. You can find
the package to download from: the package to download from:
http://www.garbagecollect.jp/ruby/mswin32/en/download/release.html http://rubyinstaller.org/downloads/
Currently that is ruby-1.9.1-p429-i386-mswin32.zip Currently that is rubyinstaller-2.2.5.exe
To use the Ruby interface the Ruby DLL must be in your search path. In a To use the Ruby interface the Ruby DLL must be in your search path. In a
console window type "path" to see what directories are used. The 'rubydll' console window type "path" to see what directories are used. The 'rubydll'
option can be also used to specify the Ruby DLL. option can be also used to specify the Ruby DLL.
The name of the DLL must match the Ruby version Vim was compiled with. The name of the DLL must match the Ruby version Vim was compiled with.
Currently the name is "msvcrt-ruby191.dll". That is for Ruby 1.9.1. To know Currently the name is "msvcrt-ruby220.dll". That is for Ruby 2.2.X. To know
for sure edit "gvim.exe" and search for "ruby\d*.dll\c". for sure edit "gvim.exe" and search for "ruby\d*.dll\c".
If you want to build Vim with Ruby 1.9.1, you need to edit the config.h file If you want to build Vim with RubyInstaller 1.9 or 2.X using MSVC, you need
and comment-out the check for _MSC_VER. some tricks. See the src/INSTALLpc.txt for detail.
You may also need to rename the include directory name to match the version,
strangely for Ruby 1.9.3 the directory is called 1.9.1.
Unix ~ Unix ~

View File

@ -1,4 +1,4 @@
*if_sniff.txt* For Vim version 7.4. Last change: 2016 Feb 27 *if_sniff.txt* For Vim version 8.0. Last change: 2016 Feb 27
VIM REFERENCE MANUAL VIM REFERENCE MANUAL

View File

@ -1,4 +1,4 @@
*if_tcl.txt* For Vim version 7.4. Last change: 2016 Jan 01 *if_tcl.txt* For Vim version 8.0. Last change: 2016 Jan 01
VIM REFERENCE MANUAL by Ingo Wilken VIM REFERENCE MANUAL by Ingo Wilken
@ -54,6 +54,9 @@ Example: >
EOF EOF
endfunction endfunction
< <
To see what version of Tcl you have: >
:tcl puts [info patchlevel]
<
*:tcldo* *:tcld* *:tcldo* *:tcld*
:[range]tcld[o] {cmd} Execute Tcl command {cmd} for each line in [range] :[range]tcld[o] {cmd} Execute Tcl command {cmd} for each line in [range]

View File

@ -1,4 +1,4 @@
*indent.txt* For Vim version 7.4. Last change: 2014 Dec 06 *indent.txt* For Vim version 8.0. Last change: 2014 Dec 06
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -324,6 +324,21 @@ The examples below assume a 'shiftwidth' of 4.
{ { { {
void function(); void function(); void function(); void function();
} } } }
<
*cino-E*
EN Indent inside C++ linkage specifications (extern "C" or
extern "C++") N characters extra compared to a normal block.
(default 0).
cino= cino=E-s >
extern "C" { extern "C" {
void function(); void function();
} }
extern "C" extern "C"
{ {
void function(); void function();
} }
< <
*cino-p* *cino-p*
pN Parameter declarations for K&R-style function declarations will pN Parameter declarations for K&R-style function declarations will
@ -554,7 +569,7 @@ The examples below assume a 'shiftwidth' of 4.
The defaults, spelled out in full, are: The defaults, spelled out in full, are:
cinoptions=>s,e0,n0,f0,{0,}0,^0,L-1,:s,=s,l0,b0,gs,hs,N0,ps,ts,is,+s, cinoptions=>s,e0,n0,f0,{0,}0,^0,L-1,:s,=s,l0,b0,gs,hs,N0,E0,ps,ts,is,+s,
c3,C0,/0,(2s,us,U0,w0,W0,k0,m0,j0,J0,)20,*70,#0 c3,C0,/0,(2s,us,U0,w0,W0,k0,m0,j0,J0,)20,*70,#0
Vim puts a line in column 1 if: Vim puts a line in column 1 if:
@ -813,7 +828,7 @@ PHP indenting can be altered in several ways by modifying the values of some
global variables: global variables:
*php-comment* *PHP_autoformatcomment* *php-comment* *PHP_autoformatcomment*
To not enable auto-formating of comments by default (if you want to use your To not enable auto-formatting of comments by default (if you want to use your
own 'formatoptions'): > own 'formatoptions'): >
:let g:PHP_autoformatcomment = 0 :let g:PHP_autoformatcomment = 0

View File

@ -1,4 +1,4 @@
*index.txt* For Vim version 7.4. Last change: 2016 Jun 12 *index.txt* For Vim version 8.0. Last change: 2017 Feb 23
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -984,7 +984,7 @@ tag command action in Command-line editing mode ~
|c_CTRL-E| CTRL-E cursor to end of command-line |c_CTRL-E| CTRL-E cursor to end of command-line
|'cedit'| CTRL-F default value for 'cedit': opens the |'cedit'| CTRL-F default value for 'cedit': opens the
command-line window; otherwise not used command-line window; otherwise not used
CTRL-G not used |c_CTRL-G| CTRL-G next match when 'incsearch' is active
|c_<BS>| <BS> delete the character in front of the cursor |c_<BS>| <BS> delete the character in front of the cursor
|c_digraph| {char1} <BS> {char2} |c_digraph| {char1} <BS> {char2}
enter digraph when 'digraph' is on enter digraph when 'digraph' is on
@ -1002,12 +1002,14 @@ tag command action in Command-line editing mode ~
|c_CTRL-L| CTRL-L do completion on the pattern in front of the |c_CTRL-L| CTRL-L do completion on the pattern in front of the
cursor and insert the longest common part cursor and insert the longest common part
|c_<CR>| <CR> execute entered command |c_<CR>| <CR> execute entered command
|c_<CR>| CTRL-M same as <CR> |c_CTRL-M| CTRL-M same as <CR>
|c_CTRL-N| CTRL-N after using 'wildchar' with multiple matches: |c_CTRL-N| CTRL-N after using 'wildchar' with multiple matches:
go to next match, otherwise: same as <Down> go to next match, otherwise: recall older
command-line from history.
CTRL-O not used CTRL-O not used
|c_CTRL-P| CTRL-P after using 'wildchar' with multiple matches: |c_CTRL-P| CTRL-P after using 'wildchar' with multiple matches:
go to previous match, otherwise: same as <Up> go to previous match, otherwise: recall older
command-line from history.
|c_CTRL-Q| CTRL-Q same as CTRL-V, unless it's used for terminal |c_CTRL-Q| CTRL-Q same as CTRL-V, unless it's used for terminal
control flow control flow
|c_CTRL-R| CTRL-R {0-9a-z"%#*:= CTRL-F CTRL-P CTRL-W CTRL-A} |c_CTRL-R| CTRL-R {0-9a-z"%#*:= CTRL-F CTRL-P CTRL-W CTRL-A}
@ -1017,7 +1019,7 @@ tag command action in Command-line editing mode ~
insert the contents of a register or object insert the contents of a register or object
under the cursor literally under the cursor literally
CTRL-S (used for terminal control flow) CTRL-S (used for terminal control flow)
CTRL-T not used |c_CTRL-T| CTRL-T previous match when 'incsearch' is active
|c_CTRL-U| CTRL-U remove all characters |c_CTRL-U| CTRL-U remove all characters
|c_CTRL-V| CTRL-V insert next non-digit literally, insert three |c_CTRL-V| CTRL-V insert next non-digit literally, insert three
digit decimal number as a single byte. digit decimal number as a single byte.
@ -1026,7 +1028,7 @@ tag command action in Command-line editing mode ~
CTRL-Y copy (yank) modeless selection CTRL-Y copy (yank) modeless selection
CTRL-Z not used (reserved for suspend) CTRL-Z not used (reserved for suspend)
|c_<Esc>| <Esc> abandon command-line without executing it |c_<Esc>| <Esc> abandon command-line without executing it
|c_<Esc>| CTRL-[ same as <Esc> |c_CTRL-[| CTRL-[ same as <Esc>
|c_CTRL-\_CTRL-N| CTRL-\ CTRL-N go to Normal mode, abandon command-line |c_CTRL-\_CTRL-N| CTRL-\ CTRL-N go to Normal mode, abandon command-line
|c_CTRL-\_CTRL-G| CTRL-\ CTRL-G go to mode specified with 'insertmode', |c_CTRL-\_CTRL-G| CTRL-\ CTRL-G go to mode specified with 'insertmode',
abandon command-line abandon command-line
@ -1139,6 +1141,7 @@ tag command action ~
|:caddfile| :caddf[ile] add error message to current quickfix list |:caddfile| :caddf[ile] add error message to current quickfix list
|:call| :cal[l] call a function |:call| :cal[l] call a function
|:catch| :cat[ch] part of a :try command |:catch| :cat[ch] part of a :try command
|:cbottom| :cbo[ttom] scroll to the bottom of the quickfix window
|:cbuffer| :cb[uffer] parse error messages and jump to first error |:cbuffer| :cb[uffer] parse error messages and jump to first error
|:cc| :cc go to specific error |:cc| :cc go to specific error
|:cclose| :ccl[ose] close quickfix window |:cclose| :ccl[ose] close quickfix window
@ -1156,6 +1159,7 @@ tag command action ~
|:chdir| :chd[ir] change directory |:chdir| :chd[ir] change directory
|:checkpath| :che[ckpath] list included files |:checkpath| :che[ckpath] list included files
|:checktime| :checkt[ime] check timestamp of loaded buffers |:checktime| :checkt[ime] check timestamp of loaded buffers
|:chistory| :chi[story] list the error lists
|:clast| :cla[st] go to the specified error, default last one |:clast| :cla[st] go to the specified error, default last one
|:clearjumps| :cle[arjumps] clear the jump list |:clearjumps| :cle[arjumps] clear the jump list
|:clist| :cl[ist] list all errors |:clist| :cl[ist] list all errors
@ -1205,7 +1209,7 @@ tag command action ~
|:display| :di[splay] display registers |:display| :di[splay] display registers
|:djump| :dj[ump] jump to #define |:djump| :dj[ump] jump to #define
|:dl| :dl short for |:delete| with the 'l' flag |:dl| :dl short for |:delete| with the 'l' flag
|:dl| :del[ete]l short for |:delete| with the 'l' flag |:del| :del[ete]l short for |:delete| with the 'l' flag
|:dlist| :dli[st] list #defines |:dlist| :dli[st] list #defines
|:doautocmd| :do[autocmd] apply autocommands to current buffer |:doautocmd| :do[autocmd] apply autocommands to current buffer
|:doautoall| :doautoa[ll] apply autocommands for all loaded buffers |:doautoall| :doautoa[ll] apply autocommands for all loaded buffers
@ -1237,6 +1241,7 @@ tag command action ~
|:file| :f[ile] show or set the current file name |:file| :f[ile] show or set the current file name
|:files| :files list all files in the buffer list |:files| :files list all files in the buffer list
|:filetype| :filet[ype] switch file type detection on/off |:filetype| :filet[ype] switch file type detection on/off
|:filter| :filt[er] filter output of following command
|:find| :fin[d] find file in 'path' and edit it |:find| :fin[d] find file in 'path' and edit it
|:finally| :fina[lly] part of a :try command |:finally| :fina[lly] part of a :try command
|:finish| :fini[sh] quit sourcing a Vim script |:finish| :fini[sh] quit sourcing a Vim script
@ -1299,6 +1304,7 @@ tag command action ~
|:last| :la[st] go to the last file in the argument list |:last| :la[st] go to the last file in the argument list
|:language| :lan[guage] set the language (locale) |:language| :lan[guage] set the language (locale)
|:later| :lat[er] go to newer change, redo |:later| :lat[er] go to newer change, redo
|:lbottom| :lbo[ttom] scroll to the bottom of the location window
|:lbuffer| :lb[uffer] parse locations and jump to first location |:lbuffer| :lb[uffer] parse locations and jump to first location
|:lcd| :lc[d] change directory locally |:lcd| :lc[d] change directory locally
|:lchdir| :lch[dir] change directory locally |:lchdir| :lch[dir] change directory locally
@ -1318,6 +1324,7 @@ tag command action ~
|:lgrep| :lgr[ep] run 'grepprg' and jump to first match |:lgrep| :lgr[ep] run 'grepprg' and jump to first match
|:lgrepadd| :lgrepa[dd] like :grep, but append to current list |:lgrepadd| :lgrepa[dd] like :grep, but append to current list
|:lhelpgrep| :lh[elpgrep] like ":helpgrep" but uses location list |:lhelpgrep| :lh[elpgrep] like ":helpgrep" but uses location list
|:lhistory| :lhi[story] list the location lists
|:ll| :ll go to specific location |:ll| :ll go to specific location
|:llast| :lla[st] go to the specified location, default last one |:llast| :lla[st] go to the specified location, default last one
|:llist| :lli[st] list all locations |:llist| :lli[st] list all locations
@ -1435,6 +1442,10 @@ tag command action ~
|:python| :py[thon] execute Python command |:python| :py[thon] execute Python command
|:pydo| :pyd[o] execute Python command for each line |:pydo| :pyd[o] execute Python command for each line
|:pyfile| :pyf[ile] execute Python script file |:pyfile| :pyf[ile] execute Python script file
|:pyx| :pyx execute |python_x| command
|:pythonx| :pythonx same as :pyx
|:pyxdo| :pyxd[o] execute |python_x| command for each line
|:pyxfile| :pyxf[ile] execute |python_x| script file
|:quit| :q[uit] quit current window (when one window quit Vim) |:quit| :q[uit] quit current window (when one window quit Vim)
|:quitall| :quita[ll] quit Vim |:quitall| :quita[ll] quit Vim
|:qall| :qa[ll] quit Vim |:qall| :qa[ll] quit Vim

View File

@ -1,4 +1,4 @@
*insert.txt* For Vim version 7.4. Last change: 2016 Jan 31 *insert.txt* For Vim version 8.0. Last change: 2016 Jan 31
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -1103,7 +1103,7 @@ items:
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
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
items in the list are not used. You can mix string and Dictionary items in items in the list are not used. You can mix string and Dictionary items in
the returned list. the returned list.

View File

@ -1,4 +1,4 @@
*intro.txt* For Vim version 7.4. Last change: 2015 Jan 20 *intro.txt* For Vim version 8.0. Last change: 2016 Sep 24
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -96,21 +96,18 @@ mention that.
*mail-list* *maillist* *mail-list* *maillist*
There are several mailing lists for Vim: There are several mailing lists for Vim:
<vim@vim.org> <vim@vim.org> *vim-use* *vim_use*
For discussions about using existing versions of Vim: Useful mappings, For discussions about using existing versions of Vim: Useful mappings,
questions, answers, where to get a specific version, etc. There are questions, answers, where to get a specific version, etc. There are
quite a few people watching this list and answering questions, also quite a few people watching this list and answering questions, also
for beginners. Don't hesitate to ask your question here. for beginners. Don't hesitate to ask your question here.
<vim-dev@vim.org> *vim-dev* *vimdev* <vim-dev@vim.org> *vim-dev* *vim_dev* *vimdev*
For discussions about changing Vim: New features, porting, patches, For discussions about changing Vim: New features, porting, patches,
beta-test versions, etc. beta-test versions, etc.
<vim-announce@vim.org> *vim-announce* <vim-announce@vim.org> *vim-announce* *vim_announce*
Announcements about new versions of Vim; also for beta-test versions Announcements about new versions of Vim; also for beta-test versions
and ports to different systems. This is a read-only list. and ports to different systems. This is a read-only list.
<vim-multibyte@vim.org> *vim-multibyte* <vim-mac@vim.org> *vim-mac* *vim_mac*
For discussions about using and improving the multi-byte aspects of
Vim.
<vim-mac@vim.org> *vim-mac*
For discussions about using and improving the Macintosh version of For discussions about using and improving the Macintosh version of
Vim. Vim.
@ -135,10 +132,14 @@ http://www.vim.org/maillist.php
Bug reports: *bugs* *bug-reports* *bugreport.vim* Bug reports: *bugs* *bug-reports* *bugreport.vim*
Send bug reports to: Vim Developers <vim-dev@vim.org> There are two ways to report bugs, both work:
This is a maillist, you need to become a member first and many people will see 1. Send bug reports to: Vim Developers <vim-dev@vim.org>
the message. If you don't want that, e.g. because it is a security issue, This is a maillist, you need to become a member first and many people will
send it to <bugs@vim.org>, this only goes to the Vim maintainer (that's Bram). 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
(that's Bram).
2. Open issue on GitHub: https://github.com/vim/vim/issues
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
from the time that is spent on improving Vim! Always give a reproducible from the time that is spent on improving Vim! Always give a reproducible

View File

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

View File

@ -1,4 +1,4 @@
*mbyte.txt* For Vim version 7.4. Last change: 2013 May 18 *mbyte.txt* For Vim version 8.0. Last change: 2016 Jul 21
VIM REFERENCE MANUAL by Bram Moolenaar et al. VIM REFERENCE MANUAL by Bram Moolenaar et al.
@ -1010,6 +1010,7 @@ text, you can use the 'keymap' option. This will translate one or more
(English) characters to another (non-English) character. This only happens (English) characters to another (non-English) character. This only happens
when typing text, not when typing Vim commands. This avoids having to switch when typing text, not when typing Vim commands. This avoids having to switch
between two keyboard settings. between two keyboard settings.
{only available when compiled with the |+keymap| feature}
The value of the 'keymap' option specifies a keymap file to use. The name of The value of the 'keymap' option specifies a keymap file to use. The name of
this file is one of these two: this file is one of these two:

View File

@ -1,4 +1,4 @@
*message.txt* For Vim version 7.4. Last change: 2016 Apr 14 *message.txt* For Vim version 8.0. Last change: 2017 Jan 02
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -39,6 +39,7 @@ back.
Note: If the output has been stopped with "q" at the more prompt, it will only Note: If the output has been stopped with "q" at the more prompt, it will only
be displayed up to this point. be displayed up to this point.
The previous command output is cleared when another command produces output. The previous command output is cleared when another command produces output.
The "g<" output is not redirected.
If you are using translated messages, the first printed line tells who If you are using translated messages, the first printed line tells who
maintains the messages or the translations. You can use this to contact the maintains the messages or the translations. You can use this to contact the
@ -128,8 +129,9 @@ closed properly. Mostly harmless.
Command too recursive Command too recursive
This happens when an Ex command executes an Ex command that executes an Ex This happens when an Ex command executes an Ex command that executes an Ex
command, etc. This is only allowed 200 times. When it's more there probably command, etc. The limit is 200 or the value of 'maxfuncdepth', whatever is
is an endless loop. Probably a |:execute| or |:source| command is involved. larger. When it's more there probably is an endless loop. Probably a
|:execute| or |:source| command is involved.
*E254* > *E254* >
Cannot allocate color {name} Cannot allocate color {name}
@ -673,6 +675,12 @@ You must be using an awful lot of buffers. It's now possible that two buffers
have the same number, which causes various problems. You might want to exit have the same number, which causes various problems. You might want to exit
Vim and restart it. Vim and restart it.
*E931* >
Buffer cannot be registered
Out of memory or a duplicate buffer number. May happen after W14. Looking up
a buffer will not always work, better restart Vim.
*E296* *E297* > *E296* *E297* >
Seek error in swap file write Seek error in swap file write
Write error in swap file Write error in swap file

View File

@ -1,4 +1,4 @@
*mlang.txt* For Vim version 7.4. Last change: 2016 Jan 16 *mlang.txt* For Vim version 8.0. Last change: 2017 Mar 04
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -179,6 +179,7 @@ Send an e-mail to the Vim maintainer <maintainer@vim.org>.
special characters like "&" and "<Tab>" need to be special characters like "&" and "<Tab>" need to be
included. Spaces and dots need to be escaped with a included. Spaces and dots need to be escaped with a
backslash, just like in other |:menu| commands. backslash, just like in other |:menu| commands.
Case in {english} is ignored.
See the $VIMRUNTIME/lang directory for examples. See the $VIMRUNTIME/lang directory for examples.

View File

@ -1,4 +1,4 @@
*motion.txt* For Vim version 7.4. Last change: 2016 Jun 12 *motion.txt* For Vim version 8.0. Last change: 2016 Nov 24
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -586,7 +586,7 @@ i[ "inner [] block", select [count] '[' ']' blocks. This
When used in Visual mode it is made characterwise. When used in Visual mode it is made characterwise.
a) *v_a)* *a)* *a(* a) *v_a)* *a)* *a(*
a( *v_ab* *v_a(* *ab* a( *vab* *v_ab* *v_a(* *ab*
ab "a block", select [count] blocks, from "[count] [(" to ab "a block", select [count] blocks, from "[count] [(" to
the matching ')', including the '(' and ')' (see the matching ')', including the '(' and ')' (see
|[(|). Does not include white space outside of the |[(|). Does not include white space outside of the
@ -594,7 +594,7 @@ ab "a block", select [count] blocks, from "[count] [(" to
When used in Visual mode it is made characterwise. When used in Visual mode it is made characterwise.
i) *v_i)* *i)* *i(* i) *v_i)* *i)* *i(*
i( *v_ib* *v_i(* *ib* i( *vib* *v_ib* *v_i(* *ib*
ib "inner block", select [count] blocks, from "[count] [(" ib "inner block", select [count] blocks, from "[count] [("
to the matching ')', excluding the '(' and ')' (see to the matching ')', excluding the '(' and ')' (see
|[(|). |[(|).
@ -915,6 +915,7 @@ was made yet in the current file.
then the position can be near the end of what the then the position can be near the end of what the
command changed. For example when inserting a word, command changed. For example when inserting a word,
the position will be on the last character. the position will be on the last character.
To jump to older changes use |g;|.
{not in Vi} {not in Vi}
*'(* *`(* *'(* *`(*

View File

@ -1,4 +1,4 @@
*netbeans.txt* For Vim version 7.4. Last change: 2016 Feb 18 *netbeans.txt* For Vim version 8.0. Last change: 2016 Jul 15
VIM REFERENCE MANUAL by Gordon Prieur et al. VIM REFERENCE MANUAL by Gordon Prieur et al.
@ -59,6 +59,8 @@ Current projects using the NetBeans protocol of Vim are:
Check the specific project pages to see how to use Vim with these projects. Check the specific project pages to see how to use Vim with these projects.
An alternative is to use a channel, see |channel|.
In the rest of this help page, we will use the term "Vim Controller" to In the rest of this help page, we will use the term "Vim Controller" to
describe the program controlling Vim through the NetBeans socket interface. describe the program controlling Vim through the NetBeans socket interface.

View File

@ -1,4 +1,4 @@
*options.txt* For Vim version 7.4. Last change: 2016 Jun 19 *options.txt* For Vim version 8.0. Last change: 2017 Mar 05
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -10,7 +10,7 @@ Options *options*
2. Automatically setting options |auto-setting| 2. Automatically setting options |auto-setting|
3. Options summary |option-summary| 3. Options summary |option-summary|
For an overview of options see help.txt |option-list|. For an overview of options see quickref.txt |option-list|.
Vim has a number of internal variables and switches which can be set to Vim has a number of internal variables and switches which can be set to
achieve special effects. These options come in three forms: achieve special effects. These options come in three forms:
@ -242,7 +242,7 @@ opt+=val" the expansion is done before the adding or removing.
Handling of local options *local-options* Handling of local options *local-options*
Some of the options only apply to a window or buffer. Each window or buffer Some of the options only apply to a window or buffer. Each window or buffer
has its own copy of this option, thus can each have their own value. This has its own copy of this option, thus each can have its own value. This
allows you to set 'list' in one window but not in another. And set allows you to set 'list' in one window but not in another. And set
'shiftwidth' to 3 in one buffer and 4 in another. 'shiftwidth' to 3 in one buffer and 4 in another.
@ -261,10 +261,10 @@ global value, which is used for new buffers. With ":set" both the local and
global value is changed. With "setlocal" only the local value is changed, global value is changed. With "setlocal" only the local value is changed,
thus this value is not used when editing a new buffer. thus this value is not used when editing a new buffer.
When editing a buffer that has been edited before, the last used window When editing a buffer that has been edited before, the options from the window
options are used again. If this buffer has been edited in this window, the that was last closed are used again. If this buffer has been edited in this
values from back then are used. Otherwise the values from the window where window, the values from back then are used. Otherwise the values from the
the buffer was edited last are used. last closed window where the buffer was edited last are used.
It's possible to set a local window option specifically for a type of buffer. It's possible to set a local window option specifically for a type of buffer.
When you edit another buffer in the same window, you don't want to keep When you edit another buffer in the same window, you don't want to keep
@ -887,7 +887,8 @@ A jump table for the options with a short description can be found at |Q_op|.
done with ":syntax on". done with ":syntax on".
*'backspace'* *'bs'* *'backspace'* *'bs'*
'backspace' 'bs' string (default "") 'backspace' 'bs' string (default "", set to "indent,eol,start"
in |defaults.vim|)
global global
{not in Vi} {not in Vi}
Influences the working of <BS>, <Del>, CTRL-W and CTRL-U in Insert Influences the working of <BS>, <Del>, CTRL-W and CTRL-U in Insert
@ -1119,6 +1120,9 @@ A jump table for the options with a short description can be found at |Q_op|.
set bexpr=MyBalloonExpr() set bexpr=MyBalloonExpr()
set ballooneval set ballooneval
< <
Also see |balloon_show()|, can be used if the content of the balloon
is to be fetched asynchronously.
NOTE: The balloon is displayed only if the cursor is on a text NOTE: The balloon is displayed only if the cursor is on a text
character. If the result of evaluating 'balloonexpr' is not empty, character. If the result of evaluating 'balloonexpr' is not empty,
Vim does not try to send a message to an external debugger (Netbeans Vim does not try to send a message to an external debugger (Netbeans
@ -1427,8 +1431,8 @@ A jump table for the options with a short description can be found at |Q_op|.
Only non-printable keys are allowed. Only non-printable keys are allowed.
The key can be specified as a single character, but it is difficult to The key can be specified as a single character, but it is difficult to
type. The preferred way is to use the <> notation. Examples: > type. The preferred way is to use the <> notation. Examples: >
:set cedit=<C-Y> :exe "set cedit=\<C-Y>"
:set cedit=<Esc> :exe "set cedit=\<Esc>"
< |Nvi| also has this option, but it only uses the first character. < |Nvi| also has this option, but it only uses the first character.
See |cmdwin|. See |cmdwin|.
@ -1696,17 +1700,19 @@ A jump table for the options with a short description can be found at |Q_op|.
*'compatible'* *'cp'* *'nocompatible'* *'nocp'* *'compatible'* *'cp'* *'nocompatible'* *'nocp'*
'compatible' 'cp' boolean (default on, off when a |vimrc| or |gvimrc| 'compatible' 'cp' boolean (default on, off when a |vimrc| or |gvimrc|
file is found) file is found, reset in |defaults.vim|)
global global
{not in Vi} {not in Vi}
This option has the effect of making Vim either more Vi-compatible, or This option has the effect of making Vim either more Vi-compatible, or
make Vim behave in a more useful way. make Vim behave in a more useful way.
This is a special kind of option, because when it's set or reset, This is a special kind of option, because when it's set or reset,
other options are also changed as a side effect. CAREFUL: Setting or other options are also changed as a side effect.
resetting this option can have a lot of unexpected effects: Mappings NOTE: Setting or resetting this option can have a lot of unexpected
are interpreted in another way, undo behaves differently, etc. If you effects: Mappings are interpreted in another way, undo behaves
set this option in your vimrc file, you should probably put it at the differently, etc. If you set this option in your vimrc file, you
very start. should probably put it at the very start.
By default this option is on and the Vi defaults are used for the By default this option is on and the Vi defaults are used for the
options. This default was chosen for those people who want to use Vim options. This default was chosen for those people who want to use Vim
just like Vi, and don't even (want to) know about the 'compatible' just like Vi, and don't even (want to) know about the 'compatible'
@ -1721,69 +1727,98 @@ A jump table for the options with a short description can be found at |Q_op|.
|posix-compliance|. |posix-compliance|.
You can also set this option with the "-C" argument, and reset it with You can also set this option with the "-C" argument, and reset it with
"-N". See |-C| and |-N|. "-N". See |-C| and |-N|.
Switching this option off makes the Vim defaults be used for options See 'cpoptions' for more fine tuning of Vi compatibility.
that have a different Vi and Vim default value. See the options
marked with a '+' below. Other options are not modified.
At the moment this option is set, several other options will be set
or reset to make Vim as Vi-compatible as possible. See the table
below. This can be used if you want to revert to Vi compatible
editing.
See also 'cpoptions'.
option + set value effect ~ When this option is set, numerous other options are set to make Vim as
Vi-compatible as possible. When this option is unset, various options
are set to make Vim more useful. The table below lists all the
options affected.
The {?} column indicates when the options are affected:
+ Means that the option is set to the value given in {set value} when
'compatible' is set.
& Means that the option is set to the value given in {set value} when
'compatible' is set AND is set to its Vim default value when
'compatible' is unset.
- Means the option is NOT changed when setting 'compatible' but IS
set to its Vim default when 'compatible' is unset.
The {effect} column summarises the change when 'compatible' is set.
'allowrevins' off no CTRL-_ command option ? set value effect
'backupcopy' Unix: "yes" backup file is a copy
others: "auto" copy or rename backup file 'allowrevins' + off no CTRL-_ command
'backspace' "" normal backspace 'antialias' + off don't use antialiased fonts
'backup' off no backup file 'arabic' + off reset arabic-related options
'cindent' off no C code indentation 'arabicshape' + on correct character shapes
'cedit' + "" no key to open the |cmdwin| 'backspace' + "" normal backspace
'cpoptions' + (all flags) Vi-compatible flags 'backup' + off no backup file
'cscopetag' off don't use cscope for ":tag" 'backupcopy' & Unix: "yes" backup file is a copy
else: "auto" copy or rename backup file
'balloonexpr' + "" text to show in evaluation balloon
'breakindent' + off don't indent when wrapping lines
'cedit' - {unchanged} {set vim default only on resetting 'cp'}
'cindent' + off no C code indentation
'compatible' - {unchanged} {set vim default only on resetting 'cp'}
'copyindent' + off don't copy indent structure
'cpoptions' & (all flags) Vi-compatible flags
'cscopepathcomp'+ 0 don't show directories in tags list
'cscoperelative'+ off
'cscopetag' + off don't use cscope for ":tag"
'cscopetagorder' 0 see |cscopetagorder| 'cscopetagorder' 0 see |cscopetagorder|
'cscopeverbose' off see |cscopeverbose| 'cscopeverbose' + off see |cscopeverbose|
'digraph' off no digraphs 'delcombine' + off unicode: delete whole char combination
'esckeys' + off no <Esc>-keys in Insert mode 'digraph' + off no digraphs
'expandtab' off tabs not expanded to spaces 'esckeys' & off no <Esc>-keys in Insert mode
'fileformats' + "" no automatic file format detection, 'expandtab' + off tabs not expanded to spaces
'fileformats' & "" no automatic file format detection,
"dos,unix" except for DOS, Windows and OS/2 "dos,unix" except for DOS, Windows and OS/2
'formatoptions' + "vt" Vi compatible formatting 'formatexpr' + "" use 'formatprg' for auto-formatting
'gdefault' off no default 'g' flag for ":s" 'formatoptions' & "vt" Vi compatible formatting
'history' + 0 no commandline history 'gdefault' + off no default 'g' flag for ":s"
'hkmap' off no Hebrew keyboard mapping 'history' & 0 no commandline history
'hkmapp' off no phonetic Hebrew keyboard mapping 'hkmap' + off no Hebrew keyboard mapping
'hlsearch' off no highlighting of search matches 'hkmapp' + off no phonetic Hebrew keyboard mapping
'incsearch' off no incremental searching 'hlsearch' + off no highlighting of search matches
'indentexpr' "" no indenting by expression 'incsearch' + off no incremental searching
'insertmode' off do not start in Insert mode 'indentexpr' + "" no indenting by expression
'iskeyword' + "@,48-57,_" keywords contain alphanumeric 'insertmode' + off do not start in Insert mode
'iskeyword' & "@,48-57,_" keywords contain alphanumeric
characters and '_' characters and '_'
'joinspaces' on insert 2 spaces after period 'joinspaces' + on insert 2 spaces after period
'modeline' + off no modelines 'modeline' & off no modelines
'more' + off no pauses in listings 'more' & off no pauses in listings
'revins' off no reverse insert 'mzquantum' - {unchanged} {set vim default only on resetting 'cp'}
'ruler' off no ruler 'numberwidth' & 8 min number of columns for line number
'scrolljump' 1 no jump scroll 'preserveindent'+ off don't preserve current indent structure
'scrolloff' 0 no scroll offset when changing it
'shiftround' off indent not rounded to shiftwidth 'revins' + off no reverse insert
'shortmess' + "" no shortening of messages 'ruler' + off no ruler
'showcmd' + off command characters not shown 'scrolljump' + 1 no jump scroll
'showmode' + off current mode not shown 'scrolloff' + 0 no scroll offset
'smartcase' off no automatic ignore case switch 'shelltemp' - {unchanged} {set vim default only on resetting 'cp'}
'smartindent' off no smart indentation 'shiftround' + off indent not rounded to shiftwidth
'smarttab' off no smart tab size 'shortmess' & "" no shortening of messages
'softtabstop' 0 tabs are always 'tabstop' positions 'showcmd' & off command characters not shown
'startofline' on goto startofline with some commands 'showmode' & off current mode not shown
'tagrelative' + off tag file names are not relative 'sidescrolloff' + 0 cursor moves to edge of screen in scroll
'textauto' + off no automatic textmode detection 'smartcase' + off no automatic ignore case switch
'textwidth' 0 no automatic line wrap 'smartindent' + off no smart indentation
'tildeop' off tilde is not an operator 'smarttab' + off no smart tab size
'ttimeout' off no terminal timeout 'softtabstop' + 0 tabs are always 'tabstop' positions
'whichwrap' + "" left-right movements don't wrap 'startofline' + on goto startofline with some commands
'wildchar' + CTRL-E only when the current value is <Tab> 'tagcase' & "followic" 'ignorecase' when searching tags file
'tagrelative' & off tag file names are not relative
'termguicolors' + off don't use highlight-(guifg|guibg)
'textauto' & off no automatic textmode detection
'textwidth' + 0 no automatic line wrap
'tildeop' + off tilde is not an operator
'ttimeout' + off no terminal timeout
'undofile' + off don't use an undo file
'viminfo' - {unchanged} {set vim default only on resetting 'cp'}
'virtualedit' + "" cursor can only be placed on characters
'whichwrap' & "" left-right movements don't wrap
'wildchar' & CTRL-E only when the current value is <Tab>
use CTRL-E for cmdline completion use CTRL-E for cmdline completion
'writebackup' on or off depends on the |+writebackup| feature 'writebackup' + on or off depends on the |+writebackup| feature
*'complete'* *'cpt'* *E535* *'complete'* *'cpt'* *E535*
'complete' 'cpt' string (default: ".,w,b,u,t,i") 'complete' 'cpt' string (default: ".,w,b,u,t,i")
@ -2617,17 +2652,24 @@ A jump table for the options with a short description can be found at |Q_op|.
{Vi: directory to put temp file in, defaults to "/tmp"} {Vi: directory to put temp file in, defaults to "/tmp"}
*'display'* *'dy'* *'display'* *'dy'*
'display' 'dy' string (default "") 'display' 'dy' string (default "", set to "truncate" in
|defaults.vim|)
global global
{not in Vi} {not in Vi}
Change the way text is displayed. This is comma separated list of Change the way text is displayed. This is comma separated list of
flags: flags:
lastline When included, as much as possible of the last line lastline When included, as much as possible of the last line
in a window will be displayed. When not included, a in a window will be displayed. "@@@" is put in the
last line that doesn't fit is replaced with "@" lines. last columns of the last screen line to indicate the
rest of the line is not displayed.
truncate Like "lastline", but "@@@" is displayed in the first
column of the last screen line. Overrules "lastline".
uhex Show unprintable characters hexadecimal as <xx> uhex Show unprintable characters hexadecimal as <xx>
instead of using ^C and ~C. instead of using ^C and ~C.
When neither "lastline" nor "truncate" is included, a last line that
doesn't fit is replaced with "@" lines.
*'eadirection'* *'ead'* *'eadirection'* *'ead'*
'eadirection' 'ead' string (default "both") 'eadirection' 'ead' string (default "both")
global global
@ -2675,8 +2717,8 @@ A jump table for the options with a short description can be found at |Q_op|.
This option cannot be set from a |modeline|. It would most likely This option cannot be set from a |modeline|. It would most likely
corrupt the text. corrupt the text.
NOTE: For GTK+ 2 it is highly recommended to set 'encoding' to NOTE: For GTK+ 2 or later, it is highly recommended to set 'encoding'
"utf-8". Although care has been taken to allow different values of to "utf-8". Although care has been taken to allow different values of
'encoding', "utf-8" is the natural choice for the environment and 'encoding', "utf-8" is the natural choice for the environment and
avoids unnecessary conversion overhead. "utf-8" has not been made avoids unnecessary conversion overhead. "utf-8" has not been made
the default to prevent different behavior of the GUI and terminal the default to prevent different behavior of the GUI and terminal
@ -2848,10 +2890,17 @@ A jump table for the options with a short description can be found at |Q_op|.
global global
{not in Vi} {not in Vi}
Enables the reading of .vimrc, .exrc and .gvimrc in the current Enables the reading of .vimrc, .exrc and .gvimrc in the current
directory. If you switch this option on you should also consider directory.
setting the 'secure' option (see |initialization|). Using a local
.exrc, .vimrc or .gvimrc is a potential security leak, use with care! Setting this option is a potential security leak. E.g., consider
also see |.vimrc| and |gui-init|. unpacking a package or fetching files from github, a .vimrc in there
might be a trojan horse. BETTER NOT SET THIS OPTION!
Instead, define an autocommand in your .vimrc to set options for a
matching directory.
If you do switch this option on you should also consider setting the
'secure' option (see |initialization|).
Also see |.vimrc| and |gui-init|.
This option cannot be set from a |modeline| or in the |sandbox|, for This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons. security reasons.
@ -2867,6 +2916,8 @@ A jump table for the options with a short description can be found at |Q_op|.
done when writing the file. For reading see below. done when writing the file. For reading see below.
When 'fileencoding' is empty, the same value as 'encoding' will be When 'fileencoding' is empty, the same value as 'encoding' will be
used (no conversion when reading or writing a file). used (no conversion when reading or writing a file).
No error will be given when the value is set, only when it is used,
only when writing a file.
Conversion will also be done when 'encoding' and 'fileencoding' are Conversion will also be done when 'encoding' and 'fileencoding' are
both a Unicode encoding and 'fileencoding' is not utf-8. That's both a Unicode encoding and 'fileencoding' is not utf-8. That's
because internally Unicode is always stored as utf-8. because internally Unicode is always stored as utf-8.
@ -3401,7 +3452,7 @@ A jump table for the options with a short description can be found at |Q_op|.
*'formatprg'* *'fp'* *'formatprg'* *'fp'*
'formatprg' 'fp' string (default "") 'formatprg' 'fp' string (default "")
global global or local to buffer |global-local|
{not in Vi} {not in Vi}
The name of an external program that will be used to format the lines The name of an external program that will be used to format the lines
selected with the |gq| operator. The program must take the input on selected with the |gq| operator. The program must take the input on
@ -3580,6 +3631,14 @@ A jump table for the options with a short description can be found at |Q_op|.
On systems where 'guifontset' is supported (X11) and 'guifontset' is On systems where 'guifontset' is supported (X11) and 'guifontset' is
not empty, then 'guifont' is not used. not empty, then 'guifont' is not used.
Note: As to the GTK GUIs, no error is given against any invalid names,
and the first element of the list is always picked up and made use of.
This is because, instead of identifying a given name with a font, the
GTK GUIs use it to construct a pattern and try to look up a font which
best matches the pattern among available fonts, and this way, the
matching never fails. An invalid name doesn't matter because a number
of font properties other than name will do to get the matching done.
Spaces after a comma are ignored. To include a comma in a font name Spaces after a comma are ignored. To include a comma in a font name
precede it with a backslash. Setting an option requires an extra precede it with a backslash. Setting an option requires an extra
backslash before a space and a backslash. See also backslash before a space and a backslash. See also
@ -3602,7 +3661,7 @@ A jump table for the options with a short description can be found at |Q_op|.
The font name depends on the GUI used. See |setting-guifont| for a The font name depends on the GUI used. See |setting-guifont| for a
way to set 'guifont' for various systems. way to set 'guifont' for various systems.
For the GTK+ 2 GUI the font name looks like this: > For the GTK+ 2 and 3 GUIs, the font name looks like this: >
:set guifont=Andale\ Mono\ 11 :set guifont=Andale\ Mono\ 11
< That's all. XLFDs are not used. For Chinese this is reported to work < That's all. XLFDs are not used. For Chinese this is reported to work
well: > well: >
@ -3611,13 +3670,15 @@ A jump table for the options with a short description can be found at |Q_op|.
set guifontwide=Microsoft\ Yahei\ 12,WenQuanYi\ Zen\ Hei\ 12 set guifontwide=Microsoft\ Yahei\ 12,WenQuanYi\ Zen\ Hei\ 12
endif endif
< <
(Replace gui_gtk2 with gui_gtk3 for the GTK+ 3 GUI)
For Mac OSX you can use something like this: > For Mac OSX you can use something like this: >
:set guifont=Monaco:h10 :set guifont=Monaco:h10
< Also see 'macatsui', it can help fix display problems. < Also see 'macatsui', it can help fix display problems.
*E236* *E236*
Note that the fonts must be mono-spaced (all characters have the same Note that the fonts must be mono-spaced (all characters have the same
width). An exception is GTK 2: all fonts are accepted, but width). An exception is GTK: all fonts are accepted, but mono-spaced
mono-spaced fonts look best. fonts look best.
To preview a font on X11, you might be able to use the "xfontsel" To preview a font on X11, you might be able to use the "xfontsel"
program. The "xlsfonts" program gives a list of all available fonts. program. The "xlsfonts" program gives a list of all available fonts.
@ -3638,7 +3699,7 @@ A jump table for the options with a short description can be found at |Q_op|.
qXX - quality XX. Valid quality names are: PROOF, DRAFT, qXX - quality XX. Valid quality names are: PROOF, DRAFT,
ANTIALIASED, NONANTIALIASED, CLEARTYPE, DEFAULT. ANTIALIASED, NONANTIALIASED, CLEARTYPE, DEFAULT.
Normally you would use "qDEFAULT". Normally you would use "qDEFAULT".
Some quality values isn't supported in legacy OSs. Some quality values are not supported in legacy OSs.
Use a ':' to separate the options. Use a ':' to separate the options.
- A '_' can be used in the place of a space, so you don't need to use - A '_' can be used in the place of a space, so you don't need to use
@ -3655,7 +3716,7 @@ A jump table for the options with a short description can be found at |Q_op|.
{not in Vi} {not in Vi}
{only available when compiled with GUI enabled and {only available when compiled with GUI enabled and
with the |+xfontset| feature} with the |+xfontset| feature}
{not available in the GTK+ 2 GUI} {not available in the GTK+ GUI}
When not empty, specifies two (or more) fonts to be used. The first When not empty, specifies two (or more) fonts to be used. The first
one for normal English, the second one for your special language. See one for normal English, the second one for your special language. See
|xfontset|. |xfontset|.
@ -3684,7 +3745,7 @@ A jump table for the options with a short description can be found at |Q_op|.
Note: The size of these fonts must be exactly twice as wide as the one Note: The size of these fonts must be exactly twice as wide as the one
specified with 'guifont' and the same height. specified with 'guifont' and the same height.
All GUI versions but GTK+ 2: All GUI versions but GTK+:
'guifontwide' is only used when 'encoding' is set to "utf-8" and 'guifontwide' is only used when 'encoding' is set to "utf-8" and
'guifontset' is empty or invalid. 'guifontset' is empty or invalid.
@ -3692,7 +3753,7 @@ A jump table for the options with a short description can be found at |Q_op|.
'guifontwide' is empty Vim will attempt to find a matching 'guifontwide' is empty Vim will attempt to find a matching
double-width font and set 'guifontwide' to it. double-width font and set 'guifontwide' to it.
GTK+ 2 GUI only: *guifontwide_gtk2* GTK+ GUI only: *guifontwide_gtk*
If set and valid, 'guifontwide' is always used for double width If set and valid, 'guifontwide' is always used for double width
characters, even if 'encoding' is not set to "utf-8". characters, even if 'encoding' is not set to "utf-8".
@ -3719,8 +3780,10 @@ A jump table for the options with a short description can be found at |Q_op|.
screen. screen.
*'guioptions'* *'go'* *'guioptions'* *'go'*
'guioptions' 'go' string (default "egmrLtT" (MS-Windows), 'guioptions' 'go' string (default "egmrLtT" (MS-Windows, "t" is
"aegimrLtT" (GTK, Motif and Athena)) removed in |defaults.vim|),
"aegimrLtT" (GTK, Motif and Athena),
)
global global
{not in Vi} {not in Vi}
{only available when compiled with GUI enabled} {only available when compiled with GUI enabled}
@ -3853,6 +3916,8 @@ A jump table for the options with a short description can be found at |Q_op|.
The format of this option is like that of 'statusline'. The format of this option is like that of 'statusline'.
'guitabtooltip' is used for the tooltip, see below. 'guitabtooltip' is used for the tooltip, see below.
The expression will be evaluated in the |sandbox| when set from a
modeline, see |sandbox-option|.
Only used when the GUI tab pages line is displayed. 'e' must be Only used when the GUI tab pages line is displayed. 'e' must be
present in 'guioptions'. For the non-GUI tab pages line 'tabline' is present in 'guioptions'. For the non-GUI tab pages line 'tabline' is
@ -3935,17 +4000,16 @@ A jump table for the options with a short description can be found at |Q_op|.
*'highlight'* *'hl'* *'highlight'* *'hl'*
'highlight' 'hl' string (default (as a single string): 'highlight' 'hl' string (default (as a single string):
"8:SpecialKey,@:NonText,d:Directory, "8:SpecialKey,~:EndOfBuffer,@:NonText,
e:ErrorMsg,i:IncSearch,l:Search,m:MoreMsg, d:Directory,e:ErrorMsg,i:IncSearch,
M:ModeMsg,n:LineNr,N:CursorLineNr, l:Search,m:MoreMsg,M:ModeMsg,n:LineNr,
r:Question,s:StatusLine,S:StatusLineNC, N:CursorLineNr,r:Question,s:StatusLine,
c:VertSplit, t:Title,v:Visual, S:StatusLineNC,c:VertSplit,t:Title,
w:WarningMsg,W:WildMenu, v:Visual,w:WarningMsg,W:WildMenu,f:Folded,
f:Folded,F:FoldColumn,A:DiffAdd, F:FoldColumn,A:DiffAdd,C:DiffChange,
C:DiffChange,D:DiffDelete,T:DiffText, D:DiffDelete,T:DiffText,>:SignColumn,
>:SignColumn,B:SpellBad,P:SpellCap, B:SpellBad,P:SpellCap,R:SpellRare,
R:SpellRare,L:SpellLocal,-:Conceal, L:SpellLocal,-:Conceal,+:Pmenu,=:PmenuSel,
+:Pmenu,=:PmenuSel,
x:PmenuSbar,X:PmenuThumb") x:PmenuSbar,X:PmenuThumb")
global global
{not in Vi} {not in Vi}
@ -3954,7 +4018,8 @@ A jump table for the options with a short description can be found at |Q_op|.
first character in a pair gives the occasion, the second the mode to first character in a pair gives the occasion, the second the mode to
use for that occasion. The occasions are: use for that occasion. The occasions are:
|hl-SpecialKey| 8 Meta and special keys listed with ":map" |hl-SpecialKey| 8 Meta and special keys listed with ":map"
|hl-NonText| @ '~' and '@' at the end of the window and |hl-EndOfBuffer| ~ lines after the last line in the buffer
|hl-NonText| @ '@' at the end of the window and
characters from 'showbreak' characters from 'showbreak'
|hl-Directory| d directories in CTRL-D listing and other special |hl-Directory| d directories in CTRL-D listing and other special
things in listings things in listings
@ -4042,7 +4107,8 @@ A jump table for the options with a short description can be found at |Q_op|.
NOTE: This option is reset when 'compatible' is set. NOTE: This option is reset when 'compatible' is set.
*'history'* *'hi'* *'history'* *'hi'*
'history' 'hi' number (Vim default: 50, Vi default: 0) 'history' 'hi' number (Vim default: 50, Vi default: 0,
set to 200 in |defaults.vim|)
global global
{not in Vi} {not in Vi}
A history of ":" commands, and a history of previous search patterns A history of ":" commands, and a history of previous search patterns
@ -4294,7 +4360,8 @@ A jump table for the options with a short description can be found at |Q_op|.
evaluating 'includeexpr' |textlock|. evaluating 'includeexpr' |textlock|.
*'incsearch'* *'is'* *'noincsearch'* *'nois'* *'incsearch'* *'is'* *'noincsearch'* *'nois'*
'incsearch' 'is' boolean (default off) 'incsearch' 'is' boolean (default off, set in |defaults.vim| if the
+reltime feature is supported)
global global
{not in Vi} {not in Vi}
{not available when compiled without the {not available when compiled without the
@ -4307,6 +4374,8 @@ A jump table for the options with a short description can be found at |Q_op|.
original position when no match is found and when pressing <Esc>. You original position when no match is found and when pressing <Esc>. You
still need to finish the search command with <Enter> to move the still need to finish the search command with <Enter> to move the
cursor to the match. cursor to the match.
You can use the CTRL-G and CTRL-T keys to move to the next and
previous match. |c_CTRL-G| |c_CTRL-T|
When compiled with the |+reltime| feature Vim only searches for about When compiled with the |+reltime| feature Vim only searches for about
half a second. With a complicated pattern and/or a lot of text the half a second. With a complicated pattern and/or a lot of text the
match may not be found. This is to avoid that Vim hangs while you match may not be found. This is to avoid that Vim hangs while you
@ -4391,7 +4460,7 @@ A jump table for the options with a short description can be found at |Q_op|.
if you want to use Vim as a modeless editor. Used for |evim|. if you want to use Vim as a modeless editor. Used for |evim|.
These Insert mode commands will be useful: These Insert mode commands will be useful:
- Use the cursor keys to move around. - Use the cursor keys to move around.
- Use CTRL-O to execute one Normal mode command |i_CTRL-O|). When - Use CTRL-O to execute one Normal mode command |i_CTRL-O|. When
this is a mapping, it is executed as if 'insertmode' was off. this is a mapping, it is executed as if 'insertmode' was off.
Normal mode remains active until the mapping is finished. Normal mode remains active until the mapping is finished.
- Use CTRL-L to execute a number of Normal mode commands, then use - Use CTRL-L to execute a number of Normal mode commands, then use
@ -4620,7 +4689,7 @@ A jump table for the options with a short description can be found at |Q_op|.
be able to execute Normal mode commands. be able to execute Normal mode commands.
This is the opposite of the 'keymap' option, where characters are This is the opposite of the 'keymap' option, where characters are
mapped in Insert mode. mapped in Insert mode.
Also consider setting 'langnoremap' to avoid 'langmap' applies to Also consider resetting 'langremap' to avoid 'langmap' applies to
characters resulting from a mapping. characters resulting from a mapping.
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.
@ -4678,15 +4747,25 @@ A jump table for the options with a short description can be found at |Q_op|.
< Warning: This deletes all menus that you defined yourself! < Warning: This deletes all menus that you defined yourself!
*'langnoremap'* *'lnr'* *'nolangnoremap'* *'nolnr'* *'langnoremap'* *'lnr'* *'nolangnoremap'* *'nolnr'*
'langnoremap' 'lnr' boolean (default off) 'langnoremap' 'lnr' boolean (default off, set in |defaults.vim|)
global global
{not in Vi} {not in Vi}
{only available when compiled with the |+langmap| {only available when compiled with the |+langmap|
feature} feature}
When on, setting 'langmap' does not apply to characters resulting from This is just like 'langremap' but with the value inverted. It only
exists for backwards compatibility. When setting 'langremap' then
'langnoremap' is set to the inverted value, and the other way around.
*'langremap'* *'lrm'* *'nolangremap'* *'nolrm'*
'langremap' 'lrm' boolean (default on, reset in |defaults.vim|)
global
{not in Vi}
{only available when compiled with the |+langmap|
feature}
When off, setting 'langmap' does not apply to characters resulting from
a mapping. This basically means, if you noticed that setting a mapping. This basically means, if you noticed that setting
'langmap' disables some of your mappings, try setting this option. 'langmap' disables some of your mappings, try resetting this option.
This option defaults to off for backwards compatibility. Set it on if This option defaults to on for backwards compatibility. Set it off if
that works for you to avoid mappings to break. that works for you to avoid mappings to break.
*'laststatus'* *'ls'* *'laststatus'* *'ls'*
@ -4739,7 +4818,7 @@ A jump table for the options with a short description can be found at |Q_op|.
use this command to get the tallest window possible: > use this command to get the tallest window possible: >
:set lines=999 :set lines=999
< Minimum value is 2, maximum value is 1000. < Minimum value is 2, maximum value is 1000.
If you get less lines than expected, check the 'guiheadroom' option. If you get fewer lines than expected, check the 'guiheadroom' option.
When you set this option and Vim is unable to change the physical When you set this option and Vim is unable to change the physical
number of lines of the display, the display may be messed up. number of lines of the display, the display may be messed up.
@ -4891,10 +4970,11 @@ A jump table for the options with a short description can be found at |Q_op|.
global global
Changes the special characters that can be used in search patterns. Changes the special characters that can be used in search patterns.
See |pattern|. See |pattern|.
NOTE: To avoid portability problems with using patterns, always keep WARNING: Switching this option off most likely breaks plugins! That
this option at the default "on". Only switch it off when working with is because many patterns assume it's on and will fail when it's off.
old Vi scripts. In any other situation write patterns that work when Only switch it off when working with old Vi scripts. In any other
'magic' is on. Include "\M" when you want to |/\M|. situation write patterns that work when 'magic' is on. Include "\M"
when you want to |/\M|.
*'makeef'* *'mef'* *'makeef'* *'mef'*
'makeef' 'mef' string (default: "") 'makeef' 'mef' string (default: "")
@ -4914,6 +4994,25 @@ A jump table for the options with a short description can be found at |Q_op|.
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.
*'makeencoding'* *'menc'*
'makeencoding' 'menc' string (default "")
global or local to buffer |global-local|
{only available when compiled with the |+multi_byte|
feature}
{not in Vi}
Encoding used for reading the output of external commands. When empty,
encoding is not converted.
This is used for `:make`, `:lmake`, `:grep`, `:lgrep`, `:grepadd`,
`:lgrepadd`, `:cfile`, `:cgetfile`, `:caddfile`, `:lfile`, `:lgetfile`,
and `:laddfile`.
This would be mostly useful when you use MS-Windows and set 'encoding'
to "utf-8". If |+iconv| is enabled and GNU libiconv is used, setting
'makeencoding' to "char" has the same effect as setting to the system
locale encoding. Example: >
:set encoding=utf-8
:set makeencoding=char " system locale is used
<
*'makeprg'* *'mp'* *'makeprg'* *'mp'*
'makeprg' 'mp' string (default "make", VMS: "MMS") 'makeprg' 'mp' string (default "make", VMS: "MMS")
global or local to buffer |global-local| global or local to buffer |global-local|
@ -4986,6 +5085,8 @@ A jump table for the options with a short description can be found at |Q_op|.
catches endless recursion. When using a recursive function with catches endless recursion. When using a recursive function with
more depth, set 'maxfuncdepth' to a bigger number. But this will use more depth, set 'maxfuncdepth' to a bigger number. But this will use
more memory, there is the danger of failing when memory is exhausted. more memory, there is the danger of failing when memory is exhausted.
Increasing this limit above 200 also changes the maximum for Ex
command resursion, see |E169|.
See also |:function|. See also |:function|.
*'maxmapdepth'* *'mmd'* *E223* *'maxmapdepth'* *'mmd'* *E223*
@ -5107,7 +5208,7 @@ A jump table for the options with a short description can be found at |Q_op|.
{not in Vi} *E21* {not in Vi} *E21*
When off the buffer contents cannot be changed. The 'fileformat' and When off the buffer contents cannot be changed. The 'fileformat' and
'fileencoding' options also can't be changed. 'fileencoding' options also can't be changed.
Can be reset with the |-M| command line argument. Can be reset on startup with the |-M| command line argument.
*'modified'* *'mod'* *'nomodified'* *'nomod'* *'modified'* *'mod'* *'nomodified'* *'nomod'*
'modified' 'mod' boolean (default off) 'modified' 'mod' boolean (default off)
@ -5144,7 +5245,8 @@ A jump table for the options with a short description can be found at |Q_op|.
set and to the Vim default value when 'compatible' is reset. set and to the Vim default value when 'compatible' is reset.
*'mouse'* *E538* *'mouse'* *E538*
'mouse' string (default "", "a" for GUI, MS-DOS and Win32) 'mouse' string (default "", "a" for GUI, MS-DOS and Win32,
set to "a" in |defaults.vim|)
global global
{not in Vi} {not in Vi}
Enable the use of the mouse. Only works for certain terminals Enable the use of the mouse. Only works for certain terminals
@ -5310,7 +5412,8 @@ A jump table for the options with a short description can be found at |Q_op|.
Negative or zero value means no thread scheduling. Negative or zero value means no thread scheduling.
*'nrformats'* *'nf'* *'nrformats'* *'nf'*
'nrformats' 'nf' string (default "bin,octal,hex") 'nrformats' 'nf' string (default "bin,octal,hex",
set to "bin,hex" in |defaults.vim|)
local to buffer local to buffer
{not in Vi} {not in Vi}
This defines what bases Vim will consider for numbers when using the This defines what bases Vim will consider for numbers when using the
@ -5664,6 +5767,8 @@ A jump table for the options with a short description can be found at |Q_op|.
and |+postscript| features} and |+postscript| features}
Expression used to print the PostScript produced with |:hardcopy|. Expression used to print the PostScript produced with |:hardcopy|.
See |pexpr-option|. See |pexpr-option|.
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
*'printfont'* *'pfn'* *'printfont'* *'pfn'*
'printfont' 'pfn' string (default "courier") 'printfont' 'pfn' string (default "courier")
@ -5745,6 +5850,34 @@ A jump table for the options with a short description can be found at |Q_op|.
Specifies the name of the Python 3 shared library. The default is Specifies the name of the Python 3 shared library. The default is
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
security reasons.
*'pyxversion'* *'pyx'*
'pyxversion' 'pyx' number (default depends on the build)
global
{not in Vi}
{only available when compiled with the |+python| or
the |+python3| feature}
Specifies the python version used for pyx* functions and commands
|python_x|. The default value is as follows:
Compiled with Default ~
|+python| and |+python3| 0
only |+python| 2
only |+python3| 3
Available values are 0, 2 and 3.
If 'pyxversion' is 0, it is set to 2 or 3 after the first execution of
any python2/3 commands or functions. E.g. `:py` sets to 2, and `:py3`
sets to 3. `:pyx` sets it to 3 if Python 3 is available, otherwise sets
to 2 if Python 2 is available.
See also: |has-pythonx|
If Vim is compiled with only |+python| or |+python3| setting
'pyxversion' has no effect. The pyx* functions and commands are
always the same as the compiled version.
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.
@ -5768,6 +5901,7 @@ A jump table for the options with a short description can be found at |Q_op|.
buffer, unless the 'Z' flag is in 'cpoptions'. buffer, unless the 'Z' flag is in 'cpoptions'.
{not in Vi:} When using the ":view" command the 'readonly' option is {not in Vi:} When using the ":view" command the 'readonly' option is
set for the newly edited buffer. set for the newly edited buffer.
See 'modifiable' for disallowing changes to the buffer.
*'redrawtime'* *'rdt'* *'redrawtime'* *'rdt'*
'redrawtime' 'rdt' number (default 2000) 'redrawtime' 'rdt' number (default 2000)
@ -5980,7 +6114,7 @@ A jump table for the options with a short description can be found at |Q_op|.
security reasons. security reasons.
*'ruler'* *'ru'* *'noruler'* *'noru'* *'ruler'* *'ru'* *'noruler'* *'noru'*
'ruler' 'ru' boolean (default off) 'ruler' 'ru' boolean (default off, set in |defaults.vim|)
global global
{not in Vi} {not in Vi}
{not available when compiled without the {not available when compiled without the
@ -6088,7 +6222,9 @@ A jump table for the options with a short description can be found at |Q_op|.
personal preferences to overrule or add to the distributed defaults personal preferences to overrule or add to the distributed defaults
or system-wide settings (rarely needed). or system-wide settings (rarely needed).
More entries are added when using |packages|. More entries are added when using |packages|. If it gets very long
then `:set rtp` will be truncated, use `:echo &rtp` to see the full
string.
Note that, unlike 'path', no wildcards like "**" are allowed. Normal Note that, unlike 'path', no wildcards like "**" are allowed. Normal
wildcards are allowed, but can significantly slow down searching for wildcards are allowed, but can significantly slow down searching for
@ -6149,7 +6285,7 @@ A jump table for the options with a short description can be found at |Q_op|.
NOTE: This option is set to 1 when 'compatible' is set. NOTE: This option is set to 1 when 'compatible' is set.
*'scrolloff'* *'so'* *'scrolloff'* *'so'*
'scrolloff' 'so' number (default 0) 'scrolloff' 'so' number (default 0, set to 5 in |defaults.vim|)
global global
{not in Vi} {not in Vi}
Minimal number of screen lines to keep above and below the cursor. Minimal number of screen lines to keep above and below the cursor.
@ -6231,6 +6367,8 @@ A jump table for the options with a short description can be found at |Q_op|.
"inclusive" means that the last character of the selection is included "inclusive" means that the last character of the selection is included
in an operation. For example, when "x" is used to delete the in an operation. For example, when "x" is used to delete the
selection. selection.
When "old" is used and 'virtualedit' allows the cursor to move past
the end of line the line break still isn't included.
Note that when "exclusive" is used and selecting from the end Note that when "exclusive" is used and selecting from the end
backwards, you cannot include the last character of a line, when backwards, you cannot include the last character of a line, when
starting in Normal mode and 'virtualedit' empty. starting in Normal mode and 'virtualedit' empty.
@ -6455,6 +6593,8 @@ A jump table for the options with a short description can be found at |Q_op|.
The |FilterReadPre|, |FilterReadPost| and |FilterWritePre|, The |FilterReadPre|, |FilterReadPost| and |FilterWritePre|,
|FilterWritePost| autocommands event are not triggered when |FilterWritePost| autocommands event are not triggered when
'shelltemp' is off. 'shelltemp' is off.
The `system()` function does not respect this option and always uses
temp files.
*'shelltype'* *'st'* *'shelltype'* *'st'*
'shelltype' 'st' number (default 0) 'shelltype' 'st' number (default 0)
@ -6611,8 +6751,8 @@ A jump table for the options with a short description can be found at |Q_op|.
"n" flag to 'cpoptions'. "n" flag to 'cpoptions'.
*'showcmd'* *'sc'* *'noshowcmd'* *'nosc'* *'showcmd'* *'sc'* *'noshowcmd'* *'nosc'*
'showcmd' 'sc' boolean (Vim default: on, off for Unix, Vi default: 'showcmd' 'sc' boolean (Vim default: on, off for Unix,
off) Vi default: off, set in |defaults.vim|)
global global
{not in Vi} {not in Vi}
{not available when compiled without the {not available when compiled without the
@ -6717,10 +6857,21 @@ A jump table for the options with a short description can be found at |Q_op|.
Example: Try this together with 'sidescroll' and 'listchars' as Example: Try this together with 'sidescroll' and 'listchars' as
in the following example to never allow the cursor to move in the following example to never allow the cursor to move
onto the "extends" character: onto the "extends" character: >
:set nowrap sidescroll=1 listchars=extends:>,precedes:< :set nowrap sidescroll=1 listchars=extends:>,precedes:<
:set sidescrolloff=1 :set sidescrolloff=1
<
*'signcolumn'* *'scl'*
'signcolumn' 'scl' string (default "auto")
local to window
{not in Vi}
{not available when compiled without the |+signs|
feature}
Whether or not to draw the signcolumn. Valid values are:
"auto" only when there is a sign to display
"no" never
"yes" always
*'smartcase'* *'scs'* *'nosmartcase'* *'noscs'* *'smartcase'* *'scs'* *'nosmartcase'* *'noscs'*
@ -6948,7 +7099,7 @@ A jump table for the options with a short description can be found at |Q_op|.
word. The expression must evaluate to a List of word. The expression must evaluate to a List of
Lists, each with a suggestion and a score. Lists, each with a suggestion and a score.
Example: Example:
[['the', 33], ['that', 44]] [['the', 33], ['that', 44]] ~
Set 'verbose' and use |z=| to see the scores that the Set 'verbose' and use |z=| to see the scores that the
internal methods use. A lower score is better. internal methods use. A lower score is better.
This may invoke |spellsuggest()| if you temporarily This may invoke |spellsuggest()| if you temporarily
@ -7390,6 +7541,9 @@ A jump table for the options with a short description can be found at |Q_op|.
By default, tag searches are case-sensitive. Case is ignored when By default, tag searches are case-sensitive. Case is ignored when
'ignorecase' is set and 'tagcase' is "followic", or when 'tagcase' is 'ignorecase' is set and 'tagcase' is "followic", or when 'tagcase' is
"ignore". "ignore".
Also when 'tagcase' is "followscs" and 'smartcase' is set, or
'tagcase' is "smart", and the pattern contains only lowercase
characters.
When 'tagbsearch' is off, tags searching is slower when a full match When 'tagbsearch' is off, tags searching is slower when a full match
exists, but faster when no full match exists. Tags in unsorted tags exists, but faster when no full match exists. Tags in unsorted tags
@ -7408,8 +7562,10 @@ A jump table for the options with a short description can be found at |Q_op|.
This option specifies how case is handled when searching the tags This option specifies how case is handled when searching the tags
file: file:
followic Follow the 'ignorecase' option followic Follow the 'ignorecase' option
followscs Follow the 'smartcase' and 'ignorecase' options
ignore Ignore case ignore Ignore case
match Match case match Match case
smart Ignore case unless an upper case letter is used
*'taglength'* *'tl'* *'taglength'* *'tl'*
'taglength' 'tl' number (default 0) 'taglength' 'tl' number (default 0)
@ -7514,7 +7670,7 @@ A jump table for the options with a short description can be found at |Q_op|.
For further details see |arabic.txt|. For further details see |arabic.txt|.
*'termencoding'* *'tenc'* *'termencoding'* *'tenc'*
'termencoding' 'tenc' string (default ""; with GTK+ 2 GUI: "utf-8"; with 'termencoding' 'tenc' string (default ""; with GTK+ GUI: "utf-8"; with
Macintosh GUI: "macroman") Macintosh GUI: "macroman")
global global
{only available when compiled with the |+multi_byte| {only available when compiled with the |+multi_byte|
@ -7526,7 +7682,7 @@ A jump table for the options with a short description can be found at |Q_op|.
display). Except for the Mac when 'macatsui' is off, then display). Except for the Mac when 'macatsui' is off, then
'termencoding' should be "macroman". 'termencoding' should be "macroman".
*E617* *E617*
Note: This does not apply to the GTK+ 2 GUI. After the GUI has been Note: This does not apply to the GTK+ GUI. After the GUI has been
successfully initialized, 'termencoding' is forcibly set to "utf-8". successfully initialized, 'termencoding' is forcibly set to "utf-8".
Any attempts to set a different value will be rejected, and an error Any attempts to set a different value will be rejected, and an error
message is shown. message is shown.
@ -7631,7 +7787,7 @@ A jump table for the options with a short description can be found at |Q_op|.
'timeout' 'to' boolean (default on) 'timeout' 'to' boolean (default on)
global global
*'ttimeout'* *'nottimeout'* *'ttimeout'* *'nottimeout'*
'ttimeout' boolean (default off) 'ttimeout' boolean (default off, set in |defaults.vim|))
global global
{not in Vi} {not in Vi}
These two options together determine the behavior when part of a These two options together determine the behavior when part of a
@ -7666,7 +7822,7 @@ A jump table for the options with a short description can be found at |Q_op|.
global global
{not in all versions of Vi} {not in all versions of Vi}
*'ttimeoutlen'* *'ttm'* *'ttimeoutlen'* *'ttm'*
'ttimeoutlen' 'ttm' number (default -1) 'ttimeoutlen' 'ttm' number (default -1, set to 100 in |defaults.vim|))
global global
{not in Vi} {not in Vi}
The time in milliseconds that is waited for a key code or mapped key The time in milliseconds that is waited for a key code or mapped key
@ -7761,7 +7917,7 @@ A jump table for the options with a short description can be found at |Q_op|.
Amiga console, Win32 console, all GUI versions and terminals with a Amiga console, Win32 console, all GUI versions and terminals with a
non-empty 't_ts' option). non-empty 't_ts' option).
When Vim was compiled with HAVE_X11 defined, the original title will When Vim was compiled with HAVE_X11 defined, the original title will
be restored if possible |X11|. be restored if possible, see |X11|.
When this option contains printf-style '%' items, they will be When this option contains printf-style '%' items, they will be
expanded according to the rules used for 'statusline'. expanded according to the rules used for 'statusline'.
Example: > Example: >
@ -7809,7 +7965,7 @@ A jump table for the options with a short description can be found at |Q_op|.
'toolbariconsize' 'tbis' string (default "small") 'toolbariconsize' 'tbis' string (default "small")
global global
{not in Vi} {not in Vi}
{only in the GTK+ 2 GUI} {only in the GTK+ GUI}
Controls the size of toolbar icons. The possible values are: Controls the size of toolbar icons. The possible values are:
tiny Use tiny icons. tiny Use tiny icons.
small Use small icons (default). small Use small icons (default).
@ -7909,8 +8065,9 @@ A jump table for the options with a short description can be found at |Q_op|.
"xterm", "xterm2", "urxvt" or "sgr" (because dec mouse codes conflict "xterm", "xterm2", "urxvt" or "sgr" (because dec mouse codes conflict
with them). with them).
This option is automatically set to "xterm", when the 'term' option is This option is automatically set to "xterm", when the 'term' option is
set to a name that starts with "xterm", "mlterm", or "screen", and set to a name that starts with "xterm", "mlterm", "screen", "tmux",
'ttymouse' is not set already. "st" (full match only), "st-" or "stterm", and 'ttymouse' is not set
already.
Additionally, if vim is compiled with the |+termresponse| feature and Additionally, if vim is compiled with the |+termresponse| feature and
|t_RV| is set to the escape sequence to request the xterm version |t_RV| is set to the escape sequence to request the xterm version
number, more intelligent detection process runs. number, more intelligent detection process runs.
@ -8180,10 +8337,10 @@ A jump table for the options with a short description can be found at |Q_op|.
has been used since the last search command. has been used since the last search command.
*viminfo-n* *viminfo-n*
n Name of the viminfo file. The name must immediately follow n Name of the viminfo file. The name must immediately follow
the 'n'. Must be the last one! If the "-i" argument was the 'n'. Must be at the end of the option! If the "-i"
given when starting Vim, that file name overrides the one argument was given when starting Vim, that file name overrides
given here with 'viminfo'. Environment variables are expanded the one given here with 'viminfo'. Environment variables are
when opening the file, not when setting the option. expanded when opening the file, not when setting the option.
*viminfo-r* *viminfo-r*
r Removable media. The argument is a string (up to the next r Removable media. The argument is a string (up to the next
','). This parameter can be given several times. Each ','). This parameter can be given several times. Each
@ -8369,7 +8526,7 @@ A jump table for the options with a short description can be found at |Q_op|.
*'wildmenu'* *'wmnu'* *'nowildmenu'* *'nowmnu'* *'wildmenu'* *'wmnu'* *'nowildmenu'* *'nowmnu'*
'wildmenu' 'wmnu' boolean (default off) 'wildmenu' 'wmnu' boolean (default off, set in |defaults.vim|)
global global
{not in Vi} {not in Vi}
{not available if compiled without the |+wildmenu| {not available if compiled without the |+wildmenu|

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