Compare commits

...

991 Commits

Author SHA1 Message Date
b050c64186 updated for version 7.4.112
Problem:    The defaults for 'directory' and 'backupdir' on MS-Windows do not
            include a directory that exists.
Solution:   Use $TEMP.
2013-12-07 14:32:09 +01:00
c2401d62e0 updated for version 7.4.111
Problem:    Memory leak in Python OptionsAssItem. (Ken Takata)
Solution:   Call Py_XDECREF() where needed. (ZyX)
2013-12-07 14:28:43 +01:00
ba2d44f338 updated for version 7.4.110
Problem:    "gUgn" cannot be repeeated. (Dimitar Dimitrov)
Solution:   Don't put "gn" in a different order in the redo buffer.  Restore
            'wrapscan' when the pattern isn't found. (Christian Wellenbrock)
2013-11-28 19:27:30 +01:00
b95186fd36 updated for version 7.4.109
Problem:    ColorScheme autocommand matches with the current buffer name.
Solution:   Match with the colorscheme name. (Christian Brabandt)
2013-11-28 18:53:52 +01:00
34b466edfe updated for version 7.4.108
Problem:    "zG" and "zW" leave temp files around on MS-Windows.
Solution:   Delete the temp files when exiting. (Ken Takata)
2013-11-28 17:41:46 +01:00
9fee7d4729 updated for version 7.4.107
Problem:    Python: When vim.eval() encounters a Vim error, a try/catch in the
            Python code doesn't catch it. (Yggdroot Chen)
Solution:   Throw exceptions on errors in vim.eval(). (ZyX)
2013-11-28 17:04:43 +01:00
e88a5f3a2c updated for version 7.4.106
Problem:    Can't build with Ruby using Cygwin.
Solution:   Fix library name in makefile. (Steve Hall)
2013-11-28 16:32:38 +01:00
dff54ac7e8 updated for version 7.4.105
Problem:    Completing a tag pattern may give an error for invalid pattern.
Solution:   Suppress the error, just return no matches.
2013-11-28 14:36:33 +01:00
174a848b67 updated for version 7.4.104
Problem:    ":help s/\_" reports an internal error. (John Beckett)
Solution:   Check for NUL and invalid character classes.
2013-11-28 14:20:17 +01:00
3678208477 Updated runtime files. 2013-11-28 13:53:34 +01:00
c62a644eaf updated for version 7.4.103
Problem:    Dos installer uses an old way to escape spaces in the diff
            command.
Solution:   Adjust the quoting to the new default shellxquote. (Ben Fritz)
2013-11-21 18:13:37 +01:00
ace8d8ee2f updated for version 7.4.102
Problem:    Crash when interrupting "z=".
Solution:   Add safety check for word length. (Christian Brabandt, Dominique
            Pelle)
2013-11-21 17:42:31 +01:00
438ee5bf60 updated for version 7.4.101
Problem:    Using \1 in pattern goes one line too far. (Bohr Shaw, John Little)
Solution:   Only advance the match end for the matched characters in the last
            line.
2013-11-21 17:13:00 +01:00
272fb58236 updated for version 7.4.100
Problem:    NFA regexp doesn't handle backreference correctly. (Ryuichi
            Hayashida, Urtica Dioica)
Solution:   Always add NFA_SKIP, also when it already exists at the start
            position.
2013-11-21 16:03:40 +01:00
cafaa8a950 updated for version 7.4.099
Problem:    Append in blockwise Visual mode with "$" is wrong.
Solution:   After "$" don't use the code that checks if the cursor was moved.
            (Hirohito Higashi, Ken Takata)
2013-11-21 14:40:04 +01:00
d07c6e1e82 updated for version 7.4.098
Problem:    When using ":'<,'>del" errors may be given for the visual line
            numbers being out of range.
Solution:   Reset Visual mode in ":del". (Lech Lorens)
2013-11-21 14:21:40 +01:00
1e42f7ac16 updated for version 7.4.097
Problem:    Unexpected behavior change related to 'virtualedit'. (Ingo Karkat)
Solution:   Update the valid cursor position. (Christian Brabandt)
2013-11-21 13:24:41 +01:00
ffa2220950 updated for version 7.4.096
Problem:    Can't change directory to an UNC path.
Solution:   Use win32_getattrs() in mch_getperm(). (Christian Brabandt)
2013-11-21 12:34:11 +01:00
49b10273f0 updated for version 7.4.095
Problem:    Regexp for LuaJIT version doesn't work on BSD.
Solution:   Use "*" instead of "\+" and "\?". (Ozaki)
2013-11-21 12:17:51 +01:00
49b6a57d19 updated for version 7.4.094
Problem:    Configure may not find that -lint is needed for gettext().
Solution:   Check for gettext() with empty $LIBS.  (Thomas De Schampheleire)
2013-11-17 20:32:54 +01:00
9421bdc2cd updated for version 7.4.093
Problem:    Configure can't use LuaJIT on ubuntu 12.04.
Solution:   Adjust the configure regexp that locates the version number.
            (Charles Strahan)
2013-11-17 20:17:12 +01:00
4b60a6cdb3 Update runtime files. 2013-11-14 05:48:46 +01:00
2593e037c9 updated for version 7.4.092
Problem:    Can't build small version.
Solution:   Add #ifdef where the b_cjk flag is used. (Ken Takata)
2013-11-14 03:54:07 +01:00
e874744e94 updated for version 7.4.091
Problem:    Missing semicolon.
Solution:   Add the semicolon.
2013-11-12 18:09:29 +01:00
8f5610df73 updated for version 7.4.090
Problem:    Win32: When a directory name contains an exclamation mark,
            completion doesn't complete the contents of the directory.
Solution:   Escape the exclamation mark. (Jan Stocker)
2013-11-12 05:28:26 +01:00
0671de335f updated for version 7.4.089
Problem:    When editing a file in a directory mounted through sshfs Vim
            doesn't set the security context on a renamed file.
Solution:   Add mch_copy_sec() to vim_rename(). (Peter Backes)
2013-11-12 05:12:03 +01:00
cc63c647ee updated for version 7.4.088
Problem:    When spell checking is enabled Asian characters are always marked
            as error.
Solution:   When 'spelllang' contains "cjk" do not mark Asian characters as
            error. (Ken Takata)
2013-11-12 04:44:01 +01:00
efe06f4dd8 updated for version 7.4.087
Problem:    Compiler warning on 64 bit Windows systems.
Solution:   Fix type cast. (Mike Williams)
2013-11-11 23:17:39 +01:00
0f8de8dfb2 updated for version 7.4.086
Problem:    Skipping over an expression when not evaluating it does not work
            properly for dict members.
Solution:   Skip over unrecognized expression. (ZyX)
2013-11-11 04:25:53 +01:00
3f75e422be updated for version 7.4.085
Problem:    When inserting text in Visual block mode and moving the cursor the
            wrong text gets repeated in other lines.
Solution:   Use the '[ mark to find the start of the actually inserted text.
            (Christian Brabandt)
2013-11-11 01:29:22 +01:00
d6b8a5253b updated for version 7.4.084
Problem:    Python: interrupt not being properly discarded. (Yggdroot Chen)
Solution:   Discard interrupt in VimTryEnd. (ZyX)
2013-11-11 01:05:48 +01:00
a939e43440 updated for version 7.4.083
Problem:    It's hard to avoid adding a used pattern to the search history.
Solution:   Add the ":keeppatterns" modifier. (Christian Brabandt)
2013-11-09 05:30:26 +01:00
8e69b4a319 Updated runtime files. 2013-11-09 03:41:58 +01:00
45d3b1454c updated for version 7.4.082
Problem:    Using "gf" in a changed buffer suggests adding "!", which is not
            possible. (Tim Chase)
Solution:   Pass a flag to check_changed() wether adding ! make sense.
2013-11-09 03:31:51 +01:00
815135e408 updated for version 7.4.081
Problem:    Wrong logic when ANALYZE is "yes".
Solution:   Use or instead of and. (KF Leong)
2013-11-09 02:32:18 +01:00
817a8801d7 updated for version 7.4.080
Problem:    Missing documentation for v:hlsearch.
Solution:   Include the right file in the patch.
2013-11-09 01:44:43 +01:00
8050efa07d updated for version 7.4.079
Problem:    A script cannot detect whether 'hlsearch' highlighting is actually
            displayed.
Solution:   Add the "v:hlsearch" variable. (ZyX)
2013-11-08 04:30:20 +01:00
e5878f4be9 updated for version 7.4.078
Problem:    MSVC 2013 is not supported.
Solution:   Recognize and support MSVC 2013. (Ed Brown)
2013-11-08 03:15:47 +01:00
03e228a623 updated for version 7.4.077
Problem:    DOS installer creates shortcut without a path, resulting in the
            current directory to be C:\Windows\system32.
Solution:   Use environment variables.
2013-11-07 04:49:27 +01:00
fcea03ddd3 updated for version 7.4.076
Problem:    "cgn" does not wrap around the end of the file. (Dimitrov
            Dimitrov)
Solution:   Restore 'wrapscan' earlier. (Christian Brabandt)
2013-11-07 04:46:48 +01:00
c1c023ecfc updated for version 7.4.075
Problem:    Locally setting 'undolevels' is not tested.
Solution:   Add a test. (Christian Brabandt)
2013-11-07 03:26:06 +01:00
aa88732efd updated for version 7.4.074
Problem:    When undo'ing all changes and creating a new change the undo
            structure is incorrect. (Christian Brabandt)
Solution:   When deleting the branch starting at the old header, delete the
            whole branch, not just the first entry.
2013-11-07 03:04:11 +01:00
f5a2fd880a updated for version 7.4.073
Problem:    Setting undolevels for one buffer changes undo in another.
Solution:   Make 'undolevels' a global-local option. (Christian Brabandt)
2013-11-06 05:26:15 +01:00
4c1e626103 updated for version 7.4.072
Problem:    Crash when using Insert mode completion.
Solution:   Avoid going past the end of pum_array. (idea by Fransisco Lopes)
2013-11-06 04:04:33 +01:00
84dbb62fca updated for version 7.4.071
Problem:    Passing limits around too often.
Solution:   Use limits from buffer.
2013-11-06 04:01:36 +01:00
dce7c91de9 updated for version 7.4.070
Problem:    Can't compile with tiny features. (Tony Mechelynck)
Solution:   Add #ifdef.
2013-11-05 17:40:52 +01:00
6bcbcc59be updated for version 7.4.069
Problem:    Cannot right shift lines starting with #.
Solution:   Allow the right shift when 'cino' contains #N with N > 0.
            (Christian Brabandt)
            Refactor parsing 'cino', store the values in the buffer.
2013-11-05 07:13:41 +01:00
0958e0fbe7 updated for version 7.4.068
Problem:    Cannot build Vim on Mac with non-Apple compilers.
Solution:   Remove the -no-cpp-precomp flag. (Misty De Meo)
2013-11-04 04:57:50 +01:00
f332a656c3 updated for version 7.4.067
Problem:    After inserting comment leader, CTRL-\ CTRL-O does move the
            cursor. (Wiktor Ruben)
Solution:   Avoid moving the cursor. (Christian Brabandt)
2013-11-04 04:20:33 +01:00
69c3500f96 updated for version 7.4.066
Problem:    MS-Windows: When there is a colon in the file name (sub-stream
            feature) the swap file name is wrong.
Solution:   Change the colon to "%". (Yasuhiro Matsumoto)
2013-11-04 02:54:12 +01:00
332a2cadcd updated for version 7.4.065
Problem:    When recording, the character typed at the hit-enter prompt is
            recorded twice. (Urtica Dioica)
Solution:   Avoid recording the character twice. (Christian Brabandt)
2013-11-04 02:01:01 +01:00
d9820538bd updated for version 7.4.064
Problem:    When replacing a character in Visual block mode, entering a CR
            does not cause a repeated line break.
Solution:   Recognize the situation and repeat the line break. (Christian
            Brabandt)
2013-11-04 01:41:17 +01:00
ba2d7ffc4b updated for version 7.4.063
Problem:    Crash when using invalid key in Python dictionary.
Solution:   Check for object to be NULL.  Add tests. (ZyX)
2013-11-04 00:34:53 +01:00
d5d015d457 Update runtime files. 2013-11-03 21:14:31 +01:00
18e5469b6e updated for version 7.4.062
Problem:    Configure check for AvailabilityMacros.h is wrong.
Solution:   Use AC_CHECK_HEADERS().
2013-11-03 20:26:31 +01:00
39766a7595 updated for version 7.4.061
Problem:    Availability macros configure check in wrong place.
Solution:   Also check when not using Darwin. Remove version check.
2013-11-03 00:41:00 +01:00
0b400087d0 updated for version 7.4.060
Problem:    Declaration has wrong return type for PyObject_SetAttrString().
Solution:   Use int instead of PyObject. (Andreas Schwab)
2013-11-03 00:28:25 +01:00
9db1293317 updated for version 7.4.059
Problem:    set_last_cursor() may encounter w_buffer being NULL.  (Matt
            Mkaniaris)
Solution:   Check for NULL.
2013-11-03 00:20:52 +01:00
92c2db8be6 updated for version 7.4.058
Problem:    Warnings on 64 bit Windows.
Solution:   Add type casts. (Mike Williams)
2013-11-02 23:59:35 +01:00
0ffbbf9ea8 updated for version 7.4.057
Problem:    byteidx() does not work for composing characters.
Solution:   Add byteidxcomp().
2013-11-02 23:29:26 +01:00
4cc95d1495 updated for version 7.4.056
Problem:    Mac: Compilation problem with OS X 10.9 Mavericks.
Solution:   Include AvailabilityMacros.h when available. (Kazunobu Kuriyama)
2013-11-02 21:49:32 +01:00
2b1b53f5d9 updated for version 7.4.055
Problem:    Mac: Where availability macros are defined depends on the system.
Solution:   Add a configure check. (Felix Bünemann)
2013-11-02 21:04:38 +01:00
1180822670 updated for version 7.4.054
Problem:    Reading past end of the 'stl' string.
Solution:   Don't increment pointer when already at the NUL. (Christian
            Brabandt)
2013-11-02 04:39:38 +01:00
b69a714bb7 updated for version 7.4.053
Problem:    Test75 has a wrong header. (ZyX)
Solution:   Fix the text and remove leading ".
2013-11-02 04:19:34 +01:00
2c019c8696 updated for version 7.4.052
Problem:    With 'fo' set to "a2" inserting a space in the first column may
            cause the cursor to jump to the previous line.
Solution:   Handle the case when there is no comment leader properly. (Tor
            Perkins)  Also fix that cursor is in the wrong place when spaces
            get replaced with a Tab.
2013-10-06 17:46:56 +02:00
a951e35478 updated for version 7.4.051
Problem:    Syntax highlighting a Yaml file causes a crash. (Blake Preston)
Solution:   Copy the pim structure before calling addstate() to avoid it
            becoming invalide when the state list is reallocated.
2013-10-06 15:46:11 +02:00
b133208080 Runtime file updates. 2013-10-06 14:22:40 +02:00
4c7cb6b884 updated for version 7.4.050
Problem:    "gn" selects too much for the pattern "\d" when there are two
            lines with a single digit. (Ryan Carney)
Solution:   Adjust the logic of is_one_char(). (Christian Brabandt)
2013-10-02 21:55:02 +02:00
3eead7c227 updated for version 7.4.049
Problem:    In Ex mode, when line numbers are enabled the substitute prompt is
            wrong.
Solution:   Adjust for the line number size. (Benoit Pierre)
2013-10-02 18:43:06 +02:00
0c6ccfdb62 updated for version 7.4.048
Problem:    Recent clang version complains about -fno-strength-reduce.
Solution:   Add a configure check for the clang version. (Kazunobu Kuriyama)
2013-10-02 18:23:07 +02:00
35a7c681bc updated for version 7.4.047
Problem:    When using input() in a function invoked by a mapping it doesn't
            work.
Solution:   Temporarily reset ex_normal_busy. (Yasuhiro Matsumoto)
2013-10-02 16:46:28 +02:00
0b4db6b6e5 updated for version 7.4.046
Problem:    Can't use Tcl 8.6.
Solution:   Change how Tcl_FindExecutable is called. (Jan Nijtmans)
2013-10-02 14:25:44 +02:00
ceb84af027 updated for version 7.4.045
Problem:    substitute() does not work properly when the pattern starts with
            "\ze".
Solution:   Detect an empty match. (Christian Brabandt)
2013-09-29 21:11:05 +02:00
8962fda1da updated for version 7.4.044
Problem:    Can't build with old MSVC. (Wang Shoulin)
Solution:   Define OPEN_OH_ARGTYPE instead of using intptr_t directly.
2013-09-29 19:05:21 +02:00
386dcde30d updated for version 7.4.043
Problem:    VMS can't handle long function names.
Solution:   Shorten may_req_ambiguous_character_width. (Samuel Ferencik)
2013-09-29 16:27:47 +02:00
7a18fdc8a4 updated for version 7.4.042
Problem:    When using ":setlocal" for 'spell' and 'spellang' then :spelldump
            doesn't work. (Dimitar Dimitrov)
Solution:   Copy the option variables to the new window used to show the dump.
            (Christian Brabandt)
2013-09-29 13:38:29 +02:00
033d8888e8 updated for version 7.4.041
Problem:    Visual selection does not remain after being copied over. (Axel
            Bender)
Solution:   Move when VIsual_active is reset. (Christian Brabandt)
2013-09-25 23:24:57 +02:00
cca7413456 updated for version 7.4.040
Problem:    Valgrind error on exit when a script-local variable holds a
            reference to the scope of another script.
Solution:   First clear all variables, then free the scopes. (ZyX)
2013-09-25 21:00:28 +02:00
2ee95f7d13 updated for version 7.4.039
Problem:    MS-Windows: MSCV10 and earlier can't handle symlinks to a
            directory properly.
Solution:   Add stat_symlink_aware() and wstat_symlink_aware(). (Ken Takata)
2013-09-25 19:13:38 +02:00
134bf07ca0 updated for version 7.4.038
Problem:    Using "zw" and "zg" when 'spell' is off give a confusing error
            message. (Gary Johnson)
Solution:   Ignore the error when locating the word.  Explicitly mention what
            word was added. (Christian Brabandt)
2013-09-25 18:54:24 +02:00
f211884fa1 updated for version 7.4.037
Problem:    Using "\ze" in a sub-pattern does not result in the end of the
            match to be set. (Axel Bender)
Solution:   Copy the end of match position when a recursive match was
            successful.
2013-09-25 18:16:38 +02:00
699c12076d updated for version 7.4.036
Problem:    NFA engine does not capture group correctly when using \@>. (ZyX)
Solution:   Copy submatches before doing the recursive match.
2013-09-25 16:41:54 +02:00
18441ae2cd Fix problem with 'iskeyword' in CSS syntax. 2013-09-24 23:30:38 +02:00
268b55b5fb updated for version 7.4.035
Problem:    MS-Windows: The mouse pointer flickers when going from command
            line mode to Normal mode.
Solution:   Check for WM_NCMOUSEMOVE. (Ken Takata)
2013-09-22 15:43:37 +02:00
ec11aef914 updated for version 7.4.034
Problem:    Using "p" in Visual block mode only changes the first line.
Solution:   Repeat the put in all text in the block. (Christian Brabandt)
2013-09-22 15:23:44 +02:00
6848c8b561 updated for version 7.4.033
Problem:    When the terminal has only 20 lines test 92 and 93 overwrite the
            input file.
Solution:   Explicitly write test.out. Check that the terminal is large enough
            to run the tests.  (Hirohito Higashi)
2013-09-22 15:03:38 +02:00
baca7f705b Update runtime files. Add support for J. 2013-09-22 14:42:24 +02:00
595cad2ea1 updated for version 7.4.032
Problem:    NFA engine does not match the NUL character. (Jonathon Merz)
Solution:   Ues 0x0a instead of NUL. (Christian Brabandt)
2013-09-22 13:57:24 +02:00
00462ffb7d updated for version 7.4.031
Problem:    ":diffoff!" resets options even when 'diff' is not set. (Charles
            Cooper)
Solution:   Only resets related options in a window where 'diff' is set.
2013-09-20 20:13:53 +02:00
9952c102dd updated for version 7.4.030
Problem:    The -mno-cygwin argument is no longer supported by Cygwin.
Solution:   Remove the arguments. (Steve Hall)
2013-09-19 20:49:04 +02:00
745c6eb29b Add files missing from 7.4.028. 2013-09-19 17:04:30 +02:00
917789fdf7 updated for version 7.4.029
Problem:    An error in a pattern is reported twice.
Solution:   Remove the retry with the backtracking engine, it won't work.
2013-09-19 17:04:01 +02:00
e6a2fa6573 updated for version 7.4.028
Problem:    Equivalence classes are not working for multi-byte characters.
Solution:   Copy the rules from the old to the new regexp engine. Add a test
            to check both engines.
2013-09-19 17:00:20 +02:00
dd40734800 updated for version 7.4.027
Problem:    Another valgrind error when using CTRL-X CTRL-F at the start of
            the line. (Dominique Pelle)
Solution:   Don't call mb_ptr_back() at the start of the line.  Add a test.
2013-09-08 20:00:48 +02:00
95235e64d8 updated for version 7.4.026
Problem:    Clang warning for int shift overflow.
Solution:   Use unsigned and cast back to int. (Dominique Pelle)
2013-09-08 16:07:07 +02:00
0300e465aa updated for version 7.4.025
Problem:    Reading before start of a string.
Solution:   Do not call mb_ptr_back() at start of a string. (Dominique Pelle)
2013-09-08 16:03:45 +02:00
3b26239341 updated for version 7.4.024
Problem:    When root edits a file the undo file is owned by root while the
            edited file may be owned by another user, which is not allowed.
            (cac2s)
Solution:   Accept an undo file owned by the current user.
2013-09-08 15:40:49 +02:00
3b7ac49e26 updated for version 7.4.023
Problem:    Compiler warning on 64 bit windows.
Solution:   Add type cast. (Mike Williams)
2013-09-07 16:35:42 +02:00
7cba6c0636 Updated runtime files. 2013-09-05 22:13:31 +02:00
bec9c20884 updated for version 7.4.022
Problem:    Deadlock while exiting, because of allocating memory.
Solution:   Do not use gettext() in deathtrap(). (James McCoy)
2013-09-05 21:41:39 +02:00
9be4481892 updated for version 7.4.021
Problem:    NFA regexp: Using \ze in one branch which doesn't match may cause
            end of another branch to be wrong. (William Fugh)
Solution:   Set end position if it wasn't set yet.
2013-09-05 21:15:44 +02:00
78c93e4b6a updated for version 7.4.020
Problem:    NFA engine matches too much with \@>. (John McGowan)
Solution:   When a whole pattern match is found stop searching.
2013-09-05 16:05:36 +02:00
00b764aa41 updated for version 7.4.019
Problem:    MS-Windows: File name completion doesn't work properly with
            Chinese characters. (Yue Wu)
Solution:   Take care of multi-byte characters when looking for the start of
            the file name. (Ken Takata)
2013-09-05 13:50:53 +02:00
f0d9e00537 updated for version 7.4.018
Problem:    When completing item becomes unselected. (Shougo Matsu)
Solution:   Revert patch 7.3.1269.
2013-09-05 12:49:52 +02:00
966d71c852 updated for version 7.4.017
Problem:    ":help !!" does not find the "!!" tag in the help file. (Ben
            Fritz)
Solution:   When reading the start of the tags file do parse lines that are
            not header lines.
2013-09-05 12:06:33 +02:00
65f04f67f1 updated for version 7.4.016
Problem:    MS-Windows: File name completion doesn't work properly with
            Chinese characters. (Yue Wu)
Solution:   Add fname_casew(). (Ken Takata)
2013-08-30 17:29:16 +02:00
4dee1bb0db updated for version 7.4.015
Problem:    MS-Windows: Detecting node type does not work for multi-byte
            characters.
Solution:   Use wide character function when needed. (Ken Takata)
2013-08-30 17:11:33 +02:00
4e4f529792 updated for version 7.4.014
Problem:    MS-Windows: check for writing to device does not work.
Solution:   Fix #ifdefs. (Ken Takata)
2013-08-30 17:07:01 +02:00
d2a203bb58 updated for version 7.4.013
Problem:    File name buffer too small for utf-8.
Solution:   Use character count instead of byte count. (Ken Takata)
2013-08-30 16:51:18 +02:00
604729e75b updated for version 7.4.012
Problem:    MS-Windows: resolving shortcut does not work properly with
            multi-byte characters.
Solution:   Use wide system functions. (Ken Takata)
2013-08-30 16:44:19 +02:00
b5ef5e1c21 updated for version 7.4.011
Problem:    Cannot find out if "acl" and "xpm" features are supported.
Solution:   Add "acl" and "xpm" to the list of features. (Ken Takata)
2013-08-30 16:35:44 +02:00
195ef0ccb2 updated for version 7.4.010
Problem:    Crash with invalid argument to mkdir().
Solution:   Check for empty string. (lcd47)
2013-08-30 16:00:08 +02:00
cf81aefd9c updated for version 7.4.009
Problem:    When a file was not decrypted (yet), writing it may destroy the
            contents.
Solution:   Mark the file as readonly until decryption was done. (Christian
            Brabandt)
2013-08-25 17:46:08 +02:00
41f1205fef updated for version 7.4.008
Problem:    New regexp engine can't be interrupted.
Solution:   Check for CTRL-C pressed. (Yasuhiro Matsumoto)
2013-08-25 17:01:42 +02:00
74cd624fde updated for version 7.4.007
Problem:    Creating a preview window on startup leaves the screen layout in a
            messed up state. (Marius Gedminas)
Solution:   Don't change firstwin. (Christian Brabandt)
2013-08-22 14:14:27 +02:00
67652c2935 updated for version 7.4.006
Problem:    mkdir("foo/bar/", "p") gives an error message. (David Barnett)
Solution:   Remove the trailing slash. (lcd)
2013-08-22 12:06:55 +02:00
c56c459075 updated for version 7.4.005
Problem:    Using "vaB" while 'virtualedit' is set selects the wrong area.
            (Dimitar Dimitrov)
Solution:   Reset coladd when finding a match.
2013-08-14 17:45:29 +02:00
c93df6b075 updated for version 7.4.004
Problem:    When closing a window fails ":bwipe" may hang.
Solution:   Let win_close() return FAIL and break out of the loop.
2013-08-14 17:11:20 +02:00
ebefd997bb updated for version 7.4.003
Problem:    Memory access error in Ruby syntax highlighting. (Christopher Chow)
Solution:   Refresh stale pointer. (James McCoy)
2013-08-14 14:18:40 +02:00
3f0df06c28 updated for version 7.4.002
Problem:    Pattern with two alternative look-behind matches does not match.
            (Amadeus Demarzi)
Solution:   When comparing PIMs also compare their state ID to see if they are
            different.
2013-08-14 13:34:25 +02:00
1cfad52a03 updated for version 7.4.001
Problem:    Character classes such as [a-z] to not react to 'ignorecase'.
            Breaks man page highlighting. (Mario Grgic)
Solution:   Add separate items for classes that react to 'ignorecase'.  Clean
            up logic handling character classes.  Add more tests.
2013-08-14 12:06:49 +02:00
3b1db36689 release version 7.4 2013-08-10 15:00:24 +02:00
b7512b79ce updated for version 7.4b.022
Problem:    Not waiting for a character when the tick count overflows.
Solution:   Subtract the unsigned numbers and cast to int. (Ken Takata)
2013-08-10 12:45:09 +02:00
b09129684b updated for version 7.4b.021
Problem:    Pressing "u" after an external command results in multiple
            press-enter messages. (glts)
Solution:   Don't call hit_return_msg() when we have K_IGNORE. (Christian
            Brabandt)
2013-08-09 20:38:26 +02:00
f17968b54a updated for version 7.4b.020
Problem:    "g~ap" changes first character of next paragraph. (Manuel Ortega)
Solution:   Avoid subtracting (0 - 1) from todo.  (Mike Williams)
2013-08-09 19:48:40 +02:00
86f931e1c3 updated for version 7.4b.019
Problem:    Tabline is not updated properly when closing a tab on Win32.
Solution:   Only reduce flickering when adding a tab. (Ken Takata)
2013-08-07 21:13:23 +02:00
a95d823554 updated for version 7.4b.018
Problem:    Win32: Dialog can still be too big.
Solution:   Move the check for height further down. (Andrei Olsen)
2013-08-07 15:27:11 +02:00
d82db6046c updated for version 7.4b.017
Problem:    ":he \^x" gives a strange error message. (glts)
Solution:   Do not translate \^x to \_CTRL-x.
2013-08-07 15:24:41 +02:00
026a445c40 updated for version 7.4b.016
Problem:    Ruby detection fails on Fedora 19.
Solution:   Use one way to get the Ruby version. (Michael Henry)
2013-08-07 15:22:23 +02:00
01c458e438 updated for version 7.4b.015
Problem:    Can't compile without the 'acd' feature.
Solution:   Add #ifdefs. (Kazunobu Kuriyama)
2013-08-05 22:02:20 +02:00
9d98fe9cae Update runtime files. 2013-08-03 18:35:36 +02:00
f40f4ab8df updated for version 7.4b.014
Problem:    Stupid mistake.
Solution:   Changle "len" to "i".
2013-08-03 17:31:28 +02:00
48483dbaf7 updated for version 7.4b.013
Problem:    Install dir for JP man pages is wrong.
Solution:   Remove ".UTF-8" from the directory name. (Ken Takata)
2013-08-03 17:21:26 +02:00
fb332a2b33 updated for version 7.4b.012
Problem:    Output from a shell command is truncated at a NUL. (lcd 47)
Solution:   Change every NUL into an SOH.
2013-08-03 14:10:50 +02:00
c528b1d1ed updated for version 7.4b.011
Problem:    ":he \%(\)" does not work. (ZyX)
Solution:   Add an exception to the list.
2013-08-03 13:41:15 +02:00
364ab2ffd3 updated for version 7.4b.010
Problem:    Win32: Tcl library load does not use standard mechanism.
Solution:   Call vimLoadLib() instead of LoadLibraryEx(). (Ken Takata)
2013-08-02 20:05:32 +02:00
bc88a27537 updated for version 7.4b.009
Problem:    When setting the Visual area manually and 'selection' is
            exclusive, a yank includes one character too much. (Ingo Karkat)
Solution:   Default the Visual operation to "v". (Christian Brabandt)
2013-08-02 17:22:23 +02:00
4008f4fb08 updated for version 7.4b.008
Problem:    'autochdir' causes setbufvar() to change the current directory.
            (Ben Fritz)
Solution:   When disabling autocommands also reset 'acd' temporarily.
            (Christian Brabandt)
2013-08-02 17:08:13 +02:00
aee1f4a5b5 updated for version 7.4b.007
Problem:    On 32 bit MS-Windows :perldo does not work.
Solution:   Make sure time_t uses 32 bits. (Ken Takata)
2013-08-02 16:10:32 +02:00
a946afe075 updated for version 7.4b.006
Problem:    Using \{n,m} in an autocommand pattern no longer works.
            Specifically, mutt temp files are not recognized. (Gary Johnson)
Solution:   Make \\\{n,m\} work.
2013-08-02 15:22:39 +02:00
542805a59d updated for version 7.4b.005
Problem:    Finding %s in shellpipe and shellredir does not ignore %%s.
Solution:   Skip over %%. (lcd 47)
2013-08-02 14:15:13 +02:00
eec3e1e72a updated for version 7.4b.004
Problem:    Regexp crash on pattern "@\%[\w\-]*". (Axel Kielhorn)
Solution:   Add \%(\) around \%[] internally.
2013-08-01 18:38:26 +02:00
6dbe68cd9e updated for version 7.4b.003
Problem:    Regexp code is not nicely aligned.
Solution:   Adjust white space. (Ken Takata)
2013-08-01 16:21:34 +02:00
398d53decf updated for version 7.4b.002
Problem:    Crash searching for \%(\%(\|\d\|-\|\.\)*\|\*\). (Marcin
            Szamotulski)  Also for \(\)*.
Solution:   Do add a state for opening parenthesis, so that we can check if it
            was added before at the same position.
2013-08-01 15:45:52 +02:00
1b1b09449f updated for version 7.4b.001
Problem:    Win32: dialog may extend off-screen.
Solution:   Reduce the size, use correct borders. (Andrei Olsen)
2013-08-01 13:20:42 +02:00
1a42b4befb Update files for the 7.4b BETA release. 2013-07-28 18:29:08 +02:00
1a4a75c5dc updated for version 7.4a.047
Problem:    Some comments are not so nice.
Solution:   Change the comments.
2013-07-28 16:03:06 +02:00
16ea3676db Updated runtime files. 2013-07-28 16:02:18 +02:00
a2320f43ea updated for version 7.4a.046
Problem:    Can't build without mbyte feature.
Solution:   Add #ifdefs.
2013-07-28 15:16:19 +02:00
e855ccf90a updated for version 7.4a.045
Problem:    Configure does not always find the right library for Lua.  Missing
            support for LuaJit.
Solution:   Improve the configure detection of Lua. (Hiroshi Shirosaki)
2013-07-28 13:32:15 +02:00
e2db695d31 Updated runtime files. 2013-07-24 19:53:36 +02:00
ff18df03c3 updated for version 7.4a.044
Problem:    Test 96 sometimes fails.
Solution:   Clear window from b_wininfo in win_free().  (Suggestion by
            Yukihiro Nakadaira)
2013-07-24 17:51:57 +02:00
af003f6384 updated for version 7.4a.043
Problem:    More ml_get errors when adding or deleting lines from Python.
            (Vlad Irnov)
Solution:   Switch to a window with the buffer when possible.
2013-07-24 17:11:46 +02:00
2b90ed294e updated for version 7.4a.042
Problem:    Crash when BufUnload autocommands close all buffers. (Andrew
            Pimlott)
Solution:   Set curwin->w_buffer to curbuf to avoid NULL.
2013-07-24 16:02:36 +02:00
ad875fb7ff updated for version 7.4a.041
Problem:    When using ":new ++ff=unix" and "dos" is first in 'fileformats'
            then 'ff' is set to "dos" instead of "unix". (Ingo Karkat)
Solution:   Create set_file_options() and invoke it from do_ecmd().
2013-07-24 15:02:03 +02:00
e24a9c0b59 updated for version 7.4a.040
Problem:    Win32: using uninitialized variable.
Solution:   (Yukihiro Nakadaira)
2013-07-24 13:49:22 +02:00
196ed14d15 updated for version 7.4a.039
Problem:    New regexp engine doesn't match pattern. (Ingo Karkat)
Solution:   When adding a state also check for different PIM if the list of
            states has any state with a PIM.
2013-07-21 18:59:24 +02:00
9d48895e4c updated for version 7.4a.038
Problem:    When using MSVC 2012 there are various issues, including GUI size
            computations.
Solution:   Use SM_CXPADDEDBORDER. (Mike Williams)
2013-07-21 17:53:58 +02:00
5f919ee8eb updated for version 7.4a.037
Problem:    Win32: When mouse is hidden and in the toolbar, moving it won't
            make it appear. (Sami Salonen)
Solution:   Add tabline_wndproc() and toolbar_wndproc(). (Ken Takata)
2013-07-21 17:46:43 +02:00
ac7c33e38c updated for version 7.4a.036
Problem:    "\p" in a regexp does not match double-width characters.
            (Yukihiro Nakadaira)
Solution:   Don't count display cells, use vim_isprintc().
2013-07-21 17:06:00 +02:00
9ba7e17de1 Updated runtime files. 2013-07-17 22:37:26 +02:00
e53c8616f1 updated for version 7.4a.035
Problem:    Fix in patch 7.4a.032 is not tested.
Solution:   Add test.
2013-07-17 22:35:39 +02:00
a8f96397a1 updated for version 7.4a.034
Problem:    The tabline may flicker when opening a new tab after 7.3.759 on
            Win32.
Solution:   Move call to TabCtrl_SetCurSel(). (Ken Takata)
2013-07-17 21:59:13 +02:00
b7a846d0e0 updated for version 7.4a.033
Problem:    Test 98 always passes.
Solution:   Include test98a.in in test98.in, execute the crucial command in
            one line. (Yukihiro Nakadaira)
2013-07-17 21:40:31 +02:00
69b52456fc updated for version 7.4a.032
Problem:    New regexp engine: Does not match shorter alternative. (Ingo
            Karkat)
Solution:   Do not drop a new state when the PIM info is different.
2013-07-17 21:10:51 +02:00
de9149ef18 updated for version 7.4a.031
Problem:    Compiler warnings. (Charles Campbell)
Solution:   Initialize variables even when not needed.
2013-07-17 19:22:13 +02:00
4a3aef7b28 updated for version 7.4a.030
Problem:    Missing find_win_for_buf(). (toothpik)
Solution:   Add missing changes.
2013-07-17 19:12:57 +02:00
9e90219032 updated for version 7.4a.029
Problem:    Can't build with MzScheme on Ubuntu 13.04.
Solution:   Add configure check for the "ffi" library.
2013-07-17 18:58:11 +02:00
706d2de9c1 updated for version 7.4a.028
Problem:    Crash when spell checking in new buffer.
Solution:   Set the b_p_key field.  (Mike Williams)
2013-07-17 17:35:13 +02:00
95064ece73 updated for version 7.4a.027
Problem:    When Python adds lines to another buffer the cursor position is
            wrong, it might be below the last line causing ml_get errors.
            (Vlad Irnov)
Solution:   Temporarily change the current window, so that marks are corrected
            properly.
2013-07-17 17:15:25 +02:00
33ca6bf240 updated for version 7.4a.026
Problem:    ":diffoff" does not remove folds. (Ramel)
Solution:   Do not restore 'foldenable' when 'foldmethod' is "manual".
2013-07-17 13:43:39 +02:00
56667a5d3e updated for version 7.4a.025
Problem:    Get the press-Enter prompt even after using :redraw.
Solution:   Clear need_wait_return when executing :redraw.
2013-07-17 11:54:28 +02:00
6f2926692b updated for version 7.4a.024
Problem:    X11 GUI: Checking icon height twice.
Solution:   Check height and width. (Dominique Pelle)
2013-07-14 15:06:50 +02:00
6f394f88b8 updated for version 7.4a.023
Problem:    Still another superfluous parenthesis. (ZyX)
Solution:   Remove it.
2013-07-14 13:41:56 +02:00
91b2bdb083 updated for version 7.4a.022
Problem:    Using "d2g$" does not delete the last character. (ZyX)
Solution:   Set the "inclusive" flag properly.
2013-07-14 13:32:15 +02:00
ff52518969 updated for version 7.4a.021
Problem:    Using feedkeys() doesn't always work.
Solution:   Omit feedkeys(). (Ken Takata)
2013-07-14 13:02:12 +02:00
3fb14bc734 updated for version 7.4a.020
Problem:    Superfluous mb_ptr_adv().
Solution:   Remove the call. (Dominique Pelle)
2013-07-14 12:34:56 +02:00
ee31be64a3 updated for version 7.4a.019
Problem:    Invalid closing parenthesis in test 62. Command truncated at
            double quote.
Solution:   Remove the parenthesis. Change double quote to ''. (ZyX)
2013-07-14 12:21:57 +02:00
690ae9c858 updated for version 7.4a.018
Problem:    Compiler warning for code unreachable. (Charles Campbell)
Solution:   Use "while" instead of endless loop.  Change break to continue.
2013-07-13 20:58:11 +02:00
2b79bfdeab updated for version 7.4a.017
Problem:    When 'foldmethod' is "indent", using ">>" on a line just above a
            fold makes the cursor line folded. (Evan Laforge)
Solution:   Call foldOpenCursor(). (Christian Brabandt)
2013-07-13 16:34:32 +02:00
a0aa9070be updated for version 7.4a.016
Problem:    Features enabled in Makefile.
Solution:   Undo accidental changes.
2013-07-13 15:39:33 +02:00
a3fe8fe632 updated for version 7.4a.015
Problem:    No Japanese man pages.
Solution:   Add Japanese translations of man pages. (Ken Takata, Yukihiro
            Nakadaira, et al.)
2013-07-13 15:33:20 +02:00
8e46f7264c updated for version 7.4a.014
Problem:    Test 86 and 89 have a problem with using a shadow dir.
Solution:   Adjust for the different directory structure. (James McCoy)
2013-07-13 14:08:16 +02:00
3ff9b185fe updated for version 7.4a.013
Problem:    Setting/resetting 'lbr' in the main help file changes alignment
            after a Tab. (Dimitar Dimitrov)
Solution:   Also use the code for conceal mode where n_extra is computed for
            'lbr'.
2013-07-13 12:36:55 +02:00
fba2424cf2 updated for version 7.4a.012
Problem:    "make test" fails when using a shadow directory.
Solution:   Create links for files in src/po. (James McCoy)
2013-07-12 20:16:58 +02:00
fee496d882 updated for version 7.4a.011
Problem:    Configure check for Python 3 config name isn't right.
Solution:   Always include vi_cv_var_python3_version. (Tim Harder)
2013-07-12 20:07:24 +02:00
e741f2714d updated for version 7.4a.010
Problem:    Test 86 and 97 fail when building with Python or Python 3 and
            using a static library.
Solution:   Add configure check to add -fPIE compiler flag.
2013-07-09 21:57:52 +02:00
fb97f28cc2 updated for version 7.4a.009
Problem:    Compiler warnings for function prototypes.
Solution:   Add "void".  Move list_features() prototype. (Ken Takata)
2013-07-09 17:42:46 +02:00
e032461eed updated for version 7.4a.008
Problem:    Python 3 doesn't handle multibyte characters prooperly when
            'encoding' is not utf-8.
Solution:   Use PyUnicode_Decode() instead of PyUnicode_FromString(). (Ken
            Takata)
2013-07-09 17:30:55 +02:00
b69510e889 updated for version 7.4a.007
Problem:    After "g$" with 'virtualedit' set, "k" moves to a different
            column.  (Dimitar Dimitrov)
Solution:   Set w_curswant. (Christian Brabandt)
2013-07-09 17:08:29 +02:00
dd007ed585 Updated runtime files. Fix NL translations. 2013-07-09 15:44:17 +02:00
4ca8d5fefd updated for version 7.4a.006
Problem:    Failure in po file check goes unnoticed.
Solution:   Fail "make test" if the po file check fails.
2013-07-09 14:58:10 +02:00
04c5c9ee27 updated for version 7.4a.005
Problem:    Scroll binding causes unexpected scroll.
Solution:   Store the topline after updating scroll binding.  Add a test.
            (Lech Lorens)
2013-07-09 13:44:59 +02:00
c64b85a348 updated for version 7.4a.004
Problem:    MSVC 2012 Update 3 is not recognized.
Solution:   Add the version number. (Raymond Ko)
2013-07-09 13:15:46 +02:00
f4c096b617 updated for version 7.4a.003
Problem:    Copyright year is oudated.
Solution:   Only use the first year.
2013-07-09 12:54:21 +02:00
e8785f2c39 updated for version 7.4a.002
Problem:    Valgrind errors in test 89. (Simon Ruderich)
Solution:   Allocate one more byte. (Dominique Pelle)
2013-07-07 16:15:35 +02:00
3c04cc09cd Fix duplicate patch number 1. 2013-07-06 18:08:03 +02:00
7b8c268fc1 updated for version 7.4a.001
Problem:    Script to update syntax menu is oudated.
Solution:   Add the missing items.
(only changing the version, file was already updated)
2013-07-06 16:23:02 +02:00
913df81e74 Vim 7.4a BETA release. 2013-07-06 15:44:11 +02:00
dc8b25cbf3 Update runtime files. 2013-07-06 13:58:22 +02:00
0d86e9b568 updated for version 7.3.1314
Problem:    Test 87 fails with Python 3.3.
Solution:   Filter the error messages. (Taro Muraoka)
2013-07-06 13:54:33 +02:00
254e028e90 updated for version 7.3.1313
Problem:    :py and :py3 don't work when compiled with Cygwin or MingW with 64
            bit.
Solution:   Add -DMS_WIN64 to the build command. (Ken Takata)
2013-07-06 13:35:08 +02:00
91aeaf4cce updated for version 7.3.1312
Problem:    Not giving correct error messages for SystemExit().
Solution:   Move E858 into an else. (Ken Takata)
2013-07-06 13:02:30 +02:00
bc488a76cc A few updated runtime files. 2013-07-05 21:01:22 +02:00
2c6f3dca4e updated for version 7.3.1311
Problem:    Compiler warnings on Cygwin.
Solution:   Add type casts. Add windows include files. (Ken Takata)
2013-07-05 20:09:16 +02:00
266411aa8a updated for version 7.3.1310
Problem:    Typos in nsis script. Can use better compression.
Solution:   Fix typos.  Use lzma compression. (Ken Takata)
2013-07-05 20:01:32 +02:00
ccf623f6f8 updated for version 7.3.1309
Problem:    When a script defines a function the flag to wait for the user to
            hit enter is reset.
Solution:   Restore the flag. (Yasuhiro Matsumoto)  Except when the user was
            typing the function.
2013-07-05 18:29:48 +02:00
94f76b7fd6 updated for version 7.3.1308
Problem:    Typos in MS-Windows build settings and README.
Solution:   Minor changes to MS-Windows files.
2013-07-04 22:50:40 +02:00
ba46075731 updated for version 7.3.1307
Problem:    MS-Windows build instructions are outdated.
Solution:   Adjust for building on Windows 7.  Drop Windows 95/98/ME support.
2013-07-04 22:35:01 +02:00
249f0dda51 updated for version 7.3.1306
Problem:    When redrawing the screen during startup the intro message may be
            cleared.
Solution:   Redisplay the intro message when appropriate.
2013-07-04 22:31:03 +02:00
61214040e9 updated for version 7.3.1305
Problem:    Warnings from 64 bit compiler.
Solution:   Add type casts.
2013-07-04 21:19:33 +02:00
a3c084cbfa updated for version 7.3.1304
Problem:    Test 89 still fails on MS-Windows.
Solution:   Set 'shellslash'. (Taro Muraoka)
2013-07-04 20:50:46 +02:00
3c1e9c2a1f updated for version 7.3.1303
Problem:    Undo is synced whenever CTRL-R = is called, breaking some plugins.
Solution:   Only break undo when calling setline() or append().
2013-07-04 20:25:41 +02:00
c84e3c1ee1 updated for version 7.3.1302
Problem:    Test 17 fails on MS-Windows.  Includes line break in file name
            everywhere.
Solution:   Fix 'fileformat'. Omit CR-LF from a line read from an included
            file.
2013-07-03 22:28:36 +02:00
ee0ee2a046 updated for version 7.3.1301
Problem:    Some tests fail on MS-Windows.
Solution:   Fix path separators in test 89 and 96.  Omit test 97, escaping
            works differently.  Make findfile() work on MS-Windows.
2013-07-03 21:19:07 +02:00
3437b91102 updated for version 7.3.1300
Problem:    Mac: tiny and small build fails.
Solution:   Don't include os_macosx.m in tiny build. Include mouse support in
            small build. (Kazunobu Kuriyama)
2013-07-03 19:52:53 +02:00
32ac8cdaaa updated for version 7.3.1299
Problem:    Errors when doing "make proto".  Didn't do "make depend" for a
            while.
Solution:   Add #ifdefs.  Update dependencies.  Update proto files.
2013-07-03 18:49:17 +02:00
0f5a5ed8bb updated for version 7.3.1298
Problem:    Crash.
Solution:   Use STRCPY() instead of STRCAT() and allocate one more byte.
2013-07-03 17:51:17 +02:00
f4c5fcb3ad updated for version 7.3.1297
Problem:    findfile() directory matching does not work when a star follows
            text. (Markus Braun)
Solution:   Make a wildcard work properly. (Christian Brabandt)
2013-07-03 17:14:00 +02:00
8968a31179 updated for version 7.3.1296
Problem:    Only MS-Windows limits the GUI window size to what fits on the
            monitor.
Solution:   Limit the size for all systems. (Daniel Harding)
2013-07-03 16:58:44 +02:00
f4e1143697 updated for version 7.3.1295
Problem:    glob() and globpath() do not handle escaped special characters
            properly.
Solution:   Handle escaped characters differently. (Adnan Zafar)
2013-07-03 16:53:03 +02:00
a87aa8061c updated for version 7.3.1294
Problem:    ":diffoff" resets options.
Solution:   Save and restore option values. (Christian Brabandt)
2013-07-03 15:47:03 +02:00
caf2dffd51 updated for version 7.3.1293
Problem:    Put in empty buffer cannot be undone.
Solution:   Save one more line for undo. (Ozaki)
2013-07-03 14:19:54 +02:00
5e6d5ca16c updated for version 7.3.1292
Problem:    Possibly using invalid pointer when searcing for window. (Raichoo)
Solution:   Use "firstwin" instead of "tp_firstwin" for current tab.
2013-07-03 14:01:56 +02:00
e1fc4e2f0f updated for version 7.3.1291
Problem:    Compiler warnings for uninitialized variables. (Tony Mechelynck)
Solution:   Initialize the variables.
2013-07-03 13:29:58 +02:00
79f7e1475a updated for version 7.3.1290
Problem:    CTRL-R = in Insert mode changes the start of the insert position.
            (Ingo Karkat)
Solution:   Only break undo, don't start a new insert.
2013-07-03 13:16:23 +02:00
f9da680a0b updated for version 7.3.1289
Problem:    Get GLIB warning when removing a menu item.
Solution:   Reference menu-id and also call gtk_container_remove().  (Ivan
            Krasilnikov)
2013-07-03 13:04:27 +02:00
2951b77e50 updated for version 7.3.1288
Problem:    The first ":echo 'hello'" command output doesn't show.  Mapping
            for <S-F3> gets triggered during startup.
Solution:   Add debugging code for the termresponse.  When receiving the "Co"
            entry and when setting 'ambiwidth' redraw right away if possible.
            Add redraw_asap().  Don't set 'ambiwidth' if it already had the
            right value.  Do the 'ambiwidth' check in the second row to avoid
            confusion with <S-F3>.
2013-07-03 12:45:31 +02:00
4100937474 updated for version 7.3.1287
Problem:    Python SystemExit exception is not handled properly.
Solution:   Catch the exception and give an error. (Yasuhiro Matsumoto, Ken
            Takata)
2013-07-01 22:03:04 +02:00
c33916a6e0 updated for version 7.3.1286
Problem:    Check for screen size missing for Athena and Motif.
Solution:   Add call to limit_screen_size().
2013-07-01 21:43:08 +02:00
f5901aa195 updated for version 7.3.1285
Problem:    No tests for picking a window when selecting an entry in a
            location list.  Not picking the right window sometimes.
Solution:   Add test 96. Set usable_win appropriately. (Lech Lorens)
2013-07-01 21:25:25 +02:00
2982e70243 updated for version 7.3.1284
Problem:    Compiler warnings in MS-Windows clipboard handling.
Solution:   Add type casts. (Ken Takata)
2013-07-01 21:08:48 +02:00
72fe56f298 updated for version 7.3.1283
Problem:    Test 71 fails on MS-Windows.
Solution:   Put the binary data in a separate file. (Ken Takata)
2013-07-01 21:00:35 +02:00
bd65c46478 updated for version 7.3.1282
Problem:    'cursorline' not drawn in any other window. (Charles Campbell)
Solution:   Do draw the cursor line in other windows.
2013-07-01 20:18:33 +02:00
0e710d603e updated for version 7.3.1281
Problem:    When 'ttymouse' is set to "xterm2" clicking in column 123 moves
            the cursor to column 96. (Kevin Goodsell)
Solution:   Decode KE_CSI.
2013-07-01 20:06:19 +02:00
d05bf560ac updated for version 7.3.1280
Problem:    Reading memory already freed since patch 7.3.1247. (Simon
            Ruderich, Dominique Pelle)
Solution:   Copy submatches before reallocating the state list.
2013-06-30 23:24:08 +02:00
673b9a3cae updated for version 7.3.1279
Problem:    Compiler warning for variable uninitialized. (Tony Mechelynck)
Solution:   Add an init.
2013-06-30 22:43:27 +02:00
e057d40d96 updated for version 7.3.1278
Problem:    When someone sets the screen size to a huge value with "stty" Vim
            runs out of memory before reducing the size.
Solution:   Limit Rows and Columns in more places.
2013-06-30 17:51:51 +02:00
5a4d51e692 updated for version 7.3.1277
Problem:    In diff mode 'cursorline' also draws in the non-active window.
            When 'nu' and 'sbr' are set the 'sbr' string is not underlined.
Solution:   Only draw the cursor line in the current window. Combine the
            'cursorline' and other highlighting attributes. (Christian
            Brabandt)
2013-06-30 17:24:16 +02:00
85e932f2ca updated for version 7.3.1276
Problem:    When using a cscope connection resizing the window may send
            SIGWINCH to cscope and it quits.
Solution:   Call setpgid(0, 0) in the child process. (Narendran Gopalakrishnan)
2013-06-30 15:01:22 +02:00
e78495de7e updated for version 7.3.1275
Problem:    "gn" does not work when the match is a single character.
Solution:   Fix it, add a test. (Christian Brabandt)
2013-06-30 14:46:53 +02:00
2486285546 updated for version 7.3.1274
Problem:    When selecting an entry from a location list it may pick an
            arbitrary window or open a new one.
Solution:   Prefer using a window related to the location list. (Lech Lorens)
2013-06-30 13:57:45 +02:00
730d2c0747 updated for version 7.3.1273
Problem:    When copying a location list the index might be wrong.
Solution:   Set the index to one when using the first entry. (Lech Lorens)
2013-06-30 13:33:58 +02:00
55480dccf4 updated for version 7.3.1272
Problem:    Crash when editing Ruby file. (Aliaksandr Rahalevich)
Solution:   Reallocate the state list when necessary.
2013-06-30 13:17:24 +02:00
a4c8dcbdae updated for version 7.3.1271
Problem:    Command line completion does not work.
Solution:   Move setting xp_line down. (Daniel Thau)
2013-06-30 12:21:24 +02:00
14b6945e27 Updated runtime files. 2013-06-29 23:05:20 +02:00
10315b1201 updated for version 7.3.1270
Problem:    Using "Vp" in an empty buffer can't be undone. (Hauke Petersen)
Solution:   Save one line in an empty buffer. (Christian Brabandt)
2013-06-29 17:19:28 +02:00
6b487147ac updated for version 7.3.1269
Problem:    Insert completion keeps entry selected even though the list has
            changed. (Olivier Teuliere)
Solution:   Reset compl_shown_match and compl_curr_match. (Christian Brabandt)
2013-06-29 16:21:58 +02:00
39efa89afb updated for version 7.3.1268
Problem:    ACL support doesn't work when when compiled with MingW.
Solution:   Support ACL on MingW. (Ken Takata)
2013-06-29 15:40:04 +02:00
2751592119 updated for version 7.3.1267
Problem:    MS-Windows ACL support doesn't work well.
Solution:   Implement more ACL support. (Ken Takata)
2013-06-29 15:36:26 +02:00
a8e3580be6 updated for version 7.3.1266
Problem:    QNX: GUI fails to start.
Solution:   Remove the QNX-specific #ifdef. (Sean Boudreau)
2013-06-29 15:19:21 +02:00
630a730f9b updated for version 7.3.1265
Problem:    Accepting "Vim:" for a modeline causes errors too often.
Solution:   Require "Vim:" to be followed by "set".
2013-06-29 15:07:22 +02:00
f3fe392760 updated for version 7.3.1264
Problem:    Missing m_nowait.
Solution:   Include missing part of the patch.
2013-06-29 14:47:22 +02:00
4a46070365 updated for version 7.3.1263
Problem:    Typo in short option name.
Solution:   Change "imse" to "imsf".
2013-06-29 14:42:26 +02:00
fe17e7640d updated for version 7.3.1262
Problem:    Crash and compilation warnings with Cygwin.
Solution:   Check return value of XmbTextListToTextProperty(). Add type casts.
            Adjust #ifdefs. (Lech Lorens)
2013-06-29 14:17:02 +02:00
72179e1bd0 updated for version 7.3.1261
Problem:    A buffer-local language mapping from a keymap stops a global
            insert mode mapping from working. (Ron Aaron)
Solution:   Do not wait for more characters to be typed only when the mapping
            was defined with <nowait>.
2013-06-29 13:58:31 +02:00
b751546636 updated for version 7.3.1260
Problem:    User completion does not get the whole command line in the command
            line window.
Solution:   Pass on the whole command line. (Daniel Thau)
2013-06-29 12:58:33 +02:00
560c52d32b updated for version 7.3.1259
Problem:    No test for patch 7.3.1258
Solution:   Add a test entry.
2013-06-29 12:10:26 +02:00
4d9ae21a34 updated for version 7.3.1258
Problem:    Using submatch() may crash Vim. (Ingo Karkat)
Solution:   Restore the number of subexpressions used.
2013-06-28 23:04:42 +02:00
e3a0b53c2e updated for version 7.3.1257
Problem:    With GNU gettext() ":lang de_DE.utf8" does not always result in
            German messages.
Solution:   Clear the $LANGUAGE environment variable.
2013-06-28 20:36:30 +02:00
f0327f67c7 updated for version 7.3.1256
Problem:    Can't build without eval or autocmd feature.
Solution:   Add #ifdefs.
2013-06-28 20:16:55 +02:00
22dbc77ef1 Update runtime files. Remove duplicate tags in help. 2013-06-28 18:44:48 +02:00
6470de83f2 updated for version 7.3.1255
Problem:    Clang warnings when building with Athena.
Solution:   Add type casts. (Dominique Pelle)
2013-06-27 22:36:03 +02:00
a5f5c8be8f updated for version 7.3.1254
Problem:    Can't build without the multi-lang feature. (John Marriott)
Solution:   Add #ifdef.
2013-06-27 22:29:38 +02:00
5737ca2350 updated for version 7.3.1253
Problem:    Still undo problem after using CTRL-R = setline(). (Hirohito
            Higashi)
Solution:   Set the ins_need_undo flag.
2013-06-27 22:21:24 +02:00
c9dcb42704 updated for version 7.3.1252
Problem:    Gvim does not find the toolbar bitmap files in ~/vimfiles/bitmaps
            if the corresponding menu command contains additional characters
            like the shortcut marker '&' or if you use a non-english locale.
Solution:   Use menu->en_dname or menu->dname. (Martin Gieseking)
2013-06-27 22:02:02 +02:00
9b846cb8ac updated for version 7.3.1251
Problem:    Test 61 messes up viminfo.
Solution:   Specify a separate viminfo file.
2013-06-26 21:56:36 +02:00
877aa00811 updated for version 7.3.1250
Problem:    Python tests fail on MS-Windows.
Solution:   Change backslashes to slashes. (Taro Muraoka)
2013-06-26 21:49:51 +02:00
c14621eafb updated for version 7.3.1249
Problem:    Modeline not recognized when using "Vim" instead of "vim".
Solution:   Also accept "Vim".
2013-06-26 20:04:35 +02:00
abab85a499 updated for version 7.3.1248
Problem:    Still have old hacking code for Input Method.
Solution:   Add 'imactivatefunc' and 'imstatusfunc' as a generic solution to
            Input Method activation. (Yukihiro Nakadaira)
2013-06-26 19:18:05 +02:00
a0169128d9 updated for version 7.3.1247
Problem:    New regexp engine: '[ ]\@!\p\%([ ]\@!\p\)*:' does not always match.
Solution:   When there is a PIM add a duplicate state that starts at another
            position.
2013-06-26 18:16:58 +02:00
b893ac2098 updated for version 7.3.1246
Problem:    When setting 'winfixheight' and resizing the window causes the
            window layout to be wrong.
Solution:   Add frame_check_height() and frame_check_width() (Yukihiro
            Nakadaira)
2013-06-26 14:04:47 +02:00
31c31679e2 Updated runtime files. New version of TOhtml plugin. 2013-06-26 13:28:14 +02:00
b052fe0e2c updated for version 7.3.1245
Problem:    MS-Windows: confirm() dialog text may still not fit.
Solution:   Use GetTextWidthEnc() instead of GetTextWidth() in two more
            places. (Yasuhiro Matsumoto)
2013-06-26 13:16:20 +02:00
f05d81102c updated for version 7.3.1244
Problem:    MS-Windows: confirm() dialog text may not fit.
Solution:   Use GetTextWidthEnc() instead of GetTextWidth(). (Yasuhiro
            Matsumoto)
2013-06-26 12:58:32 +02:00
f86c0b01a7 updated for version 7.3.1243
Problem:    New regexp engine: back references in look-behind match don't
            work. (Lech Lorens)
Solution:   Copy the submatches before a recursive match.
2013-06-26 12:42:44 +02:00
daa270289b updated for version 7.3.1242
Problem:    No failure when trying to use a number as a string.
Solution:   Give an error when StringToLine() is called with an instance of
            the wrong type. (Jun Takimoto)
2013-06-24 22:33:30 +02:00
c8c13a0307 updated for version 7.3.1241
Problem:    Some test files missing from the distribution.
Solution:   Update the list of files.
2013-06-24 22:23:55 +02:00
56b45b9b37 Update runtime files. 2013-06-24 22:22:18 +02:00
df2bc27b52 updated for version 7.3.1240
Problem:    Memory leak in findfile().
Solution:   Free the memory. (Christian Brabandt)
2013-06-24 22:17:32 +02:00
c1c3d68da9 updated for version 7.3.1239
Problem:    Can't build with Python and MSVC10.
Solution:   Move #if outside of macro. (Taro Muraoka)
2013-06-24 21:21:58 +02:00
d5e376eb3b updated for version 7.3.1238
Problem:    Crash in Python interface on 64 bit machines.
Solution:   Change argument type of PyString_AsStringAndSize. (Taro Muraoka,
            Jun Takimoto)
2013-06-24 20:32:57 +02:00
7e85d3d432 updated for version 7.3.1237
Problem:    Python: non-import errors not handled correctly.
Solution:   Let non-ImportError exceptions pass the finder. (ZyX)
2013-06-23 16:40:39 +02:00
dee2e315d7 updated for version 7.3.1236
Problem:    Python: WindowSetattr() missing support for NUMBER_UNSIGNED.
Solution:   Add NUMBER_UNSIGNED, add more tests. Various fixes. (ZyX)
2013-06-23 16:35:47 +02:00
ede3e6383d updated for version 7.3.1235
Problem:    In insert mode CTRL-] is not inserted, on the command-line it is.
Solution:   Don't insert CTRL-] on the command line. (Yukihiro Nakadaira)
2013-06-23 16:16:19 +02:00
6f1404f8a8 updated for version 7.3.1234
Problem:    Python: Strings are not marked for translation.
Solution:   Add N_() where appropriate. (ZyX)
2013-06-23 16:04:08 +02:00
841fbd2907 updated for version 7.3.1233
Problem:    Various Python problems.
Solution:   Fix VimTryEnd. Crash with debug build and PYTHONDUMPREFS=1. Memory
            leaks in StringToLine(), BufferMark() and convert_dl. (ZyX)
2013-06-23 14:37:07 +02:00
c4b99e0be7 updated for version 7.3.1232
Problem:    Python: inconsistencies in variable names.
Solution:   Rename variables. (ZyX)
2013-06-23 14:30:47 +02:00
141be8a585 updated for version 7.3.1231
Problem:    Python: use of numbers not consistent.
Solution:   Add support for Number protocol. (ZyX)
2013-06-23 14:16:57 +02:00
c476e52fca updated for version 7.3.1230
Problem:    Python: Exception messages are not clear.
Solution:   Make exception messages more verbose. (ZyX)
2013-06-23 13:46:40 +02:00
0bd80ccd85 updated for version 7.3.1229
Problem:    Python: not so easy to delete/restore translating.
Solution:   Make macros do translation of exception messages. (ZyX)
            Note: this breaks translations!
2013-06-23 13:28:17 +02:00
808c2bc8bf updated for version 7.3.1228
Problem:    Python: various inconsistencies and problems.
Solution:   StringToLine now supports both bytes() and unicode() objects.
            Make function names consistant.  Fix memory leak fixed in
            StringToLine. (ZyX)
2013-06-23 13:11:18 +02:00
389a1793f4 updated for version 7.3.1227
Problem:    Inconsistent string conversion.
Solution:   Use 'encoding' instead of utf-8. Use METH_O in place of
            METH_VARARGS where appropriate. (ZyX)
2013-06-23 13:00:44 +02:00
6c85e7f3be updated for version 7.3.1226
Problem:    Python: duplicate code.
Solution:   Share code between OutputWrite() and OutputWritelines(). (ZyX)
2013-06-23 12:51:32 +02:00
3dbcd0c7ad updated for version 7.3.1225
Problem:    Compiler warnings when building with Motif.
Solution:   Change set_label() argument. (Kazunobu Kuriyama)
2013-06-22 13:00:16 +02:00
fe70acb376 updated for version 7.3.1224
Problem:    Clang gives warnings on xxd.
Solution:   Change how to use part of a string. (Dominique Pelle) Also avoid
            warning for return not reached.
2013-06-21 18:31:23 +02:00
d73895ec00 updated for version 7.3.1223
Problem:    Tests fail on MS-Windows.
Solution:   Avoid depending on OS version. Use DOS commands instead of Unix
            commands. (Taro Muraoka, Ken Takata)
2013-06-19 21:17:31 +02:00
22f93c700f updated for version 7.3.1222
Problem:    Cannot execute some tests from the src directoly.
Solution:   Add missing targets.
2013-06-19 20:11:50 +02:00
a6cc03101e updated for version 7.3.1221
Problem:    When build flags change "make distclean" run into a configure
            error.
Solution:   When CFLAGS changes delete auto/config.cache.  Also avoid adding
            duplicate text to flags.
2013-06-18 23:31:55 +02:00
db250526bb updated for version 7.3.1220
Problem:    MS-Windows: When using wide font italic and bold are not included.
Solution:   Support wide-bold, wide-italic and wide-bold-italic. (Ken Takata,
            Taro Muraoka)
2013-06-17 22:43:25 +02:00
a0c85c7ae1 updated for version 7.3.1219
Problem:    No test for using []] inside \%[].
Solution:   Add a test.
2013-06-17 22:04:38 +02:00
555d2a8340 updated for version 7.3.1218
Problem:    "make test" on MS-Windows does not clean all temporary files and
            gives some unneccessary message.
Solution:   Clean the right files.  Create .failed files. (Ken Takata)
2013-06-17 21:53:37 +02:00
d79862599d updated for version 7.3.1217
Problem:    New regexp engine: Can't handle \%[[ao]]. (Yukihiro Nakadaira)
Solution:   Support nested atoms inside \%[].
2013-06-17 21:33:41 +02:00
6324c3b920 updated for version 7.3.1216
Problem:    Configure can't find Motif on Ubuntu.
Solution:   Search for libXm in /usr/lib/*-linux-gnu.
2013-06-17 20:27:18 +02:00
06ae70d07c updated for version 7.3.1215
Problem:    Compiler warning for function not defined.
Solution:   Add #ifdef.
2013-06-17 19:26:36 +02:00
01b626c26e updated for version 7.3.1214
Problem:    Missing declaration for init_users() and realloc_post_list().
            (Salman Halim)
Solution:   Add the declarations.
2013-06-16 22:49:14 +02:00
8c0e322f18 updated for version 7.3.1213
Problem:    Can't build with small features and Python.
Solution:   Adjust #ifdefs.
2013-06-16 17:32:40 +02:00
6949eea7cc updated for version 7.3.1212
Problem:    "make test" on MS-Windows does not report failure like Unix does.
Solution:   Make it work like on Unix. (Taro Muraoka)
2013-06-16 16:57:46 +02:00
5246cd7a9b updated for version 7.3.1211
Problem:    MS-Windows: When 'encoding' differs from the current codepage
            ":hardcopy" does not work properly.
Solution:   Use TextOutW() and SetDlgItemTextW(). (Ken Takata)
2013-06-16 16:41:47 +02:00
03e114b0f2 updated for version 7.3.1210
Problem:    'backupcopy' default on MS-Windows is wrong when 'encoding' equals
            the current codepage.
Solution:   Change the #else block. (Ken Takata)
2013-06-16 16:34:56 +02:00
70baa405f2 updated for version 7.3.1209
Problem:    No completion for ":tabdo".
Solution:   Add tabdo to the list of modifiers. (Dominique Pelle)
2013-06-16 16:14:03 +02:00
427d51c23f updated for version 7.3.1208
Problem:    Compiler warnings on MS-Windows.
Solution:   Add type cast.  Move variable declaration. (Mike Williams)
2013-06-16 16:01:25 +02:00
a50d02d983 updated for version 7.3.1207
Problem:    New regexp engine: no match found on "#if FOO". (Lech Lorens)
Solution:   When adding a state gets skipped don't adjust the index.
2013-06-16 15:43:50 +02:00
5ab9d98b9a updated for version 7.3.1206
Problem:    Inconsistent function argument declarations.
Solution:   Use ANSI style.
2013-06-16 14:25:57 +02:00
926b5d3b30 updated for version 7.3.1205
Problem:    logtalk.dict is not removed on uninstall.
Solution:   Remove the file. (Kazunobu Kuriyama)
2013-06-16 14:20:13 +02:00
d69497413f updated for version 7.3.1204
Problem:    Calling gettabwinvar() in 'tabline' cancels Visual mode. (Hirohito
            Higashi)
Solution:   Don't always use goto_tabpage_tp().
2013-06-16 14:18:28 +02:00
4ce239b0b1 updated for version 7.3.1203
Problem:    Matches from matchadd() might be highlighted incorrectly when they
            are at a fixed position and inserting lines. (John Szakmeister)
Solution:   Redraw all lines below a change if there are highlighted matches.
            (idea by Christian Brabandt)
2013-06-15 23:00:30 +02:00
3351679948 updated for version 7.3.1202
Problem:    Tags are not found in case-folded tags file. (Darren cole, Issue
            90)
Solution:   Take into account that when case folding was used for the tags
            file "!rm" sorts before the "!_TAG" header lines.
2013-06-15 22:26:52 +02:00
e66f06d819 updated for version 7.3.1201
Problem:    When a startup script creates a preview window, it probably
            becomes the current window.
Solution:   Make another window the current one. (Christian Brabandt)
2013-06-15 21:54:16 +02:00
52b91d801a Updated runtime files. 2013-06-15 21:39:51 +02:00
df9259abce updated for version 7.3.1200
Problem:    When calling setline() from Insert mode, using CTRL-R =, undo does
            not work properly. (Israel Chauca)
Solution:   Sync undo after evaluating the expression. (Christian Brabandt)
2013-06-15 17:54:43 +02:00
dab38d516e updated for version 7.3.1199
Problem:    When evaluating 'foldexpr' causes an error this is silently
            ignored and evaluation is retried every time.
Solution:   Set emsg_silent instead of emsg_off. Stop evaluating 'foldexpr' is
            it is causing errors.  (Christian Brabandt)
2013-06-15 17:06:36 +02:00
9be6e21575 updated for version 7.3.1198
Problem:    Build error when using Perl 5.18.0 and dynamic loading.
Solution:   Change #ifdefs for Perl_croak_xs_usage. (Ike Devolder)
2013-06-15 16:47:35 +02:00
ff1806f8da updated for version 7.3.1197
Problem:    ":wviminfo!" does not write history previously read from a viminfo
            file.  (Roland Eggner)
Solution:   When not merging history write all entries.
2013-06-15 16:31:47 +02:00
141f6bb341 updated for version 7.3.1196
Problem:    Old regexp engine does not match pattern with backref correctly.
            (Dominique Pelle)
Solution:   Fix setting status.  Test multi-line patterns better.
2013-06-15 15:09:50 +02:00
4cff8faf05 updated for version 7.3.1195
Problem:    Compiler warning for unitialized variable. (Tony Mechelynck)
Solution:   Set the length to the matching backref.
2013-06-14 22:48:54 +02:00
44c71db771 updated for version 7.3.1194
Problem:    Yaml highlighting is slow.
Solution:   Tune the estimation of pattern failure chance.
2013-06-14 22:33:51 +02:00
1612b1abe7 updated for version 7.3.1193
Problem:    fail_if_missing not used for Python 3.
Solution:   Give an error when Python 3 can't be configured. (Andrei Olsen)
2013-06-14 21:22:39 +02:00
c5089bb8ff updated for version 7.3.1192
Problem:    Valgrind reports errors when using backreferences. (Dominique
            Pelle)
Solution:   Do not check the end of submatches.
2013-06-14 21:15:25 +02:00
580abea48a updated for version 7.3.1191
Problem:    Backreference to previous line doesn't work. (Lech Lorens)
Solution:   Implement looking in another line.
2013-06-14 20:31:28 +02:00
6e70736cbc updated for version 7.3.1190
Problem:    Compiler warning for parentheses. (Christian Wellenbrock)
Solution:   Change #ifdef.
2013-06-14 19:15:58 +02:00
4c46b5e001 updated for version 7.3.1189
Problem:    Highlighting is still wrong sometimes. (Dominique Pelle)
Solution:   Also restore reginput properly.
2013-06-13 22:59:30 +02:00
9d438d3b38 updated for version 7.3.1188
Problem:    Newline characters messing up error message.
Solution:   Remove the newlines. (Kazunobu Kuriyama)
2013-06-13 21:57:20 +02:00
0c6633a7ea updated for version 7.3.1187
Problem:    "s:" is recognized but "<SID>" is not. (ZyX)
Solution:   Translate "<SID>" like "s:".
2013-06-13 21:24:06 +02:00
5f87b23229 updated for version 7.3.1186
Problem:    Python 3: test 87 may crash.
Solution:   Use _PyArg_Parse_SizeT instead of PyArg_Parse. (Jun Takimoto)
2013-06-13 20:57:50 +02:00
b62bcd1e05 updated for version 7.3.1185
Problem:    New regexp engine: no match with ^ after \n. (SungHyun Nam)
Solution:   Fix it, add a test.
2013-06-13 20:19:40 +02:00
484d241a4a updated for version 7.3.1184
Problem:    Highlighting is sometimes wrong. (Axel Bender)
Solution:   Fetch regline again when returning from recursive regmatch.
2013-06-13 19:47:07 +02:00
98bfc2d5ee Add missing files from 7.3.1183. 2013-06-13 19:44:55 +02:00
82850dd9cb updated for version 7.3.1183
Problem:    Python tests 86 and 87 fail.
Solution:   Add "empty" files. (ZyX)
2013-06-13 19:27:18 +02:00
12b559e7c3 updated for version 7.3.1182
Problem:    'backupcopy' default on MS-Windows does not work for hard and soft
            links.
Solution:   Check for links. (David Pope, Ken Takata)
2013-06-12 22:41:37 +02:00
2a876e40ce updated for version 7.3.1181
Problem:    Wrong error message for 1.0[0].
Solution:   Check for funcref and float separately. (Yasuhiro Matsumoto)
2013-06-12 22:08:58 +02:00
ec7944aaf2 Update runtime files. 2013-06-12 21:29:15 +02:00
cab465a6d7 updated for version 7.3.1180
Problem:    When current directory changes, path from cscope may no longer be
            valid. (AS Budden)
Solution:   Always store the absolute path. (Christian Brabandt)
2013-06-12 21:25:23 +02:00
0825c00f14 updated for version 7.3.1179
Problem:    When a global mapping starts with the same characters as a
            buffer-local mapping Vim waits for a character to be typed to find
            out whether the global mapping is to be used. (Andy Wokula)
Solution:   Use the local mapping without waiting. (Michael Henry)
2013-06-12 21:00:26 +02:00
22971aaa45 updated for version 7.3.1178
Problem:    Can't put all Vim config files together in one directory.
Solution:   Load ~/.vim/vimrc if ~/.vimrc does not exist. (Lech Lorens)
2013-06-12 20:35:58 +02:00
6395af8018 updated for version 7.3.1177
Problem:    Wasting memory on padding.
Solution:   Reorder struct fields. (Dominique Pelle)
2013-06-12 19:52:15 +02:00
edb07a2d88 updated for version 7.3.1176
Problem:    Compiler warnings on 64 bit system.
Solution:   Add type casts. (Mike Williams)
2013-06-12 18:13:38 +02:00
2d473ab932 updated for version 7.3.1175
Problem:    Using isalpha() and isalnum() can be slow.
Solution:   Use range checks. (Mike Williams)
2013-06-12 17:12:24 +02:00
81c40c507c updated for version 7.3.1174
Problem:    Python 2 and 3 use different ways to load modules.
Solution:   Use the same method. (ZyX)
2013-06-12 14:41:04 +02:00
27610ed76c updated for version 7.3.1173
Problem:    Python 2 tests don't have the same output everywhere.
Solution:   Make the Python 2 tests more portable. (ZyX)
2013-06-12 14:26:26 +02:00
9f3685a527 updated for version 7.3.1172
Problem:    Python 2: loading modules doesn't work well.
Solution:   Fix the code. Add more tests. (ZyX)
2013-06-12 14:20:36 +02:00
0ea4a6b94b updated for version 7.3.1171
Problem:    Check for digits and ascii letters can be faster.
Solution:   Use a trick with one comparison. (Dominique Pelle)
2013-06-12 14:10:26 +02:00
60bf1f58d0 updated for version 7.3.1170
Problem:    Patch 7.3.1058 breaks backwards compatibility, not possible to use
            a function reference as a string. (lilydjwg)
Solution:   Instead of translating the function name only translate "s:".
2013-06-12 13:37:43 +02:00
a2947e2bea updated for version 7.3.1169
Problem:    New regexp engine: some work is done while executing a pattern,
            even though the result is predictable.
Solution:   Do the work while compiling the pattern.
2013-06-11 22:44:09 +02:00
780c3e9b04 updated for version 7.3.1168
Problem:    Python "sane" configure checks give a warning message.
Solution:   Use single quotes intead of escaped double quotes. (Ben Fritz)
2013-06-11 20:53:28 +02:00
3c7ad013fb updated for version 7.3.1167
Problem:    Python configure check doesn't reject Python 2 when requesting
            Python 3.  Some systems need -pthreads instead of -pthread.
Solution:   Adjust configure accordingly. (Andrei Olsen)
2013-06-11 19:53:45 +02:00
a9f2220176 updated for version 7.3.1166
Problem:    Loading Python modules is not tested.
Solution:   Enable commented-out tests, add missing files. (ZyX)
2013-06-11 18:48:21 +02:00
16619a235b updated for version 7.3.1165
Problem:    HP-UX compiler can't handle zero size array. (Charles Cooper)
Solution:   Make the array one item big.
2013-06-11 18:42:36 +02:00
9a773488a7 updated for version 7.3.1164
Problem:    Can't test what is actually displayed on screen.
Solution:   Add the screenchar() and screenattr() functions.
2013-06-11 18:40:13 +02:00
c09a6d6c0c updated for version 7.3.1163
Problem:    Not easy to load Python modules.
Solution:   Search "python2", "python3" and "pythonx" directories in
            'runtimepath' for Python modules. (ZyX)
2013-06-10 21:27:29 +02:00
f9c9b32bd1 updated for version 7.3.1162
Problem:    Python: Memory leaks
Solution:   Add more Py_DECREF(). (ZyX)
2013-06-10 20:47:36 +02:00
c1ba10c7f6 updated for version 7.3.1161
Problem:    Python: PyList_SetItem() is inefficient.
Solution:   Use PyList_SET_ITEM() (ZyX)
2013-06-10 20:39:03 +02:00
570064cf21 updated for version 7.3.1160
Problem:    Mixing long and pointer doesn't always work.
Solution:   Avoid cast to pointer.
2013-06-10 20:25:10 +02:00
a2e14fc764 updated for version 7.3.1159
Problem:    The round() function is not always available. (Christ van
            Willegen)
Solution:   Use the solution from f_round().
2013-06-10 20:10:44 +02:00
0bdda37fb4 updated for version 7.3.1158
Problem:    Crash when running test 86. (Jun Takimoto)
Solution:   Define PY_SSIZE_T_CLEAN early. (Elimar Riesebieter)
2013-06-10 18:36:24 +02:00
bcf4d178ab updated for version 7.3.1157
Problem:    New regexp engine fails on "\(\<command\)\@<=.*"
Solution:   Fix rule for postponing match.  Further tune estimating whether
            postponing works better.  Add test.
2013-06-10 16:35:18 +02:00
4380d1ea23 updated for version 7.3.1156
Problem:    Compiler warnings. (dv1445)
Solution:   Initialize variables, even when the value isn't really used.
2013-06-09 20:51:00 +02:00
11354759e2 updated for version 7.3.1155
Problem:    MS-DOS: "make test" uses external rmdir command.
Solution:   Rename "rmdir" to "rd". (Taro Muraoka)
2013-06-09 17:52:46 +02:00
927d4a1fb5 updated for version 7.3.1154
Problem:    New regexp_nfa engine: Uneccessary code.
Solution:   Remove uneccessary code.
2013-06-09 17:25:34 +02:00
2a4e98ac1e updated for version 7.3.1153
Problem:    New regexp engine: Some look-behind matches are very expensive.
Solution:   Pospone invisible matches further, until a match is almost found.
2013-06-09 16:24:45 +02:00
a940aa6fc4 updated for version 7.3.1152
Problem:    In tiny build ireg_icombine is undefined. (Tony Mechelynck)
Solution:   Add #ifdef.
2013-06-08 23:30:04 +02:00
1e02e6620b updated for version 7.3.1151
Problem:    New regexp engine: Slow when a look-behind match is followed by a
            zero-width match.
Solution:   Postpone the look-behind match more often.
2013-06-08 23:26:27 +02:00
e7766eeaa5 updated for version 7.3.1150
Problem:    New regexpengine: Slow when a look-behind match does not have a
            width specified.
Solution:   Try to compute the maximum width.
2013-06-08 22:30:03 +02:00
473de61b04 updated for version 7.3.1149
Problem:    New regexp engine: Matching plain text could be faster.
Solution:   Detect a plain text match and handle it specifically.  Add
            vim_regfree().
2013-06-08 18:19:48 +02:00
cd9c46265e updated for version 7.3.1148
Problem:    No command line completion for ":syntime".
Solution:   Implement the completion. (Dominique Pelle)
2013-06-08 15:24:48 +02:00
87f764a891 updated for version 7.3.1147
Problem:    New regexp engine: regstart is only used to find the first match.
Solution:   Use regstart whenever adding the start state.
2013-06-08 14:38:27 +02:00
b1b284fd5d updated for version 7.3.1146
Problem:    New regexp engine: look-behind match not checked when followed by
            zero-width match.
Solution:   Do the look-behind match before adding the zero-width state.
2013-06-08 13:33:37 +02:00
f96d109827 updated for version 7.3.1145
Problem:    New regexp engine: addstate() is called very often.
Solution:   Optimize adding the start state.
2013-06-07 22:39:40 +02:00
2358403363 updated for version 7.3.1144
Problem:    "RO" is not translated everywhere.
Solution:   Put inside _(). (Sergey Alyoshin)
2013-06-07 20:17:11 +02:00
3798519b9e updated for version 7.3.1143
Problem:    When mapping NUL it is displayed as an X.
Solution:   Check for KS_ZERO instead of K_ZERO. (Yasuhiro Matsumoto)
2013-06-07 19:53:10 +02:00
45fc539fe0 updated for version 7.3.1142
Problem:    Memory leak in ":syntime report".
Solution:   Clear the grow array. (Dominique Pelle)
2013-06-07 19:48:39 +02:00
a238431302 updated for version 7.3.1141
Problem:    Win32: Check for available memory is not reliable and adds
            overhead.
Solution:   Remove mch_avail_mem(). (Mike Williams)
2013-06-07 19:17:14 +02:00
43e0298416 updated for version 7.3.1140
Problem:    New regexp engine: trying expensive match while the result is not
            going to be used.
Solution:   Check for output state already being in the state list.
2013-06-07 17:31:29 +02:00
decd9540fd updated for version 7.3.1139
Problem:    New regexp engine: negated flag is hardly used.
Solution:   Add separate _NEG states, remove negated flag.
2013-06-07 16:31:50 +02:00
8aca2e9bef updated for version 7.3.1138
Problem:    New regexp engine: neglist no longer used.
Solution:   Remove the now unused neglist.
2013-06-07 14:59:18 +02:00
417bad227a updated for version 7.3.1137
Problem:    New regexp engine: collections are slow.
Solution:   Handle all characters in one go.
2013-06-07 14:08:30 +02:00
203d04d764 Updated runtime files. 2013-06-06 21:36:40 +02:00
4cd92d5aae updated for version 7.3.1136
Problem:    ":func Foo" does not show attributes.
Solution:   Add "abort", "dict" and "range". (Yasuhiro Matsumoto)
2013-06-06 21:31:06 +02:00
4e31296ffa updated for version 7.3.1135
Problem:    Compiler warning for unused argument.
Solution:   Add UNUSED.
2013-06-06 21:19:51 +02:00
cc908adac8 updated for version 7.3.1134
Problem:    Running test 49 takes a long time.
Solution:   Don't have it grep all files.
2013-06-06 18:55:49 +02:00
d89616ebb8 updated for version 7.3.1133
Problem:    New regexp engine is a bit slow.
Solution:   Skip ahead to a character that must match.  Don't try matching a
            "^" patter past the start of line.
2013-06-06 18:46:06 +02:00
6d3a5d755a updated for version 7.3.1132
Problem:    Crash when debugging regexp.
Solution:   Do not try to dump subexpr that were not set.  Skip over count of
            \% items.
2013-06-06 18:04:51 +02:00
188c57bcd1 updated for version 7.3.1131
Problem:    New regexp engine is a bit slow.
Solution:   Do not clear the state list.  Don't copy syntax submatches when
            not used.
2013-06-06 16:22:06 +02:00
f751255283 updated for version 7.3.1130
Problem:    Can't build with anything but huge features.
Solution:   Check for FEAT_PROFILE. (Yasuhiro Matsumoto)
2013-06-06 14:55:19 +02:00
8a7f5a2d43 updated for version 7.3.1129
Problem:    Can't see what pattern in syntax highlighting is slow.
Solution:   Add the ":syntime" command.
2013-06-06 14:01:46 +02:00
cd2d8bb6ea updated for version 7.3.1128
Problem:    Now that the NFA engine handles everything every failure is a
            syntax error.
Solution:   Remove the syntax_error flag.
2013-06-05 21:42:53 +02:00
2976c028ca updated for version 7.3.1127
Problem:    No error for using empty \%[].
Solution:   Give error message.
2013-06-05 21:30:37 +02:00
c19b4b50a8 updated for version 7.3.1126
Problem:    Compiler warning for unitialized variable. (Tony Mechelynck)
Solution:   Assign something to the variable.
2013-06-05 21:23:39 +02:00
973fced763 updated for version 7.3.1125
Problem:    Error for using \%V in a pattern in tiny Vim.
Solution:   Allow using \%V but never match. (Dominique Pelle)
2013-06-05 21:10:59 +02:00
d4209d203a updated for version 7.3.1124
Problem:    Python: Crash on MS-Windows when os.fchdir() is not available.
Solution:   Check for _chdir to be NULL. (Ken Takata)
2013-06-05 20:34:15 +02:00
e60c2e5e1c updated for version 7.3.1123
Problem:    Can't build tiny Vim on MS-Windows.
Solution:   Adjust #ifdef around using modif_fname(). (Mike Williams)
2013-06-05 19:35:38 +02:00
8795374bd3 updated for version 7.3.1122
Problem:    New regexp engine: \%> not supported.
Solution:   Implement \%>.
2013-06-05 18:52:40 +02:00
67604aed75 updated for version 7.3.1121
Problem:    New regexp engine: adding states that are not used.
Solution:   Don't add the states.
2013-06-05 16:51:57 +02:00
5b84ddccea updated for version 7.3.1120
Problem:    Crash when regexp logging is enabled.
Solution:   Avoid using NULL pointers. Advance over count argument.
2013-06-05 16:33:10 +02:00
1cd3f2c450 updated for version 7.3.1119
Problem:    Flags in 'cpo' are search for several times.
Solution:   Store the result and re-use the flags.
2013-06-05 12:43:09 +02:00
e2b8cb3b15 updated for version 7.3.1118
Problem:    Match failure rate is not very specific.
Solution:   Tune the failure rate for match items.
2013-06-05 11:46:25 +02:00
d75799ab7f updated for version 7.3.1117
Problem:    New regexp engine: \%[abc] not supported.
Solution:   Implement \%[abc].  Add tests.
2013-06-05 11:05:17 +02:00
78eae9aaf7 updated for version 7.3.1116
Problem:    Can't build without Visual mode.
Solution:   Add #ifdefs.
2013-06-05 11:02:05 +02:00
5ebc09b450 updated for version 7.3.1115
Problem:    Many users don't like the cursor line number when 'relativenumber'
            is set.
Solution:   Have four combinations with 'number' and 'relativenumber'.
            (Christian Brabandt)
2013-06-04 22:13:50 +02:00
b76591ef4a updated for version 7.3.1114
Problem:    Can't build without the syntax feature.
Solution:   Add #ifdefs. (Erik Falor)
2013-06-04 21:42:22 +02:00
044aa290c5 updated for version 7.3.1113
Problem:    New regexp engine: \%'m not supported.
Solution:   Implement \%'m.  Add tests.
2013-06-04 21:27:38 +02:00
dacd7de3fd updated for version 7.3.1112
Problem:    New regexp engine: \%V not supported.
Solution:   Implement \%V.  Add tests.
2013-06-04 18:28:48 +02:00
f811509c03 updated for version 7.3.1111
Problem:    nfa_recognize_char_class() implementation is inefficient.
Solution:   Use bits in an int instead of chars in a string. (Dominique Pelle)
2013-06-04 17:47:05 +02:00
a2d9510861 updated for version 7.3.1110
Problem:    New regexp matching: Using \@= and the like can be slow.
Solution:   Decide whether to first try matching the zero-wdith part or what
            follows, whatever is more likely to fail.
2013-06-04 14:23:05 +02:00
dd9a4a44a9 updated for version 7.3.1109
Problem:    Building on MS-Windows doesn't see changes in if_py_both.h.
Solution:   Add a dependency. (Ken Takata)
2013-06-03 20:12:51 +02:00
e9056b121d updated for version 7.3.1108
Problem:    Error message for os.fchdir() (Charles Peacech)
Solution:   Clear the error. (ZyX)
2013-06-03 20:04:48 +02:00
01d89dddfa updated for version 7.3.1107
Problem:    Compiler warnings for unused variables.
Solution:   Put the variables inside #ifdef.
2013-06-03 19:41:06 +02:00
dd2ccdf6ea updated for version 7.3.1106
Problem:    New regexp engine: saving and restoring lastlist in the states
            takes a lot of time.
Solution:   Use a second lastlist value for the first recursive call.
2013-06-03 12:17:04 +02:00
f46da70603 updated for version 7.3.1105
Problem:    New regexp engine: too much code in one function.  Dead code.
Solution:   Move the recursive nfa_regmatch call to a separate function.
            Remove the dead code.
2013-06-02 22:37:42 +02:00
f18fb7af75 updated for version 7.3.1104
Problem:    New regexp engine does not handle "~".
Solution:   Add support for "~".
2013-06-02 22:08:03 +02:00
f6de032afe updated for version 7.3.1103
Problem:    New regexp engine: overhead in saving and restoring.
Solution:   Make saving and restoring list IDs faster.  Don't copy or check \z
            subexpressions when they are not used.
2013-06-02 21:30:04 +02:00
9f5d600723 updated for version 7.3.1102
Problem:    Completion of ":py3do" and ":py3file" does not work after ":py3".
Solution:   Make completion work. (Taro Muraoka)
2013-06-02 19:22:13 +02:00
ac499e3116 updated for version 7.3.1101
Problem:    Configure doesn't find Python 3 on Ubuntu 13.04.
Solution:   First try distutils.sysconfig. Also fix some indents.  (Ken
            Takata)
2013-06-02 19:14:17 +02:00
78b5957439 updated for version 7.3.1100
Problem:    Python: a few more memory problems.
Solution:   Add and remove Py_XDECREF(). (ZyX)
2013-06-02 18:54:21 +02:00
f4258308e2 updated for version 7.3.1099
Problem:    Python: Changing directory with os.chdir() causes problems for
            Vim's notion of directories.
Solution:   Add vim.chdir() and vim.fchdir(). (ZyX)
2013-06-02 18:20:17 +02:00
4f2109d782 updated for version 7.3.1098
Problem:    Python: Possible memory leaks
Solution:   Add Py_XDECREF() calls. (ZyX)
2013-06-02 18:07:37 +02:00
bc41196bdc updated for version 7.3.1097
Problem:    Python: a few recently added items are not documented.
Solution:   Update the documentation. (ZyX)
2013-06-02 17:46:40 +02:00
de71b5658f updated for version 7.3.1096
Problem:    Python: popitem() was not defined in a standard way.
Solution:   Remove the argument from popitem(). (ZyX)
2013-06-02 17:41:54 +02:00
525666f282 updated for version 7.3.1095
Problem:    Compiler warnings for shadowed variables. (Christian Brabandt)
Solution:   Rename new_state() to alloc_state().  Remove unnecessary
            declaration.
2013-06-02 16:40:55 +02:00
307aa16a69 updated for version 7.3.1094
Problem:    New regexp engine: Attempts to match "^" at every character.
Solution:   Only try "^" at the start of a line.
2013-06-02 16:34:21 +02:00
b122e9798e updated for version 7.3.1093
Problem:    New regexp engine: When a sub expression is empty \1 skips a
            character.
Solution:   Make \1 try the current position when the match is emtpy.
2013-06-02 16:07:10 +02:00
69afb7bf0a updated for version 7.3.1092
Problem:    Can't build with regexp debugging.  NFA debug output shows wrong
            pattern.
Solution:   Fix debugging code for recent changes.  Add the pattern to the
            program.
2013-06-02 15:55:55 +02:00
5de820b916 updated for version 7.3.1091
Problem:    New regexp engine: no error when using \z1 or \z( where it does
            not work.
Solution:   Give an error message.
2013-06-02 15:01:57 +02:00
efb23f26e8 updated for version 7.3.1090
Problem:    New regexp engine does not support \z1 .. \z9 and \z(.
Solution:   Implement the syntax submatches.
2013-06-01 23:02:54 +02:00
0418811869 updated for version 7.3.1089
Problem:    Tests 86 and 87 fail on MS-Windows. (Ken Takata)
Solution:   Fix platform-specific stuff. (ZyX)
2013-06-01 20:32:12 +02:00
61602c5bfe updated for version 7.3.1088
Problem:    New regexp engine: \@<= and \@<! are not implemented.
Solution:   Implement look-behind matching.  Fix off-by-one error in old
            regexp engine.
2013-06-01 19:54:43 +02:00
543b7ef700 Updated runtime files and translations. 2013-06-01 14:50:56 +02:00
3737fc1c30 updated for version 7.3.1087
Problem:    A leading star is not seen as a normal char when \{} follows.
Solution:   Save and restore the parse state properly.
2013-06-01 14:42:56 +02:00
75d7a06920 updated for version 7.3.1086
Problem:    Old regexp engine accepts illegal range, new one doesn't.
Solution:   Also accept the illegal range with the new engine.
2013-06-01 13:24:24 +02:00
36b3a011d3 updated for version 7.3.1085
Problem:    New regexp engine: Non-greedy multi doesn't work.
Solution:   Implement \{-}.
2013-06-01 12:40:20 +02:00
54dafde170 updated for version 7.3.1084
Problem:    New regexp engine: only accepts up to \{,10}.
Solution:   Remove upper limit.  Remove dead code with NFA_PLUS.
2013-05-31 23:18:00 +02:00
4b78063368 updated for version 7.3.1083
Problem:    New regexp engine: Does not support \%^ and \%$.
Solution:   Support matching start and end of file.
2013-05-31 22:14:52 +02:00
14f55c6f67 updated for version 7.3.1082
Problem:    New regexp engine: Problem with \@= matching.
Solution:   Save and restore nfa_match.
2013-05-31 21:45:09 +02:00
99dc19d1cc updated for version 7.3.1081
Problem:    Compiler warnings on 64-bit Windows.
Solution:   Change variable types. (Mike Williams)
2013-05-31 20:49:31 +02:00
ca982c8d45 updated for version 7.3.1080
Problem:    Test 86 fails.
Solution:   Comment out the parts that don't work.  Make it pass on 32 bit
            systems.
2013-05-31 19:01:16 +02:00
96c7dfd806 updated for version 7.3.1079
Problem:    Test 87 fails.
Solution:   Fix the test for Python 3.3. (ZyX)  Make it pass on 32 bit systems.
2013-05-31 18:46:11 +02:00
b06e20e6ba updated for version 7.3.1078
Problem:    New regexp engine: \@! doesn't work.
Solution:   Implement the negated version of \@=.
2013-05-30 22:44:02 +02:00
35eacd7180 updated for version 7.3.1077
Problem:    Python: Allocating dict the wrong way, causing a crash.
Solution:   Use py_dict_alloc(). Fix some exception problems. (ZyX)
2013-05-30 22:06:33 +02:00
2d5e112284 updated for version 7.3.1076
Problem:    New regexp engine: \@= and \& don't work.
Solution:   Make these items work.  Add column info to logging.
2013-05-30 21:42:13 +02:00
021e147b70 updated for version 7.3.1075
Problem:    Compiler warning for storing a long_u in an int.
Solution:   Declare the number as an int. (Mike Williams)
2013-05-30 19:18:31 +02:00
f62d942e54 updated for version 7.3.1074
Problem:    Compiler warning for printf format. (Manuel Ortega)
Solution:   Add type casts.
2013-05-30 19:01:24 +02:00
16299b57cb updated for version 7.3.1073
Problem:    New regexp engine may run out of states.
Solution:   Allocate states dynamically.  Also make the test report errors.
2013-05-30 18:45:23 +02:00
4b6ebe6dce updated for version 7.3.1072
Problem:    Compiler warning for unitialized variable.
Solution:   Initialize it.
2013-05-30 17:49:24 +02:00
428e987b61 updated for version 7.3.1071
Problem:    New regexp engine: backreferences don't work correctly.
Solution:   Add every possible start/end position on the state stack.
2013-05-30 17:05:39 +02:00
fdde880b02 updated for version 7.3.1070
Problem:    Vim crashes in Python tests. Compiler warning for unused function.
Solution:   Disable the tests for now. Move the function.
2013-05-30 15:38:24 +02:00
fc714b35c6 updated for version 7.3.1069
Problem:    Python: memory leaks.
Solution:   Python patch 28: Purge out DICTKEY_CHECK_EMPTY macros. (ZyX)
2013-05-30 14:52:37 +02:00
018acca3bd updated for version 7.3.1068
Problem:    Python: Script is auto-loaded on function creation.
Solution:   Python patch 27. (ZyX)
2013-05-30 13:37:28 +02:00
305b2fde13 updated for version 7.3.1067
Problem:    Python: documentation lags behind.
Solution:   Python patch 26. (ZyX)
2013-05-30 13:32:30 +02:00
8600e40a67 updated for version 7.3.1066
Problem:    Python: Insufficient exception and error testing.
Solution:   Python patch 25. (ZyX)
2013-05-30 13:28:41 +02:00
bcb40977c3 updated for version 7.3.1065
Problem:    Python: key mapping is not standard.
Solution:   Puthon patch 24: use PyMapping_Keys. (ZyX)
2013-05-30 13:22:13 +02:00
494ff7e850 updated for version 7.3.1064
Problem:    Python: insufficient error checking.
Solution:   Python patch 23. (ZyX)
2013-05-30 13:17:17 +02:00
355fd9b468 updated for version 7.3.1063
Problem:    Python: Function is not standard.
Solution:   Python patch 22: make Function subclassable. (ZyX)
2013-05-30 13:14:13 +02:00
78cddbe271 updated for version 7.3.1062
Problem:    Python: List is not standard.
Solution:   Python patch 21: Add standard methods and fields. (ZyX)
2013-05-30 13:05:58 +02:00
a9922d62e6 updated for version 7.3.1061
Problem:    Python: Dictionary is not standard.
Solution:   Python patch 20: Add standard methods and fields. (ZyX)
2013-05-30 13:01:18 +02:00
a5b725c3f6 updated for version 7.3.1060
Problem:    Python: can't repr() a function.
Solution:   Python patch 19: add FunctionRepr(). (ZyX)
2013-05-30 12:43:54 +02:00
1a3b56953e updated for version 7.3.1059
Problem:    Python: Using fixed size buffers.
Solution:   Python patch 18: Use python's own formatter. (ZyX)
2013-05-30 12:40:39 +02:00
a1544c00c8 updated for version 7.3.1058
Problem:    Call of funcref does not succeed in other script.
Solution:   Python patch 17: add get_expanded_name(). (ZyX)
2013-05-30 12:35:52 +02:00
01a7a720ad updated for version 7.3.1057
Problem:    Python: not enough compatibilty.
Solution:   Python patch 16: Make OutputWritelines support any sequence object
            (ZyX) Note: tests fail
2013-05-30 12:26:58 +02:00
9bb77d6fe6 updated for version 7.3.1056
Problem:    Python: possible memory leaks.
Solution:   Python patch 15. (ZyX) Fix will follow later.
2013-05-30 12:14:49 +02:00
bad704fa04 updated for version 7.3.1055
Problem:    Negated collection does not match newline.
Solution:   Handle newline differently. (Hiroshi Shirosaki)
2013-05-30 11:51:08 +02:00
7e28384a9a updated for version 7.3.1054
Problem:    Can't build without the +autocmd feature. (Elimar Riesebieter)
Solution:   Fix use of buf and curbuf.
2013-05-30 11:43:15 +02:00
07b8864111 updated for version 7.3.1053
Problem:    Python: no flag for types with tp_traverse+tp_clear.
Solution:   Python patch 14: Add Py_TPFLAGS_HAVE_GC. (ZyX)
2013-05-29 22:58:32 +02:00
1bcabe19a2 updated for version 7.3.1052
Problem:    Python: possible SEGV and negative refcount.
Solution:   Python patch 13: Fix IterIter function. (ZyX)
2013-05-29 22:52:32 +02:00
a03e631120 updated for version 7.3.1051
Problem:    Python: possible memory leaks.
Solution:   Python patch 12: fix the leaks (ZyX)
2013-05-29 22:49:26 +02:00
c8366790e8 updated for version 7.3.1050
Problem:    Python: Typo in pyiter_to_tv.
Solution:   Python patch 11. (ZyX)
2013-05-29 22:46:26 +02:00
c37b6ecd60 updated for version 7.3.1049
Problem:    Python: no consistent naming
Solution:   Python patch 10: Rename DICTKEY_GET_NOTEMPTY to DICTKEY_GET. (ZyX)
2013-05-29 22:43:37 +02:00
b38caae26c updated for version 7.3.1048
Problem:    Python: no consistent naming.
Solution:   Python patch 9: Rename d to dict and lookupDict to lookup_dict.
            (ZyX)
2013-05-29 22:39:52 +02:00
dd8aca664d updated for version 7.3.1047
Problem:    Python: dir() does not work properly.
Solution:   Python patch 8.  Add __dir__ method to all objects with custom
            tp_getattr supplemented by __members__ attribute for at least
            python-2* versions.  __members__ is not mentioned in python-3*
            dir() output even if it is accessible. (ZyX)
2013-05-29 22:36:10 +02:00
432b09c84d updated for version 7.3.1046
Problem:    Python: Using Py_BuildValue for building strings.
Solution:   Python patch 7 and 7.5: Replace Py_BuildValue with
            PyString_FromString. (ZyX)
2013-05-29 22:26:18 +02:00
21642ed1b4 updated for version 7.3.1045
Problem:    Python: No error handling for VimToPython function.
Solution:   Python patch 6. (ZyX)
2013-05-29 22:20:01 +02:00
9e822c00b1 updated for version 7.3.1044
Problem:    Python: No {Buffer,TabPage,Window}.valid attributes.
Solution:   Python patch 5: add .valid (ZyX)
2013-05-29 22:15:30 +02:00
3e734ea2c7 updated for version 7.3.1043
Problem:    Python: Dynamic compilation with 2.3 fails.
Solution:   Python patch 4. (ZyX)
2013-05-29 22:05:55 +02:00
e9ba516be2 updated for version 7.3.1042
Problem:    Python: can't assign to vim.Buffer.name.
Solution:   Python patch 3. (ZyX)
2013-05-29 22:02:22 +02:00
1bc2428e1f updated for version 7.3.1041
Problem:    Python: Invalid read valgrind errors.
Solution:   Python patch 2: defer DICTKEY_UNREF until key is no longer needed.
            (ZyX)
2013-05-29 21:37:35 +02:00
0014a53ad1 updated for version 7.3.1040
Problem:    Python: Problems with debugging dynamic build.
Solution:   Python patch 1. (ZyX)
2013-05-29 21:33:39 +02:00
423532e10d updated for version 7.3.1039
Problem:    New regexp engine does not support \%23c, \%<23c and the like.
Solution:   Implement them. (partly by Yasuhiro Matsumoto)
2013-05-29 21:14:42 +02:00
28c2191949 updated for version 7.3.1038
Problem:    Crash when using Cscope.
Solution:   Avoid negative argument to vim_strncpy(). (Narendran
            Gopalakrishnan)
2013-05-29 19:18:00 +02:00
75eb1610e1 updated for version 7.3.1037
Problem:    Look-behind matching is very slow on long lines.
Solution:   Add a byte limit to how far back an attempt is made.
2013-05-29 18:45:11 +02:00
f9e56b2b03 updated for version 7.3.1036
Problem:    Can't build on HP-UX.
Solution:   Give the union a name. (John Marriott)
2013-05-28 22:52:16 +02:00
4ac6676cee updated for version 7.3.1035
Problem:    Compiler warning on 64 bit windows.
Solution:   Add type cast. (Mike Williams)
2013-05-28 22:31:46 +02:00
51a2983904 updated for version 7.3.1034
Problem:    New regexp code using strange multi-byte code.
Solution:   Use the normal code to advance and backup pointers.
2013-05-28 22:30:35 +02:00
5714b80032 updated for version 7.3.1033
Problem:    "\1" .. "\9" are not supported in the new regexp engine.
Solution:   Implement them.  Add a few more tests.
2013-05-28 22:03:20 +02:00
e0fea9c405 updated for version 7.3.1032
Problem:    "\ze" is not supported by the new regexp engine.
Solution:   Make "\ze" work.
2013-05-27 20:10:50 +02:00
eb3ecae23a updated for version 7.3.1031
Problem:    Compiler warnings for shadowed variable. (John Little)
Solution:   Move the variable declarations to the scope where they are used.
2013-05-27 11:22:04 +02:00
2cb8feb880 updated for version 7.3.1030
Problem:    Can't build for debugging.
Solution:   Fix struct member names.
2013-05-26 23:13:07 +02:00
26c2f3fc4e updated for version 7.3.1029
Problem:    New regexp performance: Unused position state being copied.
Solution:   Keep track of which positions are actually valid.
2013-05-26 22:56:19 +02:00
963fee2d69 updated for version 7.3.1028
Problem:    New regexp performance: Copying a lot of position state.
Solution:   Only copy the sub-expressions that are being used.
2013-05-26 21:47:28 +02:00
c4912e555b updated for version 7.3.1027
Problem:    New regexp performance: Calling no_Magic() very often.
Solution:   Remove magicness inline.
2013-05-26 19:19:52 +02:00
e23febdb85 updated for version 7.3.1026
Problem:    New regexp: pattern that includs a new-line matches too early.
            (john McGowan)
Solution:   Do not start searching in the second line.
2013-05-26 18:40:14 +02:00
61db8b5108 updated for version 7.3.1025
Problem:    New regexp: not matching newline in string. (Marc Weber)
Solution:   Check for "\n" character.
2013-05-26 17:45:49 +02:00
57a285b105 updated for version 7.3.1024
Problem:    New regexp: End of matching pattern not set correctly. (Cesar
            Romani)
Solution:   Quit the loop after finding the match.  Store nfa_has_zend in the
            program.
2013-05-26 16:57:28 +02:00
3451d66244 updated for version 7.3.1023
Problem:    Searching for composing char only and using \Z has different
            results.
Solution:   Make it match the composing char, matching everything is not
            useful.
2013-05-26 15:14:55 +02:00
7cd4d9c17c updated for version 7.3.1022
Problem:    Compiler warning for shadowed variable. (John Little)
Solution:   Move declaration, rename variables.
2013-05-26 14:54:12 +02:00
3f1682e808 updated for version 7.3.1021
Problem:    New regexp engine does not ignore order of composing chars.
Solution:   Ignore composing chars order.
2013-05-26 14:32:05 +02:00
fdb6dc1105 updated for version 7.3.1020
Problem:    Not all patterns are tested with auto / old / new engine.
Solution:   Test patterns with three values of 'regexpengine'.
2013-05-25 23:15:27 +02:00
47196581b8 updated for version 7.3.1019
Problem:    These do not work with the new regexp engine: \%o123, \%x123,
            \%d123, \%u123 and \%U123.
Solution:   Implement these items.
2013-05-25 22:04:23 +02:00
aae4883e01 updated for version 7.3.1018
Problem:    New regexp engine wastes memory.
Solution:   Allocate prog with actual number of states, not estimated maximum
            number of sates.
2013-05-25 21:18:34 +02:00
4b41706477 updated for version 7.3.1017
Problem:    Zero width match changes length of match.
Solution:   For a zero width match put new states in the current position in
            the state list.
2013-05-25 20:19:50 +02:00
f47ca63dbc updated for version 7.3.1016
Problem:    Unused field in nfa_state.
Solution:   Remove lastthread.
2013-05-25 15:31:05 +02:00
56d58d51bf updated for version 7.3.1015
Problem:    New regexp engine: Matching composing characters is wrong.
Solution:   Fix matching composing characters.
2013-05-25 14:42:03 +02:00
152e7890c1 updated for version 7.3.1014
Problem:    New regexp state dump is hard to read.
Solution:   Make the state dump more pretty. (Taro Muraoka)
2013-05-25 12:28:11 +02:00
d6c11cb3e0 updated for version 7.3.1013
Problem:    New regexp logging is a bit messy.
Solution:   Consistently use #defines, add explanatory comment. (Taro Muraoka)
2013-05-25 12:18:39 +02:00
fad8de084a updated for version 7.3.1012
Problem:    \Z does not work properly with the new regexp engine.
Solution:   Make \Z work.  Add tests.
2013-05-24 23:10:50 +02:00
3c577f26cd updated for version 7.3.1011
Problem:    New regexp engine is inefficient with multi-byte characters.
Solution:   Handle a character at a time instead of a byte at a time.  Also
            make \Z partly work.
2013-05-24 21:59:54 +02:00
1d814754c0 updated for version 7.3.1010
Problem:    New regexp: adding \Z makes every character match.
Solution:   Only apply ireg_icombine for composing characters.
            Alsl add missing change from patch 1008. (Ken Takata)
2013-05-24 20:25:33 +02:00
425154d888 updated for version 7.3.1009
Problem:    Compiler warning for ambiguous else.
Solution:   Add curly braces.
2013-05-24 18:58:43 +02:00
02e26d9807 updated for version 7.3.1008
Problem:    Test 95 fails on MS-Windows.
Solution:   Set 'nomore'. Change \i to \f.  Change multi-byte character to
            something that is not matching \i. (Ken Takata)
2013-05-23 22:43:08 +02:00
a03dbed9e9 updated for version 7.3.1007
Problem:    Can't build on Minix 3.2.1.
Solution:   Add a condition to an #ifdef. (Gautam Tirumala)
2013-05-23 22:27:03 +02:00
307d10a2fb updated for version 7.3.1006
Problem:    NFA engine not used for "\_[0-9]".
Solution:   Enable this, fixed in patch 1005.
2013-05-23 22:25:15 +02:00
35b2386a8e updated for version 7.3.1005
Problem:    Get stuck on regexp "\n*" and on "%s/^\n\+/\r".
Solution:   Fix handling of matching a line break. (idea by Hirohito Higashi)
2013-05-22 23:00:40 +02:00
c96ebe75e5 updated for version 7.3.1004
Problem:    No error when option could not be set.
Solution:   Report an error. (ZyX)
2013-05-21 22:38:18 +02:00
2a0f3d3fb2 updated for version 7.3.1003
Problem:    Python interface does not compile with Python 2.2
Solution:   Fix thread issues and True/False. (ZyX)
2013-05-21 22:23:56 +02:00
0b9aecc3a5 updated for version 7.3.1002
Problem:    Valgrind errors for Python interface.
Solution:   Fix memory leaks when running tests. (ZyX)
2013-05-21 22:13:41 +02:00
673af4d304 updated for version 7.3.1001
Problem:    Duplicate condition in if.
Solution:   Remove one condition.
2013-05-21 22:00:51 +02:00
2eec59e30b updated for version 7.3.1000
Problem:    Typo in char value causes out of bounds access.
Solution:   Fix character value.  (Klemens Baum)
2013-05-21 21:37:20 +02:00
f878bf0da2 updated for version 7.3.999
Problem:    New regexp engine sets curbuf temporarily.
Solution:   Use reg_buf instead, like the old engine.
2013-05-21 21:20:20 +02:00
e6ae6225b4 Updated runtime files, language files and translations. 2013-05-21 21:01:10 +02:00
774267bbb9 updated for version 7.3.998
Problem:    Python: garbage collection issues.
Solution:   Fix the GC issues: Use proper DESTRUCTOR_FINISH: avoids negative
            refcounts, use PyObject_GC_* for objects with tp_traverse and
            tp_clear, add RangeTraverse and RangeClear, use Py_XDECREF in some
            places. (ZyX)
2013-05-21 20:51:59 +02:00
a7b64ce74e updated for version 7.3.997
Problem:    Vim and Python exceptions are different.
Solution:   Make Vim exceptions be Python exceptions. (ZyX)
2013-05-21 20:40:40 +02:00
cac867ad18 updated for version 7.3.996
Problem:    Python: Can't check types of what is returned by bindeval().
Solution:   Add vim.List, vim.Dictionary and vim.Function types. (ZyX)
2013-05-21 19:50:34 +02:00
1dc28783fa updated for version 7.3.995
Problem:    Python: Module initialization is duplicated.
Solution:   Move to shared file. (ZyX)
2013-05-21 19:11:01 +02:00
182dc4f2ab updated for version 7.3.994
Problem:    Python: using magic constants.
Solution:   Use descriptive values for ml_flags. (ZyX)
2013-05-21 19:01:55 +02:00
e64faa6645 updated for version 7.3.993
Problem:    Python: Later patch does things slightly differently.
Solution:   Adjusted argument type changes. (ZyX)
2013-05-21 18:47:21 +02:00
d6e391862c updated for version 7.3.992
Problem:    Python: Too many type casts.
Solution:   Change argument types. (ZyX)
2013-05-21 18:30:34 +02:00
b52f4c02e6 updated for version 7.3.991
Problem:    More can be shared by Python 2 and 3.
Solution:   Move more stuff to if_py_both. (ZyX)
2013-05-21 18:19:38 +02:00
b09d983c78 updated for version 7.3.990
Problem:    Memory leak in new regexp engine.
Solution:   Jump to end of function to free memory. (Dominique Pelle)
2013-05-21 16:28:11 +02:00
12e4014092 updated for version 7.3.989
Problem:    New regexp engine compares negative numbers to character.
Solution:   Add missing case statements.
2013-05-21 15:33:41 +02:00
66e83d7db0 updated for version 7.3.988
Problem:    New regexp engine is slow.
Solution:   Break out of the loop when the state list is empty.
2013-05-21 14:03:00 +02:00
d2470e9fbe updated for version 7.3.987
Problem:    No easy to run an individual test.  Tests 64 fails when
            'encoding' is not utf-8.
Solution:   Add individual test targets to the Makefile.  Move some lines from
            test 64 to 95.
2013-05-21 13:30:21 +02:00
d7a06b1d71 updated for version 7.3.986
Problem:    Test 95 doesn't pass when 'encoding' isn't utf-8. (Yasuhiro
            Matsumoto)
Solution:   Force 'encoding' to be utf-8.
2013-05-21 13:05:15 +02:00
8dd7901a66 updated for version 7.3.985
Problem:    GTK vim not started as gvim doesn't set WM_CLASS property to a
            useful value.
Solution:   Call g_set_prgname() on startup. (James McCoy)
2013-05-21 12:52:04 +02:00
9bad29decf updated for version 7.3.984
Problem:    A Visual mapping that uses CTRL-G works differently when started
            from Insert mode. (Ein Brown)
Solution:   Reset old_mapped_len when handling typed text in Select mode.
2013-05-21 12:46:02 +02:00
080504921d updated for version 7.3.983
Problem:    Uneccessary temp variable.
Solution:   Remove the variable.
2013-05-21 12:43:56 +02:00
0fabe3fdbe updated for version 7.3.982
Problem:    In the new regexp engine \p does not work on multi-byte
            characters.
Solution:   Don't point to an integer but the characters.
2013-05-21 12:34:17 +02:00
09ea9fcf3f updated for version 7.3.981
Problem:    In the old regexp engine \i, \I, \f and \F don't work on
            multi-byte characters.
Solution:   Dereference pointer properly.
2013-05-21 00:03:02 +02:00
745fc029ba updated for version 7.3.980
Problem:    Regexp logs may contain garbage. Character classes don't work
            correctly for multi-byte characters.
Solution:   Check for end of post list.  Only use "is" functions for
            characters up to 255. (Ken Takata)
2013-05-20 22:20:02 +02:00
e3c7b86aab updated for version 7.3.979
Problem:    Complex NFA regexp doesn't work.
Solution:   Set actual state stack end instead of using an arbitrary number.
            (Yasuhiro Matsumoto)
2013-05-20 21:57:03 +02:00
7fcff1f781 updated for version 7.3.978
Problem:    Regexp debug logs don't have a good name.
Solution:   Use clear names and make it possible to write logs for the old and
            new engines separately. (Taro Muraoka)
2013-05-20 21:49:13 +02:00
ca12d7c004 updated for version 7.3.977
Problem:    Compiler warnings on 64 bit Windows.
Solution:   Add type casts. (Mike Williams)  Also fix some white space and
            uncomment what was commented-out for testing.
2013-05-20 21:26:33 +02:00
053bb60f44 updated for version 7.3.976
Problem:    Can't build on HP-UX.
Solution:   Remove modern initialization. (John Marriott)
2013-05-20 13:55:21 +02:00
bc0ea8f75e updated for version 7.3.975
Problem:    Crash in regexp parsing.
Solution:   Correctly compute the end of allocated memory.
2013-05-20 13:44:29 +02:00
10f3a79e89 updated for version 7.3.974
Problem:    Can't build with ruby 1.8.5.
Solution:   Only use ruby_init_stack() when RUBY_INIT_STACK is defined.
            (Yukihiro Nakadaira)
2013-05-20 12:52:29 +02:00
ba40447ab1 updated for version 7.3.973
Problem:    Compiler warnings. Crash on startup. (Tony Mechelynck)
Solution:   Change EMSG2 to EMSGN. Make array one character longer.
2013-05-19 22:31:18 +02:00
097c992c46 updated for version 7.3.972
Problem:    Cursor not restored after InsertEnter autocommand if it moved to
            another line.
Solution:   Also restore if the saved line number is still valid.  Allow
            setting v:char to skip restoring.
2013-05-19 21:15:15 +02:00
884f6e44e0 updated for version 7.3.971
Problem:    No support for VS2012 static code analysis.
Solution:   Add the ANALYZE option. (Mike Williams)
2013-05-19 21:03:54 +02:00
fbc0d2ea1e updated for version 7.3.970
Problem:    Syntax highlighting can be slow.
Solution:   Include the NFA regexp engine.  Add the 'regexpengine' option to
            select which one is used. (various authors, including Ken Takata,
            Andrei Aiordachioaie, Russ Cox, Xiaozhou Liua, Ian Young)
2013-05-19 19:40:29 +02:00
6fa41fb374 updated for version 7.3.969
Problem:    Can't built with Python 3 and without Python 2.
Solution:   Adjust #ifdef. (Xavier de Gaye)
2013-05-18 20:55:35 +02:00
7533fddd09 updated for version 7.3.968
Problem:    Multi-byte support is only available when compiled with "big"
            features.
Solution:   Include multi-byte by default, with "normal" features.
2013-05-18 20:45:59 +02:00
9e74e30b5f updated for version 7.3.967
Problem:    Build fails on Mac OSX. (Greg Novack)
Solution:   Undefine clear().
2013-05-17 21:20:17 +02:00
ad3b366c82 Update runtime files. 2013-05-17 18:14:19 +02:00
d620aa9be4 updated for version 7.3.966
Problem:    There is ":py3do" but no ":pydo".
Solution:   Add the ":pydo" command. (Lilydjwg)
2013-05-17 16:40:06 +02:00
cfef5ff23e updated for version 7.3.965
Problem:    Python garbage collection not working properly.
Solution:   Add support for garbage collection. (ZyX)
2013-05-17 16:24:32 +02:00
cabf80ff2f updated for version 7.3.964
Problem:    Python: not so easy to access tab pages.
Solution:   Add window.tabpage, make window.number work with non-current tab
            pages. (ZyX)
2013-05-17 16:18:33 +02:00
105bc355a6 updated for version 7.3.963
Problem:    Setting curbuf without curwin causes trouble.
Solution:   Add switch_buffer() and restore_buffer().  Block autocommands to
            avoid trouble.
2013-05-17 16:03:57 +02:00
55b8ad3dab updated for version 7.3.962
Problem:    Python tests are not portable.
Solution:   Use shiftwidth instead of iminsert. (ZyX)
2013-05-17 13:38:04 +02:00
c24c1acd82 updated for version 7.3.961
Problem:    Tests 86 and 87 fail when using another language than English.
Solution:   Set the language to C in the test. (Dominique Pelle)
2013-05-16 20:47:56 +02:00
07729b25bf updated for version 7.3.960
Problem:    Compiler warning for unused variable.
Solution:   Put declaration in #ifdef.
2013-05-15 23:13:10 +02:00
54e8f00581 updated for version 7.3.959
Problem:    Missing error number.
Solution:   Assign an error number.
2013-05-15 19:44:39 +02:00
2cd7362e30 updated for version 7.3.958
Problem:    Python: Iteration destructor not set.
Solution:   Put IterDestructor to use. (ZyX)
2013-05-15 19:07:47 +02:00
3dab2806fe updated for version 7.3.957
Problem:    Python does not have a "do" command like Perl or Lua.
Solution:   Add the ":py3do" command. (Lilydjwg)
2013-05-15 18:28:13 +02:00
71700b8903 updated for version 7.3.956
Problem:    Python vim.bindeval() causes SIGABRT.
Solution:   Make pygilstate a local variable. (Yukihiro Nakadaira)
2013-05-15 17:49:05 +02:00
a4720019cf updated for version 7.3.955
Problem:    Python: Not enough tests.
Solution:   Add tests for vim.{current,window*,tabpage*}. (ZyX)
2013-05-15 16:27:37 +02:00
b983f75d22 updated for version 7.3.954
Problem:    No check if PyObject_IsTrue fails.
Solution:   Add a check for -1 value. (ZyX)
2013-05-15 16:11:50 +02:00
d5f729cada updated for version 7.3.953
Problem:    Python: string exceptions are deprecated.
Solution:   Make vim.error an Exception subclass. (ZyX)
2013-05-15 16:04:40 +02:00
e761459eb6 updated for version 7.3.952
Problem:    Python: It's not easy to change window/buffer/tabpage.
Solution:   Add ability to assign to vim.current.{tabpage,buffer,window}.
            (ZyX)
2013-05-15 15:51:08 +02:00
8661b17843 updated for version 7.3.951
Problem:    Python exceptions have problems.
Solution:   Change some IndexErrors to TypeErrors. Make “line number out of
            range” an IndexError.  Make “unable to get option value” a
            RuntimeError. Make all PyErr_SetString messages start with
            lowercase letter and use _(). (ZyX)
2013-05-15 15:44:28 +02:00
4d188da22b updated for version 7.3.950
Problem:    Python: Stack trace printer can't handle messages.
Solution:   Make KeyErrors use PyErr_SetObject. (ZyX)
2013-05-15 15:35:09 +02:00
5e538ecd5e updated for version 7.3.949
Problem:    Python: no easy access to tabpages.
Solution:   Add vim.tabpages and vim.current.tabpage. (ZyX)
2013-05-15 15:12:29 +02:00
03db85b398 updated for version 7.3.948
Problem:    Cannot build with Python 2.2
Solution:   Make Python interface work with Python 2.2
            Make 2.2 the first supported version. (ZyX)
2013-05-15 14:51:35 +02:00
b6c589a529 updated for version 7.3.947
Problem:    Python: No iterator for vim.list and vim.bufferlist.
Solution:   Add the iterators. Also fix name of FunctionType. Add tests for
            vim.buffers.  (ZyX)
2013-05-15 14:39:52 +02:00
46a7561f3a updated for version 7.3.946
Problem:    Sometimes get stuck in waiting for cursor position report,
            resulting in keys starting with <Esc>[ not working.
Solution:   Only wait for more characters after <Esc>[ if followed by '?', '>'
            or a digit.
2013-05-15 14:22:41 +02:00
dfa38d4e45 updated for version 7.3.945
Problem:    Python: List of buffers is not very useful.
Solution:   Make vim.buffers a map. No iterator yet. (ZyX)
2013-05-15 13:38:47 +02:00
29607acff6 updated for version 7.3.944
Problem:    External program receives the termrespone.
Solution:   Insert a delay and discard input. (Hayaki Saito)
2013-05-13 20:26:53 +02:00
bd80f35bc5 updated for version 7.3.943
Problem:    Python: Negative indices were failing.
Solution:   Fix negative indices. Add tests. (ZyX)
2013-05-12 21:16:23 +02:00
8f1723de47 updated for version 7.3.942
Problem:    Python: SEGV in Buffer functions.
Solution:   Call CheckBuffer() at the right time. (ZyX)
2013-05-12 20:36:14 +02:00
3d0c52db9c updated for version 7.3.941
Problem:    Stuff in if_py_both.h is ordered badly.
Solution:   Reorder by type. (ZyX)
2013-05-12 19:45:35 +02:00
4e5dfb5700 updated for version 7.3.940
Problem:    Python: Can't get position of window.
Solution:   Add window.row and window.col. (ZyX)
2013-05-12 19:30:31 +02:00
99add41656 updated for version 7.3.939
Problem:    Using Py_BuildValue is inefficient sometimes.
Solution:   Use PyLong_FromLong(). (ZyX)
2013-05-12 19:09:51 +02:00
6d21645f46 updated for version 7.3.938
Problem:    Python: not easy to get to window number.
Solution:   Add vim.window.number. (ZyX)
2013-05-12 19:00:41 +02:00
971db46799 updated for version 7.3.937
Problem:    More can be shared between Python 2 and 3.
Solution:   Move code to if_py_both.h. (ZyX)
2013-05-12 18:44:48 +02:00
3b9abb6cc2 updated for version 7.3.936
Problem:    Ruby 1.8: Missing piece for static linking on 64 bit systems.
Solution:   Define ruby_init_stack() (Hiroshi Shirosaki)
            Also fix preprocessor indents.
2013-05-12 14:11:17 +02:00
76a86063ca updated for version 7.3.935
Problem:    Init stack works differently on 64 bit systems.
Solution:   Handle 64 bit systems and also static library. (Yukihiro
            Nakadaira)
2013-05-11 17:45:48 +02:00
82e803b055 updated for version 7.3.934
Problem:    E381 and E380 make the user think nothing happened.
Solution:   Display the message indicating what error list is now active.
            (Christian Brabandt)
2013-05-11 15:50:33 +02:00
99685e6a7e updated for version 7.3.933
Problem:    Ruby on Mac crashes due to GC failure.
Solution:   Init the stack from main(). (Hiroshi Shirosaki)
2013-05-11 13:56:18 +02:00
6800186a03 updated for version 7.3.932
Problem:    Compiler warning for uninitialized variable. (Tony Mechelynck)
Solution:   Initialize the variable.
2013-05-11 13:45:05 +02:00
09bb33dde9 updated for version 7.3.931
Problem:    No completion for :xmap and :smap. (Yukihiro Nakadaira)
Solution:   Add the case statements. (Christian Brabandt)
2013-05-07 05:18:20 +02:00
290424868d updated for version 7.3.930
Problem:    MSVC 2012 update is not recognized.
Solution:   Update the version in the makefile. (Raymond Ko)
2013-05-07 05:11:17 +02:00
51ac8a27e5 updated for version 7.3.929
Problem:    Compiler warning for unused variable. Not freeing unused string.
Solution:   Remove the variable. Clear the options.
2013-05-06 06:45:47 +02:00
161fb5e302 updated for version 7.3.928
Problem:    Can't build with strict C compiler.
Solution:   Move declaration to start of block. (Taro Muraoka)
2013-05-06 06:26:15 +02:00
531da5955e Updated runtime files. 2013-05-06 05:58:55 +02:00
229f8dbf7a updated for version 7.3.927
Problem:    Missing combining characters when putting text in a register.
Solution:   Include combining characters. (David Bürgin)
2013-05-06 05:50:28 +02:00
49e649fc2e updated for version 7.3.926
Problem:    Autocommands are triggered by setwinvar() et al. Missing BufEnter
            on :tabclose. Duplicate WinEnter on :tabclose. Wrong order of
            events for :tablose and :tabnew.
Solution:   Fix these autocommand events. (Zyx)
2013-05-06 04:50:35 +02:00
84a05acc8c updated for version 7.3.925
Problem:    Typos in source files.
Solution:   Fix the typos. (Ken Takata)
2013-05-06 04:24:17 +02:00
84e0f6ca9a updated for version 7.3.924
Problem:    Python interface can't easily access options.
Solution:   Add vim.options, vim.window.options and vim.buffer.options. (ZyX)
2013-05-06 03:52:55 +02:00
d1864597a0 updated for version 7.3.923
Problem:    Check for X11 header files fails on Solaris.
Solution:   Only use -Werror for gcc. (Laurent Blume)
2013-05-04 04:40:15 +02:00
8fadd8b840 updated for version 7.3.922
Problem:    No test for what 7.3.918 fixes.
Solution:   Add a test. (David Bürgin)
2013-05-04 04:11:07 +02:00
29f49ee8d7 updated for version 7.3.921
Problem:    Trying to create a fontset handle when 'guifontset' is not set.
Solution:   Add curly braces around the code block. (Max Kirillov)
2013-05-04 03:42:34 +02:00
4e0d974645 updated for version 7.3.920
Problem:    Compiler warning for size_t to int.
Solution:   Add a type cast. (Mike Williams)
2013-05-04 03:40:27 +02:00
02938a970c updated for version 7.3.919
Problem:    An empty nl.po file does not work with an old msgfmt.
Solution:   Put a single # in the file. (Laurent Blume)
2013-05-04 03:37:10 +02:00
ff0341946e Updated runtime files. 2013-04-24 18:51:19 +02:00
7afea82f50 updated for version 7.3.918
Problem:    Repeating an Ex command after using a Visual motion does not work.
Solution:   Check for an Ex command being used. (David Bürgin)
2013-04-24 18:34:45 +02:00
811fe63f39 updated for version 7.3.917
Problem:    When a path ends in a backslash appending a comma has the wrong
            effect.
Solution:   Replace a trailing backslash with a slash. (Nazri Ramliy)
2013-04-24 17:34:20 +02:00
567199b68f updated for version 7.3.916
Problem:    Using freed memory when pasting with the mouse (Issue 130).
Solution:   Get the byte value early. (hint by Dominique Pelle)
2013-04-24 16:52:36 +02:00
e8d9530b0e updated for version 7.3.915
Problem:    When reading a file with encoding conversion fails at the end the
            next encoding in 'fencs' is not used.
Solution:   Retry with another encoding when possible. (Taro Muraoka)
2013-04-24 16:34:02 +02:00
2ab0713279 updated for version 7.3.914
Problem:    ~/.viminfo is messed up when running tests.
Solution:   Set the viminfo filename.
2013-04-24 15:47:15 +02:00
f687cf3f36 updated for version 7.3.913
Problem:    Still a crash when writing viminfo.
Solution:   Add checks for NULL pointers. (Ron Aaron)
2013-04-24 15:39:11 +02:00
ec38d6932c updated for version 7.3.912
Problem:    Typing a ":" command at the hit-enter dialog does not work if the
            "file changed" dialog happens next.
Solution:   Check for changed files before giving the hit-enter dialog.
2013-04-24 15:12:32 +02:00
230bb3f09d updated for version 7.3.911
Problem:    Python: Access to Vim variables is not so easy.
Solution:   Define vim.vars and vim.vvars. (ZyX)
2013-04-24 14:07:45 +02:00
335e0b6974 updated for version 7.3.910
Problem:    Python code in #ifdef branches with only minor differences.
Solution:   Merge the #ifdef branches. (ZyX)
2013-04-24 13:47:45 +02:00
4d1da49cfe updated for version 7.3.909
Problem:    Duplicate Python code.
Solution:   Move more items to if_py_both.h. (ZyX)  Also avoid compiler
            warnings for missing initializers.
2013-04-24 13:39:15 +02:00
7a26dd860a updated for version 7.3.908
Problem:    Possible crash when using a list in Python.
Solution:   Return early if the list is NULL. (ZyX)
2013-04-24 13:10:41 +02:00
af6abb9d93 updated for version 7.3.907
Problem:    Python uses IndexError when a dict key is not found.
Solution:   Use KeyError instead. (ZyX)
2013-04-24 13:04:26 +02:00
3f99152276 updated for version 7.3.906
Problem:    The "sleep .2" for running tests does not work on Solaris.
Solution:   Fall back to using "sleep 1". (Laurent Blume)
2013-04-24 12:56:19 +02:00
b70a473e24 updated for version 7.3.905
Problem:    Crash when writing viminfo. (Ron Aaron)
Solution:   Prevent freed history info to be used.
2013-04-15 22:22:57 +02:00
3bb28557e1 updated for version 7.3.904
Problem:    Using memory freed by the garbage collector.
Solution:   Mark items in aucmd_win as used.
2013-04-15 18:25:59 +02:00
a8565fecc6 updated for version 7.3.903
Problem:    Crash on exit writing viminfo. (Ron Aaron)
Solution:   Check for the history to be empty.
2013-04-15 16:14:22 +02:00
4c7e9db0d6 updated for version 7.3.902
Problem:    When deleting last buffer in other tab the tabline is not updated.
Solution:   Set the redraw_tabline flag. (Yukihiro Nakadaira)
2013-04-15 15:55:19 +02:00
687a29c5e2 updated for version 7.3.901
Problem:    Outdated comment, ugly condition.
Solution:   Update a few comments, break line.
2013-04-15 15:47:12 +02:00
f6dcbb245b updated for version 7.3.900
Problem:    Not obvious that some mouse features are mutual-exclusive.
Solution:   Add a comment.
2013-04-15 15:40:33 +02:00
f8de161090 updated for version 7.3.899
Problem:    #if indents are off.
Solution:   Fix the indents.
2013-04-15 15:32:25 +02:00
54c34fa6f5 updated for version 7.3.898
Problem:    Memory leak reported by valgrind in test 91.
Solution:   Only use default argument when needed.
2013-04-15 15:15:35 +02:00
768baacdc8 updated for version 7.3.897
Problem:    Configure doesn't always find the shared library.
Solution:   Change the configure script. (Ken Takata)
2013-04-15 14:44:57 +02:00
b376647bb1 updated for version 7.3.896
Problem:    Memory leaks in Lua interface.
Solution:   Fix the leaks, add tests. (Yukihiro Nakadaira)
2013-04-15 13:49:21 +02:00
332ac0621c updated for version 7.3.895
Problem:    Valgrind error in test 91. (Issue 128)
Solution:   Pass scope name to find_var_in_ht().
2013-04-15 13:06:21 +02:00
84b0493c34 updated for version 7.3.894
Problem:    Using wrong RUBY_VER causing Ruby build to break.
Solution:   Correct the RUBY_VER value. (Yongwei Wu)
2013-04-15 12:36:18 +02:00
429fa85392 updated for version 7.3.893
Problem:    Crash when using b:, w: or t: after closing the buffer, window or
            tabpage.
Solution:   Allocate the dictionary instead of having it part of the
            buffer/window/tabpage struct. (Yukihiro Nakadaira)
2013-04-15 12:27:36 +02:00
07219f911c updated for version 7.3.892
Problem:    Still mering problems for viminfo history.
Solution:   Do not merge lines when writing, don't write old viminfo lines.
2013-04-14 23:19:36 +02:00
6f852a557d updated for version 7.3.891
Problem:    Merging viminfo history doesn't work well.
Solution:   Don't stop when one type of history is empty. Don't merge history
            when writing viminfo.
2013-04-14 16:26:15 +02:00
7311c6932c updated for version 7.3.890
Problem:    Test 79 fails on Windows. (Michael Soyka)
Solution:   Add comment below line causing an error.
2013-04-14 16:21:41 +02:00
0bcdd6e709 updated for version 7.3.889
Problem:    Can't build with Ruby 2.0 on a 64 bit system.
Solution:   Define rb_fix2int and rb_num2int. (Kohei Suzuki)
2013-04-14 16:19:03 +02:00
0187ca0bdf Updated runtime files. 2013-04-12 15:09:51 +02:00
38ec50bea8 updated for version 7.3.888
Problem:    Filename completion with 'fileignorecase' does not work for
            multi-byte characters.
Solution:   Make 'fileignorecase' work properly. (Hirohito Higashi)
2013-04-12 14:42:39 +02:00
e3e6e573d1 updated for version 7.3.887
Problem:    No tests for Visual mode operators, what 7.3.879 fixes.
Solution:   Add a new test file. (David Bürgin)
2013-04-12 13:45:02 +02:00
8185111125 updated for version 7.3.886
Problem:    Can't build with multi-byte on Solaris 10.
Solution:   Add #ifdef X_HAVE_UTF8_STRING. (Laurent Blume)
2013-04-12 12:27:30 +02:00
644cf03b7e updated for version 7.3.885
Problem:    Double free for list and dict in Lua. (Shougo Matsu)
Solution:   Do not unref list and dict. (Yasuhiro Matsumoto)
2013-04-12 12:18:49 +02:00
126bdeeabe Move redif syntax file to the right directory.
Disable recognizing .rdf as a redif file.
2013-04-06 17:26:26 +02:00
2a66a07b29 updated for version 7.3.884
Problem:    Compiler warning for variable shadowing another. (John Little)
Solution:   Rename the variable. (Christian Brabandt)
2013-04-06 14:30:40 +02:00
25a6df90df updated for version 7.3.883
Problem:    Can't build with some combination of features.
Solution:   Adjust #ifdefs.
2013-04-06 14:29:00 +02:00
bf88493c09 Updated runtime files. 2013-04-05 22:26:15 +02:00
68879258d9 updated for version 7.3.882
Problem:    CursorHold may trigger after receiving the termresponse.
Solution:   Set the did_cursorhold flag. (Hayaki Saito)
2013-04-05 19:50:17 +02:00
24b11fb173 updated for version 7.3.881
Problem:    Python list does not work correctly.
Solution:   Fix it and add a test. (Yukihiro Nakadaira)
2013-04-05 19:32:36 +02:00
b3049f4a34 updated for version 7.3.880
Problem:    When writing viminfo, old history lines may replace lines written
            more recently by another Vim instance.
Solution:   Mark history entries that were read from viminfo and overwrite
            them when merging with the current viminfo.
2013-04-05 18:58:47 +02:00
d7fbfe107d updated for version 7.3.879
Problem:    When using an ex command in operator pending mode, using Esc to
            abort the command still executes the operator. (David Bürgin)
Solution:   Clear the operator when the ex command fails. (Christian Brabandt)
2013-04-05 17:43:14 +02:00
91fc43d3f9 updated for version 7.3.878
Problem:    'fileignorecase' is missing in options window and quickref.
Solution:   Add the option.
2013-04-05 15:41:05 +02:00
7bcb30e913 updated for version 7.3.877
Problem:    Forward searching with search() is broken.
Solution:   Fix it and add tests. (Sung Pae)
2013-04-03 21:14:29 +02:00
cdffbeae2b updated for version 7.3.876
Problem:    #if indents are off.
Solution:   Insert a space where appropriate. (Taro Muraoka)
2013-04-03 21:11:39 +02:00
95a5135118 updated for version 7.3.875
Problem:    Build problem with some combination of features.
Solution:   Use FEAT_XCLIPBOARD instead of FEAT_CLIPBOARD.
2013-03-21 22:53:50 +01:00
d0e2d94589 updated for version 7.3.874
Problem:    Comparing file names does not handle multi-byte characters
            properly.
Solution:   Implement multi-byte handling.
2013-03-19 18:31:49 +01:00
c2c355df6f updated for version 7.3.873
Problem:    Cannot easily use :s to make title case.
Solution:   Have "\L\u" result in title case. (James McCoy)
2013-03-19 17:42:15 +01:00
71afbfe6cd updated for version 7.3.872
Problem:    On some systems case of file names is always ignored, on others
            never.
Solution:   Add the 'fileignorecase' option to control this at runtime.
            Implies 'wildignorecase'.
2013-03-19 16:49:16 +01:00
db333a5b8d updated for version 7.3.871
Problem:    search('^$', 'c') does not use the empty match under the cursor.
Solution:   Special handling of the 'c' flag. (Christian Brabandt)
            Add tests.
2013-03-19 15:27:48 +01:00
af62ff3696 updated for version 7.3.870
Problem:    Compiler warnings when using MingW 4.5.3.
Solution:   Do not use MAKEINTRESOURCE. Adjust #if. (Ken Takata)
2013-03-19 14:48:29 +01:00
0c279bbb9c updated for version 7.3.869
Problem:    bufwinnr() matches buffers in other tabs.
Solution:   For bufwinnr() and ? only match buffers in the current tab.
            (Alexey Radkov)
2013-03-19 14:25:54 +01:00
b59494cab1 updated for version 7.3.868
Problem:    When at the hit-return prompt and using "k" while no text has
            scrolled off screen, then using "j", an empty line is displayed.
Solution:   Only act on "k" when text scrolled off screen.  Also accept
            page-up and page-down.  (cptstubing)
2013-03-19 13:56:08 +01:00
186628f671 updated for version 7.3.867
Problem:    Matchparen does not update match when using auto-indenting.
            (Marc Aldorasi)
Solution:   Add the TextChanged and TextChangedI autocommand events.
2013-03-19 13:33:23 +01:00
090cfc1b02 updated for version 7.3.866
Problem:    Not serving the X selection during system() isn't nice.
Solution:   When using fork() do not loose the selection, keep serving it.
            Add a loop similar to handling I/O. (Yukihiro Nakadaira)
2013-03-19 12:35:42 +01:00
ac7bd63844 Update runtime files. 2013-03-19 11:35:58 +01:00
b897871ce9 updated for version 7.3.865
Problem:    Mouse position may be wrong.
Solution:   Let vungetc() restore the mouse position.
2013-03-16 21:42:16 +01:00
a5be25e1db updated for version 7.3.864
Problem:    Can't build without the mouse feature.
Solution:   Add an #ifdef. (Ike Devolder)
2013-03-16 21:35:33 +01:00
e533bbe094 updated for version 7.3.863
Problem:    Problem with 'ambiwidth' detection for ANSI terminal.
Solution:   Work around not recognizing a term response. (Hayaki Saito)
2013-03-16 14:33:36 +01:00
2526ef276b updated for version 7.3.862
Problem:    Dragging the status line can be slow.
Solution:   Look ahead and drop the drag event if there is a next one.
2013-03-16 14:20:51 +01:00
20754027b3 updated for version 7.3.861
Problem:    ":setlocal number" clears global value of 'relativenumber'.
Solution:   Do it properly. (Markus Heidelberg)
2013-03-13 20:42:32 +01:00
1e284f5155 updated for version 7.3.860
Problem:    When using --remote-expr try/catch does not work. (Andrey Radev)
Solution:   Set emsg_silent instead of emsg_off.
2013-03-13 20:23:22 +01:00
9584b31aae updated for version 7.3.859
Problem:    'ambiwidth' must be set by the user.
Solution:   Detects East Asian ambiguous width (UAX #11) state of the terminal
            at the start-up time and 'ambiwidth' accordingly.  (Hayaki Saito)
2013-03-13 19:29:28 +01:00
a390bb6ad3 updated for version 7.3.858
Problem:    "gv" selects the wrong area after some operators.
Solution:   Save and restore the type of selection. (Christian Brabandt)
2013-03-13 19:02:41 +01:00
4f8301f641 updated for version 7.3.857
Problem:    The QuitPre autocommand event does not trigger for :qa and :wq.
Solution:   Trigger the event. (Tatsuro Fujii)
2013-03-13 18:30:43 +01:00
1a0316ca2a updated for version 7.3.856
Problem:    When calling system() multi-byte clipboard contents is garbled.
Solution:   Save and restore the clipboard contents.  (Yukihiro Nakadaira)
2013-03-13 17:50:25 +01:00
b3cb982162 updated for version 7.3.855
Problem:    Compiler warnings.
Solution:   Add type casts. (Mike Williams)
2013-03-13 17:01:52 +01:00
3978e08fbe updated for version 7.3.854
Problem:    After using backspace in insert mode completion, CTRL-N and CTRL-P
            do not highlight the right entry. (Olivier Teuliere)
Solution:   Set the current item to the shown item after using backspace.
2013-03-07 19:38:54 +01:00
db813951c4 updated for version 7.3.853
Problem:    Using "ra" in multiple lines on multi-byte characters leaves a few
            characters not replaced.
Solution:   Adjust the end column only in the last line. (Yasuhiro Matsumoto)
2013-03-07 18:50:57 +01:00
e2e663f67d updated for version 7.3.852
Problem:    system() breaks clipboard text. (Yukihiro Nakadaira)
Solution:   Use Xutf8TextPropertyToTextList(). (Christian Brabandt)
            Also do not put the text in the clip buffer if conversion fails.
2013-03-07 18:02:30 +01:00
210f3704f7 updated for version 7.3.851
Problem:    Using an empty pattern with :sort silently continues when there is
            no previous search pattern.
Solution:   Give an error message.
2013-03-07 16:41:30 +01:00
60abe75379 updated for version 7.3.850
Problem:    ":vimgrep //" matches everywhere.
Solution:   Make it use the previous search pattern. (David Bürgin)
2013-03-07 16:32:54 +01:00
c389fd3a49 updated for version 7.3.849
Problem:    ":g//" gives "Pattern not found error" with E486.  Should not use
            the error number, it's not a regular error message.
Solution:   Use a normal message. (David Bürgin)
2013-03-07 16:08:35 +01:00
db3fbe5228 updated for version 7.3.848
Problem:    Can't build with Ruby 2.0 when using MinGW x64 or MSVC10.
Solution:   Fix it. Also detect RUBY_PLATFORM and RUBY_INSTALL_NAME for x64.
            (Ken Takata)
2013-03-07 15:16:21 +01:00
4e3c70d241 updated for version 7.3.847
Problem:    Test 55 fails when messages are translated.
Solution:   Set language to C. (Ken Takata)
2013-03-07 14:50:34 +01:00
84e80b51d1 updated for version 7.3.846
Problem:    Missing proto files.
Solution:   Add the files.
2013-03-07 13:32:36 +01:00
d999db2f1e updated for version 7.3.845
Problem:    Enum indenting is not tested.
Solution:   Add tests. (Hong Xu)
2013-03-07 13:21:32 +01:00
34700a6a15 Updated runtime files. 2013-03-07 13:20:54 +01:00
7534221eba updated for version 7.3.844
Problem:    Enum is not indented correctly with "public" etc.
Solution:   Skip "public", "private" and "protected". (Hong Xu)
2013-03-07 13:13:52 +01:00
b8f8461d94 updated for version 7.3.843
Problem:    Missing test file changes.
Solution:   Change the tests.
2013-02-26 22:54:11 +01:00
988232fabb updated for version 7.3.842
Problem:    Compiler warning for signed/unsigned pointer.
Solution:   Add type cast. (Christian Brabandt)
2013-02-26 21:43:32 +01:00
e17c260335 updated for version 7.3.841
Problem:    When a "cond ? one : two" expression has a subscript it is not
            parsed correctly. (Andy Wokula)
Solution:   Handle a subscript also when the type is unknown. (Christian
            Brabandt)
2013-02-26 19:36:15 +01:00
f5e44a7e90 updated for version 7.3.840
Problem:    "\@<!" in regexp does not work correctly with multi-byte
            characters, especially cp932.
Solution:   Move column to start of multi-byte character. (Yasuhiro Matsumoto)
2013-02-26 18:46:01 +01:00
e468e266c4 updated for version 7.3.839
Problem:    Some files missing in the list of distributed files.
Solution:   Add lines for new files.
2013-02-26 17:59:43 +01:00
fdf447b286 updated for version 7.3.838
Problem:    Insufficient testing for mksession.
Solution:   Add tests. (mostly by Roland Eggner)
2013-02-26 17:21:29 +01:00
f13f45d59b updated for version 7.3.837
Problem:    Empty lines in :version output when 'columns' is 320.
Solution:   Simplify the logic of making columns. (Nazri Ramliy, Roland
            Eggner)
2013-02-26 15:27:23 +01:00
693e40c2cd updated for version 7.3.836
Problem:    Clipboard does not work on Win32 when compiled with Cygwin.
Solution:   Move the Win32 clipboard code to a separate file and use it when
            building with os_unix.c. (Frodak Baksik, Ken Takata)
2013-02-26 14:56:42 +01:00
53eb37e9f9 updated for version 7.3.835
Problem:    "xxd -i" fails on an empty file.
Solution:   Do output the closing } for an empty file. (partly by Lawrence
            Woodman)
2013-02-26 14:14:07 +01:00
886ed691d2 updated for version 7.3.834
Problem:    Ruby 2.0 has a few API changes.
Solution:   Add handling of Ruby 2.0. (Yasuhiro Matsumoto)
2013-02-26 13:41:35 +01:00
40cf4b44ed updated for version 7.3.833
Problem:    In the terminal the scroll wheel always scrolls the active window.
Solution:   Scroll the window under the mouse pointer, like in the GUI.
            (Bradie Rao)
2013-02-26 13:30:32 +01:00
5c9626301b updated for version 7.3.832
Problem:    Compiler warning.
Solution:   Add type cast. (Mike Williams)
2013-02-26 11:25:33 +01:00
26402cb2de Update runtime files. 2013-02-20 21:26:00 +01:00
63dbda1caa updated for version 7.3.831
Problem:    Clumsy to handle the situation that a variable does not exist.
Solution:   Add default value to getbufvar() et al. (Shougo Matsushita,
            Hirohito Higashi)
2013-02-20 21:12:10 +01:00
558ddad8e8 updated for version 7.3.830
Problem:    :mksession confuses bytes, columns and characters when positioning
            the cursor.
Solution:   Use w_virtcol with "|" instead of w_cursor.col with "l".
2013-02-20 19:26:29 +01:00
187d3acb7f updated for version 7.3.829
Problem:    When compiled with the +rightleft feature 'showmatch' also shows a
            match for the opening paren.  When 'revins' is set the screen may
            scroll.
Solution:   Only check the opening paren when the +rightleft feature was
            enabled.  Do not show a match that is not visible. (partly by
            Christian Brabandt)
2013-02-20 18:39:13 +01:00
8738fc1be8 updated for version 7.3.828
Problem:    Mappings are not aware of wildmenu mode.
Solution:   Add wildmenumode(). (Christian Brabandt)
2013-02-20 17:59:11 +01:00
995a8cd181 updated for version 7.3.827
Problem:    Python tests fail.
Solution:   Adjust the output for the stack trace.
2013-02-20 16:54:27 +01:00
445f3037ea updated for version 7.3.826
Problem:    List of features in :version output is hard to read.
Solution:   Make columns. (Nazri Ramliy)
2013-02-20 16:47:36 +01:00
4d36987c25 updated for version 7.3.825
Problem:    With Python errors are not always clear.
Solution:   Print the stack trace, unless :silent is used. (ZyX)
2013-02-20 16:09:43 +01:00
2142e5d851 updated for version 7.3.824
Problem:    Can redefine builtin functions.  (ZyX)
Solution:   Disallow adding a function to g:.
2013-02-20 15:19:43 +01:00
452ff5bdc7 updated for version 7.3.823
Problem:    Building with Cygwin: '-lsupc++' is not needed.
Solution:   Remove it. (Ken Takata)
2013-02-20 13:34:19 +01:00
6d47df7ca0 updated for version 7.3.822
Problem:    Crash when accessing freed buffer.
Solution:   Get 'textwidth' in caller of enter_buffer(). (Christian Brabandt)
2013-02-17 15:45:37 +01:00
5004e8846e updated for version 7.3.821
Problem:    Build with OLE and Cygwin is broken. (Steve Hall)
Solution:   Select static or shared stdc library. (Ken Takta)
2013-02-16 18:16:15 +01:00
feeaa688eb updated for version 7.3.820
Problem:    Build errors and warnings when building with small features and
            Lua, Perl or Ruby.
Solution:   Add #ifdefs and UNUSED.
2013-02-14 22:19:51 +01:00
b2c5a5ac79 updated for version 7.3.819
Problem:    Compiling without +eval and with Python isn't working.
Solution:   Add the eval feature when building with Python.
2013-02-14 22:11:39 +01:00
707060e2ee updated for version 7.3.818
Problem:    When test 40 fails because of a bad build it may leave files
            behind that cause it to fail later.
Solution:   Let the file names start with "X".
2013-02-14 20:58:35 +01:00
caca92be8a updated for version 7.3.817
Problem:    Test 89 fails with tiny and small features.
Solution:   Add sourcing small.vim.
2013-02-14 20:10:33 +01:00
f6ecd99cec Add test files. 2013-02-13 17:35:34 +01:00
af9aeb9250 updated for version 7.3.816
Problem:    Can't compute a hash.
Solution:   Add the sha256() function. (Tyru, Hirohito Higashi)
2013-02-13 17:35:04 +01:00
c2149ea7cd updated for version 7.3.815
Problem:    Building with Cygwin and Ruby doesn't work.
Solution:   Copy some things from the MingW build file. (Ken Takata)
2013-02-13 17:06:11 +01:00
ffeedec023 updated for version 7.3.814
Problem:    Can't input multibyte characters on Win32 console if 'encoding' is
            different from current codepage.
Solution:   Use convert_input_safe() instead of convert_input().  Make
            string_convert_ext() return an error for incomplete input. (Ken
            Takata)
2013-02-13 16:49:58 +01:00
a3914327f7 updated for version 7.3.813
Problem:    The CompleteDone event is not triggered when there are no pattern
            matches. (Jianjun Mao)
Solution:   Trigger the event. (Christian Brabandt)
2013-02-13 16:30:21 +01:00
00154508de Update runtime files.
Add missing test files.
2013-02-13 16:15:55 +01:00
8fe8d9ed06 updated for version 7.3.812
Problem:    When 'indentexpr' moves the cursor "curswant" not restored.
Solution:   Restore "curswant". (Sung Pae)
2013-02-13 16:10:17 +01:00
be9c627666 updated for version 7.3.811
Problem:    Useless termresponse parsing for SGR mouse.
Solution:   Skip the parsing. (Hayaki Saito)
2013-02-13 15:53:19 +01:00
f4e5e86627 updated for version 7.3.810
Problem:    'relativenumber is reset unexpectedly. (François Ingelrest)
Solution:   After an option was reset also reset the global value. Add a test.
            (Christian Brabandt)
2013-02-13 15:44:26 +01:00
181ace28ed updated for version 7.3.809
Problem:    The dosinst.c program has a buffer overflow. (Thomas Gwae)
Solution:   Ignore $VIMRUNTIME if it is too long.
2013-02-13 14:36:44 +01:00
76d711c3b5 updated for version 7.3.808
Problem:    Python threads still do not work properly.
Solution:   Fix both Python 2 and 3.  Add tests. (Ken Takata)
2013-02-13 14:17:08 +01:00
51971b3398 updated for version 7.3.807
Problem:    Popup menu does not work properly with the preview window, folds
            and 'cursorcolumn'.
Solution:   Redraw the popup menu after redrawing windows. (Christian
            Brabandt)
2013-02-13 12:16:05 +01:00
e9d47cd08b updated for version 7.3.806
Problem:    Compiler warnings in Perl code when building with Visual studio
            2012. (skeept)
Solution:   Add type casts. (Christian Brabandt, 2013 Jan 30)
2013-02-06 19:58:43 +01:00
07e1da6bbd updated for version 7.3.805
Problem:    Lua version 5.2 is not detected properly on Arch Linux.
Solution:   Adjust autoconf. (lilydjwg)
2013-02-06 19:49:43 +01:00
fffcfea984 updated for version 7.3.804
Problem:    Compiler warning for tiny build. (Tony Mechelynck)
Solution:   Add #ifdefs around variable.
2013-02-06 18:45:01 +01:00
11cb6e6e13 updated for version 7.3.803
Problem:    Substitute with confirmation and then "q" does not replace
            anything.  (John McGowan)
Solution:   Do not break the loop, skip to the end.
2013-02-06 18:24:02 +01:00
fa13eef3c9 Updated runtime files. 2013-02-06 17:34:04 +01:00
309379fc98 updated for version 7.3.802
Problem:    After setting 'isk' to a value ending in a comma appending to the
            option fails.
Solution:   Disallow a trailing comma for 'isk' and similar options.
2013-02-06 16:26:26 +01:00
530e7dfafd updated for version 7.3.801
Problem:    ":window set nu?" displays the cursor line. (Nazri Ramliy)
Solution:   Do not update the cursor line when conceallevel is zero or the
            screen has scrolled. (partly by Christian Brabandt)
2013-02-06 13:38:02 +01:00
b6a76ffc4c updated for version 7.3.800
Problem:    The " mark is not adjusted when inserting lines. (Roland Eggner)
Solution:   Adjust the line number. (Christian Brabandt)
2013-02-06 12:33:21 +01:00
9c2e6cc6ed updated for version 7.3.799
Problem:    The color column is not correct when entering a buffer. (Ben
            Fritz)
Solution:   Call check_colorcolumn() if 'textwidth' changed. (Christian
            Brabandt)
2013-02-06 12:14:48 +01:00
39d7d51bcd updated for version 7.3.798
Problem:    MzScheme: circular list does not work correctly.
Solution:   Separate Mac-specific code from generic code. (Sergey Khorev)
2013-01-31 21:09:15 +01:00
04e5b5a228 updated for version 7.3.797
Problem:    Compiler warning for size_t to int conversion. (Skeept)
Solution:   Add type casts.
2013-01-30 21:56:21 +01:00
e337e5f634 updated for version 7.3.796
Problem:    "/[^\n]" does match at a line break.
Solution:   Make it do the same as "/.". (Christian Brabandt)
2013-01-30 18:21:51 +01:00
d214221375 updated for version 7.3.795
Problem:    MzScheme does not build with tiny features.
Solution:   Add #ifdefs.  Also add UNUSED to avoid warnings.  And change
            library ordering.
2013-01-30 17:41:50 +01:00
a50e5866b0 updated for version 7.3.794
Problem:    Tiny build fails. (Tony Mechelynck)
Solution:   Adjust #ifdefs.
2013-01-30 17:30:17 +01:00
8ceb1735a2 updated for version 7.3.793
Problem:    New interactive :substutite behavior is not tested.
Solution:   Add tests. (Christian Brabandt)
2013-01-30 17:03:30 +01:00
4bc8cf0e7c updated for version 7.3.792
Problem:    ":substitute" works differently without confirmation.
Solution:   Do not change the text when asking for confirmation, only display
            it.
2013-01-30 16:30:26 +01:00
7567646f13 updated for version 7.3.791
Problem:    MzScheme interface doesn't work propely.
Solution:   Make it work better. (Sergey Khorev)
2013-01-30 14:55:42 +01:00
a3e6bc93d1 Update runtime files. 2013-01-30 14:18:00 +01:00
52f85b730e updated for version 7.3.790
Problem:    After reloading a buffer the modelines are not processed.
Solution:   call do_modelines(). (Ken Takata)
2013-01-30 14:13:56 +01:00
f813a1883f updated for version 7.3.789
Problem:    "\k" in regexp does not work in other window.
Solution:   Use the right buffer. (Yukihiro Nakadaira)
2013-01-30 13:59:37 +01:00
8d61617238 updated for version 7.3.788
Problem:    When only using patches build fails on missing nl.po.
Solution:   Create an empty nl.po file.
2013-01-30 12:50:56 +01:00
700e7345de updated for version 7.3.787
Problem:    With 'relativenumber' set it is not possible to see the absolute
            line number.
Solution:   For the cursor line show the absolute line number instead of a
            zero. (Nazri Ramliy)
2013-01-30 12:31:36 +01:00
02366255c9 updated for version 7.3.786
Problem:    Python threads don't run in the background (issue 103).
Solution:   Move the statements to manipulate thread state.
2013-01-30 11:44:39 +01:00
2f315ab7be updated for version 7.3.785
Problem:    Crash with specific use of search pattern.
Solution:   Initialize reg_buf to curbuf.
2013-01-25 20:11:01 +01:00
826763f87b updated for version 7.3.784
Problem:    Error when 'guifontwide' has a comma.
Solution:   Use gui.wide_font. (Taro Muraoka)
2013-01-25 19:28:38 +01:00
15364d74ca updated for version 7.3.783
Problem:    Crash when mark is not set. (Dominique Pelle)
Solution:   Check for NULL.
2013-01-24 21:00:20 +01:00
0f2721223e updated for version 7.3.782
Problem:    Windows: IME composition may use a wrong font.
Solution:   Use 'guifontwide' for IME when it is set. (Taro Muraoka)
2013-01-23 18:37:40 +01:00
4593396625 updated for version 7.3.781
Problem:    Drawing with 'guifontwide' can be slow.
Solution:   Draw multiple characters at a time. (Taro Muraoka)
2013-01-23 17:43:57 +01:00
d35d784e91 updated for version 7.3.780
Problem:    char2nr() and nr2char() always use 'encoding'.
Solution:   Add argument to use utf-8 characters. (Yasuhiro Matsumoto)
2013-01-23 17:17:10 +01:00
55b7b7eeb5 updated for version 7.3.779
Problem:    Backwards search lands in wrong place when started on a multibyte
            character.
Solution:   Do not set extra_col for a backwards search. (Sung Pae)
2013-01-23 16:43:11 +01:00
94a8adfdd8 updated for version 7.3.778
Problem:    Compiler error for adding up two pointers. (Titov Anatoly)
Solution:   Add a type cast. (Ken Takata)
2013-01-23 16:19:23 +01:00
3be71ce28d updated for version 7.3.777
Problem:    When building with Gnome locale gets reset.
Solution:   Set locale after gnome_program_init(). (Christian Brabandt)
2013-01-23 16:00:11 +01:00
9d182dd0a6 updated for version 7.3.776
Problem:    ml_get error when searching, caused by curwin not matching curbuf.
Solution:   Avoid changing curbuf. (Lech Lorens)
2013-01-23 15:53:15 +01:00
4da70dbc4d updated for version 7.3.775
Problem:    Cygwin and Mingw builds miss dependency on gui_w48.c.
Solution:   Add a build rule. (Ken Takata)
2013-01-23 13:55:20 +01:00
f939c4e6b1 updated for version 7.3.774
Problem:    Tiny GUI version misses console dialog feature.
Solution:   Define FEAT_CON_DIALOG when apprpriate. (Christian Brabandt)
2013-01-23 13:41:00 +01:00
b5f7bf6ed9 updated for version 7.3.773
Problem:    Crash when OriginalFirstThunk is zero.
Solution:   Skip items with OriginalFirstThunk not set. (Ken Takata)
2013-01-19 14:02:02 +01:00
8c4fbd1a15 updated for version 7.3.772
Problem:    Cursor is at the wrong location and below the end of the file
            after doing substitutions with confirm flag: %s/x/y/c
            (Dominique Pelle)
Solution:   Update the cursor position. (Christian Brabandt & Dominique)
2013-01-17 18:34:05 +01:00
0936502538 updated for version 7.3.771
Problem:    Uninitialized variable. (Yasuhiro Matsumoto)
Solution:   Set x2 to -1.
2013-01-17 17:37:35 +01:00
08ed30eca7 updated for version 7.3.770
Problem:    Vim.h indentation is inconsistent.
Solution:   Adjust the indentation. (Elias Diem)
2013-01-17 17:17:26 +01:00
8c7694a864 updated for version 7.3.769
Problem:    'matchpairs' does not work with multi-byte characters.
Solution:   Make it work. (Christian Brabandt)
2013-01-17 17:02:05 +01:00
3e37fd0950 updated for version 7.3.768
Problem:    settabvar() and setwinvar() may move the cursor.
Solution:   Save and restore the cursor position when appropriate. (idea by
            Yasuhiro Matsumoto)
2013-01-17 15:37:01 +01:00
8fae8e658f updated for version 7.3.767
Problem:    (Win32) The _errno used for iconv may be the wrong one.
Solution:   Use the _errno from iconv.dll. (Ken Takata)
2013-01-17 14:39:47 +01:00
117f2c4b91 updated for version 7.3.766
Problem:    ":help cpo-*" jumps to the wrong place.
Solution:   Make it equivalent to ":help cpo-star".
2013-01-17 14:09:44 +01:00
802418d5eb updated for version 7.3.765
Problem:    Segfault when doing "cclose" on BufUnload in a python function.
            (Sean Reifschneider)
Solution:   Skip window with NULL buffer. (Christian Brabandt)
2013-01-17 14:00:11 +01:00
c4fba6f881 updated for version 7.3.764
Problem:    Not all message translation files are installed.
Solution:   Also install the converted files.
2013-01-17 13:37:32 +01:00
8754deb3b6 updated for version 7.3.763
Problem:    Jumping to a mark does not open a fold if it is in the same line.
            (Wiktor Ruben)
Solution:   Also compare the column after the jump. (Christian Brabandt)
2013-01-17 13:24:08 +01:00
14e28811b3 updated for version 7.3.762
Problem:    On some systems the tabline is not redrawn.
Solution:   Call RedrawWindow(). (Charles Peacech)
2012-12-16 12:50:39 +01:00
ba6e858556 updated for version 7.3.761
Problem:    In Visual mode a "-p does not work. (Marcin Szamotulski)
Solution:   Avoid writing to "- before putting it. (Christian Brabandt)
2012-12-12 18:20:32 +01:00
83dadafdd7 updated for version 7.3.760
Problem:    dv_ deletes the white space before the line.
Solution:   Move the cursor to the first non-white. (Christian Brabandt)
2012-12-12 17:33:32 +01:00
4b166d0a6d updated for version 7.3.759
Problem:    MS-Windows: Updating the tabline is slow when there are many tabs.
Solution:   Disable redrawing while performing the update. (Arseny Kapoulkine)
2012-12-12 17:12:25 +01:00
cfde76c74d updated for version 7.3.758
Problem:    Matchit plugin does not handle space in #ifdef.
Solution:   Change matching pattern to allow spaces. (Mike Morearty)
2012-12-12 16:43:58 +01:00
27356ad4f4 updated for version 7.3.757
Problem:    Issue 96: May access freed memory when a put command triggers
            autocommands. (Dominique Pelle)
Solution:   Call u_save() before getting y_array.
2012-12-12 16:11:36 +01:00
321a9ec680 updated for version 7.3.756
Problem:    A location list can get a wrong count in :lvimgrep.
Solution:   Check if the list was changed by autocommands. (mostly by
            Christian Brabandt)
2012-12-12 15:55:20 +01:00
09ba6d766b updated for version 7.3.755
Problem:    Autoconf doesn't find Python 3 if it's called "python".
Solution:   Search for "python2" and "python3" first, then "python".
2012-12-12 14:25:05 +01:00
52cc266dae updated for version 7.3.754
Problem:    Latest nmake is not recognized.
Solution:   Add nmake version 11.00.51106.1. (Raymond Ko)
2012-12-06 21:30:29 +01:00
21691f896a updated for version 7.3.753
Problem:    When there is a QuitPre autocommand using ":q" twice does not work
            for exiting when there are more files to edit.
Solution:   Do not decrement quitmore in an autocommand. (Techlive Zheng)
2012-12-05 19:13:18 +01:00
34feacbcce Update runtime files. 2012-12-05 19:01:43 +01:00
32c8f1cb19 updated for version 7.3.752
Problem:    Test 49 script file doesn't fold properly.
Solution:   Add a colon.
2012-12-05 19:00:06 +01:00
60ec5f35a5 updated for version 7.3.751
Problem:    Test 61 is flaky, it fails once in a while.
Solution:   When it fails retry once.
2012-12-05 18:21:32 +01:00
57e4ee4d38 updated for version 7.3.750
Problem:    The justify macro does not always work correctly.
Solution:   Fix off-by-one error (James McCoy)
2012-12-05 17:03:22 +01:00
a54bf40017 updated for version 7.3.749
Problem:    Python interface doesn't build without the multi-byte feature.
Solution:   Add #ifdef. (Ken Takata)
2012-12-05 16:30:07 +01:00
9750bb199e updated for version 7.3.748
Problem:    Cannot properly test conceal mode.
Solution:   Add the screencol() and screenrow() functions.  Use them in
            test88. (Simon Ruderich)
2012-12-05 16:10:42 +01:00
0f9d0869c7 updated for version 7.3.747
Problem:    When characters are concealed text aligned with tabs are no longer
            aligned, e.g. at ":help :index".
Solution:   Compensate space for tabs for concealed characters. (Dominique
            Pelle)
2012-12-05 15:32:30 +01:00
81484f4215 updated for version 7.3.746
Problem:    Memory leaks when using location lists.
Solution:   Set qf_title to something. (Christian Brabandt)
2012-12-05 15:16:47 +01:00
15d55dec03 updated for version 7.3.745
Problem:    Automatically setting 'ttymouse' doesn't work.
Solution:   Reset the "option was set" flag when using the default.
2012-12-05 14:43:02 +01:00
862cfa356d updated for version 7.3.744
Problem:    64 bit compiler warning.
Solution:   Add type cast. (Mike Williams)
2012-11-29 20:10:00 +01:00
2a94225c23 updated for version 7.3.743
Problem:    Tiny build still fails.
Solution:   Add #else in the right place.
2012-11-28 23:03:07 +01:00
f135435f80 updated for version 7.3.742
Problem:    Leaking memory when :vimgrep restores the directory.
Solution:   Free the allocated memory. (Christian Brabandt)
2012-11-28 22:12:44 +01:00
2e18a12780 updated for version 7.3.741
Problem:    Tiny build fails.
Solution:   Move #ifdef. (Ike Devolder)
2012-11-28 19:10:54 +01:00
97d4ea71d6 updated for version 7.3.740
Problem:    IOC tool complains about undefined behavior for int.
Solution:   Change to unsigned int. (Dominique Pelle)
2012-11-28 18:31:54 +01:00
f4f1956724 updated for version 7.3.739
Problem:    Computing number of lines may have an integer overflow.
Solution:   Check for MAXCOL explicitly. (Dominique Pelle)
2012-11-28 18:22:11 +01:00
2df58b4a58 Updated runtime files. 2012-11-28 18:21:11 +01:00
9411615985 updated for version 7.3.738
Problem:    Unused function argument.
Solution:   Remove it. (Christian Brabandt)
2012-11-28 17:41:59 +01:00
d4ad0d4e21 updated for version 7.3.737
Problem:    When using do_cmdline() recursively did_endif is not reset,
            causing messages to be overwritten.
Solution:   Reset did_endif. (Christian Brabandt)
2012-11-28 17:34:48 +01:00
b347963869 updated for version 7.3.736
Problem:    File name completion in input() escapes white space. (Frederic
            Hardy)
Solution:   Do not escape white space. (Christian Brabandt)
2012-11-28 16:49:58 +01:00
dd53a41553 updated for version 7.3.735
Problem:    Cannot build Ruby 1.9 with MingW or Cygwin.
Solution:   Add another include directory. (Ken Takata)
2012-11-28 16:18:29 +01:00
442b5c48fd updated for version 7.3.734
Problem:    Cannot put help files in a sub-directory.
Solution:   Make :helptags work for sub-directories. (Charles Campbell)
2012-11-28 16:06:22 +01:00
8866d277c9 updated for version 7.3.733
Problem:    Tests fail when including MzScheme.
Solution:   Change #ifdefs for vim_main2().
2012-11-28 15:55:42 +01:00
02e14d67b9 updated for version 7.3.732
Problem:    Compiler warnings for function arguments.
Solution:   Use inteptr_t instead of long.
2012-11-28 15:37:51 +01:00
7854e3abcf updated for version 7.3.731
Problem:    Py3Init_vim() is exported uneccessarily.
Solution:   Make it static. (Ken Takata)
2012-11-28 15:33:14 +01:00
c83a44bf8f updated for version 7.3.730
Problem:    Crash in PHP file when using syntastic. (Ike Devolder)
Solution:   Avoid using NULL pointer. (Christian Brabandt)
2012-11-28 15:25:34 +01:00
ff8cf2be66 updated for version 7.3.729
Problem:    Building with Ruby fails on some systems.
Solution:   Remove "static" and add #ifndef PROTO. (Ken Takata)
2012-11-24 13:39:00 +01:00
fe9fb927ae updated for version 7.3.728
Problem:    Cannot compile with MzScheme interface on Ubuntu 12.10.
Solution:   Find the collects directory under /usr/share.
2012-11-23 21:54:48 +01:00
7331304fd3 updated for version 7.3.727
Problem:    Can't always find Win32.mak when building GvimExt.
Solution:   Use same mechanism as in Make_mvc.mak. (Cade Foster)
2012-11-23 21:47:22 +01:00
ef6585abef updated for version 7.3.726
Problem:    Typos and duplicate info in README.
Solution:   Fix the text.
2012-11-23 21:45:25 +01:00
77642c0fef updated for version 7.3.725
Problem:    :aboveleft and :belowright have no effect on :copen.
Solution:   Check for cmdmod.split. (Christian Brabandt)
2012-11-20 17:55:10 +01:00
65d7396cb4 updated for version 7.3.724
Problem:    Building with Ruby and Tcl on MS-Windows does not work.
Solution:   Remove Ruby and Tcl from the big MS-Windows build.
2012-11-20 17:21:52 +01:00
8d4eecc5e8 updated for version 7.3.723
Problem:    Various tiny problems.
Solution:   Various tiny fixes.
2012-11-20 17:19:01 +01:00
d59762dcb6 updated for version 7.3.722
Problem:    Perl flags may contain "-g", which breaks "make proto".
Solution:   Filter out the "-g" flag for cproto. (Ken Takata)
2012-11-20 17:03:27 +01:00
c0d4759373 updated for version 7.3.721
Problem:    Ruby interface defines local functions globally.
Solution:   Make the functions static.
2012-11-20 16:59:14 +01:00
7c5f120410 updated for version 7.3.720
Problem:    Proto files are outdated.
Solution:   Update the newly generated proto files.
2012-11-20 16:56:54 +01:00
8288149866 updated for version 7.3.719
Problem:    Cannot run new version of cproto, it fails on missing include
            files.
Solution:   Add lots of #ifndef PROTO
2012-11-20 16:53:39 +01:00
0ac24e1ef4 updated for version 7.3.718
Problem:    When re-using the current buffer the buffer-local options stay.
Solution:   Re-initialize the buffer-local options. (Christian Brabandt)
2012-11-20 12:16:58 +01:00
b031626427 updated for version 7.3.717
Problem:    When changing the font size, only MS-Windows limits the window
            size.
Solution:   Also limit the window size on other systems. (Roland Puntaier)
2012-11-20 12:03:06 +01:00
99a547d3a1 updated for version 7.3.716
Problem:    Error on exit when using Python 3.
Solution:   Remove PythonIO_Fini(). (Roland Puntaier)
2012-11-20 11:04:35 +01:00
97d62497f5 Updated runtime files. 2012-11-15 21:28:22 +01:00
41b884b273 updated for version 7.3.715
Problem:    Crash when calling setloclist() in BufUnload autocmd. (Marcin
            Szamotulski)
Solution:   Set w_llist to NULL when it was freed.  Also add a test.
            (Christian Brabandt)
2012-11-14 22:38:08 +01:00
b826ddb034 updated for version 7.3.714
Problem:    Inconsistency: :set can be used in the sandbox, but :setlocal and
            :setglobal cannot. (Michael Henry)
Solution:   Fix the flags for :setlocal and :setglobal. (Christian Brabandt)
2012-11-14 20:52:28 +01:00
3ab72c5c72 updated for version 7.3.713
Problem:    printf() can only align to bytes, not characters.
Solution:   Add the "S" item. (Christian Brabandt)
2012-11-14 18:10:56 +01:00
e3a2246227 updated for version 7.3.712
Problem:    Nmake from VS2010 SP1 is not recognized.
Solution:   Add the version number. (Ken Takata)
2012-10-23 05:35:34 +02:00
9c9cbf1351 updated for version 7.3.711
Problem:    vim.current.buffer is not available. (lilydjwg)
Solution:   Use py3_PyUnicode_AsUTF8 instead of py3_PyUnicode_AsUTF8String.
            (Ken Takata)
2012-10-23 05:17:37 +02:00
12a753a5ca updated for version 7.3.710
Problem:    Patch 7.3.704 breaks "fn".
Solution:   Add check for ca.cmdchar. (Christian Brabandt)
2012-10-23 05:08:53 +02:00
95e09eaaad updated for version 7.3.709
Problem:    Compiler warning for unused argument.
Solution:   Add UNUSED.
2012-10-21 23:56:05 +02:00
a80888d296 updated for version 7.3.708
Problem:    Filler lines above the first line may be hidden when opening Vim.
Solution:   Change how topfill is computed. (Christian Brabandt)
2012-10-21 22:18:21 +02:00
17aa8cc255 updated for version 7.3.707
Problem:    Problems loading a library for a file name with non-latin
            characters.
Solution:   Use wide system functions when possible. (Ken Takata)
2012-10-21 21:38:45 +02:00
a9a2d8f4d0 updated for version 7.3.706
Problem:    Can't build Motif version.
Solution:   Fix wrongly named variable. (Ike Devolder)
2012-10-21 21:25:22 +02:00
707cfb82dc updated for version 7.3.705
Problem:    Mouse features are not sorted properly. (Tony Mechelynck)
Solution:   Put the mouse features in alphabetical order.
2012-10-21 04:00:07 +02:00
f00dc2627b updated for version 7.3.704
Problem:    Repeating "cgn" does not always work correctly.
Solution:   Also fetch the operator character. (Christian Brabandt)
2012-10-21 03:54:33 +02:00
e8d8fd2add updated for version 7.3.703
Problem:    When 'undofile' is reset the hash is computed unnecessarily.
Solution:   Only compute the hash when the option was set. (Christian Brabandt)
2012-10-21 03:46:05 +02:00
3a0d8090b1 Updated runtime files. 2012-10-21 03:02:54 +02:00
67a4f6cfb4 updated for version 7.3.702
Problem:    Nmake from VS6 service pack 6 is not recognized.
Solution:   Detect the version number. (Jiri Sedlak)
2012-10-21 02:41:08 +02:00
faca84059a updated for version 7.3.701
Problem:    MS-Windows: Crash with stack overflow when setting 'encoding'.
Solution:   Handle that loading the iconv library may be called recursively.
            (Jiri Sedlak)
2012-10-21 02:37:10 +02:00
cfb807026f updated for version 7.3.700
Problem:    Cannot detect URXVT and SGR mouse support.
Solution:   add +mouse_urxvt and +mouse_sgr. (Hayaki Saito)
2012-10-21 02:17:45 +02:00
bffa06ddb8 updated for version 7.3.699
Problem:    When 'ttymouse' is set to "sgr" manually, it is overruled by
            automatic detection.
Solution:   Do not use automatic detection when 'ttymouse' was set manually.
            (Hayaki Saito)
2012-10-21 02:10:24 +02:00
003d14a267 updated for version 7.3.698
Problem:    Python 3 does not preserve state beween commands.
Solution:   Preserve the state. (Paul Ollis)
2012-10-21 01:47:00 +02:00
c4b98fbb3e updated for version 7.3.697
Problem:    Leaking resources when setting GUI font.
Solution:   Free the font. (Ken Takata)
2012-10-21 01:40:30 +02:00
f3408e76fb updated for version 7.3.696
Problem:    Message about added spell language can be wrong.
Solution:   Give correct message. Add g:menutrans_set_lang_to to allow for
            translation. (Jiri Sedlak)
2012-10-21 01:21:59 +02:00
b6101cf77f updated for version 7.3.695
Problem:    Balloon cannot show multi-byte text.
Solution:   Properly deal with multi-byte characters. (Dominique Pelle)
2012-10-21 00:58:39 +02:00
2d17fa3ebd updated for version 7.3.694
Problem:    Now that 'shiftwidth' may use the value of 'tabstop' it is not so
            easy to use in indent files.
Solution:   Add the shiftwidth() function. (so8res)
2012-10-21 00:45:18 +02:00
9f340fa57b updated for version 7.3.693
Problem:    Can't make 'softtabstop' follow 'shiftwidth'.
Solution:   When 'softtabstop' is negative use the value of 'shiftwidth'.
            (so8res)
2012-10-21 00:10:39 +02:00
205f9f5e2d updated for version 7.3.692
Problem:    Can't build GTK version with GTK 2.0.
Solution:   Put GtkFileFilter declaration in the right place. (Yegappan
            Lakshmanan)
2012-10-18 05:18:32 +02:00
b88adbf844 updated for version 7.3.691
Problem:    State specific to the Python thread is discarded.
Solution:   Keep state between threads. (Paul)
2012-10-14 05:20:12 +02:00
dac7569612 updated for version 7.3.690
Problem:    When the current directory name is exactly the maximum path length
            Vim may crash.
Solution:   Only add "/" when there is room. (Danek Duvall)
2012-10-14 04:35:45 +02:00
d04da7cb4a updated for version 7.3.689
Problem:    MzScheme and Lua may use a NULL string.
Solution:   Use an empty string instead of NULL. (Yukihiro Nakadaira)
2012-10-14 03:41:59 +02:00
7bc4f93c07 updated for version 7.3.688
Problem:    Python 3.3 is not supported.
Solution:   Add Python 3.3 support (Ken Takata)
2012-10-14 03:22:56 +02:00
172ddb60c2 updated for version 7.3.687
Problem:    Test 16 fails when $DISPLAY is not set.
Solution:   Skip the test when $DISPLAY is not set.
2012-10-11 04:44:33 +02:00
b73568149f updated for version 7.3.686
Problem:    Using CTRL-\ e mappings is useful also when entering an
            expression, but it doesn't work. (Marcin Szamotulski)
Solution:   Allow using CTRL-\ e when entering an expression if it was not
            typed.
2012-10-11 04:04:37 +02:00
0c17875ef3 updated for version 7.3.685
Problem:    No test for what patch 7.3.673 fixes.
Solution:   Add a test. (Christian Brabandt)
2012-10-11 03:35:45 +02:00
b35c338f96 updated for version 7.3.684
Problem:    "make test" does not delete lua.vim.
Solution:   Add lua.vim to the clean target. (Simon Ruderich)
2012-10-06 19:10:35 +02:00
0c5fa7d740 Updated runtime files. 2012-10-05 22:26:30 +02:00
d1f13fd597 updated for version 7.3.683
Problem:    ":python" may crash when vimbindeval() returns None.
Solution:   Check for v_string to be NULL. (Yukihiro Nakadaira)
2012-10-05 21:30:07 +02:00
4ccb265bd4 updated for version 7.3.682
Problem:    Compiler complains about incompatible types.
Solution:   Remove type casts. (hint by Danek Duvall)
2012-10-04 22:38:37 +02:00
7d11244c99 updated for version 7.3.681
Problem:    List of distributed files picks up backup files.
Solution:   Make tutor patterns more specific.
2012-10-03 21:48:43 +02:00
97cc2384c0 Update runtime files. 2012-10-03 21:46:54 +02:00
14f5827940 updated for version 7.3.680
Problem:    Some files missing in the list of distributed files.
Solution:   Add lines for new files.
2012-10-03 21:33:41 +02:00
8139889a5f updated for version 7.3.679
Problem:    Ruby detection uses Config, newer Ruby versions use RbConfig.
Solution:   Detect the need to use RbConfig. (Vit Ondruch)
2012-10-03 21:09:35 +02:00
6f3d6b48a6 updated for version 7.3.678
Problem:    Ruby .so name may not be correct.
Solution:   Use the LIBRUBY_SO entry from the config. (Vit Ondruch)
2012-10-03 18:50:00 +02:00
e1704bada4 updated for version 7.3.677
Problem:    buf_spname() is used inconsistently.
Solution:   Make the return type a char_u pointer.  Check the size of the
            returned string.
2012-10-03 18:25:00 +02:00
b213da0b57 updated for version 7.3.676
Problem:    Ruby compilation on Windows 32 bit doesn't work.
Solution:   Only use some functions for 64 bit. (Ken Takata)
2012-10-03 18:06:59 +02:00
ec3cfeb199 updated for version 7.3.675
Problem:    Using uninitialized memory with very long file name.
Solution:   Put NUL after text when it is truncated. (ZyX)
2012-10-03 17:12:47 +02:00
1e91f2606b updated for version 7.3.674
Problem:    Can't compile with Lua/dyn on Cygwin.
Solution:   Adjust configure to use the right library name. (Ken Takata)
2012-10-03 14:48:08 +02:00
718f007499 updated for version 7.3.673
Problem:    Using "gN" while 'selection' is "exclusive" misses one character.
            (Ben Fritz)
Solution:   Check the direction when compensating for exclusive selection.
            (Christian Brabandt)
2012-10-03 13:35:51 +02:00
d09acef44b Updated runtime files. 2012-09-21 14:54:30 +02:00
66b7985ec9 updated for version 7.3.672
Problem:    Not possible to lock/unlock lists in Python interface.
Solution:   Add .locked and .scope attributes. (ZyX)
2012-09-21 14:00:35 +02:00
770456589e updated for version 7.3.671
Problem:    More Python code can be shared between Python 2 and 3.
Solution:   Move code to if_py_both.h. (ZyX)
2012-09-21 13:46:06 +02:00
696c2116dc updated for version 7.3.670
Problem:    Python: memory leaks when there are exceptions.
Solution:   Add DICTKEY_UNREF in the right places. (ZyX)
2012-09-21 13:43:14 +02:00
f94a13c286 updated for version 7.3.669
Problem:    When building with Cygwin loading Python dynamically fails.
Solution:   Use DLLLIBRARY instead of INSTSONAME. (Ken Takata)
2012-09-21 13:26:49 +02:00
01c10524d2 updated for version 7.3.668
Problem:    Building with Perl loaded dynamically  still uses static library.
Solution:   Adjust use of PL_thr_key. (Ken Takata)
2012-09-21 12:50:51 +02:00
f5fe79a5f3 updated for version 7.3.667
Problem:    Unused variables in Perl interface.
Solution:   Adjust #ifdefs.
2012-09-21 12:42:44 +02:00
6f586de755 updated for version 7.3.666
Problem:    With MSVC 11 Win32.mak is not found.
Solution:   Add the SDK_INCLUDE_DIR variable. (Raymond Ko)
2012-09-18 22:00:08 +02:00
2b017fae8f updated for version 7.3.665
Problem:    MSVC 11 is not supported.
Solution:   Recognize MSVC 11. (Raymond Ko)
2012-09-18 18:27:12 +02:00
4fabd7dd4a updated for version 7.3.664
Problem:    Buffer overflow in unescaping text. (Raymond Ko)
Solution:   Limit check for multi-byte character to 4 bytes.
2012-09-18 18:03:37 +02:00
be1e9e9fc1 updated for version 7.3.663
Problem:    End of color scheme name not clear in E185. (Aaron Lewis)
Solution:   Put the name in single quotes.
2012-09-18 16:47:07 +02:00
2623b4f412 updated for version 7.3.662
Problem:    Can't build Ruby interface with Ruby 1.9.3.
Solution:   Add missing functions. (V. Ondruch)
2012-09-18 16:36:32 +02:00
e8cdcef875 updated for version 7.3.661
Problem:    SEGV in Python code.
Solution:   Initialize len to zero.  Use the right function depending on
            version. (Maxim Philippov)
2012-09-12 20:21:43 +02:00
fca93c093e updated for version 7.3.660
Problem:    ":help !" jumps to help for ":!".
Solution:   Adjust check for tag header line. (Andy Wokula)
2012-09-12 18:19:46 +02:00
c11073c9aa updated for version 7.3.659
Problem:    Recent Python changes are not tested.
Solution:   Add tests for Python bindings. (ZyX)
2012-09-05 19:17:42 +02:00
afa6b9af86 updated for version 7.3.658
Problem:    NUL bytes truncate strings when converted from Python.
Solution:   Handle truncation as an error. (ZyX)
2012-09-05 19:09:11 +02:00
cdab905136 updated for version 7.3.657
Problem:    Python bindings silently truncate string values containing NUL.
Solution:   Fail when a string contains NUL. (ZyX)
2012-09-05 19:03:56 +02:00
77fceb8908 updated for version 7.3.656
Problem:    Internal error in :pyeval.
Solution:   Handle failed object conversion. (ZyX)
2012-09-05 18:54:48 +02:00
e48a2dd3af updated for version 7.3.655
Problem:    64 bit MingW xpm .a file is missing.
Solution:   Add the file. (Sergey Khorev)
2012-09-05 18:49:24 +02:00
231e1a1723 updated for version 7.3.654
Problem:    When creating a Vim dictionary from Python objects an empty key
            might be used.
Solution:   Do not use empty keys, throw an IndexError. (ZyX)
2012-09-05 18:45:28 +02:00
e2db4361d2 updated for version 7.3.653
Problem:    MingW needs build rule for included XPM files.  Object directory
            for 32 and 64 builds is the same, also for MSVC.
Solution:   Add MingW build rule to use included XPM files.  Add the CPU or
            architecture to the object directory name. (Sergey Khorev)
2012-09-05 17:57:39 +02:00
ac0ddc15e9 updated for version 7.3.652
Problem:    Workaround for Python crash isn't perfect.
Solution:   Change the type of the length argument. (Sean Estabrooks)
2012-09-05 17:28:21 +02:00
7c0a86b1e8 updated for version 7.3.651
Problem:    Completion after ":help \{-" gives an error message.
Solution:   Prepend a backslash.
2012-09-05 15:15:07 +02:00
b4a80cdd91 updated for version 7.3.650
Problem:    Completion after ":help \{-" gives an error message and messes up
            the command line.
Solution:   Cancel the tag search if the pattern can't be compiled. (Yasuhiro
            Matsumoto)
2012-09-05 15:03:30 +02:00
7c82130a76 updated for version 7.3.649
Problem:    When 'clipboard' is set to "unnamed" small deletes end up in the
            numbered registers. (Ingo Karkat)
Solution:   Use the original register name to decide whether to put a delete
            in a numbered register. (Christian Brabandt)
2012-09-05 14:18:45 +02:00
2c66669c33 updated for version 7.3.648
Problem:    Crash when using a very long file name. (ZyX)
Solution:   Properly check length of buffer space.
2012-09-05 13:30:40 +02:00
57c0ea8692 updated for version 7.3.647
Problem:    "gnd" doesn't work correctly in Visual mode.
Solution:   Handle Visual mode differently in "gn". (Christian Brabandt)
2012-09-05 12:16:45 +02:00
465748e411 updated for version 7.3.646
Problem:    When reloading a buffer the undo file becomes unusable unless ":w"
            is executed. (Dmitri Frank)
Solution:   After reloading the buffer write the undo file. (Christian
            Brabandt)
2012-08-29 18:50:54 +02:00
dd7d846475 updated for version 7.3.645
Problem:    No tests for patch 7.3.625 and 7.3.637.
Solution:   Add more tests for the "gn" command and try/catch. (Christian
            Brabandt)
2012-08-29 16:55:13 +02:00
0551410a14 updated for version 7.3.644
Problem:    Dead code for BeOS GUI.
Solution:   Remove unused __BEOS__ stuff.
2012-08-29 16:34:27 +02:00
3633dc0129 updated for version 7.3.643
Problem:    MS-Windows: When starting gvim maximized 'lines' and 'columns' are
            wrong. (Christian Robinson)
Solution:   Move the check for gui.starting from ui_get_shellsize() to
            check_shellsize().
2012-08-29 16:26:04 +02:00
8f91399366 updated for version 7.3.642
Problem:    Segfault with specific autocommands.  Was OK after 7.3.449 and
            before 7.3.545. (Richard Brown)
Solution:   Pass TRUE for abort_if_last in the call to close_buffer().
            (Christian Brabandt)
2012-08-29 15:50:26 +02:00
002a4edc5b updated for version 7.3.641
Problem:    ":mkview" uses ":normal" instead of ":normal!" for folds. (Dan)
Solution:   Add the bang. (Christian Brabandt)
2012-08-29 15:22:25 +02:00
18a1b9bd5f updated for version 7.3.640
Problem:    It's not easy to build Vim on Windows with XPM support.
Solution:   Binary files for 7.3.639. (Sergey Khorev)
2012-08-29 14:26:27 +02:00
c6c1d8b802 updated for version 7.3.639
Problem:    It's not easy to build Vim on Windows with XPM support.
Solution:   Include the required files, they are quite small.  Update the
            MSVC makefile to use them.  Binary files are in the next patch.
            (Sergey Khorev)
2012-08-29 14:18:33 +02:00
1c75a03501 Fix version.c, 638 was there twice. 2012-08-23 22:28:46 +02:00
451cf63751 updated for version 7.3.638 2012-08-23 18:58:14 +02:00
00b8ae0d3d updated for version 7.3.637
Problem:    Cannot catch the error caused by a foldopen when there is no fold.
            (ZyX, Issue 48)
Solution:   Do not break out of the loop early when inside try/catch.
            (Christian Brabandt) Except when there is a syntax error.
2012-08-23 18:43:10 +02:00
dde0efed85 updated for version 7.3.636
Problem:    Not all zero-width matches handled correctly for "gn".
Solution:   Move zero-width detection to a separate function. (Christian
            Brabandt)
2012-08-23 15:53:05 +02:00
4d93dc2699 updated for version 7.3.635
Problem:    Issue 21: System call during startup sets 'lines' to a wrong
            value. (Karl Yngve)
Solution:   Don't set the shell size while the GUI is still starting up.
            (Christian Brabandt)
2012-08-23 13:28:55 +02:00
b9ce83e135 updated for version 7.3.634
Problem:    Month/Day format for undo is confusing. (Marcin Szamotulski)
Solution:   Always use Year/Month/Day, should work for everybody.
2012-08-23 12:59:02 +02:00
9b4512500a Update runtime files. 2012-08-15 17:43:31 +02:00
dd82d699c8 updated for version 7.3.633
Problem:    Selection remains displayed as selected after selecting another
            text.
Solution:   Call xterm_update() before select(). (Andrew Pimlott)
2012-08-15 17:26:57 +02:00
2b9578f0f8 updated for version 7.3.632
Problem:    Cannot select beyond 222 columns with the mouse in xterm.
Solution:   Add support for SGR mouse tracking. (Hayaki Saito)
2012-08-15 16:21:32 +02:00
2430586629 updated for version 7.3.631
Problem:    Cannot complete user names.
Solution:   Add user name completion.  (Dominique Pelle)
2012-08-15 14:05:05 +02:00
2dac213ac6 updated for version 7.3.630
Problem:    "|" does not behave correctly when 'virtualedit' is set.
Solution:   Call validate_virtcol(). (David Bürgin)
2012-08-15 13:31:00 +02:00
14f2474147 updated for version 7.3.629
Problem:    There is no way to make 'shiftwidth' follow 'tabstop'.
Solution:   When 'shiftwidth' is zero use the value of 'tabstop'. (Christian
            Brabandt)
2012-08-08 18:01:05 +02:00
b02612b641 updated for version 7.3.628
Problem:    ":open" does not allow for a !, which results in a confusing error
            message. (Shawn Wilson)
Solution:   Allow ! on ":open". (Christian Brabandt)
2012-08-08 17:31:40 +02:00
07e31c571a updated for version 7.3.627
Problem:    When using the "n" flag with the ":s" command a \= substitution
            will not be evaluated.
Solution:   Do perform the evaluation, so that a function can be invoked at
            every matching position without changing the text. (Christian
            Brabandt)
2012-08-08 16:51:15 +02:00
c1a995db49 updated for version 7.3.626
Problem:    Python interface doesn't build with Python 2.4 or older.
Solution:   Define Py_ssize_t. (Benjamin Bannier)
2012-08-08 16:05:07 +02:00
ba6ba36fa2 updated for version 7.3.625
Problem:    "gn" does not handle zero-width matches correctly.
Solution:   Handle zero-width patterns specially. (Christian Brabandt)
2012-08-08 15:27:57 +02:00
04b2751899 updated for version 7.3.624
Problem:    When cancelling input() it returns the third argument. That should
            only happen for inputdialog().
Solution:   Check if inputdialog() was used. (Hirohito Higashi)
2012-08-08 14:33:21 +02:00
c271c48e80 updated for version 7.3.623
Problem:    Perl 5.14 commands crash Vim on MS-Windows.
Solution:   Use perl_get_sv() instead of GvSV(). (Raymond Ko)
2012-08-08 13:17:31 +02:00
e66822e3d1 updated for version 7.3.622
Problem:    XPM library for Win32 can't be found.
Solution:   Suggest using the one from the Vim ftp site.
2012-08-02 21:48:24 +02:00
09168a77e4 updated for version 7.3.621
Problem:    Compiler warnings on 64 bit windows.
Solution:   Add type casts. (Mike Williams)
2012-08-02 21:24:42 +02:00
da3cb831e9 updated for version 7.3.620
Problem:    Building with recent Ruby on Win32 doesn't work.
Solution:   Add a separate argument for the API version. (Yasuhiro Matsumoto)
2012-08-02 21:21:47 +02:00
e4195c5d84 updated for version 7.3.619
Problem:    When executing a shell command Vim may become slow to respond.
Solution:   Don't wait after every processed message. (idea by Yasuhiro
            Matsumoto)
2012-08-02 12:31:44 +02:00
8a0f3c78fe updated for version 7.3.618
Problem:    Still doesn't compile with small features.
Solution:   Move current_search() out of #ifdef. (Dominique Pelle)
2012-07-29 12:55:32 +02:00
a07c831bef updated for version 7.3.617
Problem:    Hang on completion.
Solution:   Skip over the space. (Yasuhiro Matsumoto)
2012-07-27 21:12:07 +02:00
dad937f77f updated for version 7.3.616
Problem:    Can't compile without +visual.
Solution:   Add #ifdef.
2012-07-27 21:05:54 +02:00
6c35beaa11 Updated runtime files. 2012-07-25 17:49:10 +02:00
848f87633a updated for version 7.3.615
Problem:    Completion for a user command does not recognize backslash before
            a space.
Solution:   Recognize escaped characters. (Yasuhiro Matsumoto)
2012-07-25 17:22:23 +02:00
0cbba94b7e updated for version 7.3.614
Problem:    Number argument gets turned into a number while it should be a
            string.
Solution:   Add flag to the call_vim_function() call. (Yasuhiro Matsumoto)
2012-07-25 16:47:03 +02:00
9bdb9a0987 updated for version 7.3.613
Problem:    Including Python's config.c in the build causes trouble.  It is
            not clear why it was there.
Solution:   Omit the config file. (James McCoy)
2012-07-25 16:32:08 +02:00
5fb9ec5ed7 updated for version 7.3.612
Problem:    Auto formatting messes up text when 'fo' contains "2". (ZyX)
Solution:   Decrement "less_cols". (Tor Perkins)
2012-07-25 16:10:03 +02:00
9581b5f70e updated for version 7.3.611
Problem:    Can't use Vim dictionary as self argument in Python.
Solution:   Fix the check for the "self" argument. (ZyX)
2012-07-25 15:36:04 +02:00
641e286153 updated for version 7.3.610
Problem:    Cannot operate on the text that a search pattern matches.
Solution:   Add the "gn" and "gN" commands. (Christian Brabandt)
2012-07-25 15:06:34 +02:00
058bdcfd5d updated for version 7.3.609
Problem:    File names in :checkpath! output are garbled.
Solution:   Check for \zs in the pattern. (Lech Lorens)
2012-07-25 13:46:30 +02:00
6763c140d6 updated for version 7.3.608
Problem:    winrestview() does not always restore the view correctly.
Solution:   Call win_new_height() and win_new_width(). (Lech Lorens)
2012-07-19 18:05:44 +02:00
049d8e79cf updated for version 7.3.607
Problem:    With an 8 color terminal the selected menu item is black on black,
            because darkGrey as bg is the same as black.
Solution:   Swap fg and bg colors. (James McCoy)
2012-07-19 17:39:07 +02:00
94c465c53d updated for version 7.3.606
Problem:    CTRL-P completion has a problem with multi-byte characters.
Solution:   Check for next character being NUL properly.  (Yasuhiro Matsumoto)
2012-07-19 17:18:26 +02:00
1a0cee53d4 updated for version 7.3.605
Problem:    MS-Windows: Can't compile with older compilers. (Titov Anatoly)
Solution:   Add #ifdef for MEMORYSTATUSEX.
2012-07-19 11:37:26 +02:00
b5c9cb555e updated for version 7.3.604
Problem:    inputdialog() doesn't use the cancel argument in the console.
            (David Fishburn)
Solution:   Use the third argument. (Christian Brabant)
2012-07-16 19:27:29 +02:00
bdb620560b updated for version 7.3.603
Problem:    It is possible to add replace builtin functions by calling
            extend() on g:.
Solution:   Add a flag to a dict to indicate it is a scope.  Check for
            existing functions. (ZyX)
2012-07-16 17:31:53 +02:00
c2ece10274 updated for version 7.3.602
Problem:    Missing files in distribution.
Solution:   Update the list of files.
2012-07-16 17:28:11 +02:00
97f38d9540 updated for version 7.3.601
Problem:    Bad code style.
Solution:   Insert space, remove parens.
2012-07-16 17:26:22 +02:00
30b6581799 Updated runtime files. 2012-07-12 22:01:11 +02:00
dfef15481d updated for version 7.3.600
Problem:    <f-args> is not expanded properly with DBCS encoding.
Solution:   Skip over character instead of byte. (Yukihiro Nakadaira)
2012-07-10 19:25:10 +02:00
89af439409 updated for version 7.3.599
Problem:    Missing change in one file.
Solution:   Patch for changed clip_autoselect().
2012-07-10 18:31:54 +02:00
cfa3caec0c updated for version 7.3.598
Problem:    Cannot act upon end of completion. (Taro Muraoka)
Solution:   Add an autocommand event that is triggered when completion has
            finished. (Idea by Florian Klein)
2012-07-10 17:14:56 +02:00
c0885aad5c updated for version 7.3.597
Problem:    'clipboard' "autoselect" only applies to the * register. (Sergey
            Vakulenko)
Solution:   Make 'autoselect' work for the + register. (Christian Brabant)
            Add the "autoselectplus" option in 'clipboard' and the "P" flag in
            'guioptions'.
2012-07-10 16:49:23 +02:00
f65e5667df updated for version 7.3.596
Problem:    Can't remove all signs for a file or buffer.
Solution:   Support "*" for the sign id. (Christian Brabandt)
2012-07-10 15:18:22 +02:00
773c1ef81b updated for version 7.3.595
Problem:    The X command server responds slowly
Solution:   Change the loop that waits for replies. (Brian Burns)
2012-07-10 14:56:45 +02:00
52bf469f6f updated for version 7.3.594
Problem:    The X command server doesn't work perfectly. It sends an empty
            reply for as-keys requests.
Solution:   Remove duplicate ga_init2(). Do not send a reply for as-keys
            requests. (Brian Burns)
2012-07-10 14:25:04 +02:00
77c604d3ff updated for version 7.3.593
Problem:    No easy way to decide if b:browsefilter will work.
Solution:   Add the browsefilter feature.
2012-07-10 13:41:14 +02:00
6c4b646d84 updated for version 7.3.592
Problem:    Vim on GTK does not support g:browsefilter.
Solution:   Add a GtkFileFilter to the file chooser. (Christian Brabandt)
2012-07-10 13:12:51 +02:00
8cb8dca2f0 updated for version 7.3.591
Problem:    Can only move to a tab by absolute number.
Solution:   Move a number of tabs to the left or the right. (Lech Lorens)
2012-07-06 18:27:39 +02:00
0306ac33a5 updated for version 7.3.590
Problem:    The '< and '> marks cannot be set directly.
Solution:   Allow setting '< and '>. (Christian Brabandt)
2012-07-06 17:51:28 +02:00
bef4790c23 updated for version 7.3.589
Problem:    Crash when $HOME is not set.
Solution:   Check for a NULL pointer. (Chris Webb)
2012-07-06 16:49:40 +02:00
756287da38 updated for version 7.3.588
Problem:    Crash on NULL pointer.
Solution:   Fix the immediate problem by checking for NULL. (Lech Lorens)
2012-07-06 16:39:47 +02:00
e25865a7f3 updated for version 7.3.587
Problem:    Compiler warning for local var shadowing global var.
Solution:   Rename the var and move it to an inner block. (Christian Brabandt)
2012-07-06 16:22:02 +02:00
95b557b1dc updated for version 7.3.586
Problem:    When compiling with Cygwin or MingW MEMORYSTATUSEX is not defined.
Solution:   Set the default for WINVER to 0x0500.
2012-07-06 13:40:50 +02:00
5967abb97f updated for version 7.3.585
Problem:    Calling changed_bytes() too often.
Solution:   Move changed_bytes() out of a loop. (Tor Perkins)
2012-07-06 13:36:48 +02:00
221d6872c4 updated for version 7.3.584
Problem:    PyCObject is not always defined.
Solution:   Use PyObject instead.
2012-06-30 13:34:34 +02:00
e721122b79 updated for version 7.3.583
Problem:    PyObject_NextNotImplemented is not defined before Python 2.7.
            (Danek Duvall)
Solution:   Add #ifdefs.
2012-06-30 13:21:08 +02:00
49346f4155 updated for version 7.3.582
Problem:    Missing parts of the test OK file.
Solution:   Add the missing parts.
2012-06-29 23:57:54 +02:00
cc3e85f169 updated for version 7.3.581
Problem:    Problems compiling with Python.
Solution:   Pick UCS2 or UCS4 function at runtime. (lilydjwg)
2012-06-29 19:14:52 +02:00
3cd3e7ab17 updated for version 7.3.580
Problem:    Warning on 64 bit MS-Windows.
Solution:   Add type cast. (Mike Williams)
2012-06-29 17:52:02 +02:00
2afa3238a1 updated for version 7.3.579
Problem:    Can't compile with Python 2.5.
Solution:   Use PyCObject when Capsules are not available.
2012-06-29 16:28:28 +02:00
f27839c1a9 updated for version 7.3.578
Problem:    Misplaced declaration.
Solution:   Move declaration to start of block.
2012-06-29 16:19:50 +02:00
11b73d668f updated for version 7.3.577
Problem:    Size of memory does not fit in 32 bit unsigned.
Solution:   Use Kbyte instead of byte.  Call GlobalMemoryStatusEx() instead of
            GlobalMemoryStatus() when available.
2012-06-29 15:51:30 +02:00
96b7ca5142 updated for version 7.3.576
Problem:    Formatting of lists inside comments is not right yet.
Solution:   Use another solution and add a test. (Tor Perkins)
2012-06-29 15:04:49 +02:00
89f940fcac updated for version 7.3.575
Problem:    "ygt" tries to yank instead of giving an error. (Daniel Mueller)
Solution:   Check for a pending operator.
2012-06-29 13:56:06 +02:00
e79abddb2f updated for version 7.3.574
Problem:    When pasting a register in the search command line a CTRL-L
            character is not pasted. (Dominique Pelle)
Solution:   Escape the CTRL-L. (Christian Brabandt)
2012-06-29 13:44:41 +02:00
88b1ba151a updated for version 7.3.573
Problem:    Using array index before bounds checking.
Solution:   Swap the parts of the condition. (Dominique Pelle)
2012-06-29 13:34:19 +02:00
a53c60d33c updated for version 7.3.572
Problem:    Duplicate statement in if and else. (Dominique Pelle)
Solution:   Remove the condition and add a TODO.
2012-06-29 13:19:27 +02:00
f6a2b08c54 updated for version 7.3.571
Problem:    Duplicated condition.
Solution:   Remove one. (Dominique Pelle)
2012-06-29 13:14:03 +02:00
8f5c6f003a updated for version 7.3.570
Problem:    ":vimgrep" does not obey 'wildignore'.
Solution:   Apply 'wildignore' and 'suffixes' to ":vimgrep". (Ingo Karkat)
2012-06-29 12:57:06 +02:00
db91395312 updated for version 7.3.569
Problem:    Evaluating Vim expression in Python is insufficient.
Solution:   Add vim.bindeval().  Also add pyeval() and py3eval(). (ZyX)
2012-06-29 12:54:53 +02:00
a7014df975 updated for version 7.3.568
Problem:    Bad indents for #ifdefs.
Solution:   Add and remove spaces. (Elias Diem)
2012-06-29 12:35:44 +02:00
002850940e updated for version 7.3.567
Problem:    Missing copyright notice.
Solution:   Add Vim copyright notice. (Taro Muraoka)
2012-06-29 11:46:33 +02:00
22189a4bd6 updated for version 7.3.566
Problem:    Redo after completion does not work correctly when refresh: always
            is not used. (Raymond Ko)
Solution:   Check the compl_opt_refresh_always flag. (Christian Brabandt)
2012-06-20 22:56:02 +02:00
3943156034 updated for version 7.3.565
Problem:    Can't generate proto file for Python 3.
Solution:   Add PYTHON3_CFLAGS to LINT_CFLAGS.
2012-06-20 18:39:15 +02:00
d12f811816 updated for version 7.3.564
Problem:    Warning for pointer conversion.
Solution:   Add type cast.
2012-06-20 17:56:09 +02:00
50a12b4078 updated for version 7.3.563
Problem:    Can't build with tiny features.
Solution:   Add #ifdef.
2012-06-20 17:54:38 +02:00
38bdbd6c6f updated for version 7.3.562
Problem:    ":profdel" should not work when the +profile feature is disabled.
Solution:   Call ex_ni(). (Yasuhiro Matsumoto)
2012-06-20 15:48:57 +02:00
5e1a0a9a65 updated for version 7.3.561
Problem:    Using refresh: always in a complete function breaks the "."
            command. (Val Markovic)
Solution:   Add match leader to the redo buffer. (Yasuhiro Matsumoto)
2012-06-20 14:26:35 +02:00
ed46560bf0 updated for version 7.3.560
Problem:    Get an error for a locked argument in extend().
Solution:   Initialize the lock flag for a dictionary. (Yukihiro Nakadaira)
2012-06-20 14:13:06 +02:00
9158f9e423 updated for version 7.3.559
Problem:    home_replace() does not work with 8.3 filename.
Solution:   Make ":p" expand 8.3 name to full path. (Yasuhiro Matsumoto)
2012-06-20 14:02:27 +02:00
767 changed files with 96969 additions and 26770 deletions

7
.gitignore vendored
View File

@ -30,17 +30,23 @@ src/auto/pathdef.c
*.suo
*.res
*.RES
src/if_perl.c
src/pathdef.c
src/Obj*/pathdef.c
gvimext.dll
gvimext.lib
# Mac OSX
src/xxd/xxd.dSYM
# All platforms
*.rej
*.orig
*.mo
*.swp
*~
*.pyc
src/po/vim.pot
# Generated by "make test"
src/po/*.ck
@ -50,3 +56,4 @@ src/testdir/lua.vim
src/testdir/small.vim
src/testdir/tiny.vim
src/testdir/test*.out
src/testdir/test.log

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
help, rectangular cut/paste, etc., etc., etc...
Version 7.3. Also runs under UNIX, MSDOS and other systems.
vim73rt.tgz contains the documentation and syntax files.
vim73bin.tgz contains the binaries.
vim73src.tgz contains the sources.
Version 7.4. Also runs under UNIX, MSDOS and other systems.
vim74rt.tgz contains the documentation and syntax files.
vim74bin.tgz contains the binaries.
vim74src.tgz contains the sources.
Author: Bram Moolenaar et al.

View File

@ -57,6 +57,7 @@ SRC_ALL = \
src/popupmnu.c \
src/quickfix.c \
src/regexp.c \
src/regexp_nfa.c \
src/regexp.h \
src/screen.c \
src/search.c \
@ -73,6 +74,7 @@ SRC_ALL = \
src/version.c \
src/version.h \
src/vim.h \
src/winclip.c \
src/window.c \
src/xxd/xxd.c \
src/main.aap \
@ -82,6 +84,15 @@ SRC_ALL = \
src/testdir/test49.vim \
src/testdir/test60.vim \
src/testdir/test83-tags? \
src/testdir/python2/*.py \
src/testdir/python3/*.py \
src/testdir/pythonx/*.py \
src/testdir/pythonx/topmodule/__init__.py \
src/testdir/pythonx/topmodule/submodule/__init__.py \
src/testdir/pythonx/topmodule/submodule/subsubmodule/__init__.py \
src/testdir/pythonx/topmodule/submodule/subsubmodule/subsubsubmodule.py \
src/testdir/python_after/*.py \
src/testdir/python_before/*.py \
src/proto.h \
src/proto/blowfish.pro \
src/proto/buffer.pro \
@ -130,6 +141,7 @@ SRC_ALL = \
src/proto/ui.pro \
src/proto/undo.pro \
src/proto/version.pro \
src/proto/winclip.pro \
src/proto/window.pro \
@ -261,6 +273,7 @@ SRC_DOS = \
src/Make_mvc.mak \
src/Make_w16.mak \
src/bigvim.bat \
src/bigvim64.bat \
src/msvcsetup.bat \
src/msvc2008.bat \
src/msvc2010.bat \
@ -349,6 +362,13 @@ SRC_DOS_BIN = \
src/vim*.ico \
src/vim.tlb \
src/vimtbar.lib \
src/xpm/COPYRIGHT \
src/xpm/README.txt \
src/xpm/include/*.h \
src/xpm/x64/lib/libXpm.a \
src/xpm/x64/lib/libXpm.lib \
src/xpm/x86/lib/libXpm.a \
src/xpm/x86/lib/libXpm.lib \
src/vimtbar.dll \
nsis/icons/*.bmp \
nsis/icons/*.ico \
@ -436,6 +456,7 @@ SRC_EXTRA = \
src/os_beos.c \
src/os_beos.h \
src/os_beos.rsrc \
src/proto/os_beos.pro \
src/os_mint.h \
src/os_vms_fix.com \
src/toolbar.phi \
@ -463,6 +484,7 @@ RT_ALL = \
runtime/macros/hanoi/hanoi.vim \
runtime/macros/hanoi/poster \
runtime/macros/justify.vim \
runtime/macros/less.bat \
runtime/macros/less.sh \
runtime/macros/less.vim \
runtime/macros/life/click.me \
@ -666,10 +688,13 @@ EXTRA = \
# generic language files
LANG_GEN = \
runtime/doc/*-de.1 \
runtime/doc/*-de.UTF-8.1 \
runtime/doc/*-fr.1 \
runtime/doc/*-fr.UTF-8.1 \
runtime/doc/*-it.1 \
runtime/doc/*-it.UTF-8.1 \
runtime/doc/*-ja.UTF-8.1 \
runtime/doc/*-pl.1 \
runtime/doc/*-pl.UTF-8.1 \
runtime/doc/*-ru.1 \
@ -682,9 +707,17 @@ LANG_GEN = \
runtime/tutor/Makefile \
runtime/tutor/tutor.utf-8 \
runtime/tutor/tutor.?? \
runtime/tutor/tutor.??.* \
runtime/tutor/tutor.??.utf-8 \
runtime/tutor/tutor.??.euc \
runtime/tutor/tutor.??.sjis \
runtime/tutor/tutor.??.iso9 \
runtime/tutor/tutor.??.big5 \
runtime/tutor/tutor.??.cp1250 \
runtime/tutor/tutor.??.cp1251 \
runtime/tutor/tutor.??.cp737 \
runtime/tutor/tutor.??_??.utf-8 \
runtime/tutor/tutor.bar \
runtime/tutor/tutor.bar.* \
runtime/tutor/tutor.bar.utf-8 \
runtime/spell/README.txt \
runtime/spell/??/*.diff \
runtime/spell/??/main.aap \

114
Makefile
View File

@ -74,14 +74,17 @@ all install uninstall tools config configure reconfig proto depend lint tags typ
# Before creating an archive first delete all backup files, *.orig, etc.
MAJOR = 7
MINOR = 3
MINOR = 4
# Uncomment this line if the Win32s version is to be included.
DOSBIN_S = dosbin_s
# DOSBIN_S = dosbin_s
# Uncomment this line if the 16 bit DOS version is to be included.
# DOSBIN_D16 = dosbin_d16
# Uncomment this line if the 32 bit DOS version is to be included.
# DOSBIN_D32 = dosbin_d32
# CHECKLIST for creating a new version:
#
# - Update Vim version number. For a test version in: src/version.h, Contents,
@ -89,8 +92,6 @@ DOSBIN_S = dosbin_s
# runtime/doc/*.txt and nsis/gvim.nsi. Other things in README_os2.txt. For a
# minor/major version: src/GvimExt/GvimExt.reg, src/vim.def, src/vim16.def,
# src/gvim.exe.mnf.
# - Adjust the date and other info in src/version.h.
# - Correct included_patches[] in src/version.c.
# - Compile Vim with GTK, Perl, Python, Python3, TCL, Ruby, MZscheme, Lua (if
# you can make it all work), Cscope and "huge" features. Exclude workshop
# and SNiFF.
@ -99,8 +100,14 @@ DOSBIN_S = dosbin_s
# - With these features: "make depend" (works best with gcc).
# - If you have a lint program: "make lint" and check the output (ignore GTK
# warnings).
# - Enable the efence library in "src/Makefile" and run "make test". Disable
# Python and Ruby to avoid trouble with threads (efence is not threadsafe).
# - If you have valgrind, enable it in src/testdir/Makefile and run "make
# test". Enable EXITFREE, disable GUI, scheme and tcl to avoid false alarms.
# Check the valgrind output.
# - If you have the efence library, enable it in "src/Makefile" and run "make
# test". Disable Python and Ruby to avoid trouble with threads (efence is
# not threadsafe).
# - Adjust the date and other info in src/version.h.
# - Correct included_patches[] in src/version.c.
# - Check for missing entries in runtime/makemenu.vim (with checkmenu script).
# - Check for missing options in runtime/optwin.vim et al. (with check.vim).
# - Do "make menu" to update the runtime/synmenu.vim file.
@ -108,8 +115,8 @@ DOSBIN_S = dosbin_s
# - Check that runtime/doc/help.txt doesn't contain entries in "LOCAL
# ADDITIONS".
# - In runtime/doc run "make" and "make html" to check for errors.
# - Check if src/Makefile and src/feature.h don't contain any personal
# preferences or the GTK, Perl, etc. mentioned above.
# - Check if src/Makefile, src/testdir/Makefile and src/feature.h don't contain
# any personal preferences or the changes mentioned above.
# - Check file protections to be "644" for text and "755" for executables (run
# the "check" script).
# - Check compiling on Amiga, MS-DOS and MS-Windows.
@ -128,36 +135,20 @@ DOSBIN_S = dosbin_s
# PC:
# - Run make on Unix to update the ".mo" files.
# - "make dossrc" and "make dosrt". Unpack the archives on a PC.
# 16 bit DOS version: (OBSOLETE, 16 bit version doesn't build)
# - Set environment for compiling with Borland C++ 3.1.
# - "bmake -f Make_bc3.mak BOR=E:\borlandc" (compiling xxd might fail, in that
# case set environment for compiling with Borland C++ 4.0 and do
# "make -f make_bc3.mak BOR=E:\BC4 xxd/xxd.exe").
# NOTE: this currently fails because Vim is too big.
# - "make test" and check the output.
# - Rename the executables to "vimd16.exe", "xxdd16.exe", "installd16.exe" and
# "uninstald16.exe".
# 32 bit DOS version:
# - Set environment for compiling with DJGPP; "gmake -f Make_djg.mak".
# - "rm testdir/*.out", "gmake -f Make_djg.mak test" and check the output for
# "ALL DONE".
# - Rename the executables to "vimd32.exe", "xxdd32.exe", "installd32.exe" and
# "uninstald32.exe".
# Win32 console version:
# - Set environment for Visual C++ 2008, e.g.:
# "E:\Microsoft Visual Studio 9.0\VC\bin\vcvars32.bat". Or, when using the
# Visual C++ Toolkit 2003: "msvcsetup.bat" (adjust the paths when necessary).
# For Windows 98/ME the 2003 version is required, but then it won't work on
# Windows 7 and 64 bit.
# - "nmake -f Make_mvc.mak"
# - Set environment for Visual C++ 2008, e.g.: "msvc2008.bat" Or:
# "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\vcvars32.bat".
# Or, when using the Visual C++ Toolkit 2003: "msvcsetup.bat" (adjust the
# paths when necessary).
# For Windows 98/ME the 2003 version is required, but then the executable
# won't work on Windows 7 and 64 bit systems.
# - "nmake -f Make_mvc.mak" (use the same path as for vcvars32.bat)
# - "rm testdir/*.out", "nmake -f Make_mvc.mak test" and check the output.
# - Rename the executables to "vimw32.exe", "xxdw32.exe".
# - Rename vim.exe to vimw32.exe, xxd/xxd.exe to xxdw32.exe.
# - Rename vim.pdb to vimw32.pdb.
# - When building the Win32s version later, delete vimrun.exe, install.exe and
# uninstal.exe. Otherwise rename executables to installw32.exe and
# uninstalw32.exe.
# - Rename install.exe to installw32.exe and uninstal.exe to uninstalw32.exe.
# Win32 GUI version:
# - "nmake -f Make_mvc.mak GUI=yes.
# - "nmake -f Make_mvc.mak GUI=yes"
# - move "gvim.exe" to here (otherwise the OLE version will overwrite it).
# - Move gvim.pdb to here.
# - Delete vimrun.exe, install.exe and uninstal.exe.
@ -167,23 +158,13 @@ DOSBIN_S = dosbin_s
# - Rename "gvim.exe" to "gvim_ole.exe".
# - Rename gvim.pdb to "gvim_ole.pdb".
# - Delete install.exe and uninstal.exe.
# - If building the Win32s version delete vimrun.exe.
# Win32s GUI version:
# - 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.
# Create the archives:
# - Copy all the "*.exe" files to where this Makefile is.
# - Copy all the "*.pdb" files to where this Makefile is.
# - "make dosbin".
# NSIS self installing exe:
# - To get NSIS see http://nsis.sourceforge.net
# - Make sure gvim_ole.exe, vimd32.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.
# - copy these files (get them from a binary archive or build them):
# gvimext.dll in src/GvimExt
@ -196,7 +177,44 @@ DOSBIN_S = dosbin_s
# - go to ../nsis and do "makensis gvim.nsi" (takes a few minutes).
# - Copy gvim##.exe to the dist directory.
#
# OS/2: (OBSOLETE, OS/2 version is no longer distributed)
# 64 bit builds (these are not in the normal distribution, the 32 bit build
# works just fine on 64 bit systems).
# Like the console and GUI version, but first run vcvars64.bat or
# "..\VC\vcvarsall.bat x86_amd64".
# - "nmake -f Make_mvc.mak"
# - "nmake -f Make_mvc.mak GUI=yes"
# Or run src/bigvim64.bat for an OLE version.
#
# OBSOLETE systems: You can build this if you have an appropriate system.
#
# 16 bit DOS version: (doesn't build anywhere)
# - Set environment for compiling with Borland C++ 3.1.
# - "bmake -f Make_bc3.mak BOR=E:\borlandc" (compiling xxd might fail, in that
# case set environment for compiling with Borland C++ 4.0 and do
# "make -f make_bc3.mak BOR=E:\BC4 xxd/xxd.exe").
# NOTE: this currently fails because Vim is too big.
# - "make test" and check the output.
# - Rename the executables to "vimd16.exe", "xxdd16.exe", "installd16.exe" and
# "uninstald16.exe".
#
# 32 bit DOS version: (requires Windows XP or earlier)
# - Set environment for compiling with DJGPP; "gmake -f Make_djg.mak".
# - "rm testdir/*.out", "gmake -f Make_djg.mak test" and check the output for
# "ALL DONE".
# - Rename the executables to "vimd32.exe", "xxdd32.exe", "installd32.exe" and
# "uninstald32.exe".
#
# Win32s GUI version: (requires very old compiler)
# - Set environment for Visual C++ 4.1 (requires a new console window):
# "vcvars32.bat" (use the path for VC 4.1 e:\msdev\bin)
# - "nmake -f Make_mvc.mak GUI=yes INTL=no clean" (use the path for VC 4.1)
# - "nmake -f Make_mvc.mak GUI=yes INTL=no" (use the path for VC 4.1)
# - Rename "gvim.exe" to "gvim_w32s.exe".
# - Rename "install.exe" to "installw32.exe"
# - Rename "uninstal.exe" to "uninstalw32.exe"
# - The produced uninstalw32.exe and vimrun.exe are used.
#
# OS/2: (requires an OS/2 system)
# - Unpack the Unix archive.
# - "make -f Make_os2.mak".
# - Rename the executables to vimos2.exe, xxdos2.exe and teeos2.exe and copy
@ -295,6 +313,8 @@ unixall: dist prepare
$(LANG_SRC) \
| (cd dist/$(VIMRTDIR); tar xf -)
# Need to use a "distclean" config.mk file
# Note: this file is not included in the repository to avoid problems, but it's
# OK to put it in the archive.
cp -f src/config.mk.dist dist/$(VIMRTDIR)/src/auto/config.mk
# Create an empty config.h file, make dependencies require it
touch dist/$(VIMRTDIR)/src/auto/config.h
@ -450,7 +470,7 @@ runtime_unix2dos: dosrt_unix2dos
cd dist/vim/$(VIMRTDIR); tar cf - * \
| (cd ../../../runtime/dos; tar xf -)
dosbin: prepare dosbin_gvim dosbin_w32 dosbin_d32 dosbin_ole $(DOSBIN_S) $(DOSBIN_D16)
dosbin: prepare dosbin_gvim dosbin_w32 $(DOSBIN_D32) dosbin_ole $(DOSBIN_S) $(DOSBIN_D16)
# make Win32 gvim
dosbin_gvim: dist no_title.vim dist/$(COMMENT_GVIM)

View File

@ -1,4 +1,4 @@
README.txt for version 7.3 of Vim: Vi IMproved.
README.txt for version 7.4 of Vim: Vi IMproved.
WHAT IS VIM
@ -97,10 +97,12 @@ The latest news about Vim can be found on the Vim home page:
If you have problems, have a look at the Vim FAQ:
http://vimdoc.sf.net/vimfaq.html
Send bug reports to:
Bram Moolenaar <Bram@vim.org>
If you still have problems or any other questions, use one of the mailing
lists to discuss them with Vim users and developers:
http://www.vim.org/maillist.php
There are several mailing lists for Vim, see http://www.vim.org/maillist.php.
If nothing else works, report bugs directly:
Bram Moolenaar <Bram@vim.org>
MAIN AUTHOR

View File

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

View File

@ -1,4 +1,4 @@
README_amibin.txt for version 7.3 of Vim: Vi IMproved.
README_amibin.txt for version 7.4 of Vim: Vi IMproved.
See "README.txt" for general information about Vim.
See "README_ami.txt" for installation instructions for the Amiga.

View File

@ -1,4 +1,4 @@
README_amisrc.txt for version 7.3 of Vim: Vi IMproved.
README_amisrc.txt for version 7.4 of Vim: Vi IMproved.
See "README.txt" for general information about Vim.
See "README_ami.txt" for installation instructions for the Amiga.

View File

@ -1,19 +1,16 @@
README_bindos.txt for version 7.3 of Vim: Vi IMproved.
README_bindos.txt for version 7.4 of Vim: Vi IMproved.
See "README.txt" for general information about Vim.
See "README_dos.txt" for installation instructions for MS-DOS and MS-Windows.
These files are in the runtime archive (vim73rt.zip).
These files are in the runtime archive (vim74rt.zip).
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.
These ones are available (the version number may differ):
vim73d16.zip 16 bit DOS version
vim73d32.zip 32 bit DOS version
vim73w32.zip Windows 95/98/NT/etc. console version
gvim73.zip Windows 95/98/NT/etc. GUI version
gvim73ole.zip Windows 95/98/NT/etc. GUI version with OLE
gvim73_s.zip Windows 3.1 GUI version
vim74w32.zip Windows 95/98/NT/etc. console version
gvim74.zip Windows 95/98/NT/etc. GUI version
gvim74ole.zip Windows 95/98/NT/etc. GUI version with OLE
You MUST also get the runtime archive (vim73rt.zip).
The sources are also available (vim73src.zip).
You MUST also get the runtime archive (vim74rt.zip).
The sources are also available (vim74src.zip).

View File

@ -1,4 +1,4 @@
README_dos.txt for version 7.3 of Vim: Vi IMproved.
README_dos.txt for version 7.4 of Vim: Vi IMproved.
This file explains the installation of Vim on MS-DOS and MS-Windows systems.
See "README.txt" for general information about Vim.
@ -47,13 +47,13 @@ These are the normal steps to install Vim from the .zip archives:
Binary and runtime Vim archives are normally unpacked in the same location,
on top of each other.
2. Unpack the zip archives. This will create a new directory "vim\vim73",
2. Unpack the zip archives. This will create a new directory "vim\vim74",
in which all the distributed Vim files are placed. Since the directory
name includes the version number, it is unlikely that you overwrite
existing files.
Examples:
pkunzip -d gvim73.zip
unzip vim73w32.zip
pkunzip -d gvim74.zip
unzip vim74w32.zip
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
@ -69,7 +69,7 @@ These are the normal steps to install Vim from the .zip archives:
archive and follow the instructions in the documentation.
3. Change to the new directory:
cd vim\vim73
cd vim\vim74
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:
- 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
$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:
set path=%path%;C:\vim\vim73
set path=%path%;D:\editors\vim\vim73
set path=%path%;C:\vim\vim74
set path=%path%;D:\editors\vim\vim74
- Create entries for Vim on the desktop and in the Start menu.
That's it!
@ -93,8 +93,8 @@ Remarks:
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:
set VIM=C:\editors\vim
Vim version 7.3 will look for your vimrc file in $VIM, and for the runtime
files in $VIM/vim73. See ":help $VIM" for more information.
Vim version 7.4 will look for your vimrc file in $VIM, and for the runtime
files in $VIM/vim74. See ":help $VIM" for more information.
- To avoid confusion between distributed files of different versions and your
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\... Other files you made.
Distributed files:
C:\vim\vim73\vim.exe The Vim version 7.3 executable.
C:\vim\vim73\doc\*.txt The version 7.3 documentation files.
C:\vim\vim73\bugreport.vim A Vim version 7.3 script.
C:\vim\vim73\... Other version 7.3 distributed files.
C:\vim\vim74\vim.exe The Vim version 7.4 executable.
C:\vim\vim74\doc\*.txt The version 7.4 documentation files.
C:\vim\vim74\bugreport.vim A Vim version 7.4 script.
C:\vim\vim74\... Other version 7.4 distributed files.
In this case the $VIM environment variable would be set like this:
set VIM=C:\vim
Then $VIMRUNTIME will automatically be set to "$VIM\vim73". Don't add
"vim73" to $VIM, that won't work.
Then $VIMRUNTIME will automatically be set to "$VIM\vim74". Don't add
"vim74" to $VIM, that won't work.
- 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
@ -136,8 +136,8 @@ Remarks:
Select Properties.
5. In the Program tab, change the "Cmdline" to add "/c" and the name of the
Vim executable. Examples:
C:\command.com /c C:\vim\vim73\vim.exe
C:\command.com /c D:\editors\vim\vim73\vim.exe
C:\command.com /c C:\vim\vim74\vim.exe
C:\command.com /c D:\editors\vim\vim74\vim.exe
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
mode".

View File

@ -1,4 +1,4 @@
README_extra.txt for version 7.3 of Vim: Vi IMproved.
README_extra.txt for version 7.4 of Vim: Vi IMproved.
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"

View File

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

View File

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

View File

@ -1,32 +1,32 @@
README_os2.txt for version 7.3 of Vim: Vi IMproved.
README_os2.txt for version 7.4 of Vim: Vi IMproved.
This file explains the installation of Vim on OS/2 systems.
See "README.txt" for general information about Vim.
NOTE: You will need two archives:
vim73rt.zip contains the runtime files (same as for the PC version)
vim73os2.zip contains the OS/2 executables
vim74rt.zip contains the runtime files (same as for the PC version)
vim74os2.zip contains the OS/2 executables
1. Go to the directory where you want to put the Vim files. Examples:
cd C:\
cd D:\editors
2. Unpack the zip archives. This will create a new directory "vim/vim73",
2. Unpack the zip archives. This will create a new directory "vim/vim74",
in which all the distributed Vim files are placed. Since the directory
name includes the version number, it is unlikely that you overwrite
existing files.
Examples:
pkunzip -d vim73os2.zip
unzip vim73os2.zip
pkunzip -d vim74os2.zip
unzip vim74os2.zip
After you unpacked the files, you can still move the whole directory tree
to another location.
3. Add the directory where vim.exe is to your path. The simplest is to add a
line to your autoexec.bat. Examples:
set path=%path%;C:\vim\vim73
set path=%path%;D:\editors\vim\vim73
set path=%path%;C:\vim\vim74
set path=%path%;D:\editors\vim\vim74
That's it!
@ -41,10 +41,10 @@ Extra remarks:
C:\vim\_viminfo Dynamic info for 'viminfo'.
C:\vim\... Other files you made.
Distributed files:
C:\vim\vim73\vim.exe The Vim version 7.3 executable.
C:\vim\vim73\doc\*.txt The version 7.3 documentation files.
C:\vim\vim73\bugreport.vim A Vim version 7.3 script.
C:\vim\vim73\... Other version 7.3 distributed files.
C:\vim\vim74\vim.exe The Vim version 7.4 executable.
C:\vim\vim74\doc\*.txt The version 7.4 documentation files.
C:\vim\vim74\bugreport.vim A Vim version 7.4 script.
C:\vim\vim74\... Other version 7.4 distributed files.
In this case the $VIM environment variable would be set like this:
set VIM=C:\vim

View File

@ -1,4 +1,4 @@
README_zOS.txt for version 7.3 of Vim: Vi IMproved.
README_zOS.txt for version 7.4 of Vim: Vi IMproved.
This readme explains how to build Vim on z/OS. Formerly called OS/390.
See "README.txt" for general information about Vim.
@ -29,7 +29,7 @@ console version).
Compiling:
==========
Vim can be compiled with or without GUI support. For 7.3 only the compilation
Vim can be compiled with or without GUI support. For 7.4 only the compilation
without GUI was tested. Below is a section about compiling with X11 but this
is from an earlier version of Vim.
@ -78,7 +78,7 @@ Change to the vim directory and do:
With X11:
---------
WARNING: This instruction was not tested with Vim 7.3.
WARNING: This instruction was not tested with Vim 7.4.
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

View File

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

View File

@ -1,8 +1,8 @@
README_srcdos.txt for version 7.3 of Vim: Vi IMproved.
README_srcdos.txt for version 7.4 of Vim: Vi IMproved.
See "README.txt" for general information about Vim.
See "README_dos.txt" for installation instructions for MS-DOS and MS-Windows.
These files are in the runtime archive (vim73rt.zip).
These files are in the runtime archive (vim74rt.zip).
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.3 of Vim: Vi IMproved.
README_unix.txt for version 7.4 of Vim: Vi IMproved.
This file explains the installation of Vim on Unix systems.
See "README.txt" for general information about Vim.

View File

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

View File

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

View File

@ -5,7 +5,7 @@
# WARNING: if you make changes to this script, look out for $0 to be valid,
# because uninstall deletes most files in $0.
# Location of gvim_ole.exe, vimd32.exe, GvimExt/*, etc.
# Location of gvim_ole.exe, vimw32.exe, GvimExt/*, etc.
!define VIMSRC "..\src"
# Location of runtime files
@ -22,7 +22,7 @@
!define HAVE_NLS
!define VER_MAJOR 7
!define VER_MINOR 3
!define VER_MINOR 4
# ----------- No configurable settings below this line -----------
@ -40,7 +40,7 @@ RequestExecutionLevel highest
ComponentText "This will install Vim ${VER_MAJOR}.${VER_MINOR} on your computer."
DirText "Choose a directory to install Vim (must end in 'vim')"
Icon icons\vim_16c.ico
# NSIS2 uses a different strategy with six diferent images in a strip...
# NSIS2 uses a different strategy with six different images in a strip...
#EnabledBitmap icons\enabled.bmp
#DisabledBitmap icons\disabled.bmp
UninstallText "This will uninstall Vim ${VER_MAJOR}.${VER_MINOR} from your system."
@ -56,6 +56,9 @@ LicenseData ${VIMRT}\doc\uganda.nsis.txt
!packhdr temp.dat "upx --best --compress-icons=1 temp.dat"
!endif
SetCompressor /SOLID lzma
XPStyle on
# This adds '\vim' to the user choice automagically. The actual value is
# obtained below with ReadINIStr.
InstallDir "$PROGRAMFILES\Vim"
@ -247,11 +250,10 @@ Section "Vim console program (vim.exe)"
ReadRegStr $R0 HKLM \
"SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
IfErrors 0 lbl_winnt
# Windows 95/98/ME
File /oname=vim.exe ${VIMSRC}\vimd32.exe
# Windows 95/98/ME: not supported
Goto lbl_done
lbl_winnt:
# Windows NT/2000/XT
# Windows NT/2000/XP and later
File /oname=vim.exe ${VIMSRC}\vimw32.exe
lbl_done:
StrCpy $2 "$2 vim view vimdiff"

View File

@ -1,7 +1,7 @@
" Vim completion script
" Language: C
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2011 Dec 30
" Last Change: 2012 Jun 20
let s:cpo_save = &cpo
set cpo&vim
@ -500,7 +500,7 @@ function! s:StructMembers(typename, items, all)
endif
if !cached
while 1
exe 'silent! ' . n . 'vimgrep /\t' . typename . '\(\t\|$\)/j ' . fnames
exe 'silent! keepj noautocmd ' . n . 'vimgrep /\t' . typename . '\(\t\|$\)/j ' . fnames
let qflist = getqflist()
if len(qflist) > 0 || match(typename, "::") < 0

File diff suppressed because one or more lines are too long

View File

@ -1,8 +1,8 @@
" ---------------------------------------------------------------------
" getscript.vim
" Author: Charles E. Campbell, Jr.
" Date: Jan 17, 2012
" Version: 34
" Author: Charles E. Campbell
" Date: Apr 17, 2013
" Version: 35
" Installing: :help glvs-install
" Usage: :help glvs
"
@ -15,7 +15,7 @@
if exists("g:loaded_getscript")
finish
endif
let g:loaded_getscript= "v34"
let g:loaded_getscript= "v35"
if &cp
echoerr "GetLatestVimScripts is not vi-compatible; not loaded (you need to set nocp)"
finish
@ -74,6 +74,11 @@ if !exists("g:GetLatestVimScripts_allowautoinstall")
let g:GetLatestVimScripts_allowautoinstall= 1
endif
" set up default scriptaddr address
if !exists("g:GetLatestVimScripts_scriptaddr")
let g:GetLatestVimScripts_scriptaddr = 'http://vim.sourceforge.net/script.php?script_id='
endif
"" For debugging:
"let g:GetLatestVimScripts_wget = "echo"
"let g:GetLatestVimScripts_options = "options"
@ -314,7 +319,7 @@ fun! getscript#GetLatestVimScripts()
if &mod
silent! w!
endif
q
q!
" restore events and current directory
exe "cd ".fnameescape(substitute(origdir,'\','/','ge'))
@ -415,7 +420,7 @@ fun! s:GetOneScript(...)
echo 'considering <'.aicmmnt.'> scriptid='.scriptid.' srcid='.srcid
" grab a copy of the plugin's vim.sourceforge.net webpage
let scriptaddr = 'http://vim.sourceforge.net/script.php?script_id='.scriptid
let scriptaddr = g:GetLatestVimScripts_scriptaddr.scriptid
let tmpfile = tempname()
let v:errmsg = ""

File diff suppressed because it is too large Load Diff

View File

@ -1,9 +1,9 @@
" netrwFileHandlers: contains various extension-based file handlers for
" netrw's browsers' x command ("eXecute launcher")
" Author: Charles E. Campbell, Jr.
" Date: Mar 14, 2012
" Version: 11a
" Copyright: Copyright (C) 1999-2012 Charles E. Campbell, Jr. {{{1
" Author: Charles E. Campbell
" Date: May 03, 2013
" Version: 11b ASTRO-ONLY
" Copyright: Copyright (C) 1999-2012 Charles E. Campbell {{{1
" Permission is hereby granted to use and distribute this code,
" with or without modifications, provided that this copyright
" notice is copied with it. Like anything else that's free,
@ -20,7 +20,7 @@
if exists("g:loaded_netrwFileHandlers") || &cp
finish
endif
let g:loaded_netrwFileHandlers= "v11a"
let g:loaded_netrwFileHandlers= "v11b"
if v:version < 702
echohl WarningMsg
echo "***warning*** this version of netrwFileHandlers needs vim 7.2"
@ -34,10 +34,10 @@ set cpo&vim
" netrwFileHandlers#Invoke: {{{1
fun! netrwFileHandlers#Invoke(exten,fname)
" call Dfunc("netrwFileHandlers#Invoke(exten<".a:exten."> fname<".a:fname.">)")
let fname= a:fname
let exten= a:exten
" list of supported special characters. Consider rcs,v --- that can be
" supported with a NFH_rcsCOMMAv() handler
if a:fname =~ '[@:,$!=\-+%?;~]'
if exten =~ '[@:,$!=\-+%?;~]'
let specials= {
\ '@' : 'AT',
\ ':' : 'COLON',
@ -51,18 +51,18 @@ fun! netrwFileHandlers#Invoke(exten,fname)
\ '?' : 'QUESTION',
\ ';' : 'SEMICOLON',
\ '~' : 'TILDE'}
let fname= substitute(a:fname,'[@:,$!=\-+%?;~]','\=specials[submatch(0)]','ge')
let exten= substitute(a:exten,'[@:,$!=\-+%?;~]','\=specials[submatch(0)]','ge')
" call Decho('fname<'.fname.'> done with dictionary')
endif
if a:exten != "" && exists("*NFH_".a:exten)
if a:exten != "" && exists("*NFH_".exten)
" support user NFH_*() functions
" call Decho("let ret= netrwFileHandlers#NFH_".a:exten.'("'.fname.'")')
exe "let ret= NFH_".a:exten.'("'.fname.'")'
elseif a:exten != "" && exists("*s:NFH_".a:exten)
exe "let ret= NFH_".exten.'("'.a:fname.'")'
elseif a:exten != "" && exists("*s:NFH_".exten)
" use builtin-NFH_*() functions
" call Decho("let ret= netrwFileHandlers#NFH_".a:exten.'("'.fname.'")')
exe "let ret= s:NFH_".a:exten.'("'.fname.'")'
exe "let ret= s:NFH_".a:exten.'("'.a:fname.'")'
endif
" call Dret("netrwFileHandlers#Invoke 0 : ret=".ret)

View File

@ -1,8 +1,8 @@
" netrwSettings.vim: makes netrw settings simpler
" Date: Sep 03, 2008
" Maintainer: Charles E Campbell, Jr <drchipNOSPAM at campbellfamily dot biz>
" Version: 13
" Copyright: Copyright (C) 1999-2007 Charles E. Campbell, Jr. {{{1
" Date: May 03, 2013
" Maintainer: Charles E Campbell <drchipNOSPAM at campbellfamily dot biz>
" Version: 14a ASTRO-ONLY
" Copyright: Copyright (C) 1999-2007 Charles E. Campbell {{{1
" Permission is hereby granted to use and distribute this code,
" with or without modifications, provided that this copyright
" notice is copied with it. Like anything else that's free,
@ -19,7 +19,7 @@
if exists("g:loaded_netrwSettings") || &cp
finish
endif
let g:loaded_netrwSettings = "v13"
let g:loaded_netrwSettings = "v14a"
if v:version < 700
echohl WarningMsg
echo "***warning*** this version of netrwSettings needs vim 7.0"
@ -63,7 +63,7 @@ fun! netrwSettings#NetrwSettings()
endif
put ='+ ---------------------------------------------'
put ='+ NetrwSettings: by Charles E. Campbell, Jr.'
put ='+ NetrwSettings: by Charles E. Campbell'
put ='+ Press <F1> with cursor atop any line for help'
put ='+ ---------------------------------------------'
let s:netrw_settings_stop= line(".")
@ -88,6 +88,7 @@ fun! netrwSettings#NetrwSettings()
put = 'let g:netrw_ftpmode = '.g:netrw_ftpmode
put = 'let g:netrw_ignorenetrc = '.g:netrw_ignorenetrc
put = 'let g:netrw_sshport = '.g:netrw_sshport
put = 'let g:netrw_silent = '.g:netrw_silent
put = 'let g:netrw_use_nt_rcp = '.g:netrw_use_nt_rcp
put = 'let g:netrw_win95ftp = '.g:netrw_win95ftp
let s:netrw_xfer_stop= line(".")
@ -99,51 +100,81 @@ fun! netrwSettings#NetrwSettings()
put ='+ Netrw Browser Control'
put = 'let g:netrw_alto = '.g:netrw_alto
put = 'let g:netrw_altv = '.g:netrw_altv
put = 'let g:netrw_banner = '.g:netrw_banner
if exists("g:netrw_bannerbackslash")
put = 'let g:netrw_bannerbackslash = '.g:netrw_bannerbackslash
else
put = '\" let g:netrw_bannerbackslash = (not defined)'
endif
put = 'let g:netrw_browse_split = '.g:netrw_browse_split
if exists("g:netrw_browsex_viewer")
put = 'let g:netrw_browsex_viewer = '.g:netrw_browsex_viewer
put = 'let g:netrw_browsex_viewer = '.g:netrw_browsex_viewer
else
put = 'let g:netrw_browsex_viewer = (not defined)'
put = '\" let g:netrw_browsex_viewer = (not defined)'
endif
put = 'let g:netrw_compress = '.g:netrw_compress
put = 'let g:netrw_cursorline = '.g:netrw_cursorline
if exists("g:Netrw_corehandler")
put = 'let g:Netrw_corehandler = '.g:Netrw_corehandler
else
put = '\" let g:Netrw_corehandler = (not defined)'
endif
put = 'let g:netrw_ctags = '.g:netrw_ctags
put = 'let g:netrw_cursor = '.g:netrw_cursor
let decompressline= line("$")
put ='let g:netrw_decompress...'
put = 'let g:netrw_decompress = '.string(g:netrw_decompress)
if exists("g:netrw_dynamic_maxfilenamelen")
put = 'let g:netrw_dynamic_maxfilenamelen='.g:netrw_dynamic_maxfilenamelen
else
put = '\" let g:netrw_dynamic_maxfilenamelen= (not defined)'
endif
put = 'let g:netrw_dirhistmax = '.g:netrw_dirhistmax
put = 'let g:netrw_errorlvl = '.g:netrw_errorlvl
put = 'let g:netrw_fastbrowse = '.g:netrw_fastbrowse
let fnameescline= line("$")
put = 'let g:netrw_fname_escape...'
put = 'let g:netrw_fname_escape = '.string(g:netrw_fname_escape)
put = 'let g:netrw_ftp_browse_reject = '.g:netrw_ftp_browse_reject
put = 'let g:netrw_ftp_list_cmd = '.g:netrw_ftp_list_cmd
put = 'let g:netrw_ftp_sizelist_cmd = '.g:netrw_ftp_sizelist_cmd
put = 'let g:netrw_ftp_timelist_cmd = '.g:netrw_ftp_timelist_cmd
let globescline= line("$")
put ='let g:netrw_glob_escape...'
put = 'let g:netrw_glob_escape = '.string(g:netrw_glob_escape)
put = 'let g:netrw_hide = '.g:netrw_hide
if exists("g:netrw_home")
put = 'let g:netrw_home = '.g:netrw_home
else
put = '\" let g:netrw_home = (not defined)'
endif
put = 'let g:netrw_keepdir = '.g:netrw_keepdir
put = 'let g:netrw_list_cmd = '.g:netrw_list_cmd
put = 'let g:netrw_list_hide = '.g:netrw_list_hide
put = 'let g:netrw_liststyle = '.g:netrw_liststyle
put = 'let g:netrw_localcopycmd = '.g:netrw_localcopycmd
put = 'let g:netrw_local_mkdir = '.g:netrw_local_mkdir
put = 'let g:netrw_localmkdir = '.g:netrw_localmkdir
put = 'let g:netrw_localmovecmd = '.g:netrw_localmovecmd
put = 'let g:netrw_local_rmdir = '.g:netrw_local_rmdir
put = 'let g:netrw_localrmdir = '.g:netrw_localrmdir
put = 'let g:netrw_maxfilenamelen = '.g:netrw_maxfilenamelen
put = 'let g:netrw_menu = '.g:netrw_menu
put = 'let g:netrw_mousemaps = '.g:netrw_mousemaps
put = 'let g:netrw_mkdir_cmd = '.g:netrw_mkdir_cmd
if exists("g:netrw_nobeval")
put = 'let g:netrw_nobeval = '.g:netrw_nobeval
else
put = '\" let g:netrw_nobeval = (not defined)'
endif
put = 'let g:netrw_remote_mkdir = '.g:netrw_remote_mkdir
put = 'let g:netrw_preview = '.g:netrw_preview
put = 'let g:netrw_rename_cmd = '.g:netrw_rename_cmd
put = 'let g:netrw_retmap = '.g:netrw_retmap
put = 'let g:netrw_rm_cmd = '.g:netrw_rm_cmd
put = 'let g:netrw_rmdir_cmd = '.g:netrw_rmdir_cmd
put = 'let g:netrw_rmf_cmd = '.g:netrw_rmf_cmd
put = 'let g:netrw_silent = '.g:netrw_silent
put = 'let g:netrw_sort_by = '.g:netrw_sort_by
put = 'let g:netrw_sort_direction = '.g:netrw_sort_direction
put = 'let g:netrw_sort_options = '.g:netrw_sort_options
put = 'let g:netrw_sort_sequence = '.g:netrw_sort_sequence
put = 'let g:netrw_special_syntax = '.g:netrw_special_syntax
put = 'let g:netrw_ssh_browse_reject = '.g:netrw_ssh_browse_reject
put = 'let g:netrw_ssh_cmd = '.g:netrw_ssh_cmd
put = 'let g:netrw_scpport = '.g:netrw_scpport
put = 'let g:netrw_sepchr = '.g:netrw_sepchr
put = 'let g:netrw_sshport = '.g:netrw_sshport

View File

@ -1,9 +1,7 @@
" Vim completion script
" Language: Ruby
" Maintainer: Mark Guzman <segfault@hasno.info>
" Last Change: 2009 Sep 28
" URL: http://vim-ruby.rubyforge.org
" Anon CVS: See above site
" URL: https://github.com/vim-ruby/vim-ruby
" Release Coordinator: Doug Kearns <dougkearns@gmail.com>
" Maintainer Version: 0.8.1
" ----------------------------------------------------------------------------
@ -12,16 +10,23 @@
" ----------------------------------------------------------------------------
" {{{ requirement checks
function! s:ErrMsg(msg)
echohl ErrorMsg
echo a:msg
echohl None
endfunction
if !has('ruby')
s:ErrMsg( "Error: Rubycomplete requires vim compiled with +ruby" )
s:ErrMsg( "Error: falling back to syntax completion" )
call s:ErrMsg( "Error: Rubycomplete requires vim compiled with +ruby" )
call s:ErrMsg( "Error: falling back to syntax completion" )
" lets fall back to syntax completion
setlocal omnifunc=syntaxcomplete#Complete
finish
endif
if version < 700
s:ErrMsg( "Error: Required vim >= 7.0" )
call s:ErrMsg( "Error: Required vim >= 7.0" )
finish
endif
" }}} requirement checks
@ -51,12 +56,6 @@ endif
" {{{ vim-side support functions
let s:rubycomplete_debug = 0
function! s:ErrMsg(msg)
echohl ErrorMsg
echo a:msg
echohl None
endfunction
function! s:dprint(msg)
if s:rubycomplete_debug == 1
echom a:msg
@ -133,7 +132,7 @@ function! s:GetRubyVarType(v)
let stopline = 1
let vtp = ''
let pos = getpos('.')
let sstr = '^\s*#\s*@var\s*'.a:v.'\>\s\+[^ \t]\+\s*$'
let sstr = '^\s*#\s*@var\s*'.escape(a:v, '*').'\>\s\+[^ \t]\+\s*$'
let [lnum,lcol] = searchpos(sstr,'nb',stopline)
if lnum != 0 && lcol != 0
call setpos('.',pos)
@ -275,7 +274,7 @@ class VimRubyCompletion
pare = /^\s*class\s*(.*)\s*<\s*(.*)\s*\n/.match( classdef )
load_buffer_class( $2 ) if pare != nil && $2 != name # load parent class if needed
mixre = /.*\n\s*include\s*(.*)\s*\n/.match( classdef )
mixre = /.*\n\s*(include|prepend)\s*(.*)\s*\n/.match( classdef )
load_buffer_module( $2 ) if mixre != nil && $2 != name # load mixins if needed
begin
@ -364,6 +363,10 @@ class VimRubyCompletion
print txt if @@debug
end
def escape_vim_singlequote_string(str)
str.to_s.gsub(/'/,"\\'")
end
def get_buffer_entity_list( type )
# this will be a little expensive.
loading_allowed = VIM::evaluate("exists('g:rubycomplete_buffer_loading') && g:rubycomplete_buffer_loading")
@ -526,9 +529,9 @@ class VimRubyCompletion
end
def clean_sel(sel, msg)
sel.delete_if { |x| x == nil }
sel.uniq!
sel.grep(/^#{Regexp.quote(msg)}/) if msg != nil
ret = sel.reject{|x|x.nil?}.uniq
ret = ret.grep(/^#{Regexp.quote(msg)}/) if msg != nil
ret
end
def get_rails_view_methods
@ -767,10 +770,10 @@ class VimRubyCompletion
constants = clean_sel( constants, message )
valid = []
valid += methods.collect { |m| { :name => m, :type => 'm' } }
valid += variables.collect { |v| { :name => v, :type => 'v' } }
valid += classes.collect { |c| { :name => c, :type => 't' } }
valid += constants.collect { |d| { :name => d, :type => 'd' } }
valid += methods.collect { |m| { :name => m.to_s, :type => 'm' } }
valid += variables.collect { |v| { :name => v.to_s, :type => 'v' } }
valid += classes.collect { |c| { :name => c.to_s, :type => 't' } }
valid += constants.collect { |d| { :name => d.to_s, :type => 'd' } }
valid.sort! { |x,y| x[:name] <=> y[:name] }
outp = ""
@ -779,7 +782,7 @@ class VimRubyCompletion
rg.step(150) do |x|
stpos = 0+x
enpos = 150+x
valid[stpos..enpos].each { |c| outp += "{'word':'%s','item':'%s','kind':'%s'}," % [ c[:name], c[:name], c[:type] ] }
valid[stpos..enpos].each { |c| outp += "{'word':'%s','item':'%s','kind':'%s'}," % [ c[:name], c[:name], c[:type] ].map{|x|escape_vim_singlequote_string(x)} }
outp.sub!(/,$/, '')
VIM::command("call extend(g:rubycomplete_completions, [%s])" % outp)

View File

@ -1,23 +1,55 @@
" Vim OMNI completion script for SQL
" Language: SQL
" Maintainer: David Fishburn <dfishburn dot vim at gmail dot com>
" Version: 12.0
" Last Change: 2012 Feb 08
" Version: 15.0
" Last Change: 2013 May 13
" Homepage: http://www.vim.org/scripts/script.php?script_id=1572
" Usage: For detailed help
" ":help sql.txt"
" or ":help ft-sql-omni"
" or read $VIMRUNTIME/doc/sql.txt
" History
" Version 12.0
"
" TODO
" - Jonas Enberg - if no table is found when using column completion
" look backwards to a FROM clause and find the first table
" and complete it.
"
" Version 15.0 (May 2013)
" - NF: Changed the SQL precached syntax items, omni_sql_precache_syntax_groups,
" to use regular expressions to pick up extended syntax group names.
" This requires an updated SyntaxComplete plugin version 13.0.
" If the required versions have not been installed, previous
" behaviour will not be impacted.
"
" Version 14.0 (Dec 2012)
" - BF: Added check for cpo
"
" Version 13.0 (Dec 2012)
" - NF: When completing column lists or drilling into a table
" and g:omni_sql_include_owner is enabled, the
" only the table name would be replaced with the column
" list instead of the table name and owner (if specified).
" - NF: When completing column lists using table aliases
" and g:omni_sql_include_owner is enabled, account
" for the owner name when looking up the table
" list instead of the table name and owner (if specified).
" - BF: When completing column lists or drilling into a table
" and g:omni_sql_include_owner is enabled, the
" column list could often not be found for the table.
" - BF: When OMNI popped up, possibly the wrong word
" would be replaced for column and column list options.
"
" Version 12.0 (Feb 2012)
" - Partial column name completion did not work when a table
" name or table alias was provided (Jonas Enberg).
" - Improved the handling of column completion. First we match any
" columns from a previous completion. If not matches are found, we
" consider the partial name to be a table or table alias for the
" consider the partial name to be a table or table alias for the
" query and attempt to match on it.
"
" Version 11.0
" Version 11.0 (Jan 2012)
" Added g:omni_sql_default_compl_type variable
" - You can specify which type of completion to default to
" when pressing <C-X><C-O>. The entire list of available
@ -40,7 +72,7 @@
" - Prepends error message with SQLComplete so you know who issued
" the error.
"
" Version 9.0
" Version 9.0 (May 2010)
" This change removes some of the support for tables with spaces in their
" names in order to simplify the regexes used to pull out query table
" aliases for more robust table name and column name code completion.
@ -51,10 +83,10 @@
" Incorrectly re-executed the g:ftplugin_sql_omni_key_right and g:ftplugin_sql_omni_key_left
" when drilling in and out of a column list for a table.
"
" Version 7.0
" Version 7.0 (Jan 2010)
" Better handling of object names
"
" Version 6.0
" Version 6.0 (Apr 2008)
" Supports object names with spaces "my table name"
"
" Set completion with CTRL-X CTRL-O to autoloaded function.
@ -71,7 +103,9 @@ endif
if exists('g:loaded_sql_completion')
finish
endif
let g:loaded_sql_completion = 120
let g:loaded_sql_completion = 150
let s:keepcpo= &cpo
set cpo&vim
" Maintains filename of dictionary
let s:sql_file_table = ""
@ -88,12 +122,14 @@ let s:syn_value = []
" Used in conjunction with the syntaxcomplete plugin
let s:save_inc = ""
let s:save_exc = ""
if exists('g:omni_syntax_group_include_sql')
let s:save_inc = g:omni_syntax_group_include_sql
if !exists('g:omni_syntax_group_include_sql')
let g:omni_syntax_group_include_sql = ''
endif
if exists('g:omni_syntax_group_exclude_sql')
let s:save_exc = g:omni_syntax_group_exclude_sql
if !exists('g:omni_syntax_group_exclude_sql')
let g:omni_syntax_group_exclude_sql = ''
endif
let s:save_inc = g:omni_syntax_group_include_sql
let s:save_exc = g:omni_syntax_group_exclude_sql
" Used with the column list
let s:save_prev_table = ""
@ -105,12 +141,12 @@ endif
" Default syntax items to precache
if !exists('g:omni_sql_precache_syntax_groups')
let g:omni_sql_precache_syntax_groups = [
\ 'syntax',
\ 'sqlKeyword',
\ 'sqlFunction',
\ 'sqlOption',
\ 'sqlType',
\ 'sqlStatement'
\ 'syntax\w*',
\ 'sqlKeyword\w*',
\ 'sqlFunction\w*',
\ 'sqlOption\w*',
\ 'sqlType\w*',
\ 'sqlStatement\w*'
\ ]
endif
" Set ignorecase to the ftplugin standard
@ -137,6 +173,13 @@ if !exists('g:omni_sql_default_compl_type')
endif
" This function is used for the 'omnifunc' option.
" It is called twice by omni and it is responsible
" for returning the completion list of items.
" But it must also determine context of what to complete
" and what to "replace" with the completion.
" The a:base, is replaced directly with what the user
" chooses from the choices.
" The s:prepend provides context for the completion.
function! sqlcomplete#Complete(findstart, base)
" Default to table name completion
@ -145,6 +188,7 @@ function! sqlcomplete#Complete(findstart, base)
if exists('b:sql_compl_type')
let compl_type = b:sql_compl_type
endif
let begindot = 0
" First pass through this function determines how much of the line should
" be replaced by whatever is chosen from the completion list
@ -153,7 +197,6 @@ function! sqlcomplete#Complete(findstart, base)
let line = getline('.')
let start = col('.') - 1
let lastword = -1
let begindot = 0
" Check if the first character is a ".", for column completion
if line[start - 1] == '.'
let begindot = 1
@ -179,7 +222,10 @@ function! sqlcomplete#Complete(findstart, base)
" If lastword has already been set for column completion
" break from the loop, since we do not also want to pickup
" a table name if it was also supplied.
" Unless g:omni_sql_include_owner == 1, then we can
" include the ownername.
if lastword != -1 && compl_type == 'column'
\ && g:omni_sql_include_owner == 0
break
endif
" If column completion was specified stop at the "." if
@ -191,7 +237,7 @@ function! sqlcomplete#Complete(findstart, base)
" If omni_sql_include_owner = 0, do not include the table
" name as part of the substitution, so break here
if lastword == -1 &&
\ compl_type =~ 'table\|view\|procedure\column_csv' &&
\ compl_type =~ '\<\(table\|view\|procedure\|column\|column_csv\)\>' &&
\ g:omni_sql_include_owner == 0
let lastword = start
break
@ -288,6 +334,12 @@ function! sqlcomplete#Complete(findstart, base)
let table = matchstr( base, '^\(.*\.\)\?\zs.*\ze\..*' )
let column = matchstr( base, '.*\.\zs.*' )
if g:omni_sql_include_owner == 1 && owner == '' && table != '' && column != ''
let owner = table
let table = column
let column = ''
endif
" It is pretty well impossible to determine if the user
" has entered:
" owner.table
@ -370,7 +422,16 @@ function! sqlcomplete#Complete(findstart, base)
let list_type = 'csv'
endif
let compl_list = s:SQLCGetColumns(table, list_type)
" If we are including the OWNER for the objects, then for
" table completion, if we have it, it should be included
" as there can be the same table names in a database yet
" with different owner names.
if g:omni_sql_include_owner == 1 && owner != '' && table != ''
let compl_list = s:SQLCGetColumns(owner.'.'.table, list_type)
else
let compl_list = s:SQLCGetColumns(table, list_type)
endif
if column != ''
" If no column prefix has been provided and the table
" name was provided, append it to each of the items
@ -393,11 +454,14 @@ function! sqlcomplete#Complete(findstart, base)
endif
elseif compl_type == 'resetCache'
" Reset all cached items
let s:tbl_name = []
let s:tbl_alias = []
let s:tbl_cols = []
let s:syn_list = []
let s:syn_value = []
let s:tbl_name = []
let s:tbl_alias = []
let s:tbl_cols = []
let s:syn_list = []
let s:syn_value = []
let s:sql_file_table = ""
let s:sql_file_procedure = ""
let s:sql_file_view = ""
let msg = "All SQL cached items have been removed."
call s:SQLCWarningMsg(msg)
@ -423,12 +487,27 @@ function! sqlcomplete#Complete(findstart, base)
" let expr = 'v:val '.(g:omni_sql_ignorecase==1?'=~?':'=~#').' "\\(^'.base.'\\|\\(\\.\\)\\?'.base.'\\)"'
" let expr = 'v:val '.(g:omni_sql_ignorecase==1?'=~?':'=~#').' "\\(^'.base.'\\|\\([^.]*\\)\\?'.base.'\\)"'
let compl_list = filter(deepcopy(compl_list), expr)
if empty(compl_list) && compl_type == 'table' && base =~ '\.$'
" It is possible we could be looking for column name completion
" and the user simply hit C-X C-O to lets try it as well
" since we had no hits with the tables.
" If the base ends with a . it is hard to know if we are
" completing table names or column names.
let list_type = ''
let compl_list = s:SQLCGetColumns(base, list_type)
endif
endif
if exists('b:sql_compl_savefunc') && b:sql_compl_savefunc != ""
let &omnifunc = b:sql_compl_savefunc
endif
if empty(compl_list)
call s:SQLCWarningMsg( 'Could not find type['.compl_type.'] using prepend[.'.s:prepended.'] base['.a:base.']' )
endif
return compl_list
endfunc
@ -556,19 +635,23 @@ function! s:SQLCGetSyntaxList(syn_group)
" Return previously cached value
let compl_list = s:syn_value[list_idx]
else
let s:save_inc = g:omni_syntax_group_include_sql
let s:save_exc = g:omni_syntax_group_exclude_sql
let g:omni_syntax_group_include_sql = ''
let g:omni_syntax_group_exclude_sql = ''
" Request the syntax list items from the
" syntax completion plugin
if syn_group == 'syntax'
" Handle this special case. This allows the user
" to indicate they want all the syntax items available,
" so do not specify a specific include list.
let g:omni_syntax_group_include_sql = ''
let syn_value = syntaxcomplete#OmniSyntaxList()
else
" The user has specified a specific syntax group
let g:omni_syntax_group_include_sql = syn_group
let syn_value = syntaxcomplete#OmniSyntaxList(syn_group)
endif
let g:omni_syntax_group_exclude_sql = ''
let syn_value = syntaxcomplete#OmniSyntaxList()
let g:omni_syntax_group_include_sql = s:save_inc
let g:omni_syntax_group_exclude_sql = s:save_exc
" Cache these values for later use
@ -664,8 +747,26 @@ function! s:SQLCGetObjectOwner(object)
endfunction
function! s:SQLCGetColumns(table_name, list_type)
if a:table_name =~ '\.'
" Check if the owner/creator has been specified
let owner = matchstr( a:table_name, '^\zs.*\ze\..*\..*' )
let table = matchstr( a:table_name, '^\(.*\.\)\?\zs.*\ze\..*' )
let column = matchstr( a:table_name, '.*\.\zs.*' )
if g:omni_sql_include_owner == 1 && owner == '' && table != '' && column != ''
let owner = table
let table = column
let column = ''
endif
else
let owner = ''
let table = matchstr(a:table_name, '^["\[\]a-zA-Z0-9_ ]\+\ze\.\?')
let column = ''
endif
" Check if the table name was provided as part of the column name
let table_name = matchstr(a:table_name, '^["\[\]a-zA-Z0-9_ ]\+\ze\.\?')
" let table_name = matchstr(a:table_name, '^["\[\]a-zA-Z0-9_ ]\+\ze\.\?')
let table_name = table
let table_cols = []
let table_alias = ''
let move_to_top = 1
@ -786,7 +887,12 @@ function! s:SQLCGetColumns(table_name, list_type)
if table_name_new != ''
let table_alias = table_name
let table_name = matchstr( table_name_new, '^\(.*\.\)\?\zs.*\ze' )
if g:omni_sql_include_owner == 1
let table_name = matchstr( table_name_new, '^\zs\(.\{-}\.\)\?\(.\{-}\.\)\?.*\ze' )
else
" let table_name = matchstr( table_name_new, '^\(.*\.\)\?\zs.*\ze' )
let table_name = matchstr( table_name_new, '^\(.\{-}\.\)\?\zs\(.\{-}\.\)\?.*\ze' )
endif
let list_idx = index(s:tbl_name, table_name, 0, &ignorecase)
if list_idx > -1
@ -828,7 +934,8 @@ function! s:SQLCGetColumns(table_name, list_type)
if empty(table_cols)
" Specify silent mode, no messages to the user (tbl, 1)
" Specify do not comma separate (tbl, 1, 1)
let table_cols_str = DB_getListColumn(table_name, 1, 1)
" let table_cols_str = DB_getListColumn(table_name, 1, 1)
let table_cols_str = DB_getListColumn((owner!=''?owner.'.':'').table_name, 1, 1)
if table_cols_str != ""
let s:tbl_name = add( s:tbl_name, table_name )
@ -854,3 +961,7 @@ function! s:SQLCGetColumns(table_name, list_type)
return table_cols
endfunction
" Restore:
let &cpo= s:keepcpo
unlet s:keepcpo
" vim: ts=4 fdm=marker

View File

@ -1,44 +1,80 @@
" Vim completion script
" Language: All languages, uses existing syntax highlighting rules
" Maintainer: David Fishburn <dfishburn dot vim at gmail dot com>
" Version: 8.0
" Last Change: 2011 Nov 02
" Usage: For detailed help, ":help ft-syntax-omni"
" Version: 13.0
" Last Change: 2013 May 14
" Usage: For detailed help, ":help ft-syntax-omni"
" History
"
" Version 13.0
" - Extended the option omni_syntax_group_include_{filetype}
" to accept a comma separated list of regex's rather than
" string. For example, for the javascript filetype you could
" use:
" let g:omni_syntax_group_include_javascript = 'javascript\w\+,jquery\w\+'
" - Some syntax files (perl.vim) use the match // syntax as a mechanism
" to identify keywords. This update attempts to parse the
" match syntax and pull out syntax items which are at least
" 3 words or more.
"
" Version 12.0
" - It is possible to have '-' as part of iskeyword, when
" checking for character ranges, tighten up the regex.
" E688: More targets than List items.
"
" Version 11.0
" - Corrected which characters required escaping during
" substitution calls.
"
" Version 10.0
" - Cycle through all the character ranges specified in the
" iskeyword option and build a list of valid word separators.
" Prior to this change, only actual characters were used,
" where for example ASCII "45" == "-". If "45" were used
" in iskeyword the hyphen would not be picked up.
" This introduces a new option, since the character ranges
" specified could be multibyte:
" let g:omni_syntax_use_single_byte = 1
" - This by default will only allow single byte ASCII
" characters to be added and an additional check to ensure
" the charater is printable (see documentation for isprint).
"
" Version 9.0
" - Add the check for cpo.
"
" Version 8.0
" Updated SyntaxCSyntaxGroupItems()
" - Updated SyntaxCSyntaxGroupItems()
" - Some additional syntax items were also allowed
" on nextgroup= lines which were ignored by default.
" Now these lines are processed independently.
"
" Version 7.0
" Updated syntaxcomplete#OmniSyntaxList()
" - Updated syntaxcomplete#OmniSyntaxList()
" - Looking up the syntax groups defined from a syntax file
" looked for only 1 format of {filetype}GroupName, but some
" looked for only 1 format of {filetype}GroupName, but some
" syntax writers use this format as well:
" {b:current_syntax}GroupName
" OmniSyntaxList() will now check for both if the first
" - OmniSyntaxList() will now check for both if the first
" method does not find a match.
"
" Version 6.0
" Added syntaxcomplete#OmniSyntaxList()
" - Allows other plugins to use this for their own
" - Added syntaxcomplete#OmniSyntaxList()
" - Allows other plugins to use this for their own
" purposes.
" - It will return a List of all syntax items for the
" syntax group name passed in.
" - XPTemplate for SQL will use this function via the
" syntax group name passed in.
" - XPTemplate for SQL will use this function via the
" sqlcomplete plugin to populate a Choose box.
"
" Version 5.0
" Updated SyntaxCSyntaxGroupItems()
" - Updated SyntaxCSyntaxGroupItems()
" - When processing a list of syntax groups, the final group
" was missed in function SyntaxCSyntaxGroupItems.
"
" Set completion with CTRL-X CTRL-O to autoloaded function.
" This check is in place in case this script is
" sourced directly instead of using the autoload feature.
" sourced directly instead of using the autoload feature.
if exists('+omnifunc')
" Do not set the option if already set since this
" results in an E117 warning.
@ -48,9 +84,13 @@ if exists('+omnifunc')
endif
if exists('g:loaded_syntax_completion')
finish
finish
endif
let g:loaded_syntax_completion = 80
let g:loaded_syntax_completion = 130
" Turn on support for line continuations when creating the script
let s:cpo_save = &cpo
set cpo&vim
" Set ignorecase to the ftplugin standard
" This is the default setting, but if you define a buffer local
@ -67,6 +107,18 @@ if !exists('g:omni_syntax_use_iskeyword')
let g:omni_syntax_use_iskeyword = 1
endif
" When using iskeyword, this setting controls whether the characters
" should be limited to single byte characters.
if !exists('g:omni_syntax_use_single_byte')
let g:omni_syntax_use_single_byte = 1
endif
" When using iskeyword, this setting controls whether the characters
" should be limited to single byte characters.
if !exists('g:omni_syntax_use_iskeyword_numeric')
let g:omni_syntax_use_iskeyword_numeric = 1
endif
" Only display items in the completion window that are at least
" this many characters in length.
" This is the default setting, but if you define a buffer local
@ -77,7 +129,8 @@ endif
" This script will build a completion list based on the syntax
" elements defined by the files in $VIMRUNTIME/syntax.
let s:syn_remove_words = 'match,matchgroup=,contains,'.
" let s:syn_remove_words = 'match,matchgroup=,contains,'.
let s:syn_remove_words = 'matchgroup=,contains,'.
\ 'links to,start=,end='
" \ 'links to,start=,end=,nextgroup='
@ -158,7 +211,7 @@ endfunc
function! syntaxcomplete#OmniSyntaxList(...)
if a:0 > 0
let parms = []
if 3 == type(a:1)
if 3 == type(a:1)
let parms = a:1
elseif 1 == type(a:1)
let parms = split(a:1, ',')
@ -172,7 +225,7 @@ endfunc
function! OmniSyntaxList(...)
let list_parms = []
if a:0 > 0
if 3 == type(a:1)
if 3 == type(a:1)
let list_parms = a:1
elseif 1 == type(a:1)
let list_parms = split(a:1, ',')
@ -208,18 +261,18 @@ function! OmniSyntaxList(...)
let saveL = @l
let filetype = substitute(&filetype, '\.', '_', 'g')
if empty(list_parms)
" Default the include group to include the requested syntax group
let syntax_group_include_{filetype} = ''
" Check if there are any overrides specified for this filetype
if exists('g:omni_syntax_group_include_'.filetype)
let syntax_group_include_{filetype} =
\ substitute( g:omni_syntax_group_include_{filetype},'\s\+','','g')
\ substitute( g:omni_syntax_group_include_{filetype},'\s\+','','g')
let list_parms = split(g:omni_syntax_group_include_{filetype}, ',')
if syntax_group_include_{filetype} =~ '\w'
let syntax_group_include_{filetype} =
\ substitute( syntax_group_include_{filetype},
let syntax_group_include_{filetype} =
\ substitute( syntax_group_include_{filetype},
\ '\s*,\s*', '\\|', 'g'
\ )
endif
@ -229,24 +282,34 @@ function! OmniSyntaxList(...)
endif
" Loop through all the syntax groupnames, and build a
" syntax file which contains these names. This can
" syntax file which contains these names. This can
" work generically for any filetype that does not already
" have a plugin defined.
" This ASSUMES the syntax groupname BEGINS with the name
" of the filetype. From my casual viewing of the vim7\syntax
" of the filetype. From my casual viewing of the vim7\syntax
" directory this is true for almost all syntax definitions.
" As an example, the SQL syntax groups have this pattern:
" sqlType
" sqlOperators
" sqlKeyword ...
redir @l
silent! exec 'syntax list '.join(list_parms)
redir END
if !empty(list_parms) && empty(substitute(join(list_parms), '[a-zA-Z ]', '', 'g'))
" If list_parms only includes word characters, use it to limit
" the syntax elements.
" If using regex syntax list will fail to find those items, so
" simply grab the who syntax list.
redir @l
silent! exec 'syntax list '.join(list_parms)
redir END
else
redir @l
silent! exec 'syntax list'
redir END
endif
let syntax_full = "\n".@l
let @l = saveL
if syntax_full =~ 'E28'
if syntax_full =~ 'E28'
\ || syntax_full =~ 'E411'
\ || syntax_full =~ 'E415'
\ || syntax_full =~ 'No Syntax items'
@ -256,7 +319,7 @@ function! OmniSyntaxList(...)
let filetype = substitute(&filetype, '\.', '_', 'g')
let list_exclude_groups = []
if a:0 > 0
if a:0 > 0
" Do nothing since we have specific a specific list of groups
else
" Default the exclude group to nothing
@ -264,93 +327,178 @@ function! OmniSyntaxList(...)
" Check if there are any overrides specified for this filetype
if exists('g:omni_syntax_group_exclude_'.filetype)
let syntax_group_exclude_{filetype} =
\ substitute( g:omni_syntax_group_exclude_{filetype},'\s\+','','g')
\ substitute( g:omni_syntax_group_exclude_{filetype},'\s\+','','g')
let list_exclude_groups = split(g:omni_syntax_group_exclude_{filetype}, ',')
if syntax_group_exclude_{filetype} =~ '\w'
let syntax_group_exclude_{filetype} =
\ substitute( syntax_group_exclude_{filetype},
if syntax_group_exclude_{filetype} =~ '\w'
let syntax_group_exclude_{filetype} =
\ substitute( syntax_group_exclude_{filetype},
\ '\s*,\s*', '\\|', 'g'
\ )
endif
endif
endif
" Sometimes filetypes can be composite names, like c.doxygen
" Loop through each individual part looking for the syntax
" items specific to each individual filetype.
if empty(list_parms)
let list_parms = [&filetype.'\w\+']
endif
let syn_list = ''
let ftindex = 0
let ftindex = match(&filetype, '\w\+', ftindex)
let index = 0
for group_regex in list_parms
" Sometimes filetypes can be composite names, like c.doxygen
" Loop through each individual part looking for the syntax
" items specific to each individual filetype.
" let ftindex = 0
" let ftindex = match(syntax_full, group_regex, ftindex)
while ftindex > -1
let ft_part_name = matchstr( &filetype, '\w\+', ftindex )
" while ftindex > -1
" let ft_part_name = matchstr( syntax_full, '\w\+', ftindex )
" Syntax rules can contain items for more than just the current
" filetype. They can contain additional items added by the user
" via autocmds or their vimrc.
" Some syntax files can be combined (html, php, jsp).
" We want only items that begin with the filetype we are interested in.
let next_group_regex = '\n' .
\ '\zs'.ft_part_name.'\w\+\ze'.
\ '\s\+xxx\s\+'
let index = 0
let index = match(syntax_full, next_group_regex, index)
if index == -1 && exists('b:current_syntax') && ft_part_name != b:current_syntax
" There appears to be two standards when writing syntax files.
" Either items begin as:
" syn keyword {filetype}Keyword values ...
" let b:current_syntax = "sql"
" let b:current_syntax = "sqlanywhere"
" Or
" syn keyword {syntax_filename}Keyword values ...
" let b:current_syntax = "mysql"
" So, we will make the format of finding the syntax group names
" a bit more flexible and look for both if the first fails to
" find a match.
" Syntax rules can contain items for more than just the current
" filetype. They can contain additional items added by the user
" via autocmds or their vimrc.
" Some syntax files can be combined (html, php, jsp).
" We want only items that begin with the filetype we are interested in.
let next_group_regex = '\n' .
\ '\zs'.b:current_syntax.'\w\+\ze'.
\ '\s\+xxx\s\+'
let index = 0
\ '\zs'.group_regex.'\ze'.
\ '\s\+xxx\s\+'
let index = match(syntax_full, next_group_regex, index)
endif
while index > -1
let group_name = matchstr( syntax_full, '\w\+', index )
let get_syn_list = 1
for exclude_group_name in list_exclude_groups
if '\<'.exclude_group_name.'\>' =~ '\<'.group_name.'\>'
let get_syn_list = 0
endif
endfor
" This code is no longer needed in version 6.0 since we have
" augmented the syntax list command to only retrieve the syntax
" groups we are interested in.
"
" if get_syn_list == 1
" if syntax_group_include_{filetype} != ''
" if '\<'.syntax_group_include_{filetype}.'\>' !~ '\<'.group_name.'\>'
" let get_syn_list = 0
" endif
" endif
" endif
if get_syn_list == 1
" Pass in the full syntax listing, plus the group name we
" are interested in.
let extra_syn_list = s:SyntaxCSyntaxGroupItems(group_name, syntax_full)
let syn_list = syn_list . extra_syn_list . "\n"
" For the matched group name, strip off any of the regex special
" characters and see if we get a match with the current syntax
if index == -1 && exists('b:current_syntax') && substitute(group_regex, '[^a-zA-Z ]\+.*', '', 'g') !~ '^'.b:current_syntax
" There appears to be two standards when writing syntax files.
" Either items begin as:
" syn keyword {filetype}Keyword values ...
" let b:current_syntax = "sql"
" let b:current_syntax = "sqlanywhere"
" Or
" syn keyword {syntax_filename}Keyword values ...
" let b:current_syntax = "mysql"
" So, we will make the format of finding the syntax group names
" a bit more flexible and look for both if the first fails to
" find a match.
let next_group_regex = '\n' .
\ '\zs'.b:current_syntax.'\w\+\ze'.
\ '\s\+xxx\s\+'
let index = 0
let index = match(syntax_full, next_group_regex, index)
endif
let index = index + strlen(group_name)
let index = match(syntax_full, next_group_regex, index)
endwhile
while index > -1
let group_name = matchstr( syntax_full, '\w\+', index )
let ftindex = ftindex + len(ft_part_name)
let ftindex = match( &filetype, '\w\+', ftindex )
endwhile
let get_syn_list = 1
for exclude_group_name in list_exclude_groups
if '\<'.exclude_group_name.'\>' =~ '\<'.group_name.'\>'
let get_syn_list = 0
endif
endfor
" This code is no longer needed in version 6.0 since we have
" augmented the syntax list command to only retrieve the syntax
" groups we are interested in.
"
" if get_syn_list == 1
" if syntax_group_include_{filetype} != ''
" if '\<'.syntax_group_include_{filetype}.'\>' !~ '\<'.group_name.'\>'
" let get_syn_list = 0
" endif
" endif
" endif
if get_syn_list == 1
" Pass in the full syntax listing, plus the group name we
" are interested in.
let extra_syn_list = s:SyntaxCSyntaxGroupItems(group_name, syntax_full)
let syn_list = syn_list . extra_syn_list . "\n"
endif
let index = index + strlen(group_name)
let index = match(syntax_full, next_group_regex, index)
endwhile
" let ftindex = ftindex + len(ft_part_name)
" let ftindex = match( syntax_full, group_regex, ftindex )
" endwhile
endfor
" " Sometimes filetypes can be composite names, like c.doxygen
" " Loop through each individual part looking for the syntax
" " items specific to each individual filetype.
" let syn_list = ''
" let ftindex = 0
" let ftindex = match(&filetype, '\w\+', ftindex)
" while ftindex > -1
" let ft_part_name = matchstr( &filetype, '\w\+', ftindex )
" " Syntax rules can contain items for more than just the current
" " filetype. They can contain additional items added by the user
" " via autocmds or their vimrc.
" " Some syntax files can be combined (html, php, jsp).
" " We want only items that begin with the filetype we are interested in.
" let next_group_regex = '\n' .
" \ '\zs'.ft_part_name.'\w\+\ze'.
" \ '\s\+xxx\s\+'
" let index = 0
" let index = match(syntax_full, next_group_regex, index)
" if index == -1 && exists('b:current_syntax') && ft_part_name != b:current_syntax
" " There appears to be two standards when writing syntax files.
" " Either items begin as:
" " syn keyword {filetype}Keyword values ...
" " let b:current_syntax = "sql"
" " let b:current_syntax = "sqlanywhere"
" " Or
" " syn keyword {syntax_filename}Keyword values ...
" " let b:current_syntax = "mysql"
" " So, we will make the format of finding the syntax group names
" " a bit more flexible and look for both if the first fails to
" " find a match.
" let next_group_regex = '\n' .
" \ '\zs'.b:current_syntax.'\w\+\ze'.
" \ '\s\+xxx\s\+'
" let index = 0
" let index = match(syntax_full, next_group_regex, index)
" endif
" while index > -1
" let group_name = matchstr( syntax_full, '\w\+', index )
" let get_syn_list = 1
" for exclude_group_name in list_exclude_groups
" if '\<'.exclude_group_name.'\>' =~ '\<'.group_name.'\>'
" let get_syn_list = 0
" endif
" endfor
" " This code is no longer needed in version 6.0 since we have
" " augmented the syntax list command to only retrieve the syntax
" " groups we are interested in.
" "
" " if get_syn_list == 1
" " if syntax_group_include_{filetype} != ''
" " if '\<'.syntax_group_include_{filetype}.'\>' !~ '\<'.group_name.'\>'
" " let get_syn_list = 0
" " endif
" " endif
" " endif
" if get_syn_list == 1
" " Pass in the full syntax listing, plus the group name we
" " are interested in.
" let extra_syn_list = s:SyntaxCSyntaxGroupItems(group_name, syntax_full)
" let syn_list = syn_list . extra_syn_list . "\n"
" endif
" let index = index + strlen(group_name)
" let index = match(syntax_full, next_group_regex, index)
" endwhile
" let ftindex = ftindex + len(ft_part_name)
" let ftindex = match( &filetype, '\w\+', ftindex )
" endwhile
" Convert the string to a List and sort it.
let compl_list = sort(split(syn_list))
@ -392,7 +540,7 @@ function! s:SyntaxCSyntaxGroupItems( group_name, syntax_full )
" \| - 2nd potential match
" \%$ - matches end of the file or string
" \) - end a group
let syntax_group = matchstr(a:syntax_full,
let syntax_group = matchstr(a:syntax_full,
\ "\n".a:group_name.'\s\+xxx\s\+\zs.\{-}\ze\(\n\w\|\%$\)'
\ )
@ -402,42 +550,97 @@ function! s:SyntaxCSyntaxGroupItems( group_name, syntax_full )
" We only want the words for the lines begining with
" containedin, but there could be other items.
" Tried to remove all lines that do not begin with contained
" but this does not work in all cases since you can have
" contained nextgroup=...
" So this will strip off the ending of lines with known
" keywords.
let syn_list = substitute(
let syn_list = substitute(
\ syntax_group, '\<\('.
\ substitute(
\ escape(s:syn_remove_words, '\\/.*$^~[]')
\ , ',', '\\|', 'g'
\ ).
\ '\).\{-}\%($\|'."\n".'\)'
\ , "\n", 'g'
\ , "\n", 'g'
\ )
" Attempt to deal with lines using the match syntax
" javaScriptDocTags xxx match /@\(param\|argument\|requires\|file\)\>/
" Though it can use any types of regex, so this plugin will attempt
" to restrict it
" 1. Only use \( or \%( constructs remove all else
" 2 Remove and []s
" 3. Account for match //constructs
" \%(\%(ms\|me\|hs\|he\|rs\|re\|lc\)\S\+\)\?
" 4. Hope for the best
"
"
let syn_list_old = syn_list
while syn_list =~ '\<match\>\s\+\/'
if syn_list =~ 'perlElseIfError'
let syn_list = syn_list
endif
" Check if the match has words at least 3 characters long
if syn_list =~ '\<match \/\zs.\{-}\<\w\{3,}\>.\{-}\ze\\\@<!\/\%(\%(ms\|me\|hs\|he\|rs\|re\|lc\)\S\+\)\?\s\+'
" Remove everything after / and before the first \(
let syn_list = substitute( syn_list, '\<match \/\zs.\{-}\ze\\%\?(.\{-}\\\@<!\/\%(\%(ms\|me\|hs\|he\|rs\|re\|lc\)\S\+\)\?\s\+', '', 'g' )
" Remove everything after \) and up to the ending /
let syn_list = substitute( syn_list, '\<match \/.\{-}\\)\zs.\{-}\ze\/\%(\%(ms\|me\|hs\|he\|rs\|re\|lc\)\S\+\)\?\s\+', '', 'g' )
" Remove any character classes
" let syn_list = substitute( syn_list, '\<match /\zs.\{-}\[[^]]*\].\{-}\ze\/ ', '', 'g' )
let syn_list = substitute( syn_list, '\%(\<match \/[^/]\{-}\)\@<=\[[^]]*\]\ze.\{-}\\\@<!\/\%(\%(ms\|me\|hs\|he\|rs\|re\|lc\)\S\+\)\?', '', 'g' )
" Remove any words < 3 characters
let syn_list = substitute( syn_list, '\%(\<match \/[^/]\{-}\)\@<=\<\w\{1,2}\>\ze.\{-}\\\@<!\/\%(\%(ms\|me\|hs\|he\|rs\|re\|lc\)\S\+\)\?\s\+', '', 'g' )
" Remove all non-word characters
" let syn_list = substitute( syn_list, '\<match /\zs.\{-}\<\W\+\>.\{-}\ze\/ ', "", 'g' )
" let syn_list = substitute( syn_list, '\%(\<match \/[^/]\{-}\)\@<=\W\+\ze.\{-}\/ ', ' ', 'g' )
" Do this by using the outer substitue() call to gather all
" text between the match /.../ tags.
" The inner substitute() call operates on the text selected
" and replaces all non-word characters.
let syn_list = substitute( syn_list, '\<match \/\zs\(.\{-}\)\ze\\\@<!\/\%(\%(ms\|me\|hs\|he\|rs\|re\|lc\)\S\+\)\?\s\+'
\ , '\=substitute(submatch(1), "\\W\\+", " ", "g")'
\ , 'g' )
" Remove the match / / syntax
let syn_list = substitute( syn_list, '\<match \/\(.\{-}\)\/\%(\%(ms\|me\|hs\|he\|rs\|re\|lc\)\S\+\)\?\s\+', '\1', 'g' )
else
" No words long enough, remove the match
" Remove the match syntax
" let syn_list = substitute( syn_list, '\<match \/[^\/]*\/\%(\%(ms\|me\|hs\|he\|rs\|re\|lc\)\S\+\)\?\s\+', '', 'g' )
let syn_list = substitute( syn_list, '\<match \/\%(.\{-}\)\?\/\%(\%(ms\|me\|hs\|he\|rs\|re\|lc\)\S\+\)\?\s\+', '', 'g' )
endif
if syn_list =~ '\<match\>\s\+\/'
" Problem removing the match / / tags
let syn_list = ''
endif
endwhile
" Now strip off the newline + blank space + contained.
" Also include lines with nextgroup=@someName skip_key_words syntax_element
let syn_list = substitute(
\ syn_list, '\%(^\|\n\)\@<=\s*\<\(contained\|nextgroup=\)'
\ , "", 'g'
" \ syn_list, '\%(^\|\n\)\@<=\s*\<\(contained\|nextgroup=\)'
" \ syn_list, '\%(^\|\n\)\@<=\s*\<\(contained\|nextgroup=[@a-zA-Z,]*\)'
let syn_list = substitute(
\ syn_list, '\<\(contained\|nextgroup=[@a-zA-Z,]*\)'
\ , "", 'g'
\ )
" This can leave lines like this
" =@vimMenuList skipwhite onoremenu
" Strip the special option keywords first
" :h :syn-skipwhite*
let syn_list = substitute(
let syn_list = substitute(
\ syn_list, '\<\(skipwhite\|skipnl\|skipempty\)\>'
\ , "", 'g'
\ , "", 'g'
\ )
" Now remove the remainder of the nextgroup=@someName lines
let syn_list = substitute(
let syn_list = substitute(
\ syn_list, '\%(^\|\n\)\@<=\s*\(@\w\+\)'
\ , "", 'g'
\ , "", 'g'
\ )
if b:omni_syntax_use_iskeyword == 0
@ -446,19 +649,74 @@ function! s:SyntaxCSyntaxGroupItems( group_name, syntax_full )
" This will replace non-word characters with spaces.
let syn_list = substitute( syn_list, '[^0-9A-Za-z_ ]', ' ', 'g' )
else
let accept_chars = ','.&iskeyword.','
" Remove all character ranges
" let accept_chars = substitute(accept_chars, ',[^,]\+-[^,]\+,', ',', 'g')
let accept_chars = substitute(accept_chars, ',\@<=[^,]\+-[^,]\+,', '', 'g')
" Remove all numeric specifications
" let accept_chars = substitute(accept_chars, ',\d\{-},', ',', 'g')
let accept_chars = substitute(accept_chars, ',\@<=\d\{-},', '', 'g')
" Remove all commas
let accept_chars = substitute(accept_chars, ',', '', 'g')
" Escape special regex characters
let accept_chars = escape(accept_chars, '\\/.*$^~[]' )
" Remove all characters that are not acceptable
let syn_list = substitute( syn_list, '[^0-9A-Za-z_ '.accept_chars.']', ' ', 'g' )
if g:omni_syntax_use_iskeyword_numeric == 1
" iskeyword can contain value like this
" 38,42,43,45,47-58,60-62,64-90,97-122,_,+,-,*,/,%,<,=,>,:,$,?,!,@-@,94
" Numeric values convert to their ASCII equivalent using the
" nr2char() function.
" & 38
" * 42
" + 43
" - 45
" ^ 94
" Iterate through all numeric specifications and convert those
" to their ascii equivalent ensuring the character is printable.
" If so, add it to the list.
let accepted_chars = ''
for item in split(&iskeyword, ',')
if item =~ '\d-\d'
" This is a character range (ie 47-58),
" cycle through each character within the range
let [b:start, b:end] = split(item, '-')
for range_item in range( b:start, b:end )
if range_item <= 127 || g:omni_syntax_use_single_byte == 0
if nr2char(range_item) =~ '\p'
let accepted_chars = accepted_chars . nr2char(range_item)
endif
endif
endfor
elseif item =~ '^\d\+$'
" Only numeric, translate to a character
if item < 127 || g:omni_syntax_use_single_byte == 0
if nr2char(item) =~ '\p'
let accepted_chars = accepted_chars . nr2char(item)
endif
endif
else
if char2nr(item) < 127 || g:omni_syntax_use_single_byte == 0
if item =~ '\p'
let accepted_chars = accepted_chars . item
endif
endif
endif
endfor
" Escape special regex characters
" Looks like the wrong chars are escaped. In a collection,
" :h /[]
" only `]', `\', `-' and `^' are special:
" let accepted_chars = escape(accepted_chars, '\\/.*$^~[]' )
let accepted_chars = escape(accepted_chars, ']\-^' )
" Remove all characters that are not acceptable
let syn_list = substitute( syn_list, '[^A-Za-z'.accepted_chars.']', ' ', 'g' )
else
let accept_chars = ','.&iskeyword.','
" Remove all character ranges
" let accept_chars = substitute(accept_chars, ',[^,]\+-[^,]\+,', ',', 'g')
let accept_chars = substitute(accept_chars, ',\@<=[^,]\+-[^,]\+,', '', 'g')
" Remove all numeric specifications
" let accept_chars = substitute(accept_chars, ',\d\{-},', ',', 'g')
let accept_chars = substitute(accept_chars, ',\@<=\d\{-},', '', 'g')
" Remove all commas
let accept_chars = substitute(accept_chars, ',', '', 'g')
" Escape special regex characters
" Looks like the wrong chars are escaped. In a collection,
" :h /[]
" only `]', `\', `-' and `^' are special:
" let accept_chars = escape(accept_chars, '\\/.*$^~[]' )
let accept_chars = escape(accept_chars, ']\-^' )
" Remove all characters that are not acceptable
let syn_list = substitute( syn_list, '[^0-9A-Za-z_'.accept_chars.']', ' ', 'g' )
endif
endif
if b:omni_syntax_minimum_length > 0
@ -471,3 +729,27 @@ function! s:SyntaxCSyntaxGroupItems( group_name, syntax_full )
return syn_list
endfunction
function! OmniSyntaxShowChars(spec)
let result = []
for item in split(a:spec, ',')
if len(item) > 1
if item == '@-@'
call add(result, char2nr(item))
else
call extend(result, call('range', split(item, '-')))
endif
else
if item == '@' " assume this is [A-Za-z]
for [c1, c2] in [['A', 'Z'], ['a', 'z']]
call extend(result, range(char2nr(c1), char2nr(c2)))
endfor
else
call add(result, char2nr(item))
endif
endif
endfor
return join(map(result, 'nr2char(v:val)'), ', ')
endfunction
let &cpo = s:cpo_save
unlet s:cpo_save

View File

@ -1,13 +1,13 @@
" tar.vim: Handles browsing tarfiles
" AUTOLOAD PORTION
" Date: Jan 17, 2012
" Version: 28
" Maintainer: Charles E Campbell, Jr <NdrOchip@ScampbellPfamily.AbizM-NOSPAM>
" Date: Apr 17, 2013
" Version: 29
" Maintainer: Charles E Campbell <NdrOchip@ScampbellPfamily.AbizM-NOSPAM>
" License: Vim License (see vim's :help license)
"
" Contains many ideas from Michael Toren's <tar.vim>
"
" Copyright: Copyright (C) 2005-2011 Charles E. Campbell, Jr. {{{1
" Copyright: Copyright (C) 2005-2011 Charles E. Campbell {{{1
" Permission is hereby granted to use and distribute this code,
" with or without modifications, provided that this copyright
" notice is copied with it. Like anything else that's free,
@ -22,7 +22,7 @@
if &cp || exists("g:loaded_tar")
finish
endif
let g:loaded_tar= "v28"
let g:loaded_tar= "v29"
if v:version < 702
echohl WarningMsg
echo "***warning*** this version of tar needs vim 7.2"
@ -31,6 +31,7 @@ if v:version < 702
endif
let s:keepcpo= &cpo
set cpo&vim
"DechoTabOn
"call Decho("loading autoload/tar.vim")
" ---------------------------------------------------------------------
@ -80,7 +81,7 @@ endif
" set up shell quoting character
if !exists("g:tar_shq")
if exists("&shq") && &shq != ""
if exists("+shq") && exists("&shq") && &shq != ""
let g:tar_shq= &shq
elseif has("win32") || has("win95") || has("win64") || has("win16")
if exists("g:netrw_cygwin") && g:netrw_cygwin
@ -147,7 +148,7 @@ fun! tar#Browse(tarfile)
keepj $
let tarfile= a:tarfile
if has("win32") && executable("cygpath")
if has("win32unix") && executable("cygpath")
" assuming cygwin
let tarfile=substitute(system("cygpath -u ".shellescape(tarfile,0)),'\n$','','e')
endif
@ -227,7 +228,7 @@ fun! s:TarBrowseSelect()
" about to make a new window, need to use b:tarfile
let tarfile= b:tarfile
let curfile= expand("%")
if has("win32") && executable("cygpath")
if has("win32unix") && executable("cygpath")
" assuming cygwin
let tarfile=substitute(system("cygpath -u ".shellescape(tarfile,0)),'\n$','','e')
endif
@ -239,6 +240,8 @@ fun! s:TarBrowseSelect()
let s:tblfile_{winnr()}= curfile
call tar#Read("tarfile:".tarfile.'::'.fname,1)
filetype detect
set nomod
exe 'com! -buffer -nargs=? -complete=file TarDiff :call tar#Diff(<q-args>,"'.fnameescape(fname).'")'
let &report= repkeep
" call Dret("TarBrowseSelect : s:tblfile_".winnr()."<".s:tblfile_{winnr()}.">")
@ -252,7 +255,7 @@ fun! tar#Read(fname,mode)
set report=10
let tarfile = substitute(a:fname,'tarfile:\(.\{-}\)::.*$','\1','')
let fname = substitute(a:fname,'tarfile:.\{-}::\(.*\)$','\1','')
if has("win32") && executable("cygpath")
if has("win32unix") && executable("cygpath")
" assuming cygwin
let tarfile=substitute(system("cygpath -u ".shellescape(tarfile,0)),'\n$','','e')
endif
@ -425,7 +428,7 @@ fun! tar#Write(fname)
if fname =~ '/'
let dirpath = substitute(fname,'/[^/]\+$','','e')
if executable("cygpath")
if has("win32unix") && executable("cygpath")
let dirpath = substitute(system("cygpath ".shellescape(dirpath, 0)),'\n','','e')
endif
call mkdir(dirpath,"p")
@ -445,7 +448,7 @@ fun! tar#Write(fname)
let tar_secure= " "
endif
exe "w! ".fnameescape(fname)
if executable("cygpath")
if has("win32unix") && executable("cygpath")
let tarfile = substitute(system("cygpath ".shellescape(tarfile,0)),'\n','','e')
endif
@ -500,6 +503,30 @@ fun! tar#Write(fname)
" call Dret("tar#Write")
endfun
" ---------------------------------------------------------------------
" tar#Diff: {{{2
fun! tar#Diff(userfname,fname)
" call Dfunc("tar#Diff(userfname<".a:userfname."> fname<".a:fname.")")
let fname= a:fname
if a:userfname != ""
let fname= a:userfname
endif
if filereadable(fname)
" sets current file (from tarball) for diff'ing
" splits window vertically
" opens original file, sets it for diff'ing
" sets up b:tardiff_otherbuf variables so each buffer knows about the other (for closing purposes)
diffthis
wincmd v
exe "e ".fnameescape(fname)
diffthis
else
redraw!
echo "***warning*** unable to read file<".fname.">"
endif
" call Dret("tar#Diff")
endfun
" ---------------------------------------------------------------------
" s:Rmdir: {{{2
fun! s:Rmdir(fname)

View File

@ -1,6 +1,6 @@
" Vim autoload file for the tohtml plugin.
" Maintainer: Ben Fritz <fritzophrenic@gmail.com>
" Last Change: 2011 Apr 05
" Last Change: 2013 Jun 19
"
" Additional contributors:
"
@ -11,7 +11,7 @@
" this file uses line continuations
let s:cpo_sav = &cpo
set cpo-=C
set cpo&vim
" Automatically find charsets from all encodings supported natively by Vim. With
" the 8bit- and 2byte- prefixes, Vim can actually support more encodings than
@ -391,12 +391,25 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
call add(html, '<meta name="plugin-version" content="'.g:loaded_2html_plugin.'"'.tag_close)
call add(html, '<meta name="settings" content="'.
\ join(filter(keys(s:settings),'s:settings[v:val]'),',').
\ ',prevent_copy='.s:settings.prevent_copy.
\ '"'.tag_close)
call add(html, '<meta name="colorscheme" content="'.
\ (exists('g:colors_name')
\ ? g:colors_name
\ : 'none'). '"'.tag_close)
call add(html, '</head>')
let body_line_num = len(html)
call add(html, '<body>')
call add(html, '<table border="1" width="100%">')
if !empty(s:settings.prevent_copy)
call add(html, "<body onload='FixCharWidth();".(s:settings.line_ids ? " JumpToLine();" : "")."'>")
call add(html, "<!-- hidden divs used by javascript to get the width of a char -->")
call add(html, "<div id='oneCharWidth'>0</div>")
call add(html, "<div id='oneInputWidth'><input size='1' value='0'".tag_close."</div>")
call add(html, "<div id='oneEmWidth' style='width: 1em;'></div>")
else
call add(html, '<body'.(s:settings.line_ids ? ' onload="JumpToLine();"' : '').'>')
endif
call add(html, "<table border='1' width='100%' id='vimCodeElement".s:settings.id_suffix."'>")
call add(html, '<tr>')
for buf in a:win_list
@ -454,16 +467,19 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
let insert_index = diff_style_start
endif
" Delete those parts that are not needed so
" we can include the rest into the resulting table
1,/^<body/d_
" Delete those parts that are not needed so we can include the rest into the
" resulting table.
1,/^<body.*\%(\n<!--.*-->\_s\+.*id='oneCharWidth'.*\_s\+.*id='oneInputWidth'.*\_s\+.*id='oneEmWidth'\)\?\zs/d_
$
?</body>?,$d_
let temp = getline(1,'$')
" clean out id on the main content container because we already set it on
" the table
let temp[0] = substitute(temp[0], " id='vimCodeElement[^']*'", "", "")
" undo deletion of start and end part
" so we can later save the file as valid html
" TODO: restore using grabbed lines if undolevel is 1?
normal 2u
normal! 2u
if s:settings.use_css
call add(html, '<td valign="top"><div>')
elseif s:settings.use_xhtml
@ -487,6 +503,11 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
call add(html, s:body_end_line)
call add(html, '</html>')
" The generated HTML is admittedly ugly and takes a LONG time to fold.
" Make sure the user doesn't do syntax folding when loading a generated file,
" using a modeline.
call add(html, '<!-- vim: set foldmethod=manual : -->')
let i = 1
let name = "Diff" . (s:settings.use_xhtml ? ".xhtml" : ".html")
" Find an unused file name if current file name is already in use
@ -520,12 +541,94 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
1
let style_start = search('^</head>')-1
" Insert javascript to toggle matching folds open and closed in all windows,
" if dynamic folding is active. {{{
" add required javascript in reverse order so we can just call append again
" and again without adjusting {{{
" insert script closing tag
call append(style_start, [
\ '',
\ s:settings.use_xhtml ? '//]]>' : '-->',
\ "</script>"
\ ])
" insert script which corrects the size of small input elements in
" prevent_copy mode. See 2html.vim for details on why this is needed and how
" it works.
if !empty(s:settings.prevent_copy)
call append(style_start, [
\ '',
\ '/* simulate a "ch" unit by asking the browser how big a zero character is */',
\ 'function FixCharWidth() {',
\ ' /* get the hidden element which gives the width of a single character */',
\ ' var goodWidth = document.getElementById("oneCharWidth").clientWidth;',
\ ' /* get all input elements, we''ll filter on class later */',
\ ' var inputTags = document.getElementsByTagName("input");',
\ ' var ratio = 5;',
\ ' var inputWidth = document.getElementById("oneInputWidth").clientWidth;',
\ ' var emWidth = document.getElementById("oneEmWidth").clientWidth;',
\ ' if (inputWidth > goodWidth) {',
\ ' while (ratio < 100*goodWidth/emWidth && ratio < 100) {',
\ ' ratio += 5;',
\ ' }',
\ ' document.getElementById("vimCodeElement'.s:settings.id_suffix.'").className = "em"+ratio;',
\ ' }',
\ '}'
\ ])
endif
"
" insert javascript to get IDs from line numbers, and to open a fold before
" jumping to any lines contained therein
call append(style_start, [
\ " /* Always jump to new location even if the line was hidden inside a fold, or",
\ " * we corrected the raw number to a line ID.",
\ " */",
\ " if (lineElem) {",
\ " lineElem.scrollIntoView(true);",
\ " }",
\ " return true;",
\ "}",
\ "if ('onhashchange' in window) {",
\ " window.onhashchange = JumpToLine;",
\ "}"
\ ])
if s:settings.dynamic_folds
call append(style_start, [
\ "",
\ " /* navigate upwards in the DOM tree to open all folds containing the line */",
\ " var node = lineElem;",
\ " while (node && node.id != 'vimCodeElement".s:settings.id_suffix."')",
\ " {",
\ " if (node.className == 'closed-fold')",
\ " {",
\ " /* toggle open the fold ID (remove window ID) */",
\ " toggleFold(node.id.substr(4));",
\ " }",
\ " node = node.parentNode;",
\ " }",
\ ])
endif
call append(style_start, [
\ "",
\ "/* function to open any folds containing a jumped-to line before jumping to it */",
\ "function JumpToLine()",
\ "{",
\ " var lineNum;",
\ " lineNum = window.location.hash;",
\ " lineNum = lineNum.substr(1); /* strip off '#' */",
\ "",
\ " if (lineNum.indexOf('L') == -1) {",
\ " lineNum = 'L'+lineNum;",
\ " }",
\ " if (lineNum.indexOf('W') == -1) {",
\ " lineNum = 'W1'+lineNum;",
\ " }",
\ " lineElem = document.getElementById(lineNum);"
\ ])
" Insert javascript to toggle matching folds open and closed in all windows,
" if dynamic folding is active.
if s:settings.dynamic_folds
call append(style_start, [
\ "<script type='text/javascript'>",
\ s:settings.use_xhtml ? '//<![CDATA[' : " <!--",
\ " function toggleFold(objID)",
\ " {",
\ " for (win_num = 1; win_num <= ".len(a:buf_list)."; win_num++)",
@ -542,10 +645,14 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
\ " }",
\ " }",
\ " }",
\ s:settings.use_xhtml ? '//]]>' : " -->",
\ "</script>"
\ ])
endif "}}}
endif
" insert script tag; javascript is always needed for the line number
" normalization for URL hashes
call append(style_start, [
\ "<script type='text/javascript'>",
\ s:settings.use_xhtml ? '//<![CDATA[' : "<!--"])
" Insert styles from all the generated html documents and additional styles
" for the table-based layout of the side-by-side diff. The diff should take
@ -609,11 +716,13 @@ func! tohtml#GetUserSettings() "{{{
call tohtml#GetOption(user_settings, 'ignore_conceal', 0 )
call tohtml#GetOption(user_settings, 'ignore_folding', 0 )
call tohtml#GetOption(user_settings, 'dynamic_folds', 0 )
call tohtml#GetOption(user_settings, 'no_foldcolumn', 0 )
call tohtml#GetOption(user_settings, 'no_foldcolumn', user_settings.ignore_folding)
call tohtml#GetOption(user_settings, 'hover_unfold', 0 )
call tohtml#GetOption(user_settings, 'no_pre', 0 )
call tohtml#GetOption(user_settings, 'no_invalid', 0 )
call tohtml#GetOption(user_settings, 'whole_filler', 0 )
call tohtml#GetOption(user_settings, 'use_xhtml', 0 )
call tohtml#GetOption(user_settings, 'line_ids', user_settings.number_lines )
" }}}
" override those settings that need it {{{
@ -637,6 +746,8 @@ func! tohtml#GetUserSettings() "{{{
" dynamic folding implies css
if user_settings.dynamic_folds
let user_settings.use_css = 1
else
let user_settings.no_foldcolumn = 1 " won't do anything but for consistency and for the test suite
endif
" if we're not using CSS we cannot use a pre section because <font> tags
@ -663,6 +774,7 @@ func! tohtml#GetUserSettings() "{{{
endif
" }}}
" textual options
if exists("g:html_use_encoding") "{{{
" user specified the desired MIME charset, figure out proper
" 'fileencoding' from it or warn the user if we cannot
@ -705,6 +817,59 @@ func! tohtml#GetUserSettings() "{{{
endif
endif "}}}
" Default to making nothing uncopyable, because we default to
" not-standards way of doing things, and also because Microsoft Word and
" others paste the <input> elements anyway.
"
" html_prevent_copy only has an effect when using CSS.
"
" All options:
" f - fold column
" n - line numbers (also within fold text)
" t - fold text
" d - diff filler
" c - concealed text (reserved future)
" l - listchars (reserved possible future)
" s - signs (reserved possible future)
"
" Normal text is always selectable.
let user_settings.prevent_copy = ""
if user_settings.use_css
if exists("g:html_prevent_copy")
if user_settings.dynamic_folds && !user_settings.no_foldcolumn && g:html_prevent_copy =~# 'f'
let user_settings.prevent_copy .= 'f'
endif
if user_settings.number_lines && g:html_prevent_copy =~# 'n'
let user_settings.prevent_copy .= 'n'
endif
if &diff && g:html_prevent_copy =~# 'd'
let user_settings.prevent_copy .= 'd'
endif
if !user_settings.ignore_folding && g:html_prevent_copy =~# 't'
let user_settings.prevent_copy .= 't'
endif
else
let user_settings.prevent_copy = ""
endif
endif
if empty(user_settings.prevent_copy)
let user_settings.no_invalid = 0
endif
if exists('g:html_id_expr')
let user_settings.id_suffix = eval(g:html_id_expr)
if user_settings.id_suffix !~ '^[-_:.A-Za-z0-9]*$'
echohl WarningMsg
echomsg '2html: g:html_id_expr evaluated to invalid string for HTML id attributes'
echomsg '2html: Omitting user-specified suffix'
echohl None
sleep 3
let user_settings.id_suffix=""
endif
else
let user_settings.id_suffix=""
endif
" TODO: font
return user_settings

View File

@ -1,7 +1,7 @@
" Vim completion script
" Language: XML
" Maintainer: Mikolaj Machowski ( mikmach AT wp DOT pl )
" Last Change: 2006 Aug 15
" Last Change: 2013 Jun 29
" Version: 1.9
"
" Changelog:
@ -475,12 +475,12 @@ function! s:InCommentAt(line, col)
endfunction
function! s:SetKeywords()
let g:IsKeywordBak=&iskeyword
let &iskeyword='33-255'
let s:IsKeywordBak=&l:iskeyword
let &l:iskeyword='33-255'
endfunction
function! s:RestoreKeywords()
let &iskeyword=g:IsKeywordBak
let &l:iskeyword=s:IsKeywordBak
endfunction
function! s:Push(el, sname)

View File

@ -1,10 +1,10 @@
" zip.vim: Handles browsing zipfiles
" AUTOLOAD PORTION
" Date: Jan 17, 2012
" Version: 25
" Maintainer: Charles E Campbell, Jr <NdrOchip@ScampbellPfamily.AbizM-NOSPAM>
" Date: Jul 02, 2013
" Version: 27
" Maintainer: Charles E Campbell <NdrOchip@ScampbellPfamily.AbizM-NOSPAM>
" License: Vim License (see vim's :help license)
" Copyright: Copyright (C) 2005-2012 Charles E. Campbell, Jr. {{{1
" Copyright: Copyright (C) 2005-2013 Charles E. Campbell {{{1
" Permission is hereby granted to use and distribute this code,
" with or without modifications, provided that this copyright
" notice is copied with it. Like anything else that's free,
@ -13,13 +13,14 @@
" this plugin, you agree that in no event will the copyright
" holder be liable for any damages resulting from the use
" of this software.
"redraw!|call DechoSep()|call inputsave()|call input("Press <cr> to continue")|call inputrestore()
" ---------------------------------------------------------------------
" Load Once: {{{1
if &cp || exists("g:loaded_zip")
finish
endif
let g:loaded_zip= "v25"
let g:loaded_zip= "v27"
if v:version < 702
echohl WarningMsg
echo "***warning*** this version of zip needs vim 7.2"
@ -28,6 +29,7 @@ if v:version < 702
endif
let s:keepcpo= &cpo
set cpo&vim
"DechoTabOn
let s:zipfile_escape = ' ?&;\'
let s:ERROR = 2
@ -60,6 +62,16 @@ endif
" zip#Browse: {{{2
fun! zip#Browse(zipfile)
" call Dfunc("zip#Browse(zipfile<".a:zipfile.">)")
" sanity check: insure that the zipfile has "PK" as its first two letters
" (zipped files have a leading PK as a "magic cookie")
if !filereadable(a:zipfile) || readfile(a:zipfile, "", 1)[0] !~ '^PK'
exe "noautocmd e ".fnameescape(a:zipfile)
" call Dret("zip#Browse : not a zipfile<".a:zipfile.">")
return
" else " Decho
" call Decho("zip#Browse: a:zipfile<".a:zipfile."> passed PK test - its a zip file")
endif
let repkeep= &report
set report=10
@ -188,17 +200,28 @@ fun! zip#Read(fname,mode)
else
let zipfile = substitute(a:fname,'^.\{-}zipfile:\(.\{-}\)::[^\\].*$','\1','')
let fname = substitute(a:fname,'^.\{-}zipfile:.\{-}::\([^\\].*\)$','\1','')
let fname = substitute(fname, '[', '[[]', 'g')
let fname = substitute(fname, '[', '[[]', 'g')
endif
" call Decho("zipfile<".zipfile.">")
" call Decho("fname <".fname.">")
" call Decho("exe 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)
" 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)
" but allows zipfile:... entries in quickfix lists
let temp = tempname()
" call Decho("using temp file<".temp.">")
let fn = expand('%:p')
exe "sil! !".g:zip_unzipcmd." -p -- ".s:Escape(zipfile,1)." ".s:Escape(fnameescape(fname),1).' > '.temp
" call Decho("exe sil! !".g:zip_unzipcmd." -p -- ".s:Escape(zipfile,1)." ".s:Escape(fnameescape(fname),1).' > '.temp)
sil exe 'keepalt file '.temp
sil keepj e!
sil exe 'keepalt file '.fnameescape(fn)
call delete(temp)
filetype detect
" cleanup
keepj 0d
" keepj 0d " used to be needed for the ...r! ... method
set nomod
let &report= repkeep
@ -267,7 +290,7 @@ fun! zip#Write(fname)
if fname =~ '/'
let dirpath = substitute(fname,'/[^/]\+$','','e')
if executable("cygpath")
if has("win32unix") && executable("cygpath")
let dirpath = substitute(system("cygpath ".s:Escape(dirpath,0)),'\n','','e')
endif
" call Decho("mkdir(dirpath<".dirpath.">,p)")
@ -279,7 +302,7 @@ fun! zip#Write(fname)
" call Decho("zipfile<".zipfile."> fname<".fname.">")
exe "w! ".fnameescape(fname)
if executable("cygpath")
if has("win32unix") && executable("cygpath")
let zipfile = substitute(system("cygpath ".s:Escape(zipfile,0)),'\n','','e')
endif

View File

@ -2,7 +2,7 @@
" vim: tw=0 ts=4 sw=4
" Vim color file
" Maintainer: Ron Aaron <ron@ronware.org>
" Last Change: 2006 Dec 10
" Last Change: 2013 May 23
hi clear
set background=dark
@ -43,6 +43,8 @@ hi MatchParen term=reverse ctermfg=blue guibg=Blue
hi TabLine term=bold,reverse cterm=bold ctermfg=lightblue ctermbg=white gui=bold guifg=blue guibg=white
hi TabLineFill term=bold,reverse cterm=bold ctermfg=lightblue ctermbg=white gui=bold guifg=blue guibg=white
hi TabLineSel term=reverse ctermfg=white ctermbg=lightblue guifg=white guibg=blue
hi Underlined term=underline cterm=bold,underline ctermfg=lightblue guifg=lightblue gui=bold,underline
hi Ignore ctermfg=black ctermbg=black guifg=black guibg=black
hi link IncSearch Visual
hi link String Constant
hi link Character Constant

View File

@ -2,7 +2,7 @@
" vim: tw=0 ts=4 sw=4
" Vim color file
" Maintainer: Ron Aaron <ron@ronware.org>
" Last Change: 2003 May 02
" Last Change: 2013 May 24
set background=dark
hi clear
@ -11,7 +11,7 @@ if exists("syntax_on")
endif
let g:colors_name = "ron"
hi Normal guifg=cyan guibg=black
hi NonText guifg=brown
hi NonText guifg=yellow guibg=#303030
hi comment guifg=green
hi constant guifg=cyan gui=bold
hi identifier guifg=cyan gui=NONE
@ -24,10 +24,11 @@ hi WarningMsg guifg=Black guibg=Green
hi Error guibg=Red
hi Todo guifg=Black guibg=orange
hi Cursor guibg=#60a060 guifg=#00ff00
hi Search guibg=lightslateblue
hi Search guibg=darkgray guifg=black gui=bold
hi IncSearch gui=NONE guibg=steelblue
hi LineNr guifg=darkgrey
hi title guifg=darkgrey
hi ShowMarksHL ctermfg=cyan ctermbg=lightblue cterm=bold guifg=yellow guibg=black gui=bold
hi StatusLineNC gui=NONE guifg=lightblue guibg=darkblue
hi StatusLine gui=bold guifg=cyan guibg=blue
hi label guifg=gold2
@ -41,3 +42,4 @@ hi DiffDelete guibg=coral
hi Folded guibg=gray30
hi FoldColumn guibg=gray30 guifg=white
hi cIf0 guifg=gray
hi diffOnly guifg=red gui=bold

View File

@ -1,8 +1,7 @@
" Vim compiler file
" Compiler: Checkstyle
" Maintainer: Doug Kearns <djkea2@gus.gscit.monash.edu.au>
" URL: http://gus.gscit.monash.edu.au/~djkea2/vim/compiler/checkstyle.vim
" Last Change: 2004 Nov 27
" Maintainer: Doug Kearns <dougkearns@gmail.com>
" Last Change: 2013 Jun 26
if exists("current_compiler")
finish
@ -17,4 +16,4 @@ CompilerSet makeprg=java\ com.puppycrawl.tools.checkstyle.Main\ -f\ plain
" sample error: WebTable.java:282: '+=' is not preceeded with whitespace.
" WebTable.java:201:1: '{' should be on the previous line.
CompilerSet errorformat=%f:%l:\ %m,%f:%l:%v:\ %m,%-G%.%#
CompilerSet errorformat=%f:%l:%v:\ %m,%f:%l:\ %m,%-G%.%#

View File

@ -1,9 +1,7 @@
" Vim compiler file
" Language: eRuby
" Maintainer: Doug Kearns <dougkearns@gmail.com>
" Last Change: 2008 Aug 1
" URL: http://vim-ruby.rubyforge.org
" Anon CVS: See above site
" URL: https://github.com/vim-ruby/vim-ruby
" Release Coordinator: Doug Kearns <dougkearns@gmail.com>
if exists("current_compiler")

28
runtime/compiler/haml.vim Normal file
View File

@ -0,0 +1,28 @@
" Vim compiler file
" Compiler: Haml
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Last Change: 2013 May 30
if exists("current_compiler")
finish
endif
let current_compiler = "haml"
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
endif
let s:cpo_save = &cpo
set cpo-=C
CompilerSet makeprg=haml\ -c
CompilerSet errorformat=
\Haml\ %trror\ on\ line\ %l:\ %m,
\Syntax\ %trror\ on\ line\ %l:\ %m,
\%-G%.%#
let &cpo = s:cpo_save
unlet s:cpo_save
" vim:set sw=2 sts=2:

View File

@ -1,8 +1,7 @@
" Vim compiler file
" Compiler: javac
" Maintainer: Doug Kearns <djkea2@gus.gscit.monash.edu.au>
" URL: http://gus.gscit.monash.edu.au/~djkea2/vim/compiler/javac.vim
" Last Change: 2004 Nov 27
" Compiler: javac
" Maintainer: Doug Kearns <dougkearns@gmail.com>
" Last Change: 2004 Nov 27
if exists("current_compiler")
finish

View File

@ -1,7 +1,8 @@
" Vim compiler file
" Compiler: Mono C# Compiler
" Maintainer: Jarek Sobiecki <harijari@go2.pl>
" Latest Revision: 2006-06-18
" Last Updated By: Peter Collingbourne
" Latest Revision: 2012 Jul 19
if exists("current_compiler")
finish
@ -12,13 +13,18 @@ let s:cpo_save = &cpo
set cpo-=C
setlocal errorformat=
\%D%.%#Project\ \"%f/%[%^/\"]%#\"%.%#,
\%X%.%#Done\ building\ project\ \"%f/%[%^/\"]%#\"%.%#,
\%-G%\\s%.%#,
\%E%f(%l):\ error\ CS%n:%m,
\%W%f(%l):\ warning\ CS%n:%m,
\%E%f(%l\\,%c):\ error\ CS%n:%m,
\%W%f(%l\\,%c):\ warning\ CS%n:%m,
\%E%>syntax\ error\\,%m,%Z%f(%l\\,%c):\ error\ CS%n:%m,
\%D%*\\a[%*\\d]:\ Entering\ directory\ `%f',
\%X%*\\a[%*\\d]:\ Leaving\ directory\ `%f',
\%DMaking\ %*\\a\ in\ %f,
\%G-%.%#
\%-G%.%#
let &cpo = s:cpo_save
unlet s:cpo_save

View File

@ -0,0 +1,21 @@
" Vim compiler file
" Compiler: Microsoft Visual Studio C#
" Maintainer: Chiel ten Brinke (ctje92@gmail.com)
" Last Change: 2013 May 13
if exists("current_compiler")
finish
endif
let current_compiler = "msbuild"
let s:keepcpo= &cpo
set cpo&vim
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
endif
CompilerSet errorformat=\ %#%f(%l\\\,%c):\ %m
CompilerSet makeprg=msbuild\ /nologo\ /v:q\ /property:GenerateFullPaths=true
let &cpo = s:keepcpo
unlet s:keepcpo

View File

@ -0,0 +1,44 @@
" Vim Compiler File
" Compiler: ocaml
" Maintainer: See ftplugin/ocaml.vim (?)
" Last Change: June 2013 by Marc Weber
"
" Marc Weber's comments:
" Setting makeprg doesn't make sense, because there is ocamlc, ocamlopt,
" ocamake and whatnot. So which one to use?
"
" This error format was moved from ftplugin/ocaml.vim to this file,
" because ftplugin is the wrong file to set an error format
" and the error format itself is annoying because it joins many lines in this
" error case:
"
" Error: The implementation foo.ml does not match the interface foo.cmi:
" Modules do not match case.
"
" So having it here makes people opt-in
if exists("current_compiler")
finish
endif
let current_compiler = "ocaml"
let s:cpo_save = &cpo
set cpo&vim
CompilerSet errorformat =
\%EFile\ \"%f\"\\,\ line\ %l\\,\ characters\ %c-%*\\d:,
\%EFile\ \"%f\"\\,\ line\ %l\\,\ character\ %c:%m,
\%+EReference\ to\ unbound\ regexp\ name\ %m,
\%Eocamlyacc:\ e\ -\ line\ %l\ of\ \"%f\"\\,\ %m,
\%Wocamlyacc:\ w\ -\ %m,
\%-Zmake%.%#,
\%C%m,
\%D%*\\a[%*\\d]:\ Entering\ directory\ `%f',
\%X%*\\a[%*\\d]:\ Leaving\ directory\ `%f',
\%D%*\\a:\ Entering\ directory\ `%f',
\%X%*\\a:\ Leaving\ directory\ `%f',
\%DMaking\ %*\\a\ in\ %f
let &cpo = s:cpo_save
unlet s:cpo_save

View File

@ -1,8 +1,7 @@
" Vim compiler file
" Compiler: PHP
" Maintainer: Doug Kearns <djkea2@gus.gscit.monash.edu.au>
" URL: http://gus.gscit.monash.edu.au/~djkea2/vim/compiler/php.vim
" Last Change: 2004 Nov 27
" Compiler: PHP CLI
" Maintainer: Doug Kearns <dougkearns@gmail.com>
" Last Change: 2013 Jun 25
if exists("current_compiler")
finish
@ -17,12 +16,11 @@ let s:cpo_save = &cpo
set cpo-=C
CompilerSet makeprg=php\ -lq
CompilerSet errorformat=%E<b>Parse\ error</b>:\ %m\ in\ <b>%f</b>\ on\ line\ <b>%l</b><br\ />,
\%W<b>Notice</b>:\ %m\ in\ <b>%f</b>\ on\ line\ <b>%l</b><br\ />,
\%EParse\ error:\ %m\ in\ %f\ on\ line\ %l,
\%WNotice:\ %m\ in\ %f</b>\ on\ line\ %l,
\%-G%.%#
CompilerSet errorformat=%E<b>%.%#Parse\ error</b>:\ %m\ in\ <b>%f</b>\ on\ line\ <b>%l</b><br\ />,
\%W<b>%.%#Notice</b>:\ %m\ in\ <b>%f</b>\ on\ line\ <b>%l</b><br\ />,
\%E%.%#Parse\ error:\ %m\ in\ %f\ on\ line\ %l,
\%W%.%#Notice:\ %m\ in\ %f\ on\ line\ %l,
\%-G%.%#
let &cpo = s:cpo_save
unlet s:cpo_save

35
runtime/compiler/rake.vim Normal file
View File

@ -0,0 +1,35 @@
" Vim compiler file
" Language: Rake
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" URL: https://github.com/vim-ruby/vim-ruby
" Release Coordinator: Doug Kearns <dougkearns@gmail.com>
if exists("current_compiler")
finish
endif
let current_compiler = "rake"
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
endif
let s:cpo_save = &cpo
set cpo-=C
CompilerSet makeprg=rake
CompilerSet errorformat=
\%D(in\ %f),
\%\\s%#from\ %f:%l:%m,
\%\\s%#from\ %f:%l:,
\%\\s%##\ %f:%l:%m,
\%\\s%##\ %f:%l,
\%\\s%#[%f:%l:\ %#%m,
\%\\s%#%f:%l:\ %#%m,
\%\\s%#%f:%l:,
\%m\ [%f:%l]:
let &cpo = s:cpo_save
unlet s:cpo_save
" vim: nowrap sw=2 sts=2 ts=8:

View File

@ -1,9 +1,7 @@
" Vim compiler file
" Language: RSpec
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Last Change: 2009 Dec 22
" URL: http://vim-ruby.rubyforge.org
" Anon CVS: See above site
" URL: https://github.com/vim-ruby/vim-ruby
" Release Coordinator: Doug Kearns <dougkearns@gmail.com>
if exists("current_compiler")
@ -18,21 +16,15 @@ endif
let s:cpo_save = &cpo
set cpo-=C
CompilerSet makeprg=spec
CompilerSet makeprg=rspec
CompilerSet errorformat=
\%+W'%.%#'\ FAILED,
\%+I'%.%#'\ FIXED,
\%-Cexpected:%.%#,
\%-C\ \ \ \ \ got:%.%#,
\%f:%l:\ %tarning:\ %m,
\%E%.%#:in\ `load':\ %f:%l:%m,
\%C%f:%l:,
\%W%f:%l:\ warning:\ %m,
\%E%f:%l:in\ %*[^:]:\ %m,
\%E%f:%l:\ %m,
\%-Z%\tfrom\ %f:%l,
\%-Z%p^%.%#,
\%-C%.%#,
\%E%f:%l:in\ `%*[^']':\ %m,
\%-Z\ \ \ \ \ \#\ %f:%l:%.%#,
\%E\ \ %\\d%\\+)%.%#,
\%C\ \ \ \ \ %m,
\%-G%.%#
let &cpo = s:cpo_save

View File

@ -1,33 +1,10 @@
" Vim compiler file
" Language: Ruby
" Function: Syntax check and/or error reporting
" Maintainer: Tim Hammerquist <timh at rubyforge.org>
" Last Change: 2008 Aug 1
" URL: http://vim-ruby.rubyforge.org
" Anon CVS: See above site
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" URL: https://github.com/vim-ruby/vim-ruby
" Release Coordinator: Doug Kearns <dougkearns@gmail.com>
" ----------------------------------------------------------------------------
"
" Changelog:
" 0.2: script saves and restores 'cpoptions' value to prevent problems with
" line continuations
" 0.1: initial release
"
" Contributors:
" Hugh Sasse <hgs@dmu.ac.uk>
" Doug Kearns <djkea2@gus.gscit.monash.edu.au>
"
" Todo:
" match error type %m
"
" Comments:
" I know this file isn't perfect. If you have any questions, suggestions,
" patches, etc., please don't hesitate to let me know.
"
" This is my first experience with 'errorformat' and compiler plugins and
" I welcome any input from more experienced (or clearer-thinking)
" individuals.
" ----------------------------------------------------------------------------
if exists("current_compiler")
finish

View File

@ -1,9 +1,7 @@
" Vim compiler file
" Language: Test::Unit - Ruby Unit Testing Framework
" Maintainer: Doug Kearns <dougkearns@gmail.com>
" Last Change: 2008 Aug 1
" URL: http://vim-ruby.rubyforge.org
" Anon CVS: See above site
" URL: https://github.com/vim-ruby/vim-ruby
" Release Coordinator: Doug Kearns <dougkearns@gmail.com>
if exists("current_compiler")

30
runtime/compiler/sass.vim Normal file
View File

@ -0,0 +1,30 @@
" Vim compiler file
" Compiler: Sass
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Last Change: 2013 May 30
if exists("current_compiler")
finish
endif
let current_compiler = "sass"
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
endif
let s:cpo_save = &cpo
set cpo-=C
CompilerSet makeprg=sass\ -c
CompilerSet errorformat=
\%f:%l:%m\ (Sass::Syntax%trror),
\%ESyntax\ %trror:%m,
\%C%\\s%\\+on\ line\ %l\ of\ %f,
\%Z%.%#,
\%-G%.%#
let &cpo = s:cpo_save
unlet s:cpo_save
" vim:set sw=2 sts=2:

View File

@ -1,8 +1,7 @@
" Vim compiler file
" Compiler: se (SmartEiffel Compiler)
" Maintainer: Doug Kearns <djkea2@gus.gscit.monash.edu.au>
" URL: http://gus.gscit.monash.edu.au/~djkea2/vim/compiler/se.vim
" Last Change: 2004 Nov 27
" Compiler: se (Liberty Eiffel Compiler)
" Maintainer: Doug Kearns <dougkearns@gmail.com>
" Last Change: 2013 Jun 29
if exists("current_compiler")
finish
@ -16,12 +15,15 @@ endif
let s:cpo_save = &cpo
set cpo-=C
CompilerSet makeprg=compile\ %
CompilerSet makeprg=se\ c
CompilerSet errorformat=%W******\ Warning:\ %m,
\%E******\ Fatal\ Error:\ %m,
\%E******\ Error:\ %m,
\%CLine\ %l\ column\ %c\ in\ %\\w%\\+\ (%f)\ :,
\%ZLine\ %l\ column\ %c\ in\ %.%#\ (%f)\ %\\=:,
\%ZLine\ %l\ columns\ %c\\,\ %\\d%\\+\ %.%#\ (%f)\ %\\=:,
\%+C%*[^\ ]%.%#,
\%-GThe\ source\ lines\ involved,
\%-G%.%#
let &cpo = s:cpo_save

View File

@ -1,7 +1,6 @@
" Vim compiler file
" Compiler: tcl
" Maintainer: Doug Kearns <djkea2@gus.gscit.monash.edu.au>
" URL: http://gus.gscit.monash.edu.au/~djkea2/vim/compiler/tcl.vim
" Maintainer: Doug Kearns <dougkearns@gmail.com>
" Last Change: 2004 Nov 27
if exists("current_compiler")

View File

@ -1,11 +1,7 @@
" Vim compiler file
" Compiler: HTML Tidy
" Maintainer: Doug Kearns <djkea2@gus.gscit.monash.edu.au>
" URL: http://gus.gscit.monash.edu.au/~djkea2/vim/compiler/tidy.vim
" Last Change: 2004 Nov 27
" NOTE: set 'tidy_compiler_040800' if you are using the 4th August 2000 release
" of HTML Tidy.
" Maintainer: Doug Kearns <dougkearns@gmail.com>
" Last Change: 2013 Jul 7
if exists("current_compiler")
finish
@ -16,13 +12,7 @@ if exists(":CompilerSet") != 2 " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
endif
" this is needed to work around a bug in the 04/08/00 release of tidy which
" failed to set the filename if the -quiet option was used
if exists("tidy_compiler_040800")
CompilerSet makeprg=tidy\ -errors\ --gnu-emacs\ yes\ %
else
CompilerSet makeprg=tidy\ -quiet\ -errors\ --gnu-emacs\ yes\ %
endif
CompilerSet makeprg=tidy\ -quiet\ -errors\ --gnu-emacs\ yes\ %
" sample warning: foo.html:8:1: Warning: inserting missing 'foobar' element
" sample error: foo.html:9:2: Error: <foobar> is not recognized!

View File

@ -0,0 +1,22 @@
" Vim compiler file
" Compiler: Mono C#
" Maintainer: Chiel ten Brinke (ctje92@gmail.com)
" Last Change: 2013 May 13
if exists("current_compiler")
finish
endif
let current_compiler = "xbuild"
let s:keepcpo= &cpo
set cpo&vim
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
endif
CompilerSet errorformat=\ %#%f(%l\\\,%c):\ %m
CompilerSet makeprg=xbuild\ /nologo\ /v:q\ /property:GenerateFullPaths=true
let &cpo = s:keepcpo
unlet s:keepcpo

View File

@ -1,8 +1,7 @@
" Vim compiler file
" Compiler: xmllint
" Maintainer: Doug Kearns <djkea2@gus.gscit.monash.edu.au>
" URL: http://gus.gscit.monash.edu.au/~djkea2/vim/compiler/xmllint.vim
" Last Change: 2004 Nov 27
" Maintainer: Doug Kearns <dougkearns@gmail.com>
" Last Change: 2013 Jul 8
if exists("current_compiler")
finish
@ -16,12 +15,10 @@ endif
let s:cpo_save = &cpo
set cpo-=C
CompilerSet makeprg=xmllint\ --valid\ --noout\
CompilerSet makeprg=xmllint\ --valid\ --noout
CompilerSet errorformat=%E%f:%l:\ error:\ %m,
\%W%f:%l:\ warning:\ %m,
\%E%f:%l:\ validity\ error:\ %m,
\%W%f:%l:\ validity\ warning:\ %m,
CompilerSet errorformat=%+E%f:%l:\ %.%#\ error\ :\ %m,
\%+W%f:%l:\ %.%#\ warning\ :\ %m,
\%-Z%p^,
\%-G%.%#

View File

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

View File

@ -1,4 +1,4 @@
*autocmd.txt* For Vim version 7.3. Last change: 2012 Feb 22
*autocmd.txt* For Vim version 7.4. Last change: 2013 Aug 04
VIM REFERENCE MANUAL by Bram Moolenaar
@ -263,8 +263,10 @@ Name triggered by ~
Startup and exit
|VimEnter| after doing all the startup stuff
|GUIEnter| after starting the GUI successfully
|GUIFailed| after starting the GUI failed
|TermResponse| after the terminal response to |t_RV| is received
|QuitPre| when using `:quit`, before deciding whether to quit
|VimLeavePre| before exiting Vim, before writing the viminfo file
|VimLeave| before exiting Vim, after writing the viminfo file
@ -312,6 +314,7 @@ Name triggered by ~
|SessionLoadPost| after loading a session file
|MenuPopup| just before showing the popup menu
|CompleteDone| after Insert mode completion is done
|User| to be used in combination with ":doautocmd"
@ -385,6 +388,10 @@ BufRead or BufReadPost When starting to edit a new buffer, after
This does NOT work for ":r file". Not used
when the file doesn't exist. Also used after
successfully recovering a file.
Also triggered for the filetypedetect group
when executing ":filetype detect" and when
writing an unnamed buffer in a way that the
buffer gets a name.
*BufReadCmd*
BufReadCmd Before starting to edit a new buffer. Should
read the file into the buffer. |Cmd-event|
@ -473,6 +480,17 @@ CmdwinLeave Before leaving the command-line window.
|cmdwin-char|
*ColorScheme*
ColorScheme After loading a color scheme. |:colorscheme|
The pattern is matched against the
colorscheme name. <afile> can be used for the
name of the actual file where this option was
set, and <amatch> for the new colorscheme
name.
*CompleteDone*
CompleteDone After Insert mode completion is done. Either
when something was completed or abandoning
completion. |ins-completion|
*CursorHold*
CursorHold When the user doesn't press a key for the time
@ -501,14 +519,15 @@ CursorHold When the user doesn't press a key for the time
CursorHoldI Just like CursorHold, but in Insert mode.
*CursorMoved*
CursorMoved After the cursor was moved in Normal mode.
Also when the text of the cursor line has been
changed, e.g., with "x", "rx" or "p".
CursorMoved After the cursor was moved in Normal or Visual
mode. Also when the text of the cursor line
has been changed, e.g., with "x", "rx" or "p".
Not triggered when there is typeahead or when
an operator is pending.
For an example see |match-parens|.
Careful: Don't do anything that the user does
not expect or that is slow.
Careful: This is triggered very often, don't
do anything that the user does not expect or
that is slow.
*CursorMovedI*
CursorMovedI After the cursor was moved in Insert mode.
Not triggered when the popup menu is visible.
@ -678,8 +697,11 @@ InsertCharPre When a character is typed in Insert mode,
InsertEnter Just before starting Insert mode. Also for
Replace mode and Virtual Replace mode. The
|v:insertmode| variable indicates the mode.
Be careful not to move the cursor or do
anything else that the user does not expect.
Be careful not to do anything else that the
user does not expect.
The cursor is restored afterwards. If you do
not want that set |v:char| to a non-empty
string.
*InsertLeave*
InsertLeave When leaving Insert mode. Also when using
CTRL-O |i_CTRL-O|. But not for |i_CTRL-C|.
@ -717,6 +739,12 @@ QuickFixCmdPost Like QuickFixCmdPre, but after a quickfix
it is run after error file is read and before
moving to the first error.
See |QuickFixCmdPost-example|.
*QuitPre*
QuitPre When using `:quit`, `:wq` or `:qall`, before
deciding whether it closes the current window
or quits Vim. Can be used to close any
non-essential window if the current window is
the last ordinary window.
*RemoteReply*
RemoteReply When a reply from a Vim that functions as
server was received |server2client()|. The
@ -813,12 +841,27 @@ TermResponse After the response to |t_RV| is received from
triggered halfway executing another event,
especially if file I/O, a shell command or
anything else that takes time is involved.
*TextChanged*
TextChanged After a change was made to the text in the
current buffer in Normal mode. That is when
|b:changedtick| has changed.
Not triggered when there is typeahead or when
an operator is pending.
Careful: This is triggered very often, don't
do anything that the user does not expect or
that is slow.
*TextChangedI*
TextChangedI After a change was made to the text in the
current buffer in Insert mode.
Not triggered when the popup menu is visible.
Otherwise the same as TextChanged.
*User*
User Never executed automatically. To be used for
autocommands that are only executed with
":doautocmd".
*UserGettingBored*
UserGettingBored When the user hits CTRL-C. Just kidding! :-)
UserGettingBored When the user presses the same key 42 times.
Just kidding! :-)
*VimEnter*
VimEnter After doing all the startup stuff, including
loading .vimrc files, executing the "-c cmd"
@ -915,7 +958,8 @@ the autocommand is executed. This is different from the command!
*file-pattern*
The pattern is interpreted like mostly used in file names:
* matches any sequence of characters
* matches any sequence of characters; Unusual: includes path
separators
? matches any single character
\? matches a '?'
. matches a '.'
@ -924,6 +968,9 @@ The pattern is interpreted like mostly used in file names:
\, matches a ','
{ } like \( \) in a |pattern|
, inside { }: like \| in a |pattern|
\} literal }
\{ literal {
\\\{n,m\} like \{n,m} in a |pattern|
\ special meaning like in a |pattern|
[ch] matches 'c' or 'h'
[^ch] match any character but 'c' and 'h'

View File

@ -1,4 +1,4 @@
*change.txt* For Vim version 7.3. Last change: 2012 Apr 30
*change.txt* For Vim version 7.4. Last change: 2013 Nov 05
VIM REFERENCE MANUAL by Bram Moolenaar
@ -71,9 +71,21 @@ For inserting text see |insert.txt|.
"D" deletes the highlighted text plus all text until
the end of the line. {not in Vi}
*:d* *:de* *:del* *:delete* *:dl*
*:d* *:de* *:del* *:delete* *:dl* *:dp*
:[range]d[elete] [x] Delete [range] lines (default: current line) [into
register x].
Note these weird abbreviations:
:dl delete and list
:dell idem
:delel idem
:deletl idem
:deletel idem
:dp delete and print
:dep idem
:delp idem
:delep idem
:deletp idem
:deletep idem
:[range]d[elete] [x] {count}
Delete {count} lines, starting with [range]
@ -463,8 +475,8 @@ If the 'shiftround' option is on, the indent is rounded to a multiple of
'shiftwidth'.
If the 'smartindent' option is on, or 'cindent' is on and 'cinkeys' contains
'#', shift right does not affect lines starting with '#' (these are supposed
to be C preprocessor lines that must stay in column 1).
'#' with a zero value, shift right does not affect lines starting with '#'
(these are supposed to be C preprocessor lines that must stay in column 1).
When the 'expandtab' option is off (this is the default) Vim uses <Tab>s as
much as possible to make the indent. You can use ">><<" to replace an indent
@ -598,8 +610,11 @@ For other systems the tmpnam() library function is used.
the flags.
*g&*
g& Synonym for `:%s//~/&` (repeat last substitute on all
lines with the same flags).
g& Synonym for `:%s//~/&` (repeat last substitute with
last search pattern on all lines with the same flags).
For example, when you first do a substitution with
`:s/pattern/repl/flags` and then `/search` for
something else, `g&` will do `:%s/search/repl/flags`.
Mnemonic: global substitute. {not in Vi}
*:snomagic* *:sno*
@ -666,6 +681,8 @@ The flags that you can use for the substitute commands:
[n] Report the number of matches, do not actually substitute. The [c]
flag is ignored. The matches are reported as if 'report' is zero.
Useful to |count-items|.
If \= |sub-replace-expression| is used, the expression will be
evaluated in the |sandbox| at every match.
[p] Print the line containing the last substitute.
@ -779,6 +796,11 @@ Examples: >
:s/abcde/abc^Mde/ modifies "abcde" to "abc", "de" (two lines)
:s/$/\^M/ modifies "abcde" to "abcde^M"
:s/\w\+/\u\0/g modifies "bla bla" to "Bla Bla"
:s/\w\+/\L\u/g modifies "BLA bla" to "Bla Bla"
Note: "\L\u" can be used to capitalize the first letter of a word. This is
not compatible with Vi and older versions of Vim, where the "\u" would cancel
out the "\L". Same for "\U\l".
Note: In previous versions CTRL-V was handled in a special way. Since this is
not Vi compatible, this was removed. Use a backslash instead.
@ -1047,6 +1069,11 @@ another register. E.g., yank the text to copy, Visually select the text to
replace and use "0p . You can repeat this as many times as you like, the
unnamed register will be changed each time.
When you use a blockwise Visual mode command and yank only a single line into
a register, a paste on a visual selected area will paste that single line on
each of the selected lines (thus replacing the blockwise selected region by a
block of the pasted line).
*blockwise-register*
If you use a blockwise Visual mode command to get the text into the register,
the block of text will be inserted before ("P") or after ("p") the cursor
@ -1104,6 +1131,8 @@ less than one line (the small delete register is used then). An exception is
made for the delete operator with these movement commands: |%|, |(|, |)|, |`|,
|/|, |?|, |n|, |N|, |{| and |}|. Register "1 is always used then (this is Vi
compatible). The "- register is used as well if the delete is within a line.
Note that these characters may be mapped. E.g. |%| is mapped by the matchit
plugin.
With each successive deletion or change, Vim shifts the previous contents
of register 1 into register 2, 2 into 3, and so forth, losing the previous
contents of register 9.
@ -1502,6 +1531,7 @@ n When formatting text, recognize numbered lists. This actually uses
first line of a paragraph
second line of the same paragraph
third line.
< This also works inside comments, ignoring the comment leader.
v Vi-compatible auto-wrapping in insert mode: Only break a line at a
blank that you have entered during the current insert command. (Note:
this is not 100% Vi compatible. Vi has some "unexpected features" or

View File

@ -1,4 +1,4 @@
*cmdline.txt* For Vim version 7.3. Last change: 2012 Feb 05
*cmdline.txt* For Vim version 7.4. Last change: 2013 Nov 25
VIM REFERENCE MANUAL by Bram Moolenaar
@ -217,7 +217,7 @@ CTRL-\ e {expr} *c_CTRL-\_e*
:return cmd
:endfunc
< This doesn't work recursively, thus not when already editing
an expression.
an expression. But it is possible to use in a mapping.
*c_CTRL-Y*
CTRL-Y When there is a modeless selection, copy the selection into
@ -356,6 +356,10 @@ terminals)
List the recent five entries from all histories: >
:history all -5,
:keepp[atterns] {command} *:keepp* *:keeppatterns*
Execute {command}, without adding anything to the search
history
==============================================================================
2. Command-line completion *cmdline-completion*
@ -714,10 +718,15 @@ three lines: >
Visual Mode and Range *v_:*
{Visual}: Starts a command-line with the Visual selected lines as a
range. The code ":'<,'>" is used for this range, which makes
range. The code `:'<,'>` is used for this range, which makes
it possible to select a similar line from the command-line
history for repeating a command on different Visually selected
lines.
When Visual mode was already ended, a short way to use the
Visual area for a range is `:*`. This requires that "*" does
not appear in 'cpo', see |cpo-star|. Otherwise you will have
to type `:'<,'>`
==============================================================================
5. Ex command-line flags *ex-flags*
@ -749,6 +758,7 @@ characters have a special meaning. These can also be used in the expression
function expand() |expand()|.
% Is replaced with the current file name. *:_%* *c_%*
# Is replaced with the alternate file name. *:_#* *c_#*
This is remembered for every window.
#n (where n is a number) is replaced with *:_#0* *:_#n*
the file name of buffer n. "#0" is the same as "#". *c_#n*
## Is replaced with all names in the argument list *:_##* *c_##*
@ -826,10 +836,11 @@ These modifiers can be given, in this order:
the home directory. If the name is a directory a path
separator is added at the end. For a file name that does not
exist and does not have an absolute path the result is
unpredictable.
unpredictable. On MS-Windows an 8.3 filename is expanded to
the long name.
:8 Converts the path to 8.3 short format (currently only on
win32). Will act on as much of a path that is an existing
path.
MS-Windows). Will act on as much of a path that is an
existing path.
:~ Reduce file name to be relative to the home directory, if
possible. File name is unmodified if it is not below the home
directory.
@ -958,7 +969,7 @@ for the file "$home" in the root directory. A few examples:
\\$home file "\\", followed by expanded $home
==============================================================================
6. Command-line window *cmdline-window* *cmdwin*
7. Command-line window *cmdline-window* *cmdwin*
*command-line-window*
In the command-line window the command line can be edited just like editing
text in any window. It is a special kind of window, because you cannot leave

View File

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

View File

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

View File

@ -1,4 +1,4 @@
*develop.txt* For Vim version 7.3. Last change: 2012 Jan 10
*develop.txt* For Vim version 7.4. Last change: 2013 Apr 27
VIM REFERENCE MANUAL by Bram Moolenaar
@ -20,6 +20,7 @@ code.
Vim is open source software. Everybody is encouraged to contribute to help
improving Vim. For sending patches a context diff "diff -c" is preferred.
Also see http://www.vim.org/tips/tip.php?tip_id=618.
Also see http://vim.wikia.com/wiki/How_to_make_and_submit_a_patch.
==============================================================================
1. Design goals *design-goals*

View File

@ -1,4 +1,4 @@
*diff.txt* For Vim version 7.3. Last change: 2012 May 18
*diff.txt* For Vim version 7.4. Last change: 2013 Sep 20
VIM REFERENCE MANUAL by Bram Moolenaar
@ -86,16 +86,16 @@ diff mode. You could use a construct like this: >
While already in Vim you can start diff mode in three ways.
*E98*
:diffsplit {filename} *:diffs* *:diffsplit*
:diffs[plit] {filename} *:diffs* *:diffsplit*
Open a new window on the file {filename}. The options are set
as for "vimdiff" for the current and the newly opened window.
Also see 'diffexpr'.
*:difft* *:diffthis*
:diffthis Make the current window part of the diff windows. This sets
:difft[his] Make the current window part of the diff windows. This sets
the options like for "vimdiff".
:diffpatch {patchfile} *E816* *:diffp* *:diffpatch*
:diffp[atch] {patchfile} *E816* *:diffp* *:diffpatch*
Use the current buffer, patch it with the diff found in
{patchfile} and open a buffer on the result. The options are
set as for "vimdiff".
@ -123,14 +123,18 @@ 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.
*:diffo* *:diffoff*
:diffoff Switch off diff mode for the current window.
:diffo[ff] Switch off diff mode for the current window. Resets related
options also when 'diff' was not set.
:diffoff! Switch off diff mode for the current window and in all windows
in the current tab page where 'diff' is set.
:diffo[ff]! Switch off diff mode for the current window and in all windows
in the current tab page where 'diff' is set. Resetting
related options only happens in a window that has 'diff' set,
if the current window does not have 'diff' set then no options
in it are changed.
The ":diffoff" command resets the relevant options to their default value.
This may be different from what the values were before diff mode was started,
the old values are not remembered.
The ":diffoff" command resets the relevant options to the values they had when
using |:diffsplit|, |:diffpatch| , |:diffthis|. or starting Vim in diff mode.
Otherwise they are set to their default value:
'diff' off
'scrollbind' off
@ -220,7 +224,7 @@ The diffs are highlighted with these groups:
that parts in the middle that are still the
same are highlighted anyway. Only "iwhite" of
'diffopt' is used here.
|hl-DiffDelete| DiffDelete Deleted lines. Also called filler lines,
|hl-DiffDelete| DiffDelete Deleted lines. Also called filler lines,
because they don't really exist in this
buffer.
@ -333,7 +337,7 @@ diff. This example explains the format that Vim expects: >
The "1a2" item appends the line "bbb".
The "4d4" item deletes the line "111".
The '7c7" item replaces the line "GGG" with "ggg".
The "7c7" item replaces the line "GGG" with "ggg".
When 'diffexpr' is not empty, Vim evaluates it to obtain a diff file in the
format mentioned. These variables are set to the file names used:

View File

@ -1,4 +1,4 @@
*digraph.txt* For Vim version 7.3. Last change: 2011 Jan 15
*digraph.txt* For Vim version 7.4. Last change: 2011 Jan 15
VIM REFERENCE MANUAL by Bram Moolenaar

View File

@ -1,4 +1,4 @@
*editing.txt* For Vim version 7.3. Last change: 2012 Apr 03
*editing.txt* For Vim version 7.4. Last change: 2013 Nov 25
VIM REFERENCE MANUAL by Bram Moolenaar
@ -38,6 +38,7 @@ If there already was a current file name, then that one becomes the alternate
file name. It can be used with "#" on the command line |:_#| and you can use
the |CTRL-^| command to toggle between the current and the alternate file.
However, the alternate file name is not changed when |:keepalt| is used.
An alternate file name is remembered for each window.
*:keepalt* *:keepa*
:keepalt {cmd} Execute {cmd} while keeping the current alternate file
@ -185,12 +186,13 @@ If you want to automatically save the changes without asking, switch on the
that does not work for all commands.
If you want to keep the changed buffer without saving it, switch on the
'hidden' option. See |hidden-buffer|.
'hidden' option. See |hidden-buffer|. Some commands work like this even when
'hidden' is not set, check the help for the command.
==============================================================================
2. Editing a file *edit-a-file*
*:e* *:edit*
*:e* *:edit* *reload*
:e[dit] [++opt] [+cmd] Edit the current file. This is useful to re-edit the
current file, when it has been changed outside of Vim.
This fails when changes have been made to the current
@ -199,7 +201,7 @@ If you want to keep the changed buffer without saving it, switch on the
Also see |++opt| and |+cmd|.
{Vi: no ++opt}
*:edit!*
*:edit!* *discard*
:e[dit]! [++opt] [+cmd]
Edit the current file always. Discard any changes to
the current buffer. This is useful if you want to
@ -377,8 +379,9 @@ command that accepts more than one file name (like ":next file1 file2")
embedded spaces must be escaped with a backslash.
*wildcard* *wildcards*
Wildcards in {file} are expanded. Which wildcards are supported depends on
the system. These are the common ones:
Wildcards in {file} are expanded, but as with file completion, 'wildignore'
and 'suffixes' apply. Which wildcards are supported depends on the system.
These are the common ones:
? matches one character
* matches anything, including nothing
** matches anything, including nothing, recurses into directories
@ -392,7 +395,7 @@ is to use "path\[[]abc]". Then the file "path[abc]" literally.
*starstar-wildcard*
Expanding "**" is possible on Unix, Win32, Mac OS/X and a few other systems.
This allows searching a directory tree. This goes up to 100 directories deep.
Note there are some commands where this works slightly different, see
Note there are some commands where this works slightly differently, see
|file-searching|.
Example: >
:n **/*.txt
@ -422,9 +425,11 @@ You can have the backticks expanded as a Vim expression, instead of an
external command, by using the syntax `={expr}` e.g.: >
:e `=tempname()`
The expression can contain just about anything, thus this can also be used to
avoid the special meaning of '"', '|', '%' and '#'. Names are to be separated
with line breaks. When the result is a |List| then each item is used as a
name. Line breaks also separate names.
avoid the special meaning of '"', '|', '%' and '#'. However, 'wildignore'
does apply like to other wildcards.
If the expression returns a string then names are to be separated with line
breaks. When the result is a |List| then each item is used as a name. Line
breaks also separate names.
*++opt* *[++opt]*
The [++opt] argument can be used to force the value of 'fileformat',
@ -1066,6 +1071,7 @@ The names can be in upper- or lowercase.
If there are other tab pages and quitting the last
window in the current tab page the current tab page is
closed |tab-page|.
Triggers the |QuitPre| autocommand event.
:conf[irm] q[uit] Quit, but give prompt when changes have been made, or
the last file in the argument list has not been
@ -1215,13 +1221,13 @@ For versions of Vim where browsing is not supported, the command is executed
unmodified.
*browsefilter*
For MS Windows, you can modify the filters that are used in the browse dialog.
By setting the g:browsefilter or b:browsefilter variables, you can change the
filters globally or locally to the buffer. The variable is set to a string in
the format "{filter label}\t{pattern};{pattern}\n" where {filter label} is the
text that appears in the "Files of Type" comboBox, and {pattern} is the
pattern which filters the filenames. Several patterns can be given, separated
by ';'.
For MS Windows and GTK, you can modify the filters that are used in the browse
dialog. By setting the g:browsefilter or b:browsefilter variables, you can
change the filters globally or locally to the buffer. The variable is set to
a string in the format "{filter label}\t{pattern};{pattern}\n" where {filter
label} is the text that appears in the "Files of Type" comboBox, and {pattern}
is the pattern which filters the filenames. Several patterns can be given,
separated by ';'.
For Motif the same format is used, but only the very first pattern is actually
used (Motif only offers one pattern, but you can edit it).
@ -1229,7 +1235,7 @@ used (Motif only offers one pattern, but you can edit it).
For example, to have only Vim files in the dialog, you could use the following
command: >
let g:browsefilter="Vim Scripts\t*.vim\nVim Startup Files\t*vimrc\n"
let g:browsefilter = "Vim Scripts\t*.vim\nVim Startup Files\t*vimrc\n"
You can override the filter setting on a per-buffer basis by setting the
b:browsefilter variable. You would most likely set b:browsefilter in a
@ -1239,6 +1245,13 @@ difficult to start editing a file of a different type. To overcome this, you
may want to add "All Files\t*.*\n" as the final filter, so that the user can
still access any desired file.
To avoid setting browsefilter when Vim does not actually support it, you can
use has("browsefilter"): >
if has("browsefilter")
let g:browsefilter = "whatever"
endif
==============================================================================
7. The current directory *current-directory*

View File

@ -1,4 +1,4 @@
*eval.txt* For Vim version 7.3. Last change: 2012 May 18
*eval.txt* For Vim version 7.4. Last change: 2013 Nov 08
VIM REFERENCE MANUAL by Bram Moolenaar
@ -91,8 +91,8 @@ For boolean operators Numbers are used. Zero is FALSE, non-zero is TRUE.
Note that in the command >
:if "foo"
"foo" is converted to 0, which means FALSE. To test for a non-empty string,
use strlen(): >
:if strlen("foo")
use empty(): >
:if !empty("foo")
< *E745* *E728* *E703* *E729* *E730* *E731*
List, Dictionary and Funcref types are not automatically converted.
@ -123,6 +123,7 @@ around the arguments, to invoke the function it refers to. Example: >
:echo Fn()
< *E704* *E705* *E707*
A Funcref variable must start with a capital, "s:", "w:", "t:" or "b:". You
can use "g:" but the following name must still start with a capital. You
cannot have both a Funcref variable and a function with the same name.
A special case is defining a function and directly assigning its Funcref to a
@ -503,7 +504,7 @@ This removes all entries from "dict" with a value not matching 'x'.
Dictionary function ~
*Dictionary-function* *self* *E725*
*Dictionary-function* *self* *E725* *E862*
When a function is defined with the "dict" attribute it can be used in a
special way with a dictionary. Example: >
:function Mylen() dict
@ -759,7 +760,7 @@ of a |List| is different from the original |List|. When using "is" without
a |List| or a |Dictionary| it is equivalent to using "equal", using "isnot"
equivalent to using "not equal". Except that a different type means the
values are different: "4 == '4'" is true, "4 is '4'" is false and "0 is []" is
false and not a error. "is#"/"isnot#" and "is?"/"isnot?" can be used to match
false and not an error. "is#"/"isnot#" and "is?"/"isnot?" can be used to match
and ignore case.
When comparing a String with a Number, the String is converted to a Number,
@ -1150,14 +1151,14 @@ delete all script-local variables: >
: unlet s:[k]
:endfor
<
*buffer-variable* *b:var*
*buffer-variable* *b:var* *b:*
A variable name that is preceded with "b:" is local to the current buffer.
Thus you can have several "b:foo" variables, one for each buffer.
This kind of variable is deleted when the buffer is wiped out or deleted with
|:bdelete|.
One local buffer variable is predefined:
*b:changedtick-variable* *changetick*
*b:changedtick* *changetick*
b:changedtick The total number of changes to the current buffer. It is
incremented for each change. An undo command is also a change
in this case. This can be used to perform an action only when
@ -1167,21 +1168,21 @@ b:changedtick The total number of changes to the current buffer. It is
: call My_Update()
:endif
<
*window-variable* *w:var*
*window-variable* *w:var* *w:*
A variable name that is preceded with "w:" is local to the current window. It
is deleted when the window is closed.
*tabpage-variable* *t:var*
*tabpage-variable* *t:var* *t:*
A variable name that is preceded with "t:" is local to the current tab page,
It is deleted when the tab page is closed. {not available when compiled
without the |+windows| feature}
*global-variable* *g:var*
*global-variable* *g:var* *g:*
Inside functions global variables are accessed with "g:". Omitting this will
access a variable local to a function. But "g:" can also be used in any other
place if you like.
*local-variable* *l:var*
*local-variable* *l:var* *l:*
Inside functions local variables are accessed without prepending anything.
But you can also prepend "l:" if you like. However, without prepending "l:"
you may run into reserved variable names. For example "count". By itself it
@ -1264,7 +1265,7 @@ Note that this means that filetype plugins don't get a different set of script
variables for each buffer. Use local buffer variables instead |b:var|.
Predefined Vim variables: *vim-variable* *v:var*
Predefined Vim variables: *vim-variable* *v:var* *v:*
*v:beval_col* *beval_col-variable*
v:beval_col The number of the column, over which the mouse pointer is.
@ -1297,7 +1298,7 @@ v:beval_winnr The number of the window, over which the mouse pointer is. Only
*v:char* *char-variable*
v:char Argument for evaluating 'formatexpr' and used for the typed
character when using <expr> in an abbreviation |:map-<expr>|.
It is also used by the |InsertCharPre| event.
It is also used by the |InsertCharPre| and |InsertEnter| events.
*v:charconvert_from* *charconvert_from-variable*
v:charconvert_from
@ -1454,6 +1455,13 @@ v:foldend Used for 'foldtext': last line of closed fold.
v:foldstart Used for 'foldtext': first line of closed fold.
Read-only in the |sandbox|. |fold-foldtext|
*v:hlsearch* *hlsearch-variable*
v:hlsearch Variable that determines whether search highlighting is on.
Makes sense only if 'hlsearch' is enabled which requires
|+extra_search|. Setting this variable to zero acts the like
|:nohlsearch| command, setting it to one acts like >
let &hlsearch = &hlsearch
<
*v:insertmode* *insertmode-variable*
v:insertmode Used for the |InsertEnter| and |InsertChange| autocommand
events. Values:
@ -1712,11 +1720,12 @@ bufnr( {expr}) Number Number of the buffer {expr}
bufwinnr( {expr}) Number window number of buffer {expr}
byte2line( {byte}) Number line number at byte count {byte}
byteidx( {expr}, {nr}) Number byte index of {nr}'th char in {expr}
byteidxcomp( {expr}, {nr}) Number byte index of {nr}'th char in {expr}
call( {func}, {arglist} [, {dict}])
any call {func} with arguments {arglist}
ceil( {expr}) Float round {expr} up
changenr() Number current change number
char2nr( {expr}) Number ASCII value of first char in {expr}
char2nr( {expr}[, {utf8}]) Number ASCII/UTF8 value of first char in {expr}
cindent( {lnum}) Number C indent for line {lnum}
clearmatches() none clear all matches
col( {expr}) Number column nr of cursor or mark
@ -1777,7 +1786,8 @@ get( {list}, {idx} [, {def}]) any get item {idx} from {list} or {def}
get( {dict}, {key} [, {def}]) any get item {key} from {dict} or {def}
getbufline( {expr}, {lnum} [, {end}])
List lines {lnum} to {end} of buffer {expr}
getbufvar( {expr}, {varname}) any variable {varname} in buffer {expr}
getbufvar( {expr}, {varname} [, {def}])
any variable {varname} in buffer {expr}
getchar( [expr]) Number get one character from the user
getcharmod( ) Number modifiers for the last typed character
getcmdline() String return the current command-line
@ -1798,12 +1808,14 @@ getpos( {expr}) List position of cursor, mark, etc.
getqflist() List list of quickfix items
getreg( [{regname} [, 1]]) String contents of register
getregtype( [{regname}]) String type of register
gettabvar( {nr}, {varname}) any variable {varname} in tab {nr}
gettabwinvar( {tabnr}, {winnr}, {name})
gettabvar( {nr}, {varname} [, {def}])
any variable {varname} in tab {nr} or {def}
gettabwinvar( {tabnr}, {winnr}, {name} [, {def}])
any {name} in {winnr} in tab page {tabnr}
getwinposx() Number X coord in pixels of GUI Vim window
getwinposy() Number Y coord in pixels of GUI Vim window
getwinvar( {nr}, {varname}) any variable {varname} in window {nr}
getwinvar( {nr}, {varname} [, {def}])
any variable {varname} in window {nr}
glob( {expr} [, {nosuf} [, {list}]])
any expand file wildcards in {expr}
globpath( {path}, {expr} [, {flag}])
@ -1873,13 +1885,15 @@ mkdir( {name} [, {path} [, {prot}]])
mode( [expr]) String current editing mode
mzeval( {expr}) any evaluate |MzScheme| expression
nextnonblank( {lnum}) Number line nr of non-blank line >= {lnum}
nr2char( {expr}) String single char with ASCII value {expr}
nr2char( {expr}[, {utf8}]) String single char with ASCII/UTF8 value {expr}
or( {expr}, {expr}) Number bitwise OR
pathshorten( {expr}) String shorten directory names in a path
pow( {x}, {y}) Float {x} to the power of {y}
prevnonblank( {lnum}) Number line nr of non-blank line <= {lnum}
printf( {fmt}, {expr1}...) String format text
pumvisible() Number whether popup menu is visible
pyeval( {expr}) any evaluate |Python| expression
py3eval( {expr}) any evaluate |python3| expression
range( {expr} [, {max} [, {stride}]])
List items from {expr} to {max}
readfile( {fname} [, {binary} [, {max}]])
@ -1901,6 +1915,10 @@ repeat( {expr}, {count}) String repeat {expr} {count} times
resolve( {filename}) String get filename a shortcut points to
reverse( {list}) List reverse {list} in-place
round( {expr}) Float round off {expr}
screenattr( {row}, {col}) Number attribute at screen position
screenchar( {row}, {col}) Number character at screen position
screencol() Number current cursor column
screenrow() Number current cursor row
search( {pattern} [, {flags} [, {stopline} [, {timeout}]]])
Number search for {pattern}
searchdecl( {name} [, {global} [, {thisblock}]])
@ -1927,9 +1945,11 @@ settabvar( {nr}, {varname}, {val}) set {varname} in tab page {nr} to {val}
settabwinvar( {tabnr}, {winnr}, {varname}, {val}) set {varname} in window
{winnr} in tab page {tabnr} to {val}
setwinvar( {nr}, {varname}, {val}) set {varname} in window {nr} to {val}
sha256( {string}) String SHA256 checksum of {string}
shellescape( {string} [, {special}])
String escape {string} for use as shell
command argument
shiftwidth() Number effective value of 'shiftwidth'
simplify( {filename}) String simplify filename as much as possible
sin( {expr}) Float sine of {expr}
sinh( {expr}) Float hyperbolic sine of {expr}
@ -1987,6 +2007,7 @@ undotree() List undo file tree
values( {dict}) List values in {dict}
virtcol( {expr}) Number screen column of cursor or mark
visualmode( [expr]) String last visual mode used
wildmenumode() Number whether 'wildmenu' mode is active
winbufnr( {nr}) Number buffer number of window {nr}
wincol() Number window column of the cursor
winheight( {nr}) Number height of window {nr}
@ -2248,7 +2269,10 @@ byteidx({expr}, {nr}) *byteidx()*
{expr}. Use zero for the first character, it returns zero.
This function is only useful when there are multibyte
characters, otherwise the returned value is equal to {nr}.
Composing characters are counted as a separate character.
Composing characters are not counted separately, their byte
length is added to the preceding base character. See
|byteidxcomp()| below for counting composing characters
separately.
Example : >
echo matchstr(str, ".", byteidx(str, 3))
< will display the fourth character. Another way to do the
@ -2257,7 +2281,20 @@ byteidx({expr}, {nr}) *byteidx()*
echo strpart(s, 0, byteidx(s, 1))
< If there are less than {nr} characters -1 is returned.
If there are exactly {nr} characters the length of the string
is returned.
in bytes is returned.
byteidxcomp({expr}, {nr}) *byteidxcomp()*
Like byteidx(), except that a composing character is counted
as a separate character. Example: >
let s = 'e' . nr2char(0x301)
echo byteidx(s, 1)
echo byteidxcomp(s, 1)
echo byteidxcomp(s, 2)
< The first and third echo result in 3 ('e' plus composing
character is 3 bytes), the second echo results in 1 ('e' is
one byte).
Only works different from byteidx() when 'encoding' is set to
a Unicode encoding.
call({func}, {arglist} [, {dict}]) *call()* *E699*
Call function {func} with the items in |List| {arglist} as
@ -2289,14 +2326,16 @@ changenr() *changenr()*
redo it is the number of the redone change. After undo it is
one less than the number of the undone change.
char2nr({expr}) *char2nr()*
char2nr({expr}[, {utf8}]) *char2nr()*
Return number value of the first char in {expr}. Examples: >
char2nr(" ") returns 32
char2nr("ABC") returns 65
< The current 'encoding' is used. Example for "utf-8": >
< When {utf8} is omitted or zero, the current 'encoding' is used.
Example for "utf-8": >
char2nr("<22>") returns 225
char2nr("<22>"[0]) returns 195
< A combining character is a separate character.
< With {utf8} set to 1, always treat as utf-8 characters.
A combining character is a separate character.
|nr2char()| does the opposite.
cindent({lnum}) *cindent()*
@ -2571,6 +2610,8 @@ delete({fname}) *delete()*
which is 0 if the file was deleted successfully, and non-zero
when the deletion failed.
Use |remove()| to delete an item from a |List|.
To delete a line from the buffer use |:delete|. Use |:exe|
when the line number is in a variable.
*did_filetype()*
did_filetype() Returns non-zero when autocommands are being executed and the
@ -2759,7 +2800,8 @@ expand({expr} [, {nosuf} [, {list}]]) *expand()*
file name contains a space]
If the expansion fails, the result is an empty string. A name
for a non-existing file is not included.
for a non-existing file is not included, unless {expr} does
not start with '%', '#' or '<', see below.
When {expr} starts with '%', '#' or '<', the expansion is done
like for the |cmdline-special| variables with their associated
@ -3134,7 +3176,7 @@ getbufline({expr}, {lnum} [, {end}])
Example: >
:let lines = getbufline(bufnr("myfile"), 1, "$")
getbufvar({expr}, {varname}) *getbufvar()*
getbufvar({expr}, {varname} [, {def}]) *getbufvar()*
The result is the value of option or local buffer variable
{varname} in buffer {expr}. Note that the name without "b:"
must be used.
@ -3144,8 +3186,8 @@ getbufvar({expr}, {varname}) *getbufvar()*
doesn't work for a global variable, window-local variable or
window-local option.
For the use of {expr}, see |bufname()| above.
When the buffer or variable doesn't exist an empty string is
returned, there is no error message.
When the buffer or variable doesn't exist {def} or an empty
string is returned, there is no error message.
Examples: >
:let bufmodified = getbufvar(1, "&mod")
:echo "todo myvar = " . getbufvar("todo", "myvar")
@ -3286,8 +3328,9 @@ getfperm({fname}) *getfperm()*
"rwx" flags represent, in turn, the permissions of the owner
of the file, the group the file belongs to, and other users.
If a user does not have a given permission the flag for this
is replaced with the string "-". Example: >
is replaced with the string "-". Examples: >
:echo getfperm("/etc/passwd")
:echo getfperm(expand("~/.vimrc"))
< This will hopefully (from a security point of view) display
the string "rw-r--r--" or even "rw-------".
@ -3421,26 +3464,30 @@ getregtype([{regname}]) *getregtype()*
<CTRL-V> is one character with value 0x16.
If {regname} is not specified, |v:register| is used.
gettabvar({tabnr}, {varname}) *gettabvar()*
gettabvar({tabnr}, {varname} [, {def}]) *gettabvar()*
Get the value of a tab-local variable {varname} in tab page
{tabnr}. |t:var|
Tabs are numbered starting with one.
Note that the name without "t:" must be used.
When the tab or variable doesn't exist {def} or an empty
string is returned, there is no error message.
gettabwinvar({tabnr}, {winnr}, {varname}) *gettabwinvar()*
gettabwinvar({tabnr}, {winnr}, {varname} [, {def}]) *gettabwinvar()*
Get the value of window-local variable {varname} in window
{winnr} in tab page {tabnr}.
When {varname} starts with "&" get the value of a window-local
option.
When {varname} is empty a dictionary with all window-local
variables is returned.
Note that {varname} must be the name without "w:".
Tabs are numbered starting with one. For the current tabpage
use |getwinvar()|.
When {winnr} is zero the current window is used.
This also works for a global option, buffer-local option and
window-local option, but it doesn't work for a global variable
or buffer-local variable.
When {varname} is empty a dictionary with all window-local
variables is returned.
Note that {varname} must be the name without "w:".
When the tab, window or variable doesn't exist {def} or an
empty string is returned, there is no error message.
Examples: >
:let list_is_on = gettabwinvar(1, 2, '&list')
:echo "myvar = " . gettabwinvar(3, 1, 'myvar')
@ -3455,7 +3502,7 @@ getwinposy() The result is a Number, which is the Y coordinate in pixels of
the top of the GUI Vim window. The result will be -1 if the
information is not available.
getwinvar({winnr}, {varname}) *getwinvar()*
getwinvar({winnr}, {varname} [, {def}]) *getwinvar()*
Like |gettabwinvar()| for the current tabpage.
Examples: >
:let list_is_on = getwinvar(2, '&list')
@ -3565,6 +3612,9 @@ histadd({history}, {item}) *histadd()*
"search" or "/" search pattern history
"expr" or "=" typed expression history
"input" or "@" input line history
"debug" or ">" debug command history
The {history} string does not need to be the whole name, one
character is sufficient.
If {item} does already exist in the history, it will be
shifted to become the newest entry.
The result is a Number: 1 if the operation was successful,
@ -3748,10 +3798,10 @@ inputdialog({prompt} [, {text} [, {cancelreturn}]]) *inputdialog()*
Like |input()|, but when the GUI is running and text dialogs
are supported, a dialog window pops up to input the text.
Example: >
:let n = inputdialog("value for shiftwidth", &sw)
:if n != ""
: let &sw = n
:endif
:let n = inputdialog("value for shiftwidth", shiftwidth())
:if n != ""
: let &sw = n
:endif
< When the dialog is cancelled {cancelreturn} is returned. When
omitted an empty string is returned.
Hitting <Enter> works like pressing the OK button. Hitting
@ -4033,7 +4083,7 @@ map({expr}, {string}) *map()*
The operation is done in-place. If you want a |List| or
|Dictionary| to remain unmodified make a copy first: >
:let tlist = map(copy(mylist), ' & . "\t"')
:let tlist = map(copy(mylist), ' v:val . "\t"')
< Returns {expr}, the |List| or |Dictionary| that was filtered.
When an error is encountered while evaluating {string} no
@ -4185,6 +4235,9 @@ matchadd({group}, {pattern}[, {priority}[, {id}]])
"match"). It will be highlighted with {group}. Returns an
identification number (ID), which can be used to delete the
match using |matchdelete()|.
Matching is case sensitive and magic, unless case sensitivity
or magicness are explicitly overridden in {pattern}. The
'magic', 'smartcase' and 'ignorecase' options are not used.
The optional {priority} argument assigns a priority to the
match. A match with a high priority will have its
@ -4362,14 +4415,16 @@ nextnonblank({lnum}) *nextnonblank()*
below it, zero is returned.
See also |prevnonblank()|.
nr2char({expr}) *nr2char()*
nr2char({expr}[, {utf8}]) *nr2char()*
Return a string with a single character, which has the number
value {expr}. Examples: >
nr2char(64) returns "@"
nr2char(32) returns " "
< The current 'encoding' is used. Example for "utf-8": >
< When {utf8} is omitted or zero, the current 'encoding' is used.
Example for "utf-8": >
nr2char(300) returns I with bow character
< Note that a NUL character in the file is specified with
< With {utf8} set to 1, always return utf-8 characters.
Note that a NUL character in the file is specified with
nr2char(10), because NULs are represented with newline
characters. nr2char(0) is a real NUL and terminates the
string, thus results in an empty string.
@ -4444,6 +4499,7 @@ printf({fmt}, {expr1} ...) *printf()*
Often used items are:
%s string
%6S string right-aligned in 6 display cells
%6s string right-aligned in 6 bytes
%.9s string truncated to 9 bytes
%c single byte
@ -4558,6 +4614,10 @@ printf({fmt}, {expr1} ...) *printf()*
s The text of the String argument is used. If a
precision is specified, no more bytes than the number
specified are used.
S The text of the String argument is used. If a
precision is specified, no more display cells than the
number specified are used. Without the |+multi_byte|
feature works just like 's'.
*printf-f* *E807*
f The Float argument is converted into a string of the
@ -4610,6 +4670,29 @@ pumvisible() *pumvisible()*
This can be used to avoid some things that would remove the
popup menu.
*E860*
py3eval({expr}) *py3eval()*
Evaluate Python expression {expr} and return its result
converted to Vim data structures.
Numbers and strings are returned as they are (strings are
copied though, unicode strings are additionally converted to
'encoding').
Lists are represented as Vim |List| type.
Dictionaries are represented as Vim |Dictionary| type with
keys converted to strings.
{only available when compiled with the |+python3| feature}
*E858* *E859*
pyeval({expr}) *pyeval()*
Evaluate Python expression {expr} and return its result
converted to Vim data structures.
Numbers and strings are returned as they are (strings are
copied though).
Lists are represented as Vim |List| type.
Dictionaries are represented as Vim |Dictionary| type,
non-string keys result in error.
{only available when compiled with the |+python| feature}
*E726* *E727*
range({expr} [, {max} [, {stride}]]) *range()*
Returns a |List| with Numbers:
@ -4837,15 +4920,49 @@ round({expr}) *round()*
echo round(-4.5)
< -5.0
{only available when compiled with the |+float| feature}
screenattr(row, col) *screenattr()*
Like screenchar(), but return the attribute. This is a rather
arbitrary number that can only be used to compare to the
attribute at other positions.
screenchar(row, col) *screenchar()*
The result is a Number, which is the character at position
[row, col] on the screen. This works for every possible
screen position, also status lines, window separators and the
command line. The top left position is row one, column one
The character excludes composing characters. For double-byte
encodings it may only be the first byte.
This is mainly to be used for testing.
Returns -1 when row or col is out of range.
screencol() *screencol()*
The result is a Number, which is the current screen column of
the cursor. The leftmost column has number 1.
This function is mainly used for testing.
Note: Always returns the current screen column, thus if used
in a command (e.g. ":echo screencol()") it will return the
column inside the command line, which is 1 when the command is
executed. To get the cursor position in the file use one of
the following mappings: >
nnoremap <expr> GG ":echom ".screencol()."\n"
nnoremap <silent> GG :echom screencol()<CR>
<
screenrow() *screenrow()*
The result is a Number, which is the current screen row of the
cursor. The top line has number one.
This function is mainly used for testing.
Note: Same restrictions as with |screencol()|.
search({pattern} [, {flags} [, {stopline} [, {timeout}]]]) *search()*
Search for regexp pattern {pattern}. The search starts at the
cursor position (you can use |cursor()| to set it).
When a match has been found its line number is returned.
If there is no match a 0 is returned and the cursor doesn't
move. No error message is given.
When a match has been found its line number is returned.
{flags} is a String, which can contain these character flags:
'b' search backward instead of forward
@ -5224,8 +5341,9 @@ setreg({regname}, {value} [,{options}])
If {options} contains no register settings, then the default
is to use character mode unless {value} ends in a <NL>.
Setting the '=' register is not possible.
Returns zero for success, non-zero for failure.
Setting the '=' register is not possible, but you can use >
:let @= = var_expr
< Returns zero for success, non-zero for failure.
Examples: >
:call setreg(v:register, @*)
@ -5248,8 +5366,6 @@ settabvar({tabnr}, {varname}, {val}) *settabvar()*
|t:var|
Note that the variable name without "t:" must be used.
Tabs are numbered starting with one.
Vim briefly goes to the tab page {tabnr}, this may trigger
TabLeave and TabEnter autocommands.
This function is not available in the |sandbox|.
settabwinvar({tabnr}, {winnr}, {varname}, {val}) *settabwinvar()*
@ -5262,8 +5378,6 @@ settabwinvar({tabnr}, {winnr}, {varname}, {val}) *settabwinvar()*
doesn't work for a global or local buffer variable.
For a local buffer option the global value is unchanged.
Note that the variable name without "w:" must be used.
Vim briefly goes to the tab page {tabnr}, this may trigger
TabLeave and TabEnter autocommands.
Examples: >
:call settabwinvar(1, 1, "&list", 0)
:call settabwinvar(3, 2, "myvar", "foobar")
@ -5275,6 +5389,11 @@ setwinvar({nr}, {varname}, {val}) *setwinvar()*
:call setwinvar(1, "&list", 0)
:call setwinvar(2, "myvar", "foobar")
sha256({string}) *sha256()*
Returns a String with 64 hex charactes, which is the SHA256
checksum of {string}.
{only available when compiled with the |+cryptv| feature}
shellescape({string} [, {special}]) *shellescape()*
Escape {string} for use as a shell command argument.
On MS-Windows and MS-DOS, when 'shellslash' is not set, it
@ -5301,6 +5420,23 @@ shellescape({string} [, {special}]) *shellescape()*
:call system("chmod +w -- " . shellescape(expand("%")))
shiftwidth() *shiftwidth()*
Returns the effective value of 'shiftwidth'. This is the
'shiftwidth' value unless it is zero, in which case it is the
'tabstop' value. To be backwards compatible in indent
plugins, use this: >
if exists('*shiftwidth')
func s:sw()
return shiftwidth()
endfunc
else
func s:sw()
return &sw
endfunc
endif
< And then use s:sw() instead of &sw.
simplify({filename}) *simplify()*
Simplify the file name as much as possible without changing
the meaning. Shortcuts (on MS-Windows) or symbolic links (on
@ -5430,7 +5566,8 @@ split({expr} [, {pattern} [, {keepempty}]]) *split()*
empty each white-separated sequence of characters becomes an
item.
Otherwise the string is split where {pattern} matches,
removing the matched characters.
removing the matched characters. 'ignorecase' is not used
here, add \c to ignore case. |/\c|
When the first or last item is empty it is omitted, unless the
{keepempty} argument is given and it's non-zero.
Other empty items are kept when {pattern} matches at least one
@ -5640,8 +5777,10 @@ substitute({expr}, {pat}, {sub}, {flags}) *substitute()*
This works like the ":substitute" command (without any flags).
But the matching with {pat} is always done like the 'magic'
option is set and 'cpoptions' is empty (to make scripts
portable). 'ignorecase' is still relevant. 'smartcase' is
not used. See |string-match| for how {pat} is used.
portable). 'ignorecase' is still relevant, use |/\c| or |/\C|
if you want to ignore or match case and ignore 'ignorecase'.
'smartcase' is not used. See |string-match| for how {pat} is
used.
A "~" in {sub} is not replaced with the previous {sub}.
Note that some codes in {sub} have a special meaning
@ -5773,6 +5912,9 @@ system({expr} [, {input}]) *system()* *E677*
< To make the result more system-independent, the shell output
is filtered to replace <CR> with <NL> for Macintosh, and
<CR><NL> with <NL> for DOS-like systems.
To avoid the string being truncated at a NUL, all NUL
characters are replaced with SOH (0x01).
The command executed is constructed using several options:
'shell' 'shellcmdflag' 'shellxquote' {expr} 'shellredir' {tmp} 'shellxquote'
({tmp} is an automatically generated file name).
@ -5862,8 +6004,9 @@ taglist({expr}) *taglist()*
If there are no matching tags, then an empty list is returned.
To get an exact tag match, the anchors '^' and '$' should be
used in {expr}. Refer to |tag-regexp| for more information
about the tag search regular expression pattern.
used in {expr}. This also make the function work faster.
Refer to |tag-regexp| for more information about the tag
search regular expression pattern.
Refer to |'tags'| for information about how the tags file is
located by Vim. Refer to |tags-file-format| for the format of
@ -6074,6 +6217,18 @@ visualmode([expr]) *visualmode()*
Dictionary or Float is not a Number or String, thus does not
cause the mode to be cleared.
wildmenumode() *wildmenumode()*
Returns non-zero when the wildmenu is active and zero
otherwise. See 'wildmenu' and 'wildmode'.
This can be used in mappings to handle the 'wildcharm' option
gracefully. (Makes only sense with |mapmode-c| mappings).
For example to make <c-j> work like <down> in wildmode, use: >
:cnoremap <expr> <C-j> wildmenumode() ? "\<Down>\<Tab>" : "\<c-j>"
<
(Note, this needs the 'wildcharm' option set appropriately).
*winbufnr()*
winbufnr({nr}) The result is a Number, which is the number of the buffer
associated with window {nr}. When {nr} is zero, the number of
@ -6106,8 +6261,9 @@ winline() The result is a Number, which is the screen line of the cursor
winnr([{arg}]) The result is a Number, which is the number of the current
window. The top window has number 1.
When the optional argument is "$", the number of the
last window is returned (the window count).
When the optional argument is "#", the number of the last
last window is returned (the window count). >
let window_count = winnr('$')
< When the optional argument is "#", the number of the last
accessed window is returned (where |CTRL-W_p| goes to).
If there is no previous window or it is in another tab page 0
is returned.
@ -6209,6 +6365,7 @@ There are three types of features:
< Note that it's possible for patch 147 to be omitted even though 148 is
included.
acl Compiled with |ACL| support.
all_builtin_terms Compiled with all builtin terminals enabled.
amiga Amiga version of Vim.
arabic Compiled with Arabic support |Arabic|.
@ -6219,6 +6376,7 @@ balloon_multiline GUI supports multiline balloons.
beos BeOS version of Vim.
browse Compiled with |:browse| support, and browse() will
work.
browsefilter Compiled with support for |browsefilter|.
builtin_terms Compiled with some builtin terminals.
byte_offset Compiled with support for 'o' in 'statusline'
cindent Compiled with 'cindent' support.
@ -6296,6 +6454,7 @@ mouse_gpm Compiled with support for gpm (Linux console mouse)
mouse_netterm Compiled with support for netterm mouse.
mouse_pterm Compiled with support for qnx pterm mouse.
mouse_sysmouse Compiled with support for sysmouse (*BSD console mouse)
mouse_sgr Compiled with support for sgr mouse.
mouse_urxvt Compiled with support for urxvt mouse.
mouse_xterm Compiled with support for xterm mouse.
mouseshape Compiled with support for 'mouseshape'.
@ -6373,7 +6532,9 @@ windows Compiled with support for more than one window.
writebackup Compiled with 'writebackup' default on.
xfontset Compiled with X fontset support |xfontset|.
xim Compiled with X input method support |xim|.
xpm_w32 Compiled with pixmap support for Win32.
xpm Compiled with pixmap support.
xpm_w32 Compiled with pixmap support for Win32. (Only for
backward compatibility. Use "xpm" instead.)
xsmp Compiled with X session management support.
xsmp_interact Compiled with interactive X session management support.
xterm_clipboard Compiled with support for xterm clipboard.
@ -6476,6 +6637,8 @@ See |:verbose-cmd| for more information.
is excluded, ":{range}call" will call the function for
each line in the range, with the cursor on the start
of each line. See |function-range-example|.
The cursor is still moved to the first line of the
range, as is the case with all Ex commands.
When the [abort] argument is added, the function will
abort as soon as an error is detected.

View File

@ -1,4 +1,4 @@
.TH EVIM 1 "16 f<>vrier 2002 February 16"
.TH EVIM 1 "16 f<>vrier 2002"
.SH NAME
evim \- <20> Easy Vim <20>, <20>dite un fichier avec Vim sans utiliser les modes
.SH SYNOPSIS
@ -54,4 +54,4 @@ Voir le menu Aide/Remerciements ou ":help credits" dans
.SH TRADUCTION
Cette page de manuel a <20>t<EFBFBD> traduite David Blanchet.
<david.blanchet@free.fr> 2005-03-26.
Mise <20> jour 2012-05-06, Dominique Pell<6C> <dominique.pelle@gmail.com>
Mise <20> jour 2013-05-10, Dominique Pell<6C> <dominique.pelle@gmail.com>

View File

@ -1,4 +1,4 @@
.TH EVIM 1 "16 février 2002 February 16"
.TH EVIM 1 "16 février 2002"
.SH NAME
evim \- « Easy Vim », édite un fichier avec Vim sans utiliser les modes
.SH SYNOPSIS
@ -54,4 +54,4 @@ Voir le menu Aide/Remerciements ou ":help credits" dans
.SH TRADUCTION
Cette page de manuel a été traduite David Blanchet.
<david.blanchet@free.fr> 2005-03-26.
Mise à jour 2012-05-06, Dominique Pellé <dominique.pelle@gmail.com>
Mise à jour 2013-05-10, Dominique Pellé <dominique.pelle@gmail.com>

View File

@ -0,0 +1,51 @@
.TH EVIM 1 "2002 February 16"
.SH 名前
evim \- easy Vim, モードレスエディタ Vim
.SH 書式
.br
.B evim
[options] [file ..]
.br
.B eview
.SH 説明
.B eVim
.B Vim
を起動して、モードレスエディタとして動作するためのオプションを設定します。
Vim の動作が point-and-click エディタのような動作になります。
MS-Windows のメモ帳のような動作です。
.B eVim
は常に GUI で起動し、メニューとツールバーを表示します。
.PP
どうしても Vim の操作に馴染めない場合に使ってください。
編集効率は下がります。
.PP
.B eview
は同様に、読み込み専用モードで起動します。evim \-R と同じです。
.PP
引数や Vim についての詳細は vim(1) を参照してください。
.PP
オプション 'insertmode' が設定され、テキストを直接、入力できるようになりま
す。
.br
コピーとペーストのキー操作が MS-Windows と同じになるように、マップが設定され
ます。
CTRL-X が切り取り、CTRL-C がコピー、CTRL-V がペーストです。
標準の CTRL-V の操作は CTRL-Q に割り当てられます。
.SH オプション
vim(1) を参照してください。
.SH ファイル
.TP 15
/usr/local/lib/vim/evim.vim
eVim の初期化スクリプト。
.SH 別名
evim は "gumbies のための Vim" とも呼ばれています。
evim を使っているあなたはきっと、頭にハンカチをかぶっているのです。
(訳注: gumbies は Monty Python に登場するおもしろ集団。ハンカチをかぶっ
ている。)
.SH 関連項目
vim(1)
.SH 著者
.B Vim
のほとんどの機能は Bram Moolenaar が開発し、多くの人が協力しました。
メニューの Help/Credits を参照してください。

View File

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

View File

@ -1,4 +1,4 @@
*filetype.txt* For Vim version 7.3. Last change: 2011 Jun 19
*filetype.txt* For Vim version 7.4. Last change: 2013 May 25
VIM REFERENCE MANUAL by Bram Moolenaar
@ -603,7 +603,7 @@ Since the text for this plugin is rather long it has been put in a separate
file: |ft_sql.txt|.
TEX *ft-tex-plugin*
TEX *ft-tex-plugin* *g:tex_flavor*
If the first line of a *.tex file has the form >
%&<format>

View File

@ -1,4 +1,4 @@
*fold.txt* For Vim version 7.3. Last change: 2010 May 13
*fold.txt* For Vim version 7.4. Last change: 2010 May 13
VIM REFERENCE MANUAL by Bram Moolenaar

View File

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

View File

@ -1,4 +1,4 @@
*ft_sql.txt* For Vim version 7.3. Last change: 2010 Jul 20
*ft_sql.txt* For Vim version 7.4. Last change: 2013 May 15
by David Fishburn
@ -349,6 +349,7 @@ may not work properly on all platforms: >
The static maps (which are based on the syntax highlight groups) follow this
format: >
imap <buffer> <C-C>k <C-\><C-O>:call sqlcomplete#Map('sqlKeyword')<CR><C-X><C-O>
imap <buffer> <C-C>k <C-\><C-O>:call sqlcomplete#Map('sqlKeyword\w*')<CR><C-X><C-O>
This command breaks down as: >
imap - Create an insert map
@ -369,6 +370,9 @@ This command breaks down as: >
command while editing a SQL file.
'sqlKeyword' - Display the items for the sqlKeyword highlight
group
'sqlKeyword\w*' - A second option available with Vim 7.4 which
uses a regular expression to determine which
syntax groups to use
)<CR> - Execute the :let command
<C-X><C-O> - Trigger the standard omni completion key stroke.
Passing in 'sqlKeyword' instructs the SQL
@ -435,7 +439,7 @@ the space bar):
of columns, you can press <Left>, this will
replace the column list with the list of tables.
- This allows you to quickly drill down into a
table to view it's columns and back again.
table to view its columns and back again.
- <Right> and <Left> can be also be chosen via
your |.vimrc| >
let g:ftplugin_sql_omni_key_right = '<Right>'
@ -645,7 +649,7 @@ your |vimrc|: >
- When completing tables, procedure or views and using dbext.vim 3.00
or higher the list of objects will also include the owner name.
When completing these objects and omni_sql_include_owner is enabled
the owner name will be be replaced. >
the owner name will be replaced. >
omni_sql_precache_syntax_groups
< - Default:

View File

@ -1,4 +1,4 @@
*gui.txt* For Vim version 7.3. Last change: 2011 Jul 22
*gui.txt* For Vim version 7.4. Last change: 2013 Jun 12
VIM REFERENCE MANUAL by Bram Moolenaar
@ -93,10 +93,16 @@ and initialize other things that you may want to set up differently from the
terminal version.
Recommended place for your personal GUI initializations:
Unix $HOME/.gvimrc
OS/2 $HOME/.gvimrc or $VIM/.gvimrc
MS-DOS and Win32 $HOME/_gvimrc or $VIM/_gvimrc
Amiga s:.gvimrc or $VIM/.gvimrc
Unix $HOME/.gvimrc or $HOME/.vim/gvimrc
OS/2 $HOME/.gvimrc, $HOME/vimfiles/gvimrc
or $VIM/.gvimrc
MS-DOS and Win32 $HOME/_gvimrc, $HOME/vimfiles/gvimrc
or $VIM/_gvimrc
Amiga s:.gvimrc, home:.gvimrc, home:vimfiles:gvimrc
or $VIM/.gvimrc
The personal initialization files are searched in the order specified above
and only the first one that is found is read.
There are a number of options which only have meaning in the GUI version of
Vim. These are 'guicursor', 'guifont', 'guipty' and 'guioptions'. They are

View File

@ -1,4 +1,4 @@
*gui_w16.txt* For Vim version 7.3. Last change: 2005 Mar 29
*gui_w16.txt* For Vim version 7.4. Last change: 2005 Mar 29
VIM REFERENCE MANUAL by Bram Moolenaar
@ -16,7 +16,7 @@ Vim's Graphical User Interface *gui-w16* *win16-gui*
Other relevant documentation:
|gui.txt| For generic items of the GUI.
|os_msdos.txt| For items common to DOS and Windows.
|os_msdos.txt| For items common to DOS and Windows.
|gui_w32.txt| Some items here are also applicable to the Win16 version.
{Vi does not have a Windows GUI}

View File

@ -1,4 +1,4 @@
*gui_w32.txt* For Vim version 7.3. Last change: 2011 Jul 23
*gui_w32.txt* For Vim version 7.4. Last change: 2012 Aug 04
VIM REFERENCE MANUAL by Bram Moolenaar
@ -17,7 +17,7 @@ Vim's Win32 Graphical User Interface *gui-w32* *win32-gui*
Other relevant documentation:
|gui.txt| For generic items of the GUI.
|os_win32.txt| For Win32 specific items.
|os_win32.txt| For Win32 specific items.
{Vi does not have a Windows GUI}
@ -489,4 +489,16 @@ to:
And add gvim to the list of applications. This problem only appears to happen
with the Intellimouse driver 2.2 and when "Universal Scrolling" is turned on.
XPM support *w32-xpm-support*
Gvim can be build on MS-Windows with support for XPM files. |+xpm_w32|
See the Make_mvc.mak file for instructions, search for XPM.
To try out if XPM support works do this: >
:help
:exe 'sign define vimxpm icon=' . $VIMRUNTIME . '\\vim16x16.xpm'
:exe 'sign place 1 line=1 name=vimxpm file=' . expand('%:p')
<
vim:tw=78:sw=4:ts=8:ft=help:norl:

View File

@ -1,4 +1,4 @@
*gui_x11.txt* For Vim version 7.3. Last change: 2011 Sep 14
*gui_x11.txt* For Vim version 7.4. Last change: 2011 Sep 14
VIM REFERENCE MANUAL by Bram Moolenaar

View File

@ -1,4 +1,4 @@
*hangulin.txt* For Vim version 7.3. Last change: 2009 Jun 24
*hangulin.txt* For Vim version 7.4. Last change: 2009 Jun 24
VIM REFERENCE MANUAL by Chi-Deok Hwang and Sung-Hyun Nam

View File

@ -1,4 +1,4 @@
*hebrew.txt* For Vim version 7.3. Last change: 2007 Jun 14
*hebrew.txt* For Vim version 7.4. Last change: 2007 Jun 14
VIM REFERENCE MANUAL by Ron Aaron (and Avner Lottem)
@ -93,7 +93,7 @@ Details
This is also the keymap when 'keymap=hebrew' is set. The advantage of
'keymap' is that it works properly when using UTF8, e.g. it inserts the
correct characters; 'hkmap' does not. The 'keymap' keyboard can also
insert niqud and te`amim. To see what those mappings are,look at the
insert niqud and te`amim. To see what those mappings are, look at the
keymap file 'hebrew.vim' etc.

View File

@ -1,4 +1,4 @@
*help.txt* For Vim version 7.3. Last change: 2010 Jul 20
*help.txt* For Vim version 7.4. Last change: 2012 Dec 06
VIM - main help file
k
@ -195,12 +195,12 @@ Remarks about specific systems ~
*standard-plugin-list*
Standard plugins ~
|pi_getscript.txt| Downloading latest version of Vim scripts
|pi_gzip.txt| Reading and writing compressed files
|pi_netrw.txt| Reading and writing files over a network
|pi_paren.txt| Highlight matching parens
|pi_tar.txt| Tar file explorer
|pi_gzip.txt| Reading and writing compressed files
|pi_netrw.txt| Reading and writing files over a network
|pi_paren.txt| Highlight matching parens
|pi_tar.txt| Tar file explorer
|pi_vimball.txt| Create a self-installing Vim script
|pi_zip.txt| Zip archive explorer
|pi_zip.txt| Zip archive explorer
LOCAL ADDITIONS: *local-additions*

View File

@ -1,4 +1,4 @@
*helphelp.txt* For Vim version 7.3. Last change: 2012 May 18
*helphelp.txt* For Vim version 7.4. Last change: 2012 Nov 28
VIM REFERENCE MANUAL by Bram Moolenaar
@ -194,11 +194,12 @@ command: >
*E154* *E150* *E151* *E152* *E153* *E670*
:helpt[ags] [++t] {dir}
Generate the help tags file(s) for directory {dir}.
All "*.txt" and "*.??x" files in the directory are
scanned for a help tag definition in between stars.
The "*.??x" files are for translated docs, they
generate the "tags-??" file, see |help-translated|.
The generated tags files are sorted.
All "*.txt" and "*.??x" files in the directory and
sub-directories are scanned for a help tag definition
in between stars. The "*.??x" files are for
translated docs, they generate the "tags-??" file, see
|help-translated|. The generated tags files are
sorted.
When there are duplicates an error message is given.
An existing tags file is silently overwritten.
The optional "++t" argument forces adding the

View File

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

View File

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

View File

@ -1,4 +1,4 @@
*if_lua.txt* For Vim version 7.3. Last change: 2012 Jan 16
*if_lua.txt* For Vim version 7.4. Last change: 2013 Sep 04
VIM REFERENCE MANUAL by Luis Carvalho
@ -10,9 +10,10 @@ The Lua Interface to Vim *lua* *Lua*
2. The vim module |lua-vim|
3. List userdata |lua-list|
4. Dict userdata |lua-dict|
5. Buffer userdata |lua-buffer|
6. Window userdata |lua-window|
7. The luaeval function |lua-luaeval|
5. Funcref userdata |lua-funcref|
6. Buffer userdata |lua-buffer|
7. Window userdata |lua-window|
8. The luaeval function |lua-luaeval|
{Vi does not have any of these commands}
@ -110,9 +111,31 @@ input range are stored in "vim.firstline" and "vim.lastline" respectively. The
module also includes routines for buffer, window, and current line queries,
Vim evaluation and command execution, and others.
vim.list() Returns an empty list (see |List|).
vim.dict() Returns an empty dictionary (see |Dictionary|).
vim.list([arg]) Returns an empty list or, if "arg" is a Lua
table with numeric keys 1, ..., n (a
"sequence"), returns a list l such that l[i] =
arg[i] for i = 1, ..., n (see |List|).
Non-numeric keys are not used to initialize
the list. See also |lua-eval| for conversion
rules. Example: >
:lua t = {math.pi, false, say = 'hi'}
:echo luaeval('vim.list(t)')
:" [3.141593, 0], 'say' is ignored
<
vim.dict([arg]) Returns an empty dictionary or, if "arg" is a
Lua table, returns a dict d such that d[k] =
arg[k] for all string keys k in "arg" (see
|Dictionary|). Number keys are converted to
strings. Keys that are not strings are not
used to initialize the dictionary. See also
|lua-eval| for conversion rules. Example: >
:lua t = {math.pi, false, say = 'hi'}
:echo luaeval('vim.dict(t)')
:" {'say': 'hi'}, numeric keys ignored
<
vim.funcref({name}) Returns a Funcref to function {name} (see
|Funcref|). It is equivalent to Vim's
"function". NOT IMPLEMENTED YET
vim.buffer([arg]) If "arg" is a number, returns buffer with
number "arg" in the buffer list or, if "arg"
@ -131,9 +154,9 @@ Vim evaluation and command execution, and others.
vim.type({arg}) Returns the type of {arg}. It is equivalent to
Lua's "type" function, but returns "list",
"dict", "buffer", or "window" if {arg} is a
list, dictionary, buffer, or window,
respectively. Examples: >
"dict", "funcref", "buffer", or "window" if
{arg} is a list, dictionary, funcref, buffer,
or window, respectively. Examples: >
:lua l = vim.list()
:lua print(type(l), vim.type(l))
:" userdata list
@ -229,7 +252,40 @@ Examples:
<
==============================================================================
5. Buffer userdata *lua-buffer*
5. Funcref userdata *lua-funcref*
Funcref userdata represent funcref variables in Vim. Funcrefs that were
defined with a "dict" attribute need to be obtained as a dictionary key
in order to have "self" properly assigned to the dictionary (see examples
below.) A funcref "f" has the following properties:
Properties
----------
o "#f" is the name of the function referenced by "f"
o "f(...)" calls the function referenced by "f" (with arguments)
Examples:
>
:function I(x)
: return a:x
: endfunction
:let R = function('I')
:lua i1 = vim.funcref('I')
:lua i2 = vim.eval('R')
:lua print(#i1, #i2) -- both 'I'
:lua print(i1, i2, #i2(i1) == #i1(i2))
:function Mylen() dict
: return len(self.data)
: endfunction
:let mydict = {'data': [0, 1, 2, 3]}
:lua d = vim.eval('mydict'); d.len = vim.funcref('Mylen')
:echo mydict.len()
:lua l = d.len -- assign d as 'self'
:lua print(l())
<
==============================================================================
6. Buffer userdata *lua-buffer*
Buffer userdata represent vim buffers. A buffer userdata "b" has the following
properties and methods:
@ -281,7 +337,7 @@ Examples:
<
==============================================================================
6. Window userdata *lua-window*
7. Window userdata *lua-window*
Window objects represent vim windows. A window userdata "w" has the following
properties and methods:
@ -313,7 +369,7 @@ Examples:
<
==============================================================================
7. The luaeval function *lua-luaeval*
8. The luaeval function *lua-luaeval* *lua-eval*
The (dual) equivalent of "vim.eval" for passing Lua values to Vim is
"luaeval". "luaeval" takes an expression string and an optional argument and
@ -325,7 +381,13 @@ returns the result of the expression. It is semantically equivalent in Lua to:
return chunk(arg) -- return typval
end
<
Note that "_A" receives the argument to "luaeval". Examples: >
Note that "_A" receives the argument to "luaeval". Lua numbers, strings, and
list, dict, and funcref userdata are converted to their Vim respective types,
while Lua booleans are converted to numbers. An error is thrown if conversion
of any of the remaining Lua types, including userdata other than lists, dicts,
and funcrefs, is attempted.
Examples: >
:echo luaeval('math.pi')
:lua a = vim.list():add('newlist')

View File

@ -1,4 +1,4 @@
*if_mzsch.txt* For Vim version 7.3. Last change: 2010 Feb 11
*if_mzsch.txt* For Vim version 7.4. Last change: 2012 Dec 17
VIM REFERENCE MANUAL by Sergey Khorev
@ -11,7 +11,8 @@ The MzScheme Interface to Vim *mzscheme* *MzScheme*
3. Threads |mzscheme-threads|
4. Vim access from MzScheme |mzscheme-vim|
5. mzeval() Vim function |mzscheme-mzeval|
6. Dynamic loading |mzscheme-dynamic|
6. Using Function references |mzscheme-funcref|
7. Dynamic loading |mzscheme-dynamic|
{Vi does not have any of these commands}
@ -21,10 +22,17 @@ The MzScheme interface is available only if Vim was compiled with the
Based on the work of Brent Fulgham.
Dynamic loading added by Sergey Khorev
For downloading MzScheme and other info:
http://www.plt-scheme.org/software/mzscheme/
MzScheme and PLT Scheme names have been rebranded as Racket. For more
information please check http://racket-lang.org
Note: On FreeBSD you should use the "drscheme" port.
Futures and places of Racket version 5.x up to and including 5.3.1 do not
work correctly with processes created by Vim.
The simplest solution is to build Racket on your own with these features
disabled: >
./configure --disable-futures --disable-places --prefix=your-install-prefix
To speed up the process, you might also want to use --disable-gracket and
--disable-docs
==============================================================================
1. Commands *mzscheme-commands*
@ -155,8 +163,11 @@ Common
(eval {expr-string}) Evaluate the vim expression into
respective MzScheme object: |Lists| are
represented as Scheme lists,
|Dictionaries| as hash tables.
NOTE the name clashes with MzScheme eval
|Dictionaries| as hash tables,
|Funcref|s as functions (see also
|mzscheme-funcref|)
NOTE the name clashes with MzScheme eval,
use module qualifiers to overcome this.
(range-start) Start/End of the range passed with
(range-end) the Scheme command.
(beep) beep
@ -237,7 +248,23 @@ To facilitate bi-directional interface, you can use |mzeval()| function to
evaluate MzScheme expressions and pass their values to VimL.
==============================================================================
6. Dynamic loading *mzscheme-dynamic* *E815*
6. Using Function references *mzscheme-funcref*
MzScheme interface allows use of |Funcref|s so you can call Vim functions
directly from Scheme. For instance: >
function! MyAdd2(arg)
return a:arg + 2
endfunction
mz (define f2 (vim-eval "function(\"MyAdd2\")"))
mz (f2 7)
< or : >
:mz (define indent (vim-eval "function('indent')"))
" return Vim indent for line 12
:mz (indent 12)
<
==============================================================================
7. Dynamic loading *mzscheme-dynamic* *E815*
On MS-Windows the MzScheme libraries can be loaded dynamically. The |:version|
output then includes |+mzscheme/dyn|.

View File

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

View File

@ -1,4 +1,4 @@
*if_perl.txt* For Vim version 7.3. Last change: 2010 Jul 21
*if_perl.txt* For Vim version 7.4. Last change: 2013 Oct 05
VIM REFERENCE MANUAL by Sven Verdoolaege
@ -44,15 +44,17 @@ The Perl patches for Vim were made by:
Sven Verdoolaege <skimo@breughel.ufsia.ac.be>
Matt Gerassimof
Perl for MS-Windows can be found at:
http://www.perl.com/CPAN/ports/nt/Standard/x86/
Perl for MS-Windows can be found at: http://www.perl.com/
The ActiveState one should work.
==============================================================================
3. Using the Perl interface *perl-using*
*:perl* *:pe*
:pe[rl] {cmd} Execute Perl command {cmd}. The current package
is "main".
is "main". Simple example to test if `:perl` is
working: >
:perl VIM::Msg("Hello")
:pe[rl] << {endpattern}
{script}
@ -173,7 +175,8 @@ VIM::Windows([{wn}...]) With no arguments, returns a list of all the windows
VIM::DoCommand({cmd}) Executes Ex command {cmd}.
*perl-Eval*
VIM::Eval({expr}) Evaluates {expr} and returns (success, val).
VIM::Eval({expr}) Evaluates {expr} and returns (success, value) in list
context or just value in scalar context.
success=1 indicates that val contains the value of
{expr}; success=0 indicates a failure to evaluate
the expression. '@x' returns the contents of register

View File

@ -1,4 +1,4 @@
*if_pyth.txt* For Vim version 7.3. Last change: 2012 Feb 04
*if_pyth.txt* For Vim version 7.4. Last change: 2013 Jul 10
VIM REFERENCE MANUAL by Paul Moore
@ -6,13 +6,16 @@
The Python Interface to Vim *python* *Python*
1. Commands |python-commands|
2. The vim module |python-vim|
3. Buffer objects |python-buffer|
4. Range objects |python-range|
5. Window objects |python-window|
6. Dynamic loading |python-dynamic|
7. Python 3 |python3|
1. Commands |python-commands|
2. The vim module |python-vim|
3. Buffer objects |python-buffer|
4. Range objects |python-range|
5. Window objects |python-window|
6. Tab page objects |python-tabpage|
7. vim.bindeval objects |python-bindeval-objects|
8. pyeval(), py3eval() Vim functions |python-pyeval|
9. Dynamic loading |python-dynamic|
10. Python 3 |python3|
{Vi does not have any of these commands}
@ -20,13 +23,16 @@ The Python 2.x interface is available only when Vim was compiled with the
|+python| feature.
The Python 3 interface is available only when Vim was compiled with the
|+python3| feature.
Both can be available at the same time, but read |python-2-and-3|.
==============================================================================
1. Commands *python-commands*
*:python* *:py* *E205* *E263* *E264*
:[range]py[thon] {stmt}
Execute Python statement {stmt}.
Execute Python statement {stmt}. A simple check if
the `:python` command is working: >
:python print "Hello"
:[range]py[thon] << {endmarker}
{script}
@ -51,9 +57,25 @@ Example: >
EOF
endfunction
<
Note: Python is very sensitive to the indenting. Also make sure the "class"
line and "EOF" do not have any indent.
Note: Python is very sensitive to the indenting. Make sure the "class" line
and "EOF" do not have any indent.
*:pydo*
:[range]pydo {body} Execute Python function "def _vim_pydo(line, linenr):
{body}" for each line in the [range], with the
function arguments being set to the text of each line
in turn, without a trailing <EOL>, and the current
line number. The function should return a string or
None. If a string is returned, it becomes the text of
the line in the current turn. The default for [range]
is the whole file: "1,$".
{not in Vi}
Examples:
>
:pydo return "%s\t%d" % (line[::-1], len(line))
:pydo if line: return "%4d: %s" % (linenr, line)
<
*:pyfile* *:pyf*
:[range]pyf[ile] {file}
Execute the Python script in {file}. The whole
@ -150,7 +172,27 @@ vim.eval(str) *python-eval*
[{'cmd': '/^eval_expr(arg, nextcmd)$/', 'static': 0, 'name':
'eval_expr', 'kind': 'f', 'filename': './src/eval.c'}]
vim.bindeval(str) *python-bindeval*
Like |python-eval|, but returns special objects described in
|python-bindeval-objects|. These python objects let you modify (|List|
or |Dictionary|) or call (|Funcref|) vim objects.
vim.strwidth(str) *python-strwidth*
Like |strwidth()|: returns number of display cells str occupies, tab
is counted as one cell.
vim.foreach_rtp(callable) *python-foreach_rtp*
Call the given callable for each path in 'runtimepath' until either
callable returns something but None, the exception is raised or there
are no longer paths. If stopped in case callable returned non-None,
vim.foreach_rtp function returns the value returned by callable.
vim.chdir(*args, **kwargs) *python-chdir*
vim.fchdir(*args, **kwargs) *python-fchdir*
Run os.chdir or os.fchdir, then all appropriate vim stuff.
Note: you should not use these functions directly, use os.chdir and
os.fchdir instead. Behavior of vim.fchdir is undefined in case
os.fchdir does not exist.
Error object of the "vim" module
@ -170,12 +212,12 @@ Constants of the "vim" module
to which the variables referred.
vim.buffers *python-buffers*
A sequence object providing access to the list of vim buffers. The
A mapping object providing access to the list of vim buffers. The
object supports the following operations: >
:py b = vim.buffers[i] # Indexing (read-only)
:py b in vim.buffers # Membership test
:py n = len(vim.buffers) # Number of elements
:py for b in vim.buffers: # Sequential access
:py for b in vim.buffers: # Iterating over buffer list
<
vim.windows *python-windows*
A sequence object providing access to the list of vim windows. The
@ -184,13 +226,28 @@ vim.windows *python-windows*
:py w in vim.windows # Membership test
:py n = len(vim.windows) # Number of elements
:py for w in vim.windows: # Sequential access
< Note: vim.windows object always accesses current tab page.
|python-tabpage|.windows objects are bound to parent |python-tabpage|
object and always use windows from that tab page (or throw vim.error
in case tab page was deleted). You can keep a reference to both
without keeping a reference to vim module object or |python-tabpage|,
they will not lose their properties in this case.
vim.tabpages *python-tabpages*
A sequence object providing access to the list of vim tab pages. The
object supports the following operations: >
:py t = vim.tabpages[i] # Indexing (read-only)
:py t in vim.tabpages # Membership test
:py n = len(vim.tabpages) # Number of elements
:py for t in vim.tabpages: # Sequential access
<
vim.current *python-current*
An object providing access (via specific attributes) to various
"current" objects available in vim:
vim.current.line The current line (RW) String
vim.current.buffer The current buffer (RO) Buffer
vim.current.window The current window (RO) Window
vim.current.buffer The current buffer (RW) Buffer
vim.current.window The current window (RW) Window
vim.current.tabpage The current tab page (RW) TabPage
vim.current.range The current line range (RO) Range
The last case deserves a little explanation. When the :python or
@ -198,6 +255,42 @@ vim.current *python-current*
"current range". A range is a bit like a buffer, but with all access
restricted to a subset of lines. See |python-range| for more details.
Note: When assigning to vim.current.{buffer,window,tabpage} it expects
valid |python-buffer|, |python-window| or |python-tabpage| objects
respectively. Assigning triggers normal (with |autocommand|s)
switching to given buffer, window or tab page. It is the only way to
switch UI objects in python: you can't assign to
|python-tabpage|.window attribute. To switch without triggering
autocommands use >
py << EOF
saved_eventignore = vim.options['eventignore']
vim.options['eventignore'] = 'all'
try:
vim.current.buffer = vim.buffers[2] # Switch to buffer 2
finally:
vim.options['eventignore'] = saved_eventignore
EOF
<
vim.vars *python-vars*
vim.vvars *python-vvars*
Dictionary-like objects holding dictionaries with global (|g:|) and
vim (|v:|) variables respectively. Identical to `vim.bindeval("g:")`,
but faster.
vim.options *python-options*
Object partly supporting mapping protocol (supports setting and
getting items) providing a read-write access to global options.
Note: unlike |:set| this provides access only to global options. You
cannot use this object to obtain or set local options' values or
access local-only options in any fashion. Raises KeyError if no global
option with such name exists (i.e. does not raise KeyError for
|global-local| options and global only options, but does for window-
and buffer-local ones). Use |python-buffer| objects to access to
buffer-local options and |python-window| objects to access to
window-local options.
Type of this object is available via "Options" attribute of vim
module.
Output from Python *python-output*
Vim displays all Python code output in the Vim message area. Normal
@ -214,6 +307,88 @@ Output from Python *python-output*
supported, and may cause the program to crash. This should probably be
fixed.
*python2-directory* *python3-directory* *pythonx-directory*
Python 'runtimepath' handling *python-special-path*
In python vim.VIM_SPECIAL_PATH special directory is used as a replacement for
the list of paths found in 'runtimepath': with this directory in sys.path and
vim.path_hooks in sys.path_hooks python will try to load module from
{rtp}/python2 (or python3) and {rtp}/pythonx (for both python versions) for
each {rtp} found in 'runtimepath'.
Implementation is similar to the following, but written in C: >
from imp import find_module, load_module
import vim
import sys
class VimModuleLoader(object):
def __init__(self, module):
self.module = module
def load_module(self, fullname, path=None):
return self.module
def _find_module(fullname, oldtail, path):
idx = oldtail.find('.')
if idx > 0:
name = oldtail[:idx]
tail = oldtail[idx+1:]
fmr = find_module(name, path)
module = load_module(fullname[:-len(oldtail)] + name, *fmr)
return _find_module(fullname, tail, module.__path__)
else:
fmr = find_module(fullname, path)
return load_module(fullname, *fmr)
# It uses vim module itself in place of VimPathFinder class: it does not
# matter for python which object has find_module function attached to as
# an attribute.
class VimPathFinder(object):
@classmethod
def find_module(cls, fullname, path=None):
try:
return VimModuleLoader(_find_module(fullname, fullname, path or vim._get_paths()))
except ImportError:
return None
@classmethod
def load_module(cls, fullname, path=None):
return _find_module(fullname, fullname, path or vim._get_paths())
def hook(path):
if path == vim.VIM_SPECIAL_PATH:
return VimPathFinder
else:
raise ImportError
sys.path_hooks.append(hook)
vim.VIM_SPECIAL_PATH *python-VIM_SPECIAL_PATH*
String constant used in conjunction with vim path hook. If path hook
installed by vim is requested to handle anything but path equal to
vim.VIM_SPECIAL_PATH constant it raises ImportError. In the only other
case it uses special loader.
Note: you must not use value of this constant directly, always use
vim.VIM_SPECIAL_PATH object.
vim.find_module(...) *python-find_module*
vim.path_hook(path) *python-path_hook*
Methods or objects used to implement path loading as described above.
You should not be using any of these directly except for vim.path_hook
in case you need to do something with sys.meta_path. It is not
guaranteed that any of the objects will exist in the future vim
versions.
vim._get_paths *python-_get_paths*
Methods returning a list of paths which will be searched for by path
hook. You should not rely on this method being present in future
versions, but can use it for debugging.
It returns a list of {rtp}/python2 (or {rtp}/python3) and
{rtp}/pythonx directories for each {rtp} in 'runtimepath'.
==============================================================================
3. Buffer objects *python-buffer*
@ -239,6 +414,24 @@ Buffer indexes start at zero, as is normal in Python. This differs from vim
line numbers, which start from 1. This is particularly relevant when dealing
with marks (see below) which use vim line numbers.
The buffer object attributes are:
b.vars Dictionary-like object used to access
|buffer-variable|s.
b.options Mapping object (supports item getting, setting and
deleting) that provides access to buffer-local options
and buffer-local values of |global-local| options. Use
|python-window|.options if option is window-local,
this object will raise KeyError. If option is
|global-local| and local value is missing getting it
will return None.
b.name String, RW. Contains buffer name (full path).
Note: when assigning to b.name |BufFilePre| and
|BufFilePost| autocommands are launched.
b.number Buffer number. Can be used as |python-buffers| key.
Read-only.
b.valid True or False. Buffer object becomes invalid when
corresponding buffer is wiped out.
The buffer object methods are:
b.append(str) Append a line to the buffer
b.append(str, nr) Idem, below line "nr"
@ -257,6 +450,8 @@ Note that when adding a line it must not contain a line break character '\n'.
A trailing '\n' is allowed and ignored, so that you can do: >
:py b.append(f.readlines())
Buffer object type is available using "Buffer" attribute of vim module.
Examples (assume b is the current buffer) >
:py print b.name # write the buffer file name
:py b[0] = "hello!!!" # replace the top line
@ -268,6 +463,9 @@ Examples (assume b is the current buffer) >
:py n = len(b) # number of lines
:py (row,col) = b.mark('a') # named mark
:py r = b.range(1,5) # a sub-range of the buffer
:py b.vars["foo"] = "bar" # assign b:foo variable
:py b.options["ff"] = "dos" # set fileformat
:py del b.options["ar"] # same as :set autoread<
==============================================================================
4. Range objects *python-range*
@ -295,6 +493,8 @@ The range object methods are:
for Python's built-in list objects.
r.append(list, nr) Idem, after line "nr"
Range object type is available using "Range" attribute of vim module.
Example (assume r is the current range):
# Send all lines in a range to the default printer
vim.command("%d,%dhardcopy!" % (r.start+1,r.end+1))
@ -305,6 +505,8 @@ Example (assume r is the current range):
Window objects represent vim windows. You can obtain them in a number of ways:
- via vim.current.window (|python-current|)
- from indexing vim.windows (|python-windows|)
- from indexing "windows" attribute of a tab page (|python-tabpage|)
- from the "window" attribute of a tab page (|python-tabpage|)
You can manipulate window objects only through their attributes. They have no
methods, and no sequence or other interface.
@ -315,11 +517,167 @@ Window attributes are:
This is a tuple, (row,col).
height (read-write) The window height, in rows
width (read-write) The window width, in columns
vars (read-only) The window |w:| variables. Attribute is
unassignable, but you can change window
variables this way
options (read-only) The window-local options. Attribute is
unassignable, but you can change window
options this way. Provides access only to
window-local options, for buffer-local use
|python-buffer| and for global ones use
|python-options|. If option is |global-local|
and local value is missing getting it will
return None.
number (read-only) Window number. The first window has number 1.
This is zero in case it cannot be determined
(e.g. when the window object belongs to other
tab page).
row, col (read-only) On-screen window position in display cells.
First position is zero.
tabpage (read-only) Window tab page.
valid (read-write) True or False. Window object becomes invalid
when corresponding window is closed.
The height attribute is writable only if the screen is split horizontally.
The width attribute is writable only if the screen is split vertically.
Window object type is available using "Window" attribute of vim module.
==============================================================================
6. Dynamic loading *python-dynamic*
6. Tab page objects *python-tabpage*
Tab page objects represent vim tab pages. You can obtain them in a number of
ways:
- via vim.current.tabpage (|python-current|)
- from indexing vim.tabpages (|python-tabpages|)
You can use this object to access tab page windows. They have no methods and
no sequence or other interfaces.
Tab page attributes are:
number The tab page number like the one returned by
|tabpagenr()|.
windows Like |python-windows|, but for current tab page.
vars The tab page |t:| variables.
window Current tabpage window.
valid True or False. Tab page object becomes invalid when
corresponding tab page is closed.
TabPage object type is available using "TabPage" attribute of vim module.
==============================================================================
7. vim.bindeval objects *python-bindeval-objects*
vim.Dictionary object *python-Dictionary*
Dictionary-like object providing access to vim |Dictionary| type.
Attributes:
Attribute Description ~
locked One of *python-.locked*
Value Description ~
zero Variable is not locked
vim.VAR_LOCKED Variable is locked, but can be unlocked
vim.VAR_FIXED Variable is locked and can't be unlocked
Read-write. You can unlock locked variable by assigning
`True` or `False` to this attribute. No recursive locking
is supported.
scope One of
Value Description ~
zero Dictionary is not a scope one
vim.VAR_DEF_SCOPE |g:| or |l:| dictionary
vim.VAR_SCOPE Other scope dictionary,
see |internal-variables|
Methods (note: methods do not support keyword arguments):
Method Description ~
keys() Returns a list with dictionary keys.
values() Returns a list with dictionary values.
items() Returns a list of 2-tuples with dictionary contents.
update(iterable), update(dictionary), update(**kwargs)
Adds keys to dictionary.
get(key[, default=None])
Obtain key from dictionary, returning the default if it is
not present.
pop(key[, default])
Remove specified key from dictionary and return
corresponding value. If key is not found and default is
given returns the default, otherwise raises KeyError.
popitem()
Remove random key from dictionary and return (key, value)
pair.
has_key(key)
Check whether dictionary contains specified key, similar
to `key in dict`.
__new__(), __new__(iterable), __new__(dictionary), __new__(update)
You can use `vim.Dictionary()` to create new vim
dictionaries. `d=vim.Dictionary(arg)` is the same as
`d=vim.bindeval('{}');d.update(arg)`. Without arguments
constructs empty dictionary.
Examples: >
d = vim.Dictionary(food="bar") # Constructor
d['a'] = 'b' # Item assignment
print d['a'] # getting item
d.update({'c': 'd'}) # .update(dictionary)
d.update(e='f') # .update(**kwargs)
d.update((('g', 'h'), ('i', 'j'))) # .update(iterable)
for key in d.keys(): # .keys()
for val in d.values(): # .values()
for key, val in d.items(): # .items()
print isinstance(d, vim.Dictionary) # True
for key in d: # Iteration over keys
class Dict(vim.Dictionary): # Subclassing
<
Note: when iterating over keys you should not modify dictionary.
vim.List object *python-List*
Sequence-like object providing access to vim |List| type.
Supports `.locked` attribute, see |python-.locked|. Also supports the
following methods:
Method Description ~
extend(item) Add items to the list.
__new__(), __new__(iterable)
You can use `vim.List()` to create new vim lists.
`l=vim.List(iterable)` is the same as
`l=vim.bindeval('[]');l.extend(iterable)`. Without
arguments constructs empty list.
Examples: >
l = vim.List("abc") # Constructor, result: ['a', 'b', 'c']
l.extend(['abc', 'def']) # .extend() method
print l[1:] # slicing
l[:0] = ['ghi', 'jkl'] # slice assignment
print l[0] # getting item
l[0] = 'mno' # assignment
for i in l: # iteration
print isinstance(l, vim.List) # True
class List(vim.List): # Subclassing
vim.Function object *python-Function*
Function-like object, acting like vim |Funcref| object. Supports `.name`
attribute and is callable. Accepts special keyword argument `self`, see
|Dictionary-function|. You can also use `vim.Function(name)` constructor,
it is the same as `vim.bindeval('function(%s)'%json.dumps(name))`.
Examples: >
f = vim.Function('tr') # Constructor
print f('abc', 'a', 'b') # Calls tr('abc', 'a', 'b')
vim.command('''
function DictFun() dict
return self
endfunction
''')
f = vim.bindeval('function("DictFun")')
print f(self={}) # Like call('DictFun', [], {})
print isinstance(f, vim.Function) # True
==============================================================================
8. pyeval() and py3eval() Vim functions *python-pyeval*
To facilitate bi-directional interface, you can use |pyeval()| and |py3eval()|
functions to evaluate Python expressions and pass their values to VimL.
==============================================================================
9. Dynamic loading *python-dynamic*
On MS-Windows the Python library can be loaded dynamically. The |:version|
output then includes |+python/dyn|.
@ -336,12 +694,17 @@ Currently the name is "python24.dll". That is for Python 2.4. To know for
sure edit "gvim.exe" and search for "python\d*.dll\c".
==============================================================================
7. Python 3 *python3*
10. Python 3 *python3*
*:py3* *:python3*
The |:py3| and |:python3| commands work similar to |:python|.
*:py3file*
The |:py3file| command works similar to |:pyfile|.
The `:py3` and `:python3` commands work similar to `:python`. A simple check
if the `:py3` command is working: >
:py3 print("Hello")
< *:py3file*
The `:py3file` command works similar to `:pyfile`.
*:py3do* *E863*
The `:py3do` command works similar to `:pydo`.
Vim can be built in four ways (:version output):
1. No Python support (-python, -python3)
@ -349,7 +712,7 @@ Vim can be built in four ways (:version output):
3. Python 3 support only (-python, +python3 or +python3/dyn)
4. Python 2 and 3 support (+python/dyn, +python3/dyn)
Some more details on the special case 4:
Some more details on the special case 4: *python-2-and-3*
When Python 2 and Python 3 are both supported they must be loaded dynamically.
@ -378,6 +741,11 @@ To work around such problems there are these options:
3. You undefine PY_NO_RTLD_GLOBAL in auto/config.h after configuration. This
may crash Vim though.
*E880*
Raising SystemExit exception in python isn't endorsed way to quit vim, use: >
:py vim.command("qall!")
<
*has-python*
You can test what Python version is available with: >
if has('python')

View File

@ -1,4 +1,4 @@
*if_ruby.txt* For Vim version 7.3. Last change: 2010 Oct 27
*if_ruby.txt* For Vim version 7.4. Last change: 2012 Aug 02
VIM REFERENCE MANUAL by Shugo Maeda
@ -25,7 +25,8 @@ downloading Ruby there.
1. Commands *ruby-commands*
*:ruby* *:rub*
:rub[y] {cmd} Execute Ruby command {cmd}.
:rub[y] {cmd} Execute Ruby command {cmd}. A command to try it out: >
:ruby print "Hello"
:rub[y] << {endpattern}
{script}
@ -40,9 +41,6 @@ downloading Ruby there.
wasn't compiled in. To avoid errors, see
|script-here|.
Command to try it out: >
:ruby print "Hello" # this is a comment
Example Vim script: >
function! RedGem()
@ -211,6 +209,8 @@ 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
and comment-out the check for _MSC_VER.
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.
==============================================================================
vim:tw=78:ts=8:ft=help:norl:

View File

@ -1,4 +1,4 @@
*if_sniff.txt* For Vim version 7.3. Last change: 2005 Mar 29
*if_sniff.txt* For Vim version 7.4. Last change: 2005 Mar 29
VIM REFERENCE MANUAL

View File

@ -1,4 +1,4 @@
*if_tcl.txt* For Vim version 7.3. Last change: 2008 Aug 16
*if_tcl.txt* For Vim version 7.4. Last change: 2012 Aug 02
VIM REFERENCE MANUAL by Ingo Wilken
@ -27,7 +27,9 @@ comments, ideas etc to <Ingo.Wilken@informatik.uni-oldenburg.de>
1. Commands *tcl-ex-commands* *E571* *E572*
*:tcl* *:tc*
:tc[l] {cmd} Execute Tcl command {cmd}.
:tc[l] {cmd} Execute Tcl command {cmd}. A simple check if `:tcl`
is working: >
:tcl puts "Hello"
:[range]tc[l] << {endmarker}
{script}

View File

@ -1,4 +1,4 @@
*indent.txt* For Vim version 7.3. Last change: 2011 Sep 02
*indent.txt* For Vim version 7.4. Last change: 2013 Nov 05
VIM REFERENCE MANUAL by Bram Moolenaar
@ -540,15 +540,17 @@ The examples below assume a 'shiftwidth' of 4.
*cino-star*
*N Vim searches for unclosed comments at most N lines away. This
limits the time needed to search for the start of a comment.
If your /* */ comments stop indenting afer N lines this is the
If your /* */ comments stop indenting after N lines this is the
value you will want to change.
(default 70 lines).
*cino-#*
#N When N is non-zero recognize shell/Perl comments, starting with
'#'. Default N is zero: don't recognize '#' comments. Note
that lines starting with # will still be seen as preprocessor
lines.
#N When N is non-zero recognize shell/Perl comments starting with
'#', do not recognize preprocessor lines; allow right-shifting
lines that start with "#".
When N is zero (default): don't recognize '#' comments, do
recognize preprocessor lines; right-shifting lines that start
with "#" does not work.
The defaults, spelled out in full, are:
@ -556,7 +558,7 @@ The defaults, spelled out in full, are:
c3,C0,/0,(2s,us,U0,w0,W0,k0,m0,j0,J0,)20,*70,#0
Vim puts a line in column 1 if:
- It starts with '#' (preprocessor directives), if 'cinkeys' contains '#'.
- It starts with '#' (preprocessor directives), if 'cinkeys' contains '#0'.
- It starts with a label (a keyword followed by ':', other than "case" and
"default") and 'cinoptions' does not contain an 'L' entry with a positive
value.
@ -577,6 +579,106 @@ $VIMRUNTIME/indent directory for examples.
REMARKS ABOUT SPECIFIC INDENT FILES ~
CLOJURE *ft-clojure-indent* *clojure-indent*
Clojure indentation differs somewhat from traditional Lisps, due in part to
the use of square and curly brackets, and otherwise by community convention.
These conventions are not universally followed, so the Clojure indent script
offers a few configurable options, listed below.
If the current vim does not include searchpairpos(), the indent script falls
back to normal 'lisp' indenting, and the following options are ignored.
*g:clojure_maxlines*
Set maximum scan distance of searchpairpos(). Larger values trade performance
for correctness when dealing with very long forms. A value of 0 will scan
without limits.
>
" Default
let g:clojure_maxlines = 100
<
*g:clojure_fuzzy_indent*
*g:clojure_fuzzy_indent_patterns*
*g:clojure_fuzzy_indent_blacklist*
The 'lispwords' option is a list of comma-separated words that mark special
forms whose subforms must be indented with two spaces.
For example:
>
(defn bad []
"Incorrect indentation")
(defn good []
"Correct indentation")
<
If you would like to specify 'lispwords' with a |pattern| instead, you can use
the fuzzy indent feature:
>
" Default
let g:clojure_fuzzy_indent = 1
let g:clojure_fuzzy_indent_patterns = ['^with', '^def', '^let']
let g:clojure_fuzzy_indent_blacklist =
\ ['-fn$', '\v^with-%(meta|out-str|loading-context)$']
" Legacy comma-delimited string version; the list format above is
" recommended. Note that patterns are implicitly anchored with ^ and $
let g:clojure_fuzzy_indent_patterns = 'with.*,def.*,let.*'
<
|g:clojure_fuzzy_indent_patterns| and |g:clojure_fuzzy_indent_blacklist| are
|Lists| of patterns that will be matched against the unquoted, unqualified
symbol at the head of a list. This means that a pattern like "^foo" will match
all these candidates: "foobar", "my.ns/foobar", and "#'foobar".
Each candidate word is tested for special treatment in this order:
1. Return true if word is literally in 'lispwords'
2. Return false if word matches a pattern in
|g:clojure_fuzzy_indent_blacklist|
3. Return true if word matches a pattern in
|g:clojure_fuzzy_indent_patterns|
4. Return false and indent normally otherwise
*g:clojure_special_indent_words*
Some forms in Clojure are indented so that every subform is indented only two
spaces, regardless of 'lispwords'. If you have a custom construct that should
be indented in this idiosyncratic fashion, you can add your symbols to the
default list below.
>
" Default
let g:clojure_special_indent_words =
\ 'deftype,defrecord,reify,proxy,extend-type,extend-protocol,letfn'
<
*g:clojure_align_multiline_strings*
Align subsequent lines in multiline strings to the column after the opening
quote, instead of the same column.
For example:
>
(def default
"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut
enim ad minim veniam, quis nostrud exercitation ullamco laboris
nisi ut aliquip ex ea commodo consequat.")
(def aligned
"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut
enim ad minim veniam, quis nostrud exercitation ullamco laboris
nisi ut aliquip ex ea commodo consequat.")
<
This option is off by default.
>
" Default
let g:clojure_align_multiline_strings = 0
<
FORTRAN *ft-fortran-indent*
Block if, select case, where, and forall constructs are indented. So are
@ -629,6 +731,50 @@ buffer-local variable as follows >
let b:fortran_indent_less=1
HTML *ft-html-indent* *html-indent* *html-indenting*
This is about variables you can set in your vimrc to customize HTML indenting.
You can set the indent for the first line after <script> and <style>
"blocktags" (default "zero"): >
:let g:html_indent_script1 = "inc"
:let g:html_indent_style1 = "inc"
<
VALUE MEANING ~
"zero" zero indent
"auto" auto indent (same indent as the blocktag)
"inc" auto indent + one indent step
Many tags increase the indent for what follows per default (see "Add Indent
Tags" in the script). You can add further tags with: >
:let g:html_indent_inctags = "html,body,head,tbody"
You can also remove such tags with: >
:let g:html_indent_autotags = "th,td,tr,tfoot,thead"
Default value is empty for both variables. Note: the initial "inctags" are
only defined once per Vim session.
User variables are only read when the script is sourced. To enable your
changes during a session, without reloading the HTML file, you can manually
do: >
:call HtmlIndent_CheckUserSettings()
Detail:
Calculation of indent inside "blocktags" with "alien" content:
BLOCKTAG INDENT EXPR WHEN APPLICABLE ~
<script> : {customizable} if first line of block
: cindent(v:lnum) if attributes empty or contain "java"
: -1 else (vbscript, tcl, ...)
<style> : {customizable} if first line of block
: GetCSSIndent() else
<!-- --> : -1
PHP *ft-php-indent* *php-indent* *php-indenting*
NOTE: PHP files will be indented correctly only if PHP |syntax| is active.
@ -640,12 +786,12 @@ those useless characters first with a command like: >
:%s /\r$//g
Or, you can simply |:let| the variable PHP_removeCRwhenUnix to 1 and the
script will silently remove them when Vim loads a PHP file (at each|BufRead|).
script will silently remove them when Vim loads a PHP file (at each |BufRead|).
OPTIONS: ~
PHP indenting can be altered in several ways by modifying the values of some
variables:
global variables:
*php-comment*
To not enable auto-formating of comments by default (if you want to use your
@ -653,10 +799,21 @@ own 'formatoptions'): >
:let g:PHP_autoformatcomment = 0
Else, 't' will be removed from the 'formatoptions' string and "qrowcb" will be
added, see|fo-table|for more information.
added, see |fo-table| for more information.
-------------
To add an extra indent to every PHP lines with N being the number of
To add extra indentation to single-line comments: >
:let g:PHP_outdentSLComments = N
With N being the number of 'shiftwidth' to add.
Only single-line comments will be affected such as: >
# Comment
// Comment
/* Comment */
-------------
To add extra indentation to every PHP lines with N being the number of
'shiftwidth' to add: >
:let g:PHP_default_indenting = N
@ -672,7 +829,7 @@ For example, with N = 1, this will give:
$command_hist = TRUE;
?>
(Notice the extra indent between the PHP container markers and the code)
(Notice the extra indentation between the PHP container markers and the code)
-------------
To indent PHP tags as the surrounding code: >
@ -704,8 +861,10 @@ NOTE: Indenting will be a bit slower if this option is used because some
To indent 'case:' and 'default:' statements in switch() blocks: >
:let g:PHP_vintage_case_default_indent = 1
(Since in PHP braces are not required inside 'case/default' blocks, by default they are indented at the same level than the 'switch()' to avoid
unnecessary indentation)
In PHP braces are not required inside 'case/default' blocks therefore 'case:'
and 'default:' are indented at the same level than the 'switch()' to avoid
meaningless indentation. You can use the above option to return to the
traditional way.
PYTHON *ft-python-indent*

View File

@ -1,4 +1,4 @@
*index.txt* For Vim version 7.3. Last change: 2011 Aug 06
*index.txt* For Vim version 7.4. Last change: 2013 Nov 14
VIM REFERENCE MANUAL by Bram Moolenaar
@ -94,8 +94,8 @@ tag char action in Insert mode ~
|i_CTRL-Z| CTRL-Z when 'insertmode' set: suspend Vim
|i_<Esc>| <Esc> end insert mode (unless 'insertmode' set)
|i_CTRL-[| CTRL-[ same as <Esc>
|i_CTRL-\_CTRL-N| CTRL-\ CTRL-N go to Normal mode
|i_CTRL-\_CTRL-G| CTRL-\ CTRL-G go to mode specified with 'insertmode'
|i_CTRL-\_CTRL-N| CTRL-\ CTRL-N go to Normal mode
|i_CTRL-\_CTRL-G| CTRL-\ CTRL-G go to mode specified with 'insertmode'
CTRL-\ a - z reserved for extensions
CTRL-\ others not used
|i_CTRL-]| CTRL-] trigger abbreviation
@ -141,7 +141,7 @@ tag char action in Insert mode ~
|i_<ScrollWheelUp>| <ScrollWheelUp> move window three lines up
|i_<S-ScrollWheelUp>| <S-ScrollWheelUp> move window one page up
|i_<ScrollWheelLeft>| <ScrollWheelLeft> move window six columns left
|i_<S-ScrollWheelLeft>| <S-ScrollWheelLeft> move window one page left
|i_<S-ScrollWheelLeft>| <S-ScrollWheelLeft> move window one page left
|i_<ScrollWheelRight>| <ScrollWheelRight> move window six columns right
|i_<S-ScrollWheelRight>| <S-ScrollWheelRight> move window one page right
@ -212,8 +212,8 @@ tag char note action in Normal mode ~
|CTRL-Y| CTRL-Y scroll N lines downwards
|CTRL-Z| CTRL-Z suspend program (or start new shell)
CTRL-[ <Esc> not used
|CTRL-\_CTRL-N| CTRL-\ CTRL-N go to Normal mode (no-op)
|CTRL-\_CTRL-G| CTRL-\ CTRL-G go to mode specified with 'insertmode'
|CTRL-\_CTRL-N| CTRL-\ CTRL-N go to Normal mode (no-op)
|CTRL-\_CTRL-G| CTRL-\ CTRL-G go to mode specified with 'insertmode'
CTRL-\ a - z reserved for extensions
CTRL-\ others not used
|CTRL-]| CTRL-] :ta to ident under cursor
@ -431,7 +431,7 @@ tag char note action in Normal mode ~
|<Insert>| <Insert> 2 same as "i"
|<Left>| <Left> 1 same as "h"
|<LeftMouse>| <LeftMouse> 1 move cursor to the mouse click position
|<MiddleMouse>| <MiddleMouse> 2 same as "gP" at the mouse click position
|<MiddleMouse>| <MiddleMouse> 2 same as "gP" at the mouse click position
|<PageDown>| <PageDown> same as CTRL-F
|<PageUp>| <PageUp> same as CTRL-B
|<Right>| <Right> 1 same as "l"
@ -640,7 +640,7 @@ tag char note action in Normal mode ~
|[s| [s 1 move to the previous misspelled word
|[z| [z 1 move to start of open fold
|[{| [{ 1 cursor N times back to unmatched '{'
|[<MiddleMouse> [<MiddleMouse> 2 same as "[p"
|[<MiddleMouse>| [<MiddleMouse> 2 same as "[p"
|]_CTRL-D| ] CTRL-D jump to first #define found in current and
included files matching the word under the
@ -680,7 +680,7 @@ tag char note action in Normal mode ~
|]s| ]s 1 move to next misspelled word
|]z| ]z 1 move to end of open fold
|]}| ]} 1 cursor N times forward to unmatched '}'
|]<MiddleMouse> ]<MiddleMouse> 2 same as "]p"
|]<MiddleMouse>| ]<MiddleMouse> 2 same as "]p"
==============================================================================
2.4 Commands starting with 'g' *g*
@ -719,10 +719,13 @@ tag char note action in Normal mode ~
|gH| gH start Select line mode
|gI| gI 2 like "I", but always start in column 1
|gJ| gJ 2 join lines without inserting space
|gN| gN 1,2 find the previous match with the last used
search pattern and Visually select it
|gP| ["x]gP 2 put the text [from register x] before the
cursor N times, leave the cursor after it
|gQ| gQ switch to "Ex" mode with Vim editing
|gR| gR 2 enter Virtual Replace mode
|gT| gT go to the previous tab page
|gU| gU{motion} 2 make Nmove text uppercase
|gV| gV don't reselect the previous Visual area
when executing a mapping or menu in Select
@ -751,6 +754,8 @@ tag char note action in Normal mode ~
lines down
|gk| gk 1 like "k", but when 'wrap' on go N screen
lines up
|gn| gn 1,2 find the next match with the last used
search pattern and Visually select it
|gm| gm 1 go to character at middle of the screenline
|go| go 1 cursor to byte N in the buffer
|gp| ["x]gp 2 put the text [from register x] after the
@ -758,6 +763,7 @@ tag char note action in Normal mode ~
|gq| gq{motion} 2 format Nmove text
|gr| gr{char} 2 virtual replace N chars with {char}
|gs| gs go to sleep for N seconds (default 1)
|gt| gt go to the next tab page
|gu| gu{motion} 2 make Nmove text lowercase
|gv| gv reselect the previous Visual area
|gw| gw{motion} 2 format Nmove text and keep cursor
@ -795,6 +801,10 @@ tag char note action in Normal mode ~
|zE| zE eliminate all folds
|zF| zF create a fold for N lines
|zG| zG mark word as good spelled word
|zH| zH when 'wrap' off scroll half a screenwidth
to the right
|zL| zL when 'wrap' off scroll half a screenwidth
to the left
|zM| zM set 'foldlevel' to zero
|zN| zN set 'foldenable'
|zO| zO open folds recursively
@ -1007,8 +1017,8 @@ tag command action in Command-line editing mode ~
CTRL-Z not used (reserved for suspend)
|c_<Esc>| <Esc> abandon command-line without executing it
|c_<Esc>| CTRL-[ same as <Esc>
|c_CTRL-\_CTRL-N| CTRL-\ CTRL-N go to Normal mode, abandon command-line
|c_CTRL-\_CTRL-G| CTRL-\ CTRL-G go to mode specified with 'insertmode',
|c_CTRL-\_CTRL-N| CTRL-\ CTRL-N go to Normal mode, abandon command-line
|c_CTRL-\_CTRL-G| CTRL-\ CTRL-G go to mode specified with 'insertmode',
abandon command-line
CTRL-\ a - d reserved for extensions
|c_CTRL-\_e| CTRL-\ e {expr} replace the command line with the result of
@ -1130,7 +1140,7 @@ tag command action ~
|:cgetbuffer| :cgetb[uffer] get errors from buffer
|:cgetexpr| :cgete[xpr] get errors from expr
|:cgetfile| :cg[etfile] read file with error messages
|:changes| :cha[nges] print the change list
|:changes| :changes print the change list
|:chdir| :chd[ir] change directory
|:checkpath| :che[ckpath] list included files
|:checktime| :checkt[ime] check timestamp of loaded buffers
@ -1181,9 +1191,12 @@ tag command action ~
|:digraphs| :dig[raphs] show or enter digraphs
|:display| :di[splay] display registers
|:djump| :dj[ump] jump to #define
|:dlist| :dl[ist] list #defines
|:dl| :dl short for |:delete| with the 'l' flag
|:dl| :del[ete]l short for |:delete| with the 'l' flag
|:dlist| :dli[st] list #defines
|:doautocmd| :do[autocmd] apply autocommands to current buffer
|:doautoall| :doautoa[ll] apply autocommands for all loaded buffers
|:dp| :d[elete]p short for |:delete| with the 'p' flag
|:drop| :dr[op] jump to window editing file or edit file in
current window
|:dsearch| :ds[earch] list one #define
@ -1262,6 +1275,7 @@ tag command action ~
|:keepalt| :keepa[lt] following command keeps the alternate file
|:keepmarks| :kee[pmarks] following command keeps marks where they are
|:keepjumps| :keepj[umps] following command keeps jumplist and marks
|:keeppatterns| :keepp[atterns] following command keeps search pattern history
|:lNext| :lN[ext] go to previous entry in location list
|:lNfile| :lNf[ile] go to last entry in previous file
|:list| :l[ist] print lines
@ -1379,7 +1393,7 @@ tag command action ~
|:promptrepl| :promptr[epl] open GUI dialog for search/replace
|:perldo| :perld[o] execute Perl command for each line
|:pop| :po[p] jump to older entry in tag stack
|:popup| :pop[up] popup a menu by name
|:popup| :popu[p] popup a menu by name
|:ppop| :pp[op] ":pop" in preview window
|:preserve| :pre[serve] write all text to swap file
|:previous| :prev[ious] go to previous file in argument list
@ -1397,8 +1411,10 @@ tag command action ~
|:pwd| :pw[d] print current directory
|:py3| :py3 execute Python 3 command
|:python3| :python3 same as :py3
|:py3do| :py3d[o] execute Python 3 command for each line
|:py3file| :py3f[ile] execute Python 3 script file
|:python| :py[thon] execute Python command
|:pydo| :pyd[o] execute Python command for each line
|:pyfile| :pyf[ile] execute Python script file
|:quit| :q[uit] quit current window (when one window quit Vim)
|:quitall| :quita[ll] quit Vim
@ -1465,7 +1481,7 @@ tag command action ~
|:slast| :sla[st] split window and go to last file in the
argument list
|:smagic| :sm[agic] :substitute with 'magic'
|:smap| :sma[p] like ":map" but for Select mode
|:smap| :smap like ":map" but for Select mode
|:smapclear| :smapc[lear] remove all mappings for Select mode
|:smenu| :sme[nu] add menu for Select mode
|:snext| :sn[ext] split window and go to next file in the
@ -1502,6 +1518,7 @@ tag command action ~
|:sview| :sv[iew] split window and edit file read-only
|:swapname| :sw[apname] show the name of the current swap file
|:syntax| :sy[ntax] syntax highlighting
|:syntime| :synti[me] measure syntax highlighting speed
|:syncbind| :sync[bind] sync scroll binding
|:t| :t same as ":copy"
|:tNext| :tN[ext] jump to previous matching tag

View File

@ -1,4 +1,4 @@
*insert.txt* For Vim version 7.3. Last change: 2012 May 18
*insert.txt* For Vim version 7.4. Last change: 2013 Jul 12
VIM REFERENCE MANUAL by Bram Moolenaar
@ -136,6 +136,8 @@ CTRL-R {0-9a-z"%#*+:.-=} *i_CTRL-R*
too.
When the result is a Float it's automatically
converted to a String.
When append() or setline() is invoked the undo
sequence will be broken.
See |registers| about registers. {not in Vi}
CTRL-R CTRL-R {0-9a-z"%#*+/:.-=} *i_CTRL-R_CTRL-R*
@ -380,7 +382,9 @@ The CTRL-O command sometimes has a side effect: If the cursor was beyond the
end of the line, it will be put on the last character in the line. In
mappings it's often better to use <Esc> (first put an "x" in the text, <Esc>
will then always put the cursor on it). Or use CTRL-\ CTRL-O, but then
beware of the cursor possibly being beyond the end of the line.
beware of the cursor possibly being beyond the end of the line. Note that the
command following CTRL-\ CTRL-O can still move the cursor, it is not restored
to its original position.
The CTRL-O command takes you to Normal mode. If you then use a command enter
Insert mode again it normally doesn't nest. Thus when typing "a<C-O>a" and
@ -491,7 +495,7 @@ option}
*ins-smarttab*
When the 'smarttab' option is on, a <Tab> inserts 'shiftwidth' positions at
the beginning of a line and 'tabstop' positions in other places. This means
that often spaces instead of a <Tab> character are inserted. When 'smarttab
that often spaces instead of a <Tab> character are inserted. When 'smarttab'
is off, a <Tab> always inserts 'tabstop' positions, and 'shiftwidth' is only
used for ">>" and the like. {not in Vi}
@ -1044,6 +1048,8 @@ that contains the List. The Dict can have these items:
leading text is changed.
Other items are ignored.
For acting upon end of completion, see the |CompleteDone| autocommand event.
For example, the function can contain this: >
let matches = ... list of words ...
return {'words': matches, 'refresh': 'always'}
@ -1353,7 +1359,7 @@ Complete:
Completion works in separate JavaScript files (&ft==javascript), inside of
<script> tag of (X)HTML and in values of event attributes (including scanning
of external files.
of external files).
DOM compatibility
@ -1464,9 +1470,9 @@ knows how to color highlight. It can be used for any filetype and provides a
minimal language-sensitive completion.
To enable syntax code completion you can run: >
setlocal omnifunc=syntaxcomplete#Complete
setlocal omnifunc=syntaxcomplete#Complete
You can automate this by placing the following in your vimrc (after any
You can automate this by placing the following in your |.vimrc| (after any
":filetype" command): >
if has("autocmd") && exists("+omnifunc")
autocmd Filetype *
@ -1483,7 +1489,7 @@ customize which syntax groups to include or exclude from the list. Let's have
a look at the PHP filetype to see how this works.
If you edit a file called, index.php, run the following command: >
:syntax list
syntax list
The first thing you will notice is that there are many different syntax groups.
The PHP language can include elements from different languages like HTML,
@ -1492,24 +1498,37 @@ that begin with the filetype, "php", in this case. For example these syntax
groups are included by default with the PHP: phpEnvVar, phpIntVar,
phpFunctions.
The PHP language has an enormous number of items which it knows how to syntax
highlight. This means these items will be available within the omni
completion list. Some people may find this list unwieldy or are only
interested in certain items.
If you wish non-filetype syntax items to also be included, you can use a
regular expression syntax (added in version 13.0 of autoload\syntaxcomplete.vim)
to add items. Looking at the output from ":syntax list" while editing a PHP file
I can see some of these entries: >
htmlArg,htmlTag,htmlTagName,javaScriptStatement,javaScriptGlobalObjects
There are two ways to prune this list (if necessary). If you find certain
syntax groups you do not wish displayed you can add the following to your
vimrc: >
let g:omni_syntax_group_exclude_php = 'phpCoreConstant,phpConstant'
To pick up any JavaScript and HTML keyword syntax groups while editing a PHP
file, you can use 3 different regexs, one for each language. Or you can
simply restrict the include groups to a particular value, without using
a regex string: >
let g:omni_syntax_group_include_php = 'php\w\+,javaScript\w\+,html\w\+'
let g:omni_syntax_group_include_php = 'phpFunctions,phpMethods'
<
The basic form of this variable is: >
let g:omni_syntax_group_include_{filetype} = 'regex,comma,separated'
The PHP language has an enormous number of items which it knows how to syntax
highlight. These items will be available within the omni completion list.
Some people may find this list unwieldy or are only interested in certain
items. There are two ways to prune this list (if necessary). If you find
certain syntax groups you do not wish displayed you can use two different
methods to identify these groups. The first specifically lists the syntax
groups by name. The second uses a regular expression to identify both
syntax groups. Simply add one the following to your vimrc: >
let g:omni_syntax_group_exclude_php = 'phpCoreConstant,phpConstant'
let g:omni_syntax_group_exclude_php = 'php\w*Constant'
Add as many syntax groups to this list by comma separating them. The basic
form of this variable is: >
let g:omni_syntax_group_exclude_{filetype} = 'comma,separated,list'
For completeness the opposite is also true. Creating this variable in your
vimrc will only include the items in the phpFunctions and phpMethods syntax
groups: >
let g:omni_syntax_group_include_php = 'phpFunctions,phpMethods'
let g:omni_syntax_group_exclude_{filetype} = 'regex,comma,separated'
You can create as many of these variables as you need, varying only the
filetype at the end of the variable name.
@ -1550,6 +1569,9 @@ To retrieve only the syntax items for the sqlOperator syntax group: >
To retrieve all syntax items for both the sqlOperator and sqlType groups: >
echo OmniSyntaxList( ['sqlOperator', 'sqlType'] )
A regular expression can also be used: >
echo OmniSyntaxList( ['sql\w\+'] )
From within a plugin, you would typically assign the output to a List: >
let myKeywords = []
let myKeywords = OmniSyntaxList( ['sqlKeyword'] )
@ -1865,13 +1887,15 @@ NOTE: These commands cannot be used with |:global| or |:vglobal|.
See |++opt| for the possible values of [++opt].
*:r!* *:read!*
:[range]r[ead] !{cmd} Execute {cmd} and insert its standard output below
:[range]r[ead] [++opt] !{cmd}
Execute {cmd} and insert its standard output below
the cursor or the specified line. A temporary file is
used to store the output of the command which is then
read into the buffer. 'shellredir' is used to save
the output of the command, which can be set to include
stderr or not. {cmd} is executed like with ":!{cmd}",
any '!' is replaced with the previous command |:!|.
See |++opt| for the possible values of [++opt].
These commands insert the contents of a file, or the output of a command,
into the buffer. They can be undone. They cannot be repeated with the "."

View File

@ -1,4 +1,4 @@
*intro.txt* For Vim version 7.3. Last change: 2011 May 15
*intro.txt* For Vim version 7.4. Last change: 2013 Jun 17
VIM REFERENCE MANUAL by Bram Moolenaar
@ -261,6 +261,7 @@ Vim would never have become what it is now, without the help of these people!
I wish to thank all the people that sent me bug reports and suggestions. The
list is too long to mention them all here. Vim would not be the same without
the ideas from all these people: They keep Vim alive!
*love* *peace* *friendship* *gross-national-happiness*
In this documentation there are several references to other versions of Vi:
@ -394,6 +395,8 @@ CTRL-{char} {char} typed as a control character; that is, typing {char}
*quotecommandquote*
"command" A reference to a command that you can type is enclosed in
double quotes.
`command` New style command, this distinguishes it from other quoted
text and strings.
*key-notation* *key-codes* *keycodes*
These names for keys are used in the documentation. They can also be used

View File

@ -1,4 +1,4 @@
*map.txt* For Vim version 7.3. Last change: 2012 Apr 13
*map.txt* For Vim version 7.4. Last change: 2013 Aug 22
VIM REFERENCE MANUAL by Bram Moolenaar
@ -49,7 +49,7 @@ modes.
:nm[ap] {lhs} {rhs} |mapmode-n| *:nm* *:nmap*
:vm[ap] {lhs} {rhs} |mapmode-v| *:vm* *:vmap*
:xm[ap] {lhs} {rhs} |mapmode-x| *:xm* *:xmap*
:smap {lhs} {rhs} |mapmode-s| *:smap*
:smap {lhs} {rhs} |mapmode-s| *:smap*
:om[ap] {lhs} {rhs} |mapmode-o| *:om* *:omap*
:map! {lhs} {rhs} |mapmode-ic| *:map!*
:im[ap] {lhs} {rhs} |mapmode-i| *:im* *:imap*
@ -159,9 +159,9 @@ type "a", then "bar" will get inserted.
1.2 SPECIAL ARGUMENTS *:map-arguments*
"<buffer>", "<silent>", "<special>", "<script>", "<expr>" and "<unique>" can
be used in any order. They must appear right after the command, before any
other arguments.
"<buffer>", "<nowait>", "<silent>", "<special>", "<script>", "<expr>" and
"<unique>" can be used in any order. They must appear right after the
command, before any other arguments.
*:map-local* *:map-<buffer>* *E224* *E225*
If the first argument to one of these commands is "<buffer>" the mapping will
@ -169,12 +169,23 @@ be effective in the current buffer only. Example: >
:map <buffer> ,w /[.,;]<CR>
Then you can map ",w" to something else in another buffer: >
:map <buffer> ,w /[#&!]<CR>
The local buffer mappings are used before the global ones.
The local buffer mappings are used before the global ones. See <nowait> below
to make a short local mapping not taking effect when a longer global one
exists.
The "<buffer>" argument can also be used to clear mappings: >
:unmap <buffer> ,w
:mapclear <buffer>
Local mappings are also cleared when a buffer is deleted, but not when it is
unloaded. Just like local option values.
Also see |map-precedence|.
*:map-<nowait>* *:map-nowait*
When defining a buffer-local mapping for "," there may be a global mapping
that starts with ",". Then you need to type another character for Vim to know
whether to use the "," mapping or the longer one. To avoid this add the
<nowait> argument. Then the mapping will be used when it matches, Vim does
not wait for more characters to be typed. However, if the characters were
already type they are used.
*:map-<silent>* *:map-silent*
To define a mapping which will not be echoed on the command line, add
@ -369,11 +380,12 @@ it's just used here for this situation.
The simplest way to load a set of related language mappings is by using the
'keymap' option. See |45.5|.
In Insert mode and in Command-line mode the mappings can be disabled with
the CTRL-^ command |i_CTRL-^| |c_CTRL-^|. When starting to enter a normal
command line (not a search pattern) the mappings are disabled until a CTRL-^
is typed. The state last used is remembered for Insert mode and Search
patterns separately. The state for Insert mode is also used when typing a
character as an argument to command like "f" or "t".
the CTRL-^ command |i_CTRL-^| |c_CTRL-^|. These commands change the value of
the 'iminsert' option. When starting to enter a normal command line (not a
search pattern) the mappings are disabled until a CTRL-^ is typed. The state
last used is remembered for Insert mode and Search patterns separately. The
state for Insert mode is also used when typing a character as an argument to
command like "f" or "t".
Language mappings will never be applied to already mapped characters. They
are only used for typed characters. This assumes that the language mapping
was already done when typing the mapping.
@ -586,7 +598,7 @@ this (see |<>|). Example: >
To avoid mapping of the characters you type in insert or Command-line mode,
type a CTRL-V first. The mapping in Insert mode is disabled if the 'paste'
option is on.
*map-error*
Note that when an error is encountered (that causes an error message or beep)
the rest of the mapping is not executed. This is Vi-compatible.
@ -654,6 +666,17 @@ option). After that it assumes that the 'q' is to be interpreted as such. If
you type slowly, or your system is slow, reset the 'timeout' option. Then you
might want to set the 'ttimeout' option.
*map-precedence*
Buffer-local mappings (defined using |:map-<buffer>|) take precedence over
global mappings. When a buffer-local mapping is the same as a global mapping,
Vim will use the buffer-local mapping. In addition, Vim will use a complete
mapping immediately if it was defined with <nowait>, even if a longer mapping
has the same prefix. For example, given the following two mappings: >
:map <buffer> <nowait> \a :echo "Local \a"<CR>
:map \abc :echo "Global \abc"<CR>
When typing \a the buffer-local mapping will be used immediately. Vim will
not wait for more characters to see if the user might be typing \abc.
*map-keys-fails*
There are situations where key codes might not be recognized:
- Vim can only read part of the key code. Mostly this is only the first
@ -1242,8 +1265,10 @@ completion can be enabled:
-complete=shellcmd Shell command
-complete=sign |:sign| suboptions
-complete=syntax syntax file names |'syntax'|
-complete=syntime |:syntime| suboptions
-complete=tag tags
-complete=tag_listfiles tags, file names are shown when CTRL-D is hit
-complete=user user names
-complete=var user variables
-complete=custom,{func} custom completion, defined via {func}
-complete=customlist,{func} custom completion, defined via {func}
@ -1334,6 +1359,8 @@ There are some special cases as well:
In the cases of the -count and -register attributes, if the optional argument
is supplied, it is removed from the argument list and is available to the
replacement text separately.
Note that these arguments can be abbreviated, but that is a deprecated
feature. Use the full name for new scripts.
Replacement text

View File

@ -1,4 +1,4 @@
*mbyte.txt* For Vim version 7.3. Last change: 2012 Feb 29
*mbyte.txt* For Vim version 7.4. Last change: 2013 May 18
VIM REFERENCE MANUAL by Bram Moolenaar et al.
@ -48,9 +48,9 @@ COMPILING
If you already have a compiled Vim program, check if the |+multi_byte| feature
is included. The |:version| command can be used for this.
If +multi_byte is not included, you should compile Vim with "big" features.
You can further tune what features are included. See the INSTALL files in the
source directory.
If +multi_byte is not included, you should compile Vim with "normal", "big" or
"huge" features. You can further tune what features are included. See the
INSTALL files in the source directory.
LOCALE
@ -475,7 +475,7 @@ Useful utilities for converting the charset:
|charset| converter. Supported |charset|: ISO-2022-CN, ISO-2022-JP,
ISO-2022-KR, EUC-CN, EUC-JP, EUC-KR, EUC-TW, UTF-7, UTF-8, ISO-8859
series, Shift_JIS, Big5 and HZ. Lv can be found at:
http://www.ff.iij4u.or.jp/~nrt/freeware/lv4495.tar.gz
http://www.ff.iij4u.or.jp/~nrt/lv/index.html
*mbyte-conversion*
@ -615,7 +615,7 @@ Each field means:
charsets, such as JIS X 0208, if this field is 0, code points has
the same value as GL, and GR if 1.
For example, in case of a 14 dots font corresponding to JIS X 0208, it is
For example, in case of a 16 dots font corresponding to JIS X 0208, it is
written like:
-misc-fixed-medium-r-normal--16-110-100-100-c-160-jisx0208.1990-0
@ -1067,7 +1067,7 @@ The actual mappings are in the lines below "loadkeymap". In the example "a"
is mapped to "A" and "b" to "B". Thus the first item is mapped to the second
item. This is done for each line, until the end of the file.
These items are exactly the same as what can be used in a |:lnoremap| command,
using "<buffer>" to make the mappings local to the buffer..
using "<buffer>" to make the mappings local to the buffer.
You can check the result with this command: >
:lmap
The two items must be separated by white space. You cannot include white
@ -1085,6 +1085,13 @@ Since the mapping is defined with |:lnoremap| the resulting quote will not be
used for the start of another character.
The "accents" keymap uses this. *keymap-accents*
The first column can also be in |<>| form:
<C-c> Ctrl-C
<A-c> Alt-c
<A-C> Alt-C
Note that the Alt mappings may not work, depending on your keyboard and
terminal.
Although it's possible to have more than one character in the second column,
this is unusual. But you can use various ways to specify the character: >
A a literal character

View File

@ -1,4 +1,4 @@
*message.txt* For Vim version 7.3. Last change: 2011 May 10
*message.txt* For Vim version 7.4. Last change: 2013 Feb 23
VIM REFERENCE MANUAL by Bram Moolenaar
@ -730,7 +730,11 @@ Vim cannot create a temporary file.
Can't open file {filename}
Can't read file {filename}
Vim cannot read a temporary file.
Vim cannot read a temporary file. Especially on Windows, this can be caused
by wrong escaping of special characters for cmd.exe; the approach was
changed with patch 7.3.443. Try using |shellescape()| for all shell arguments
given to |system()|, or explicitly add escaping with ^. Also see
'shellxquote' and 'shellxescape'.
*E464* >
Ambiguous use of user-defined command

View File

@ -1,4 +1,4 @@
*mlang.txt* For Vim version 7.3. Last change: 2012 Jan 15
*mlang.txt* For Vim version 7.4. Last change: 2012 Jan 15
VIM REFERENCE MANUAL by Bram Moolenaar

View File

@ -1,4 +1,4 @@
*motion.txt* For Vim version 7.3. Last change: 2011 Jul 19
*motion.txt* For Vim version 7.4. Last change: 2013 Jul 17
VIM REFERENCE MANUAL by Bram Moolenaar
@ -57,7 +57,7 @@ or change text. The following operators are available:
|>| > shift right
|<| < shift left
|zf| zf define a fold
|g@| g@ call function set with the 'operatorfunc' option
|g@| g@ call function set with the 'operatorfunc' option
If the motion includes a count and the operator also had a count before it,
the two counts are multiplied. For example: "2d3w" deletes six words.
@ -104,13 +104,14 @@ strokes and has limited redo functionality. See the chapter on Visual mode
|Visual-mode|.
You can use a ":" command for a motion. For example "d:call FindEnd()".
But this can't be redone with "." if the command is more than one line.
But this can't be repeated with "." if the command is more than one line.
This can be repeated: >
d:call search("f")<CR>
This cannot be repeated: >
d:if 1<CR>
call search("f")<CR>
endif<CR>
Note that when using ":" any motion becomes characterwise exclusive.
FORCING A MOTION TO BE LINEWISE, CHARACTERWISE OR BLOCKWISE
@ -235,6 +236,8 @@ g$ or g<End> When lines wrap ('wrap' on): To the last character of
the line is not on the screen or when a count is used.
Additionally, vertical movements keep the column,
instead of going to the end of the line.
When 'virtualedit' is enabled moves to the end of the
screen line.
{not in Vi}
*bar*
@ -326,6 +329,7 @@ gg Goto line [count], default first line, on the first
non-blank character |linewise|. If 'startofline' not
set, keep the same column.
*:[range]*
:[range] Set the cursor on the last line number in [range].
[range] can also be just one line number, e.g., ":1"
or ":'m".
@ -513,6 +517,8 @@ always select less text than the "a" commands.
These commands are {not in Vi}.
These commands are not available when the |+textobjects| feature has been
disabled at compile time.
Also see `gn` and `gN`, operating on the last search pattern.
*v_aw* *aw*
aw "a word", select [count] words (see |word|).
Leading or trailing white space is included, but not
@ -689,6 +695,7 @@ movement commands are used.
"daw" delete a word *daw*
"diW" delete inner WORD (see |WORD|) *diW*
"daW" delete a WORD (see |WORD|) *daW*
"dgn" delete the next search pattern match *dgn*
"dd" delete one line |dd|
"dis" delete inner sentence *dis*
"das" delete a sentence *das*
@ -750,6 +757,13 @@ m[ or m] Set the |'[| or |']| mark. Useful when an operator is
to be simulated by multiple commands. (does not move
the cursor, this is not a motion command).
*m<* *m>*
m< or m> Set the |'<| or |'>| mark. Useful to change what the
`gv` command selects. (does not move the cursor, this
is not a motion command).
Note that the Visual mode cannot be set, only the
start and end position.
*:ma* *:mark* *E191*
:[range]ma[rk] {a-zA-Z'}
Set mark {a-zA-Z'} at last line number in [range],
@ -1071,7 +1085,8 @@ only once.
When the |:keepjumps| command modifier is used, jumps are not stored in the
jumplist. Jumps are also not stored in other cases, e.g., in a |:global|
command. You can explicitly add a jump by setting the ' mark.
command. You can explicitly add a jump by setting the ' mark with "m'". Note
that calling setpos() does not do this.
After the CTRL-O command that got you into line 1154 you could give another
jump command (e.g., "G"). The jump list would then become:

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