Compare commits

...

124 Commits

Author SHA1 Message Date
Bram Moolenaar
4064e24a0f updated for version 7.4.194
Problem:    Can't build for Android.
Solution:   Add #if condition. (Fredrik Fornwall)
2014-03-12 14:54:34 +01:00
Bram Moolenaar
0858917e43 Updated runtime files. 2014-03-08 18:38:28 +01:00
Bram Moolenaar
4de6a212f9 updated for version 7.4.193
Problem:    Typos in messages.
Solution:   "then" -> "than". (Dominique Pelle)
2014-03-08 16:13:44 +01:00
Bram Moolenaar
47b8342abd updated for version 7.4.192
Problem:    Memory leak when giving E853.
Solution:   Free the argument. (Dominique Pelle)
2014-02-24 03:32:00 +01:00
Bram Moolenaar
251835e14f Update runtime files. Add Euphoria syntax files. 2014-02-24 02:51:51 +01:00
Bram Moolenaar
26df092843 updated for version 7.4.191
Problem:    Escaping a file name for shell commands can't be done without a
            function.
Solution:   Add the :S file name modifier.
2014-02-23 23:39:13 +01:00
Bram Moolenaar
581966e832 updated for version 7.4.190
Problem:    Compiler warning for using %lld for off_t.
Solution:   Add type cast.
2014-02-23 22:58:17 +01:00
Bram Moolenaar
f30caaf08d updated for version 7.4.189
Problem:    Compiler warning for unused argument.
Solution:   Add UNUSED.
2014-02-23 22:54:58 +01:00
Bram Moolenaar
a2aa31a926 updated for version 7.4.188
Problem:    SIZEOF_LONG clashes with similar defines in header files.
Solution:   Rename to a name starting with VIM_.  Also for SIZEOF_INT.
2014-02-23 22:52:40 +01:00
Bram Moolenaar
7d311c52ce updated for version 7.4.187
Problem:    Delete that crosses line break splits multi-byte character.
Solution:   Advance a character instead of a byte. (Cade Foster)
2014-02-22 23:49:35 +01:00
Bram Moolenaar
b1d90a3d77 updated for version 7.4.186
Problem:    Insert in Visual mode sometimes gives incorrect results.
            (Dominique Pelle)
Solution:   Remember the original insert start position. (Christian Brabandt,
            Dominique Pelle)
2014-02-22 23:03:55 +01:00
Bram Moolenaar
631abc35df updated for version 7.4.185
Problem:    Clang gives warnings.
Solution:   Adjust how bigness is set. (Dominique Pelle)
2014-02-22 22:27:47 +01:00
Bram Moolenaar
9feaf6206f updated for version 7.4.184
Problem:    match() does not work properly with a {count} argument.
Solution:   Compute the length once and update it.  Quit the loop when at the
            end. (Hirohito Higashi)
2014-02-22 22:18:47 +01:00
Bram Moolenaar
c86438205b updated for version 7.4.183
Problem:    MSVC Visual Studio update not supported.
Solution:   Add version number. (Mike William)
2014-02-15 19:47:51 +01:00
Bram Moolenaar
45e2bcc275 updated for version 7.4.182
Problem:    Building with mzscheme and racket does not work. (David Chimay)
Solution:   Adjust autoconf. (Sergey Khorev)
2014-02-15 17:19:00 +01:00
Bram Moolenaar
06811f33ce updated for version 7.4.181
Problem:    When using 'pastetoggle' the status lines are not updated. (Samuel
            Ferencik, Jan Christoph Ebersbach)
Solution:   Update the status lines. (Nobuhiro Takasaki)
2014-02-15 16:17:07 +01:00
Bram Moolenaar
403b3cf0a1 updated for version 7.4.180
Problem:    Older Python versions don't support %ld.
Solution:   Use %d instead. (ZyX)
2014-02-15 15:59:03 +01:00
Bram Moolenaar
0e4eebd425 updated for version 7.4.179
Problem:    Warning for type-punned pointer. (Tony Mechelynck)
Solution:   Use intermediate variable.
2014-02-12 22:08:49 +01:00
Bram Moolenaar
f92d8a254a updated for version 7.4.178
Problem:    The J command does not update '[ and '] marks. (William Gardner)
Solution:   Set the marks. (Christian Brabandt)
2014-02-11 19:33:07 +01:00
Bram Moolenaar
92dff1827a Update runtime files. Add support for systemverilog. 2014-02-11 19:15:50 +01:00
Bram Moolenaar
b8e2305656 updated for version 7.4.177
Problem:    Compiler warning for unused variable. (Tony Mechelynck)
Solution:   Add #ifdef.
2014-02-11 18:58:09 +01:00
Bram Moolenaar
2d5f38ff10 updated for version 7.4.176
Problem:    Dictionary.update() thows an error when used without arguments.
            Python programmers don't expect that.
Solution:   Make Dictionary.update() without arguments do nothing. (ZyX)
2014-02-11 18:47:27 +01:00
Bram Moolenaar
cd981f2e0f updated for version 7.4.175
Problem:    When a wide library function fails, falling back to the non-wide
            function may do the wrong thing.
Solution:   Check the platform, when the wide function is supported don't fall
            back to the non-wide function. (Ken Takata)
2014-02-11 17:06:00 +01:00
Bram Moolenaar
3b5226121d updated for version 7.4.174
Problem:    Compiler warnings for Python interface. (Tony Mechelynck)
Solution:   Add type casts, initialize variable.
2014-02-11 16:00:35 +01:00
Bram Moolenaar
12a0f22340 updated for version 7.4.173
Problem:    When using scrollbind the cursor can end up below the last line.
            (mvxxc)
Solution:   Reset w_botfill when scrolling up. (Christian Brabandt)
2014-02-11 15:47:46 +01:00
Bram Moolenaar
4d504a3e11 updated for version 7.4.172
Problem:    The blowfish code mentions output feedback, but the code is
            actually doing cipher feedback.
Solution:   Adjust names and comments.
2014-02-11 15:23:32 +01:00
Bram Moolenaar
0a36fece92 updated for version 7.4.171
Problem:    Redo does not set v:count and v:count1.
Solution:   Use a separate buffer for redo, so that we can set the counts when
            performing redo.
2014-02-11 15:10:43 +01:00
Bram Moolenaar
c467d9b274 updated for version 7.4.170
Problem:    Some help tags don't work with ":help". (Tim Chase)
Solution:   Add exceptions.
2014-02-11 12:15:43 +01:00
Bram Moolenaar
10395d8d6c updated for version 7.4.169
Problem:    ":sleep" puts cursor in the wrong column. (Liang Li)
Solution:   Add the window offset. (Christian Brabandt)
2014-02-05 22:46:52 +01:00
Bram Moolenaar
a1a118b159 updated for version 7.4.168
Problem:    Can't compile with Ruby 2.1.0.
Solution:   Add support for new GC. (Kohei Suzuki)
2014-02-05 22:41:15 +01:00
Bram Moolenaar
4f943c09a5 updated for version 7.4.167
Problem:    Fixes are not tested.
Solution:   Add a test for not autoloading on assignment. (Yukihiro Nakadaira)
2014-02-05 22:26:05 +01:00
Bram Moolenaar
f31ecce97e updated for version 7.4.166
Problem:    Auto-loading a function for code that won't be executed.
Solution:   Do not auto-load when evaluation is off. (Yasuhiro Matsumoto)
2014-02-05 22:13:05 +01:00
Bram Moolenaar
767568846b updated for version 7.4.165
Problem:    By default, after closing a buffer changes can't be undone.
Solution:   In the example vimrc file set 'undofile'.
2014-02-05 22:02:01 +01:00
Bram Moolenaar
dd415a6c5a updated for version 7.4.164
Problem:    Problem with event handling on Windows 8.
Solution:   Ignore duplicate WINDOW_BUFFER_SIZE_EVENTs. (Nobuhiro Takasaki)
2014-02-05 14:02:27 +01:00
Bram Moolenaar
f50eb7882e updated for version 7.4.163
Problem:    MS-Windows input doesn't work properly on Windows 7 and earlier.
Solution:   Add a check for Windows 8. (Yasuhiro Matsumoto)
2014-02-05 13:36:54 +01:00
Bram Moolenaar
09edc46d01 updated for version 7.4.162
Problem:    Running tests in shadow dir doesn't work.
Solution:   Add testdir/sautest to the shadow target. (James McCoy)
2014-02-05 12:36:42 +01:00
Bram Moolenaar
4315f26500 updated for version 7.4.161
Problem:    Crash in Python exception handling.
Solution:   Only use exception variables if did_throw is set. (ZyX)
2014-01-31 14:54:04 +01:00
Bram Moolenaar
fcc3f46735 updated for version 7.4.160
Problem:    Win32: Crash when executing external command.
Solution:   Only close the handle when it was created. (Yasuhiro Matsumoto)
2014-01-24 19:55:37 +01:00
Bram Moolenaar
361aa50547 updated for version 7.4.159
Problem:    Completion hangs when scanning the current buffer after doing
            keywords. (Christian Brabandt)
Solution:   Set the first match position when starting to scan the current
            buffer.
2014-01-23 22:45:58 +01:00
Bram Moolenaar
8af269186c updated for version 7.4.158
Problem:    Pattern containing \zs is not handled correctly by substitute().
Solution:   Change how an empty match is skipped. (Yukihiro Nakadaira)
2014-01-23 20:09:34 +01:00
Bram Moolenaar
b4d587cbd9 updated for version 7.4.157
Problem:    Error number used twice. (Yukihiro Nakadaira)
Solution:   Change the one not referred in the docs.
2014-01-23 18:12:49 +01:00
Bram Moolenaar
4a36bcf0d8 updated for version 7.4.156
Problem:    Test file missing from distribution.
Solution:   Add new directory to file list.
2014-01-23 14:26:24 +01:00
Bram Moolenaar
8d04317104 Updated runtime files. 2014-01-23 14:24:41 +01:00
Bram Moolenaar
ac8400d483 updated for version 7.4.155
Problem:    ":keeppatterns /pat" does not keep search pattern offset.
Solution:   Restore the offset after doing the search.
2014-01-14 21:31:34 +01:00
Bram Moolenaar
8822a9c367 updated for version 7.4.154
Problem:    Still a problem with auto-loading.
Solution:   Pass no_autoload to deref_func_name(). (Yukihiro Nakadaira)
2014-01-14 19:44:34 +01:00
Bram Moolenaar
5395e7afe9 updated for version 7.4.153
Problem:    Compiler warning for pointer type.
Solution:   Add type cast.
2014-01-14 19:35:56 +01:00
Bram Moolenaar
1028f4d75e updated for version 7.4.152
Problem:    Python: Cannot iterate over options.
Solution:   Add options iterator. (ZyX)
2014-01-14 16:55:00 +01:00
Bram Moolenaar
063a46ba77 updated for version 7.4.151
Problem:    Python: slices with steps are not supported.
Solution:   Support slices in Python vim.List. (ZyX)
2014-01-14 16:36:51 +01:00
Bram Moolenaar
14177b77bf updated for version 7.4.150
Problem:    :keeppatterns is not respected for :s.
Solution:   Check the keeppatterns flag. (Yasuhiro Matsumoto)
2014-01-14 15:53:51 +01:00
Bram Moolenaar
6d977d6c1c updated for version 7.4.149
Problem:    Get E685 error when assigning a function to an autoload variable.
            (Yukihiro Nakadaira)
Solution:   Instead of having a global no_autoload variable, pass an autoload
            flag down to where it is used. (ZyX)
2014-01-14 15:24:39 +01:00
Bram Moolenaar
ca058dc71f updated for version 7.4.148
Problem:    Cannot build with Cygwin and X11.
Solution:   Include Xwindows.h instead of windows.h. (Lech Lorens)
2014-01-14 13:26:21 +01:00
Bram Moolenaar
6cd3aeee4c updated for version 7.4.147
Problem:    Cursor moves to wrong position when using "gj" after "$" and
            virtual editing is active.
Solution:   Make "gj" behave differently when virtual editing is active.
            (Hirohito Higashi)
2014-01-14 13:18:58 +01:00
Bram Moolenaar
2cd3696c35 updated for version 7.4.146
Problem:    When starting Vim with "-u NONE" v:oldfiles is NULL.
Solution:   Set v:oldfiles to an empty list. (Yasuhiro Matsumoto)
2014-01-14 12:57:05 +01:00
Bram Moolenaar
32b9201f37 updated for version 7.4.145
Problem:    getregtype() does not return zero for unknown register.
Solution:   Adjust documention: return empty string for unknown register.
            Check the register name to be valid. (Yukihiro Nakadaira)
2014-01-14 12:33:36 +01:00
Bram Moolenaar
9d1685d1cf updated for version 7.4.144
Problem:    MingW also supports intptr_t for OPEN_OH_ARGTYPE.
Solution:   Adjust #ifdef. (Ken Takata)
2014-01-14 12:18:45 +01:00
Bram Moolenaar
e21b6b2a8d updated for version 7.4.143
Problem:    TextChangedI is not triggered.
Solution:   Reverse check for "ready". (lilydjwg)
2014-01-14 12:17:02 +01:00
Bram Moolenaar
b0d5c96133 updated for version 7.4.142
Problem:    On MS-Windows 8 IME input doen't work correctly.
Solution:   Work around the problem. (Nobuhiro Takasaki)
2014-01-12 13:24:51 +01:00
Bram Moolenaar
78cf3f0de9 updated for version 7.4.141
Problem:    Problems when building with Borland: st_mode is signed short;
            can't build with Python; temp files not ignored by Mercurial;
            building with DEBUG doesn't define _DEBUG.
Solution:   Fix the problems. (Ken Takata)
2014-01-10 18:16:07 +01:00
Bram Moolenaar
a02471e295 updated for version 7.4.140
Problem:    Crash when wiping out buffer triggers autocommand that wipes out
            only other buffer.
Solution:   Do not delete the last buffer, make it empty. (Hirohito Higashi)
2014-01-10 16:43:14 +01:00
Bram Moolenaar
bd2dc34774 updated for version 7.4.139
Problem:    Crash when using :cd in autocommand. (François Ingelrest)
Solution:   Set w_localdir to NULL after freeing it. (Dominique Pelle)
2014-01-10 15:53:13 +01:00
Bram Moolenaar
4ea924e0a5 updated for version 7.4.138
Problem:    Directory change messages are not recognized.
Solution:   Fix using a character range literally. (Lech Lorens)
2014-01-10 15:32:21 +01:00
Bram Moolenaar
3a69e1135e updated for version 7.4.137
Problem:    Cannot use IME with Windows 8 console.
Solution:   Change the user of ReadConsoleInput() and PeekConsoleInput().
            (Yasuhiro Matsumoto)
2014-01-10 13:51:42 +01:00
Bram Moolenaar
b1cb35f785 updated for version 7.4.136
Problem:    MS-Windows: When saving a file with a UNC path the file becomes
            read-only.
Solution:   Don't mix up Win32 attributes and Unix attributes. (Ken Takata)
2014-01-10 13:05:20 +01:00
Bram Moolenaar
438f67a004 Updated runtime files. 2014-01-07 06:09:28 +01:00
Bram Moolenaar
2fda301469 updated for version 7.4.135
Problem:    Missing dot in MingW test Makefile.
Solution:   Add the dot. (Michael Soyka)
2014-01-06 15:51:55 +01:00
Bram Moolenaar
5ec8305ea8 updated for version 7.4.134
Problem:    Spurious space in MingW Makefile.
Solution:   Remove the space. (Michael Soyka)
2014-01-06 15:45:10 +01:00
Bram Moolenaar
5f4c8406a2 updated for version 7.4.133
Problem:    Clang warns for using NUL.
Solution:   Change NUL to NULL. (Dominique Pelle)
2014-01-06 06:19:11 +01:00
Bram Moolenaar
3f1138e8ae updated for version 7.4.132
Problem:    Win32: flags and inherit_handles arguments mixed up.
Solution:   Swap the argument. (cs86661)
2014-01-05 13:29:26 +01:00
Bram Moolenaar
4b550b4c50 Runtime file updates. 2013-12-15 10:02:33 +01:00
Bram Moolenaar
dedd1b0aba updated for version 7.4.131
Problem:    Syncbind causes E315 errors in some situations. (Liang Li)
Solution:   Set and restore curbuf in ex_syncbind(). (Christian Brabandt)
2013-12-14 13:06:17 +01:00
Bram Moolenaar
0bd7b3f4ce updated for version 7.4.130
Problem:    Relative line numbers mix up windows when using folds.
Solution:   Use hasFoldingWin() instead of hasFolding(). (Lech Lorens)
2013-12-14 12:48:58 +01:00
Bram Moolenaar
959a143f2e updated for version 7.4.129
Problem:    getline(-1) returns zero. (mvxxc)
Solution:   Return an empty string.
2013-12-14 12:17:38 +01:00
Bram Moolenaar
207fd75cac updated for version 7.4.128
Problem:    Perl 5.18 for MSVC doesn't work.
Solution:   Add check in makefile and define __inline. (Ken Takata)
2013-12-14 11:50:35 +01:00
Bram Moolenaar
7c0daf088e updated for version 7.4.127
Problem:    Perl 5.18 on Unix doesn't work.
Solution:   Move workaround to after including vim.h. (Ken Takata)
2013-12-14 11:46:08 +01:00
Bram Moolenaar
36c85b2c46 updated for version 7.4.126
Problem:    Compiler warnings for "const" and incompatible types.
Solution:   Remove "const", add type cast. (Ken Takata)
2013-12-12 20:25:44 +01:00
Bram Moolenaar
dfb18411cf Updated runtime files. 2013-12-11 18:53:29 +01:00
Bram Moolenaar
175d0704df updated for version 7.4.125
Problem:    Win32: Dealing with messages may not work for multi-byte chars.
Solution:   Use pDispatchMessage(). (Ken Takata)
2013-12-11 18:36:33 +01:00
Bram Moolenaar
2cc8738f2f updated for version 7.4.124
Problem:    Win32: Getting host name does not use wide function.
Solution:   Use GetComputerNameW() if possible. (Ken Takata)
2013-12-11 18:21:45 +01:00
Bram Moolenaar
c8020ee825 updated for version 7.4.123
Problem:    Win32: Getting user name does not use wide function.
Solution:   Use GetUserNameW() if possible. (Ken Takata)
2013-12-11 18:18:06 +01:00
Bram Moolenaar
910cffbb5e updated for version 7.4.122
Problem:    Win32: When 'encoding' is set to "utf-8" and the active codepage
            is cp932 then ":grep" and other commands don't work for multi-byte
            characters.
Solution:   (Yasuhiro Matsumoto)
2013-12-11 17:58:35 +01:00
Bram Moolenaar
893b2d73d1 updated for version 7.4.121
Problem:    Completion doesn't work for ":py3d" and ":py3f". (Bohr Shaw)
Solution:   Skip over letters after ":py3".
2013-12-11 17:44:38 +01:00
Bram Moolenaar
fcf94d3990 updated for version 7.4.120
Problem:    Can't build with Perl 5.18 on Linux. (Lcd 47)
Solution:   Add #ifdef. (Ken Takata)
2013-12-11 17:20:19 +01:00
Bram Moolenaar
4ffa07081f updated for version 7.4.119
Problem:    Vim doesn't work well on OpenVMS.
Solution:   Fix various problems. (Samuel Ferencik)
2013-12-11 17:12:37 +01:00
Bram Moolenaar
1d633413e5 updated for version 7.4.118
Problem:    It's possible that redrawing the status lines causes
            win_redr_custom() to be called recursively.
Solution:   Protect against recursiveness. (Yasuhiro Matsumoto)
2013-12-11 15:52:01 +01:00
Bram Moolenaar
6b10721fa2 updated for version 7.4.117
Problem:    Can't build with Cygwin/MingW and Perl 5.18.
Solution:   Add a linker argument for the Perl library. (Cesar Romani)
            Adjust CFLAGS and LIB. (Cesar Romani)
            Move including inline.h further down. (Ken Takata)
2013-12-11 15:06:40 +01:00
Bram Moolenaar
7ba0741451 updated for version 7.4.116
Problem:    When a mapping starts with a space, the typed space does not show
            up for 'showcmd'.
Solution:   Show "<20>". (Brook Hong)
2013-12-11 14:55:01 +01:00
Bram Moolenaar
b011af9696 updated for version 7.4.115
Problem:    When using Zsh expanding ~abc doesn't work when the result
            contains a space.
Solution:   Off-by-one error in detecting the NUL. (Pavol Juhas)
2013-12-11 13:21:51 +01:00
Bram Moolenaar
5d7f9df8fa updated for version 7.4.114
Problem:    New GNU make outputs messages about changing directory in another
            format.
Solution:   Recognize the new format.
2013-12-11 12:22:58 +01:00
Bram Moolenaar
73c61633b6 updated for version 7.4.113
Problem:    MSVC static analysis gives warnings.
Solution:   Avoid the warnings and avoid possible bugs. (Ken Takata)
2013-12-07 14:48:10 +01:00
Bram Moolenaar
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
Bram Moolenaar
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
Bram Moolenaar
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
Bram Moolenaar
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
Bram Moolenaar
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
Bram Moolenaar
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
Bram Moolenaar
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
Bram Moolenaar
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
Bram Moolenaar
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
Bram Moolenaar
3678208477 Updated runtime files. 2013-11-28 13:53:34 +01:00
Bram Moolenaar
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
Bram Moolenaar
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
Bram Moolenaar
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
Bram Moolenaar
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
Bram Moolenaar
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
Bram Moolenaar
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
Bram Moolenaar
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
Bram Moolenaar
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
Bram Moolenaar
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
Bram Moolenaar
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
Bram Moolenaar
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
Bram Moolenaar
4b60a6cdb3 Update runtime files. 2013-11-14 05:48:46 +01:00
Bram Moolenaar
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
Bram Moolenaar
e874744e94 updated for version 7.4.091
Problem:    Missing semicolon.
Solution:   Add the semicolon.
2013-11-12 18:09:29 +01:00
Bram Moolenaar
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
Bram Moolenaar
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
Bram Moolenaar
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
Bram Moolenaar
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
Bram Moolenaar
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
Bram Moolenaar
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
Bram Moolenaar
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
Bram Moolenaar
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
Bram Moolenaar
8e69b4a319 Updated runtime files. 2013-11-09 03:41:58 +01:00
Bram Moolenaar
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
Bram Moolenaar
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
186 changed files with 5781 additions and 1889 deletions

9
.gitignore vendored
View File

@@ -36,6 +36,15 @@ src/Obj*/pathdef.c
gvimext.dll
gvimext.lib
# Borland C++
bcc.cfg
*.ilc
*.ild
*.ilf
*.ils
*.map
*.tds
# Mac OSX
src/xxd/xxd.dSYM

View File

@@ -80,6 +80,7 @@ SRC_ALL = \
src/main.aap \
src/testdir/main.aap \
src/testdir/*.in \
src/testdir/sautest/autoload/*.vim \
src/testdir/test[0-9]*.ok \
src/testdir/test49.vim \
src/testdir/test60.vim \

View File

@@ -1,8 +1,8 @@
" ---------------------------------------------------------------------
" getscript.vim
" Author: Charles E. Campbell
" Date: Apr 17, 2013
" Version: 35
" Date: Jan 21, 2014
" Version: 36
" Installing: :help glvs-install
" Usage: :help glvs
"
@@ -15,7 +15,7 @@
if exists("g:loaded_getscript")
finish
endif
let g:loaded_getscript= "v35"
let g:loaded_getscript= "v36"
if &cp
echoerr "GetLatestVimScripts is not vi-compatible; not loaded (you need to set nocp)"
finish
@@ -208,8 +208,8 @@ fun! getscript#GetLatestVimScripts()
let lastline = line("$")
" call Decho("lastline#".lastline)
let firstdir = substitute(&rtp,',.*$','','')
let plugins = split(globpath(firstdir,"plugin/*.vim"),'\n')
let plugins = plugins + split(globpath(firstdir,"AsNeeded/*.vim"),'\n')
let plugins = split(globpath(firstdir,"plugin/**/*.vim"),'\n')
let plugins = plugins + split(globpath(firstdir,"AsNeeded/**/*.vim"),'\n')
let foundscript = 0
" this loop updates the GetLatestVimScripts.dat file

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
" netrwSettings.vim: makes netrw settings simpler
" Date: May 03, 2013
" Date: Aug 27, 2013
" Maintainer: Charles E Campbell <drchipNOSPAM at campbellfamily dot biz>
" Version: 14a ASTRO-ONLY
" Version: 14
" 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
@@ -19,7 +19,7 @@
if exists("g:loaded_netrwSettings") || &cp
finish
endif
let g:loaded_netrwSettings = "v14a"
let g:loaded_netrwSettings = "v14"
if v:version < 700
echohl WarningMsg
echo "***warning*** this version of netrwSettings needs vim 7.0"
@@ -98,6 +98,11 @@ fun! netrwSettings#NetrwSettings()
put = ''
put ='+ Netrw Browser Control'
if exists("g:netrw_altfile")
put = 'let g:netrw_altfile = '.g:netrw_altfile
else
put = 'let g:netrw_altfile = 0'
endif
put = 'let g:netrw_alto = '.g:netrw_alto
put = 'let g:netrw_altv = '.g:netrw_altv
put = 'let g:netrw_banner = '.g:netrw_banner

View File

@@ -0,0 +1,71 @@
" netrw_gitignore#Hide: gitignore-based hiding
" Function returns a string of comma separated patterns convenient for
" assignment to `g:netrw_list_hide` option.
" Function can take additional filenames as arguments, example:
" netrw_gitignore#Hide('custom_gitignore1', 'custom_gitignore2')
"
" Usage examples:
" let g:netrw_list_hide = netrw_gitignore#Hide()
" let g:netrw_list_hide = netrw_gitignore#Hide() . 'more,hide,patterns'
"
" Copyright: Copyright (C) 2013 Bruno Sutic {{{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,
" netrw_gitignore.vim is provided *as is* and comes with no
" warranty of any kind, either expressed or implied. By using
" this plugin, you agree that in no event will the copyright
" holder be liable for any damages resulting from the use
" of this software.
function! netrw_gitignore#Hide(...)
let additional_files = a:000
let default_files = ['.gitignore', '.git/info/exclude']
" get existing global/system gitignore files
let global_gitignore = expand(substitute(system("git config --global core.excludesfile"), '\n', '', 'g'))
if global_gitignore !=# ''
let default_files = add(default_files, global_gitignore)
endif
let system_gitignore = expand(substitute(system("git config --system core.excludesfile"), '\n', '', 'g'))
if system_gitignore !=# ''
let default_files = add(default_files, system_gitignore)
endif
" append additional files if given as function arguments
if additional_files !=# []
let files = extend(default_files, additional_files)
else
let files = default_files
endif
" keep only existing/readable files
let gitignore_files = []
for file in files
if filereadable(file)
let gitignore_files = add(gitignore_files, file)
endif
endfor
" get contents of gitignore patterns from those files
let gitignore_lines = []
for file in gitignore_files
for line in readfile(file)
" filter empty lines and comments
if line !~# '^#' && line !~# '^$'
let gitignore_lines = add(gitignore_lines, line)
endif
endfor
endfor
" convert gitignore patterns to Netrw/Vim regex patterns
let escaped_lines = []
for line in gitignore_lines
let escaped = line
let escaped = substitute(escaped, '\.', '\\.', 'g')
let escaped = substitute(escaped, '*', '.*', 'g')
let escaped_lines = add(escaped_lines, escaped)
endfor
return join(escaped_lines, ',')
endfunction

View File

@@ -36,6 +36,14 @@ Some attributes (e.g., bold) might be set in the defaults that you want
removed in your color scheme. Use something like "gui=NONE" to remove the
attributes.
In case you want to set 'background' depending on the colorscheme selected,
this autocmd might be useful:
autocmd SourcePre */colors/blue_sky.vim set background=dark
Replace "blue_sky" with the name of the colorscheme.
In case you want to tweak a colorscheme after it was loaded, check out that
ColorScheme autocmd event.
To see which highlight group is used where, find the help for
"highlight-groups" and "group-name".

View File

@@ -25,10 +25,10 @@ CompilerSet errorformat=
\%f:%l:\ %tarning:\ %m,
\%f:%l:\ %m,
\\"%f\"\\,\ line\ %l%*\\D%c%*[^\ ]\ %m,
\%D%*\\a[%*\\d]:\ Entering\ directory\ `%f',
\%X%*\\a[%*\\d]:\ Leaving\ directory\ `%f',
\%D%*\\a:\ Entering\ directory\ `%f',
\%X%*\\a:\ Leaving\ directory\ `%f',
\%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
if exists('g:compiler_gcc_ignore_unmatched_lines')

View File

@@ -1,4 +1,4 @@
*autocmd.txt* For Vim version 7.4. Last change: 2013 Aug 04
*autocmd.txt* For Vim version 7.4. Last change: 2014 Jan 23
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -304,6 +304,9 @@ Name triggered by ~
|InsertCharPre| when a character was typed in Insert mode, before
inserting it
|TextChanged| after a change was made to the text in Normal mode
|TextChangedI| after a change was made to the text in Insert mode
|ColorScheme| after loading a color scheme
|RemoteReply| a reply from a server Vim was received
@@ -480,6 +483,12 @@ 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
@@ -553,6 +562,9 @@ FileChangedRO Before making the first change to a read-only
It is not allowed to change to another buffer
here. You can reload the buffer but not edit
another one.
*E881*
If the number of lines changes saving for undo
may fail and the change will be aborted.
*FileChangedShell*
FileChangedShell When Vim notices that the modification time of
a file has changed since editing started.
@@ -731,7 +743,7 @@ QuickFixCmdPost Like QuickFixCmdPre, but after a quickfix
command is run, before jumping to the first
location. For |:cfile| and |:lfile| commands
it is run after error file is read and before
moving to the first error.
moving to the first error.
See |QuickFixCmdPost-example|.
*QuitPre*
QuitPre When using `:quit`, `:wq` or `:qall`, before

View File

@@ -1,4 +1,4 @@
*change.txt* For Vim version 7.4. Last change: 2013 Aug 25
*change.txt* For Vim version 7.4. Last change: 2014 Feb 11
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -156,6 +156,9 @@ only after a '.').
The 'B' and 'M' flags in 'formatoptions' change the behavior for inserting
spaces before and after a multi-byte character |fo-table|.
The '[ mark is set at the end of the first line that was joined, '] at the end
of the resulting line.
==============================================================================
2. Delete and insert *delete-insert* *replacing*
@@ -475,8 +478,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
@@ -824,7 +827,7 @@ either the first or second pattern in parentheses did not match, so either
<
Substitute with an expression *sub-replace-expression*
*sub-replace-\=*
*sub-replace-\=* *s/\=*
When the substitute string starts with "\=" the remainder is interpreted as an
expression. This does not work recursively: a |substitute()| function inside
the expression cannot use "\=" for the substitute string.

View File

@@ -1,4 +1,4 @@
*cmdline.txt* For Vim version 7.4. Last change: 2013 Mar 16
*cmdline.txt* For Vim version 7.4. Last change: 2014 Feb 23
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -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*
@@ -754,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_##*
@@ -819,8 +824,8 @@ Note: these are typed literally, they are not special keys!
the start of the function.
*filename-modifiers*
*:_%:* *::8* *::p* *::.* *::~* *::h* *::t* *::r* *::e* *::s* *::gs*
*%:8* *%:p* *%:.* *%:~* *%:h* *%:t* *%:r* *%:e* *%:s* *%:gs*
*:_%:* *::8* *::p* *::.* *::~* *::h* *::t* *::r* *::e* *::s* *::gs* *::S*
*%:8* *%:p* *%:.* *%:~* *%:h* *%:t* *%:r* *%:e* *%:s* *%:gs* *%:S*
The file name modifiers can be used after "%", "#", "#n", "<cfile>", "<sfile>",
"<afile>" or "<abuf>". They are also used with the |fnamemodify()| function.
These are not available when Vim has been compiled without the |+modify_fname|
@@ -875,6 +880,10 @@ These modifiers can be given, in this order:
:gs?pat?sub?
Substitute all occurrences of "pat" with "sub". Otherwise
this works like ":s".
:S Escape special characters for use with a shell command (see
|shellescape()|). Must be the last one. Examples: >
:!dir <cfile>:S
:call system('chmod +w -- ' . expand('%:S'))
Examples, when the file name is "src/version.c", current dir
"/home/mool/vim": >

View File

@@ -1,4 +1,4 @@
*digraph.txt* For Vim version 7.4. Last change: 2011 Jan 15
*digraph.txt* For Vim version 7.4. Last change: 2013 Dec 12
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -147,7 +147,7 @@ a standard meaning:
Two 2 Hook
Nine 9 Horn
Equals = Cyrillic
Equals = Cyrillic (= used as second char)
Asterisk * Greek
Percent sign % Greek/Cyrillic special
Plus + smalls: Arabic, capitals: Hebrew

View File

@@ -1,4 +1,4 @@
*editing.txt* For Vim version 7.4. Last change: 2013 Aug 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

View File

@@ -1,4 +1,4 @@
*eval.txt* For Vim version 7.4. Last change: 2013 Nov 02
*eval.txt* For Vim version 7.4. Last change: 2014 Feb 11
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1519,6 +1519,7 @@ v:oldfiles List of file names that is loaded from the |viminfo| file on
startup. These are the files that Vim remembers marks for.
The length of the List is limited by the ' argument of the
'viminfo' option (default is 100).
When the |viminfo| file is not used the List is empty.
Also see |:oldfiles| and |c_#<|.
The List can be modified, but this has no effect on what is
stored in the |viminfo| file later. If you use values other
@@ -1744,7 +1745,7 @@ cscope_connection( [{num} , {dbpath} [, {prepend}]])
cursor( {lnum}, {col} [, {coladd}])
Number move cursor to {lnum}, {col}, {coladd}
cursor( {list}) Number move cursor to position in {list}
deepcopy( {expr}) any make a full copy of {expr}
deepcopy( {expr} [, {noref}]) any make a full copy of {expr}
delete( {fname}) Number delete file {fname}
did_filetype() Number TRUE if FileType autocommand event used
diff_filler( {lnum}) Number diff filler lines about {lnum}
@@ -3200,7 +3201,7 @@ getchar([expr]) *getchar()*
If [expr] is 1, only check if a character is available, it is
not consumed. Return zero if no character available.
Without {expr} and when {expr} is 0 a whole character or
Without [expr] and when [expr] is 0 a whole character or
special key is returned. If it is an 8-bit character, the
result is a number. Use nr2char() to convert it to a String.
Otherwise a String is returned with the encoded character.
@@ -3210,7 +3211,7 @@ getchar([expr]) *getchar()*
String when a modifier (shift, control, alt) was used that is
not included in the character.
When {expr} is 1 only the first byte is returned. For a
When [expr] is 1 only the first byte is returned. For a
one-byte character it is the character itself as a number.
Use nr2char() to convert it to a String.
@@ -3460,7 +3461,7 @@ getregtype([{regname}]) *getregtype()*
"v" for |characterwise| text
"V" for |linewise| text
"<CTRL-V>{width}" for |blockwise-visual| text
0 for an empty or unknown register
"" for an empty or unknown register
<CTRL-V> is one character with value 0x16.
If {regname} is not specified, |v:register| is used.
@@ -4134,6 +4135,8 @@ maparg({name}[, {mode} [, {abbr} [, {dict}]]]) *maparg()*
(|mapmode-ic|)
"sid" The script local ID, used for <sid> mappings
(|<SID>|).
"nowait" Do not wait for other, longer mappings.
(|:map-<nowait>|).
The mappings local to the current buffer are checked first,
then the global mappings.
@@ -4235,6 +4238,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
@@ -4444,6 +4450,9 @@ getpos({expr}) Get the position for {expr}. For possible values of {expr}
it is the offset in screen columns from the start of the
character. E.g., a position within a <Tab> or after the last
character.
Note that for '< and '> Visual mode matters: when it is "V"
(visual line mode) the column of '< is zero and the column of
'> is a large number.
This can be used to save and restore the cursor position: >
let save_cursor = getpos(".")
MoveTheCursorAround
@@ -5267,6 +5276,10 @@ setpos({expr}, {list})
character. E.g., a position within a <Tab> or after the last
character.
Note that for '< and '> changing the line number may result in
the marks to be effectively be swapped, so that '< is always
before '>.
Returns 0 when the position could be set, -1 otherwise.
An error message is given if {expr} is invalid.
@@ -5415,6 +5428,7 @@ shellescape({string} [, {special}]) *shellescape()*
< This results in a directory listing for the file under the
cursor. Example of use with |system()|: >
:call system("chmod +w -- " . shellescape(expand("%")))
< See also |::S|.
shiftwidth() *shiftwidth()*
@@ -5629,7 +5643,7 @@ strchars({expr}) *strchars()*
strdisplaywidth({expr}[, {col}]) *strdisplaywidth()*
The result is a Number, which is the number of display cells
String {expr} occupies on the screen.
String {expr} occupies on the screen when it starts a {col}.
When {col} is omitted zero is used. Otherwise it is the
screen column where to start. This matters for Tab
characters.
@@ -5897,14 +5911,16 @@ system({expr} [, {input}]) *system()* *E677*
passed as stdin to the command. The string is written as-is,
you need to take care of using the correct line separators
yourself. Pipes are not used.
Note: Use |shellescape()| to escape special characters in a
command argument. Newlines in {expr} may cause the command to
fail. The characters in 'shellquote' and 'shellxquote' may
also cause trouble.
Note: Use |shellescape()| or |::S| with |expand()| or
|fnamemodify()| to escape special characters in a command
argument. Newlines in {expr} may cause the command to fail.
The characters in 'shellquote' and 'shellxquote' may also
cause trouble.
This is not to be used for interactive commands.
The result is a String. Example: >
:let files = system("ls " . shellescape(expand('%:h')))
:let files = system('ls ' . expand('%:h:S'))
< To make the result more system-independent, the shell output
is filtered to replace <CR> with <NL> for Macintosh, and
@@ -6627,7 +6643,7 @@ See |:verbose-cmd| for more information.
For the {arguments} see |function-argument|.
*a:firstline* *a:lastline*
*:func-range* *a:firstline* *a:lastline*
When the [range] argument is added, the function is
expected to take care of a range itself. The range is
passed as "a:firstline" and "a:lastline". If [range]
@@ -6636,10 +6652,10 @@ See |:verbose-cmd| for more information.
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.
*:func-abort*
When the [abort] argument is added, the function will
abort as soon as an error is detected.
*:func-dict*
When the [dict] argument is added, the function must
be invoked through an entry in a |Dictionary|. The
local variable "self" will then be set to the
@@ -7444,7 +7460,7 @@ This does NOT work: >
for Vim commands, |shellescape()| for |:!| commands.
Examples: >
:execute "e " . fnameescape(filename)
:execute "!ls " . shellescape(expand('%:h'), 1)
:execute "!ls " . shellescape(filename, 1)
<
Note: The executed string may be any command-line, but
you cannot start or end a "while", "for" or "if"

View File

@@ -1,4 +1,4 @@
*filetype.txt* For Vim version 7.4. Last change: 2013 May 25
*filetype.txt* For Vim version 7.4. Last change: 2013 Dec 15
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -447,23 +447,25 @@ g:changelog_new_date_format
%% insert a single '%' character
%d insert the date from above
%u insert the user from above
%p insert result of b:changelog_entry_prefix
%c where to position cursor when done
The default is "%d %u\n\n\t* %c\n\n", which produces
The default is "%d %u\n\n\t* %p%c\n\n", which produces
something like (| is where cursor will be, unless at
the start of the line where it denotes the beginning
of the line) >
|2003-01-14 Full Name <user@host>
|
| * |
| * prefix|
<
g:changelog_new_entry_format
The format used when creating a new entry.
The following table describes special tokens in the
string:
%p insert result of b:changelog_entry_prefix
%c where to position cursor when done
The default is "\t*%c", which produces something
similar to >
| * |
| * prefix|
<
g:changelog_date_entry_search
The search pattern to use when searching for a

View File

@@ -1,4 +1,4 @@
*fold.txt* For Vim version 7.4. Last change: 2010 May 13
*fold.txt* For Vim version 7.4. Last change: 2013 Dec 04
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -285,9 +285,10 @@ zF Create a fold for [count] lines. Works like "zf".
*zd* *E351*
zd Delete one fold at the cursor. When the cursor is on a folded
line, that fold is deleted. Nested folds are moved one level
up. In Visual mode all folds (partially) in the selected area
are deleted. Careful: This easily deletes more folds than you
expect and there is no undo.
up. In Visual mode one level of all folds (partially) in the
selected area are deleted.
Careful: This easily deletes more folds than you expect and
there is no undo for manual folding.
This only works when 'foldmethod' is "manual" or "marker".
Also see |fold-delete-marker|.

View File

@@ -1,4 +1,4 @@
*gui.txt* For Vim version 7.4. Last change: 2013 Jun 12
*gui.txt* For Vim version 7.4. Last change: 2014 Mar 08
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -133,6 +133,7 @@ task bar with the 'guiheadroom' option.
:winp[os]
Display current position of the top left corner of the GUI vim
window in pixels. Does not work in all versions.
Also see |getwinposx()| and |getwinposy()|.
:winp[os] {X} {Y} *E466*
Put the GUI vim window at the given {X} and {Y} coordinates.
@@ -151,8 +152,11 @@ task bar with the 'guiheadroom' option.
option.
If you are running the X Window System, you can get information about the
window Vim is running in with this command: >
window Vim is running in with these commands: >
:!xwininfo -id $WINDOWID
:!xprop -id $WINDOWID
:execute '!xwininfo -id ' . v:windowid
:execute '!xprop -id ' . v:windowid
<
*gui-IME* *iBus*
Input methods for international characters in X that rely on the XIM

View File

@@ -1,4 +1,4 @@
*gui_x11.txt* For Vim version 7.4. Last change: 2011 Sep 14
*gui_x11.txt* For Vim version 7.4. Last change: 2014 Mar 08
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -442,7 +442,7 @@ command line argument).
*gui-x11-kde*
There is no KDE version of Vim. There has been some work on a port using the
Qt toolkit, but it never worked properly and it has been abandoned. Work
continues on Yzis: www.yzis.org.
continues on Yzis: https://github.com/chrizel/Yzis.
==============================================================================
8. Compiling *gui-x11-compiling*

View File

@@ -1,4 +1,4 @@
*indent.txt* For Vim version 7.4. Last change: 2013 Aug 03
*indent.txt* For Vim version 7.4. Last change: 2013 Nov 05
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -598,7 +598,6 @@ without limits.
" Default
let g:clojure_maxlines = 100
<
*g:clojure_fuzzy_indent*
*g:clojure_fuzzy_indent_patterns*
*g:clojure_fuzzy_indent_blacklist*
@@ -652,7 +651,6 @@ default list below.
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
@@ -677,6 +675,28 @@ This option is off by default.
" Default
let g:clojure_align_multiline_strings = 0
<
*g:clojure_align_subforms*
By default, parenthesized compound forms that look like function calls and
whose head subform is on its own line have subsequent subforms indented by
two spaces relative to the opening paren:
>
(foo
bar
baz)
<
Setting this option changes this behavior so that all subforms are aligned to
the same column:
>
(foo
bar
baz)
<
This option is off by default.
>
" Default
let g:clojure_align_subforms = 0
<
FORTRAN *ft-fortran-indent*

View File

@@ -1,4 +1,4 @@
*index.txt* For Vim version 7.4. Last change: 2013 Oct 01
*index.txt* For Vim version 7.4. Last change: 2013 Nov 14
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1275,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

View File

@@ -593,7 +593,7 @@ illogical when compared to other commands.
When you have a mapping that contains an Ex command, you need to put a line
terminator after it to have it executed. The use of <CR> is recommended for
this (see |<>|). Example: >
:map _ls :!ls -l %<CR>:echo "the end"<CR>
:map _ls :!ls -l %:S<CR>:echo "the end"<CR>
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'

View File

@@ -1,4 +1,4 @@
*motion.txt* For Vim version 7.4. Last change: 2013 Jul 17
*motion.txt* For Vim version 7.4. Last change: 2014 Feb 11
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -343,7 +343,7 @@ gg Goto line [count], default first line, on the first
See also 'startofline' option. {not in Vi}
:[range]go[to] [count] *:go* *:goto* *go*
[count]go Go to {count} byte in the buffer. Default [count] is
[count]go Go to [count] byte in the buffer. Default [count] is
one, start of the file. When giving [range], the
last number in it used as the byte count. End-of-line
characters are counted depending on the current

View File

@@ -1,4 +1,4 @@
*options.txt* For Vim version 7.4. Last change: 2013 Aug 22
*options.txt* For Vim version 7.4. Last change: 2013 Dec 04
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -987,7 +987,7 @@ A jump table for the options with a short description can be found at |Q_op|.
*'backupdir'* *'bdir'*
'backupdir' 'bdir' string (default for Amiga: ".,t:",
for MS-DOS and Win32: ".,c:/tmp,c:/temp"
for MS-DOS and Win32: ".,$TEMP,c:/tmp,c:/temp"
for Unix: ".,~/tmp,~/")
global
{not in Vi}
@@ -2477,7 +2477,7 @@ A jump table for the options with a short description can be found at |Q_op|.
*'directory'* *'dir'*
'directory' 'dir' string (default for Amiga: ".,t:",
for MS-DOS and Win32: ".,c:\tmp,c:\temp"
for MS-DOS and Win32: ".,$TEMP,c:\tmp,c:\temp"
for Unix: ".,~/tmp,/var/tmp,/tmp")
global
List of directory names for the swap file, separated with commas.
@@ -4757,8 +4757,9 @@ A jump table for the options with a short description can be found at |Q_op|.
global or local to buffer |global-local|
{not in Vi}
Program to use for the ":make" command. See |:make_makeprg|.
This option may contain '%' and '#' characters, which are expanded to
the current and alternate file name. |:_%| |:_#|
This option may contain '%' and '#' characters (see |:_%| and |:_#|),
which are expanded to the current and alternate file name. Use |::S|
to escape file names in case they contain special characters.
Environment variables are expanded |:set_env|. See |option-backslash|
about including spaces and backslashes.
Note that a '|' must be escaped twice: once for ":set" and once for
@@ -6555,6 +6556,9 @@ A jump table for the options with a short description can be found at |Q_op|.
region by listing them: "en_us,en_ca" supports both US and Canadian
English, but not words specific for Australia, New Zealand or Great
Britain.
If the name "cjk" is included East Asian characters are excluded from
spell checking. This is useful when editing text that also has Asian
words.
*E757*
As a special case the name of a .spl file can be given as-is. The
first "_xx" in the name is removed and used as the region name

View File

@@ -1,4 +1,4 @@
*pattern.txt* For Vim version 7.4. Last change: 2013 Jul 06
*pattern.txt* For Vim version 7.4. Last change: 2014 Feb 08
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -192,10 +192,10 @@ affected.
An example of how to search for matches with a pattern and change the match
with another word: >
/foo<CR> find "foo"
c//e change until end of match
c//e<CR> change until end of match
bar<Esc> type replacement
//<CR> go to start of next match
c//e change until end of match
c//e<CR> change until end of match
beep<Esc> type another replacement
etc.
<

View File

@@ -1,4 +1,4 @@
*pi_getscript.txt* For Vim version 7.4. Last change: 2012 Apr 07
*pi_getscript.txt* For Vim version 7.0. Last change: 2013 Nov 29
>
GETSCRIPT REFERENCE MANUAL by Charles E. Campbell
<
@@ -385,6 +385,10 @@ The AutoInstall process will:
==============================================================================
9. GetLatestVimScripts History *getscript-history* *glvs-hist* {{{1
v36 Apr 22, 2013 : * (glts) suggested use of plugin/**/*.vim instead of
plugin/*.vim in globpath() call.
* (Andy Wokula) got warning message when setting
g:loaded_getscriptPlugin
v35 Apr 07, 2012 : * (MengHuan Yu) pointed out that the script url has
changed (somewhat). However, it doesn't work, and
the original one does (under Linux). I'll make it

View File

@@ -1,4 +1,4 @@
*pi_netrw.txt* For Vim version 7.4. Last change: 2013 May 18
*pi_netrw.txt* For Vim version 7.4. Last change: 2014 Jan 21
------------------------------------------------
NETRW REFERENCE MANUAL by Charles E. Campbell
@@ -6,7 +6,7 @@
Author: Charles E. Campbell <NdrOchip@ScampbellPfamily.AbizM>
(remove NOSPAM from Campbell's email first)
Copyright: Copyright (C) 1999-2013 Charles E Campbell *netrw-copyright*
Copyright: Copyright (C) 1999-2014 Charles E Campbell *netrw-copyright*
The VIM LICENSE applies to the files in this package, including
netrw.vim, pi_netrw.txt, netrwFileHandlers.vim, netrwSettings.vim, and
syntax/netrw.vim. Like anything else that's free, netrw.vim and its
@@ -192,21 +192,22 @@ You may do so by placing the following two lines in your <.vimrc>: >
EXTERNAL APPLICATIONS AND PROTOCOLS *netrw-externapp* {{{2
Protocol Variable Default Value
-------- ---------------- -------------
dav: *g:netrw_dav_cmd* = "cadaver" if cadaver is executable
dav: g:netrw_dav_cmd = "curl -o" elseif curl is available
fetch: *g:netrw_fetch_cmd* = "fetch -o" if fetch is available
ftp: *g:netrw_ftp_cmd* = "ftp"
http: *g:netrw_http_cmd* = "elinks" if elinks is available
http: g:netrw_http_cmd = "links" elseif links is available
http: g:netrw_http_cmd = "curl" elseif curl is available
http: g:netrw_http_cmd = "wget" elseif wget is available
http: g:netrw_http_cmd = "fetch" elseif fetch is available
rcp: *g:netrw_rcp_cmd* = "rcp"
rsync: *g:netrw_rsync_cmd* = "rsync -a"
scp: *g:netrw_scp_cmd* = "scp -q"
sftp: *g:netrw_sftp_cmd* = "sftp"
Protocol Variable Default Value
-------- ---------------- -------------
dav: *g:netrw_dav_cmd* = "cadaver" if cadaver is executable
dav: g:netrw_dav_cmd = "curl -o" elseif curl is available
fetch: *g:netrw_fetch_cmd* = "fetch -o" if fetch is available
ftp: *g:netrw_ftp_cmd* = "ftp"
http: *g:netrw_http_cmd* = "elinks" if elinks is available
http: g:netrw_http_cmd = "links" elseif links is available
http: g:netrw_http_cmd = "curl" elseif curl is available
http: g:netrw_http_cmd = "wget" elseif wget is available
http: g:netrw_http_cmd = "fetch" elseif fetch is available
http: *g:netrw_http_put_cmd* = "curl -T"
rcp: *g:netrw_rcp_cmd* = "rcp"
rsync: *g:netrw_rsync_cmd* = "rsync -a"
scp: *g:netrw_scp_cmd* = "scp -q"
sftp: *g:netrw_sftp_cmd* = "sftp"
*g:netrw_http_xcmd* : the option string for http://... protocols are
specified via this variable and may be independently overridden. By
@@ -223,6 +224,9 @@ EXTERNAL APPLICATIONS AND PROTOCOLS *netrw-externapp* {{{2
let g:netrw_http_xcmd= "-dump >"
< in your .vimrc.
g:netrw_http_put_cmd: this option specifies both the executable and
any needed options. This command does a PUT operation to the url.
READING *netrw-read* *netrw-nread* {{{2
@@ -816,8 +820,7 @@ variables listed below, and may be modified by the user.
------------------------
Option Type Setting Meaning
--------- -------- -------------- ---------------------------
<
netrw_ftp variable =doesn't exist userid set by "user userid"
< netrw_ftp variable =doesn't exist userid set by "user userid"
=0 userid set by "user userid"
=1 userid set by "userid"
NetReadFixup function =doesn't exist no change
@@ -825,17 +828,18 @@ variables listed below, and may be modified by the user.
read via ftp automatically
transformed however they wish
by NetReadFixup()
g:netrw_dav_cmd variable ="cadaver" if cadaver is executable
g:netrw_dav_cmd variable ="curl -o" elseif curl is executable
g:netrw_fetch_cmd variable ="fetch -o" if fetch is available
g:netrw_ftp_cmd variable ="ftp"
g:netrw_http_cmd variable ="fetch -o" if fetch is available
g:netrw_http_cmd variable ="wget -O" else if wget is available
g:netrw_list_cmd variable ="ssh USEPORT HOSTNAME ls -Fa"
g:netrw_rcp_cmd variable ="rcp"
g:netrw_rsync_cmd variable ="rsync -a"
g:netrw_scp_cmd variable ="scp -q"
g:netrw_sftp_cmd variable ="sftp" >
g:netrw_dav_cmd var ="cadaver" if cadaver is executable
g:netrw_dav_cmd var ="curl -o" elseif curl is executable
g:netrw_fetch_cmd var ="fetch -o" if fetch is available
g:netrw_ftp_cmd var ="ftp"
g:netrw_http_cmd var ="fetch -o" if fetch is available
g:netrw_http_cmd var ="wget -O" else if wget is available
g:netrw_http_put_cmd var ="curl -T"
g:netrw_list_cmd var ="ssh USEPORT HOSTNAME ls -Fa"
g:netrw_rcp_cmd var ="rcp"
g:netrw_rsync_cmd var ="rsync -a"
g:netrw_scp_cmd var ="scp -q"
g:netrw_sftp_cmd var ="sftp" >
-------------------------------------------------------------------------
<
*netrw-ftp*
@@ -1097,16 +1101,20 @@ QUICK REFERENCE: MAPS *netrw-browse-maps* {{{2
mapping defined before netrw is autoloaded,
then a double clicked leftmouse button will return
to the netrw browser window. See |g:netrw_retmap|.
<s-leftmouse> (gvim only) like mf, will mark files
<s-leftmouse> (gvim only) like mf, will mark files. Dragging
the shifted leftmouse will mark multiple files.
(see |netrw-mf|)
(to disable mouse buttons while browsing: |g:netrw_mousemaps|)
*netrw-quickcom* *netrw-quickcoms*
QUICK REFERENCE: COMMANDS *netrw-explore-cmds* *netrw-browse-cmds* {{{2
:NetrwClean[!] ...........................................|netrw-clean|
:NetrwSettings ...........................................|netrw-settings|
:NetrwClean[!]............................................|netrw-clean|
:NetrwSettings............................................|netrw-settings|
:Ntree....................................................|netrw-ntree|
:Explore[!] [dir] Explore directory of current file......|netrw-explore|
:Hexplore[!] [dir] Horizontal Split & Explore.............|netrw-explore|
:Lexplore [dir] Left Explorer Toggle...................|netrw-explore|
:Nexplore[!] [dir] Vertical Split & Explore...............|netrw-explore|
:Pexplore[!] [dir] Vertical Split & Explore...............|netrw-explore|
:Rexplore Return to Explorer.....................|netrw-explore|
@@ -1321,6 +1329,17 @@ See |g:netrw_dirhistmax| for how to control the quantity of history stack
slots.
CHANGING TREE TOP *netrw-ntree* *:Ntree*
One may specify a new tree top for tree listings using >
:Ntree [dirname]
Without a "dirname", the current line is used (and any leading depth
information is elided).
With a "dirname", the specified directory name is used.
NETRW CLEAN *netrw-clean* *:NetrwClean*
With :NetrwClean one may easily remove netrw from one's home directory;
@@ -1458,7 +1477,7 @@ Associated setting variable: |g:netrw_localrmdir| |g:netrw_rm_cmd|
*netrw-explore* *netrw-hexplore* *netrw-nexplore* *netrw-pexplore*
*netrw-rexplore* *netrw-sexplore* *netrw-texplore* *netrw-vexplore*
*netrw-rexplore* *netrw-sexplore* *netrw-texplore* *netrw-vexplore* *netrw-lexplore*
DIRECTORY EXPLORATION COMMANDS {{{2
:[N]Explore[!] [dir]... Explore directory of current file *:Explore*
@@ -1467,6 +1486,7 @@ DIRECTORY EXPLORATION COMMANDS {{{2
:[N]Sexplore[!] [dir]... Split&Explore current file's directory *:Sexplore*
:Texplore [dir]... Tab & Explore *:Texplore*
:[N]Vexplore[!] [dir]... Vertical Split & Explore *:Vexplore*
:Lexplore [dir]... Left Explorer Toggle *:Lexplore*
Used with :Explore **/pattern : (also see |netrw-starstar|)
:Nexplore............. go to next matching file *:Nexplore*
@@ -1478,6 +1498,9 @@ DIRECTORY EXPLORATION COMMANDS {{{2
window will take over that window. Normally the splitting is taken
horizontally.
:Explore! is like :Explore, but will use vertical splitting.
:Lexplore [dir] toggles an Explorer window on the left hand side
of the current tab It will open a netrw window on the current
directory if [dir] is omitted.
:Sexplore will always split the window before invoking the local-directory
browser. As with Explore, the splitting is normally done
horizontally.
@@ -1486,7 +1509,7 @@ DIRECTORY EXPLORATION COMMANDS {{{2
:Hexplore! [dir] does an :Explore with |:aboveleft| horizontal splitting.
:Vexplore [dir] does an :Explore with |:leftabove| vertical splitting.
:Vexplore! [dir] does an :Explore with |:rightbelow| vertical splitting.
:Texplore [dir] does a tabnew before generating the browser window
:Texplore [dir] does a |:tabnew| before generating the browser window
By default, these commands use the current file's directory. However, one may
explicitly provide a directory (path) to use.
@@ -1505,6 +1528,8 @@ windows should have.
of the <2-leftmouse> map (which is only available under gvim and
cooperative terms).
Also see: |g:netrw_alto| |g:netrw_altv| |g:netrw_winsize|
*netrw-star* *netrw-starpat* *netrw-starstar* *netrw-starstarpat*
EXPLORING WITH STARS AND PATTERNS
@@ -1696,9 +1721,36 @@ As a quick shortcut, one may press >
to toggle between hiding files which begin with a period (dot) and not hiding
them.
Associated setting variable: |g:netrw_list_hide| |g:netrw_hide|
Associated setting variables: |g:netrw_list_hide| |g:netrw_hide|
Associated topics: |netrw-a| |netrw-ctrl-h| |netrw-mh|
*netrw-gitignore*
Netrw provides a helper function 'netrw_gitignore#Hide()' that, when used with
|g:netrw_list_hide| automatically hides all git-ignored files.
'netrw_gitignore#Hide' searches for patterns in the following files:
'./.gitignore'
'./.git/info/exclude'
global gitignore file: `git config --global core.excludesfile`
system gitignore file: `git config --system core.excludesfile`
Files that do not exist, are ignored.
Git-ignore patterns are taken from existing files, and converted to patterns for
hiding files. For example, if you had '*.log' in your '.gitignore' file, it
would be converted to '.*\.log'.
To use this function, simply assign it's output to |g:netrw_list_hide| option.
Example: let g:netrw_list_hide= netrw_gitignore#Hide()
Git-ignored files are hidden in Netrw.
Example: let g:netrw_list_hide= netrw_gitignore#Hide('my_gitignore_file')
Function can take additional files with git-ignore patterns.
Example: g:netrw_list_hide= netrw_gitignore#Hide() . '.*\.swp$'
Combining 'netrw_gitignore#Hide' with custom patterns.
IMPROVING BROWSING *netrw-listhack* *netrw-ssh-hack* {{{2
Especially with the remote directory browser, constantly entering the password
@@ -1778,6 +1830,15 @@ passwords:
http://sial.org/howto/openssh/publickey-auth/
Ssh hints:
Thomer Gil has provided a hint on how to speed up netrw+ssh:
http://thomer.com/howtos/netrw_ssh.html
Alex Young has several hints on speeding ssh up:
http://usevim.com/2012/03/16/editing-remote-files/
LISTING BOOKMARKS AND HISTORY *netrw-qb* *netrw-listbookmark* {{{2
Pressing "qb" (query bookmarks) will list both the bookmarked directories and
@@ -1800,8 +1861,8 @@ directory. Attempts to make a local directory that already exists (as either
a file or a directory) will be detected, reported on, and ignored.
Related topics: |netrw-D|
Associated setting variables: |g:netrw_localmkdir| |g:netrw_mkdir_cmd|
|g:netrw_remote_mkdir|
Associated setting variables: |g:netrw_localmkdir| |g:netrw_mkdir_cmd|
|g:netrw_remote_mkdir| |netrw-%|
MAKING THE BROWSING DIRECTORY THE CURRENT DIRECTORY *netrw-c* {{{2
@@ -1860,6 +1921,10 @@ like >
<
into $HOME/.vim/after/syntax/netrw.vim .
If the mouse is enabled and works with your vim, you may use <s-leftmouse> to
mark one or more files. You may mark multiple files by dragging the shifted
leftmouse. (see |netrw-mouse|)
*markfilelist* *global_markfilelist* *local_markfilelist*
All marked files are entered onto the global marked file list; there is only
one such list. In addition, every netrw buffer also has its own local marked
@@ -2114,7 +2179,15 @@ your browsing preferences. (see also: |netrw-settings|)
--- -----------
Var Explanation
--- -----------
< *g:netrw_alto* change from above splitting to below splitting
< *g:netrw_altfile* some like |CTRL-^| to return to the last
edited file. Choose that by setting this
parameter to 1.
Others like |CTRL-^| to return to the
netrw browsing buffer. Choose that by setting
this parameter to 0.
default: =0
*g:netrw_alto* change from above splitting to below splitting
by setting this variable (see |netrw-o|)
default: =&sb (see |'sb'|)
@@ -2142,6 +2215,10 @@ your browsing preferences. (see also: |netrw-settings|)
to get vertical splitting instead of
horizontal splitting.
Related topics:
|netrw-cr| |netrw-C|
|g:netrw_alto| |g:netrw_altv|
*g:netrw_browsex_viewer* specify user's preference for a viewer: >
"kfmclient exec"
"gnome-open"
@@ -2303,10 +2380,19 @@ your browsing preferences. (see also: |netrw-settings|)
stamp information and file size)
= 2: wide listing (multiple files in columns)
= 3: tree style listing
*g:netrw_list_hide* comma separated pattern list for hiding files
Patterns are regular expressions (see |regexp|)
Example: let g:netrw_list_hide= '.*\.swp$'
default: ""
There's some special support for git-ignore
files: you may add the output from the helper
function 'netrw_gitignore#Hide() automatically
hiding all gitignored files.
For more details see |netrw-gitignore|.
Examples:
let g:netrw_list_hide= '.*\.swp$'
let g:netrw_list_hide= netrw_gitignore#Hide().'.*\.swp$'
default: ""
*g:netrw_localcopycmd* ="cp" Linux/Unix/MacOS/Cygwin
="copy" Windows
@@ -2551,6 +2637,8 @@ To open a file in netrw's current directory, press "%". This map will
query the user for a new filename; an empty file by that name will be
placed in the netrw's current directory (ie. b:netrw_curdir).
Related topics: |netrw-d|
PREVIEW WINDOW *netrw-p* *netrw-preview* {{{2
@@ -2655,7 +2743,7 @@ One may select a netrw window for editing with the "C" mapping, or by setting
g:netrw_chgwin to the selected window number. Subsequent selection of a file
to edit (|netrw-cr|) will use that window.
Related topics: |netrw-cr|
Related topics: |netrw-cr| |g:netrw_browse_split|
Associated setting variables: |g:netrw_chgwin|
@@ -2988,15 +3076,78 @@ which is loaded automatically at startup (assuming :set nocp).
read/write your file over the network in a separate tab.
To save the file, use >
:tabnext
:set bt=
:w! DBG
< Please send that information to <netrw.vim>'s maintainer, >
< Furthermore, it'd be helpful if you would type >
:Dsep
< after each command you issue, thereby making it easier to
associate which part of the debugging trace is due to which
command.
Please send that information to <netrw.vim>'s maintainer, >
NdrOchip at ScampbellPfamily.AbizM - NOSPAM
<
==============================================================================
12. History *netrw-history* {{{1
v150: Jul 12, 2013 * removed a "keepalt" to allow ":e #" to
return to the netrw directory listing
Jul 13, 2013 * (Jonas Diemer) suggested changing
a <cWORD> to <cfile>.
Jul 21, 2013 * (Yuri Kanivetsky) reported that netrw's
use of mkdir did not produce directories
following umask.
Aug 27, 2013 * introduced |g:netrw_altfile| option
Sep 05, 2013 * s:Strlen() now uses |strdisplaywidth()|
when available, by default
Sep 12, 2013 * (Selyano Baldo) reported that netrw wasn't
opening some directories properly from the
command line.
Nov 09, 2013 * |:Lexplore| introduced
* (Ondrej Platek) reported an issue with
netrw's trees (P15). Fixed.
* (Jorge Solis) reported that "t" in
tree mode caused netrw to forget its
line position.
Dec 05, 2013 * Added <s-leftmouse> file marking
(see |netrw-mf|)
Dec 05, 2013 * (Yasuhiro Matsumoto) Explore should use
strlen() instead s:Strlen() when handling
multibyte chars with strpart()
(ie. strpart() is byte oriented, not
display-width oriented).
Dec 09, 2013 * (Ken Takata) Provided a patch; File sizes
and a portion of timestamps were wrongly
highlighted with the directory color when
setting `:let g:netrw_liststyle=1` on Windows.
* (Paul Domaskis) noted that sometimes
cursorline was activating in non-netrw
windows. All but one setting of cursorline
was done via setl; there was one that was
overlooked. Fixed.
Dec 24, 2013 * (esquifit) asked that netrw allow the
/cygdrive prefix be a user-alterable
parameter.
Jan 02, 2014 * Fixed a problem with netrw-based ballon
evaluation (ie. netrw#NetrwBaloonHelp()
not having been loaded error messages)
Jan 03, 2014 * Fixed a problem with tree listings
* New command installed: |:Ntree|
Jan 06, 2014 * (Ivan Brennan) reported a problem with
|netrw-P|. Fixed.
Jan 06, 2014 * Fixed a problem with |netrw-P| when the
modified file was to be abandoned.
Jan 15, 2014 * (Matteo Cavalleri) reported that when the
banner is suppressed and tree listing is
used, a blank line was left at the top of
the display. Fixed.
Jan 20, 2014 * (Gideon Go) reported that, in tree listing
style, with a previous window open, that
the wrong directory was being used to open
a file. Fixed. (P21)
v149: Apr 18, 2013 * in wide listing format, now have maps for
w and b to move to next/previous file
Apr 26, 2013 * one may now copy files in the same
@@ -3009,7 +3160,8 @@ which is loaded automatically at startup (assuming :set nocp).
May 01, 2013 * :Explore ftp://... wasn't working. Fixed.
May 02, 2013 * introduced |g:netrw_bannerbackslash| as
requested by Paul Domaskis.
May 18, 2013 * More fixes for windows (not cygwin)
Jul 03, 2013 * Explore now avoids splitting when a buffer
will be hidden.
v148: Apr 16, 2013 * changed Netrw's Style menu to allow direct
choice of listing style, hiding style, and
sorting style

View File

@@ -838,7 +838,7 @@ Unfortunately, there is no standard way to run the tests.
The alltests.py script seems to be used quite often, that's all.
Useful values for the 'makeprg' options therefore are:
setlocal makeprg=./alltests.py " Run a testsuite
setlocal makeprg=python % " Run a single testcase
setlocal makeprg=python\ %:S " Run a single testcase
Also see http://vim.sourceforge.net/tip_view.php?tip_id=280.
@@ -1332,7 +1332,7 @@ or: >
Here is an alternative from Michael F. Lamb for Unix that filters the errors
first: >
:setl errorformat=%Z%f:%l:\ %m,%A%p^,%-G%*[^sl]%.%#
:setl makeprg=javac\ %\ 2>&1\ \\\|\ vim-javac-filter
:setl makeprg=javac\ %:S\ 2>&1\ \\\|\ vim-javac-filter
You need to put the following in "vim-javac-filter" somewhere in your path
(e.g., in ~/bin) and make it executable: >

View File

@@ -1,4 +1,4 @@
*repeat.txt* For Vim version 7.4. Last change: 2013 Jul 25
*repeat.txt* For Vim version 7.4. Last change: 2014 Feb 11
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -26,10 +26,14 @@ Chapter 26 of the user manual introduces repeating |usr_26.txt|.
Simple changes can be repeated with the "." command. Without a count, the
count of the last change is used. If you enter a count, it will replace the
last one. If the last change included a specification of a numbered register,
the register number will be incremented. See |redo-register| for an example
how to use this. Note that when repeating a command that used a Visual
selection, the same SIZE of area is used, see |visual-repeat|.
last one. |v:count| and |v:count1| will be set.
If the last change included a specification of a numbered register, the
register number will be incremented. See |redo-register| for an example how
to use this.
Note that when repeating a command that used a Visual selection, the same SIZE
of area is used, see |visual-repeat|.
*@:*
@: Repeat last command-line [count] times.

View File

@@ -1,4 +1,4 @@
*sign.txt* For Vim version 7.4. Last change: 2012 Jul 10
*sign.txt* For Vim version 7.4. Last change: 2013 Nov 17
VIM REFERENCE MANUAL by Gordon Prieur
@@ -173,7 +173,7 @@ REMOVING SIGNS *:sign-unplace* *E159*
Remove the placed sign at the cursor position.
LISTING PLACED SIGNS
LISTING PLACED SIGNS *:sign-place-list*
:sign place file={fname}
List signs placed in file {fname}.

View File

@@ -1,4 +1,4 @@
*spell.txt* For Vim version 7.4. Last change: 2013 Jul 17
*spell.txt* For Vim version 7.4. Last change: 2013 Nov 12
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -269,6 +269,13 @@ In a table:
latin1 yi transliterated Yiddish
utf-8 yi-tr transliterated Yiddish
*spell-cjk*
Chinese, Japanese and other East Asian characters are normally marked as
errors, because spell checking of these characters is not supported. If
'spelllang' includes "cjk", these characters are not marked as errors. This
is useful when editing text with spell checking while some Asian words are
present.
SPELL FILES *spell-load*

View File

@@ -1,4 +1,4 @@
*syntax.txt* For Vim version 7.4. Last change: 2013 Aug 22
*syntax.txt* For Vim version 7.4. Last change: 2014 Feb 25
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1281,6 +1281,32 @@ Finally, some vendors support hexadecimal constants. To handle them, add >
to your startup file.
EUPHORIA *euphoria3.vim* *euphoria4.vim* *ft-euphoria-syntax*
Two syntax highlighting files exists for Euphoria. One for Euphoria
version 3.1.1, which is the default syntax highlighting file, and one for
Euphoria version 4.0.5 or later.
Euphoria version 3.1.1 (http://www.rapideuphoria.com/) is still necessary
for developing applications for the DOS platform, which Euphoria version 4
(http://www.openeuphoria.org/) does not support.
The following file extensions are auto-detected as Euphoria file type:
*.e, *.eu, *.ew, *.ex, *.exu, *.exw
*.E, *.EU, *.EW, *.EX, *.EXU, *.EXW
To select syntax highlighting file for Euphoria, as well as for
auto-detecting the *.e and *.E file extensions as Euphoria file type,
add the following line to your startup file: >
:let filetype_euphoria="euphoria3"
or
:let filetype_euphoria="euphoria4"
ERLANG *erlang.vim* *ft-erlang-syntax*
Erlang is a functional programming language developed by Ericsson. Files with

View File

@@ -12,6 +12,7 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
% motion.txt /*%*
%:. cmdline.txt /*%:.*
%:8 cmdline.txt /*%:8*
%:S cmdline.txt /*%:S*
%:e cmdline.txt /*%:e*
%:gs cmdline.txt /*%:gs*
%:h cmdline.txt /*%:h*
@@ -1788,6 +1789,7 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
:3match pattern.txt /*:3match*
::. cmdline.txt /*::.*
::8 cmdline.txt /*::8*
::S cmdline.txt /*::S*
::e cmdline.txt /*::e*
::gs cmdline.txt /*::gs*
::h cmdline.txt /*::h*
@@ -1827,6 +1829,7 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
:GnatPretty ft_ada.txt /*:GnatPretty*
:GnatTags ft_ada.txt /*:GnatTags*
:Hexplore pi_netrw.txt /*:Hexplore*
:Lexplore pi_netrw.txt /*:Lexplore*
:Man filetype.txt /*:Man*
:MkVimball pi_vimball.txt /*:MkVimball*
:N editing.txt /*:N*
@@ -1838,6 +1841,7 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
:Nread pi_netrw.txt /*:Nread*
:Ns pi_netrw.txt /*:Ns*
:Nsource pi_netrw.txt /*:Nsource*
:Ntree pi_netrw.txt /*:Ntree*
:Nw pi_netrw.txt /*:Nw*
:Nwrite pi_netrw.txt /*:Nwrite*
:P various.txt /*:P*
@@ -2214,6 +2218,9 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
:foldopen fold.txt /*:foldopen*
:for eval.txt /*:for*
:fu eval.txt /*:fu*
:func-abort eval.txt /*:func-abort*
:func-dict eval.txt /*:func-dict*
:func-range eval.txt /*:func-range*
:function eval.txt /*:function*
:function-verbose eval.txt /*:function-verbose*
:g repeat.txt /*:g*
@@ -2300,6 +2307,8 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
:keepj motion.txt /*:keepj*
:keepjumps motion.txt /*:keepjumps*
:keepmarks motion.txt /*:keepmarks*
:keepp cmdline.txt /*:keepp*
:keeppatterns cmdline.txt /*:keeppatterns*
:l various.txt /*:l*
:lN quickfix.txt /*:lN*
:lNext quickfix.txt /*:lNext*
@@ -2740,6 +2749,7 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
:sign-jump sign.txt /*:sign-jump*
:sign-list sign.txt /*:sign-list*
:sign-place sign.txt /*:sign-place*
:sign-place-list sign.txt /*:sign-place-list*
:sign-undefine sign.txt /*:sign-undefine*
:sign-unplace sign.txt /*:sign-unplace*
:sil various.txt /*:sil*
@@ -4296,6 +4306,7 @@ E878 pattern.txt /*E878*
E879 syntax.txt /*E879*
E88 windows.txt /*E88*
E880 if_pyth.txt /*E880*
E881 autocmd.txt /*E881*
E89 message.txt /*E89*
E90 message.txt /*E90*
E91 options.txt /*E91*
@@ -4902,6 +4913,7 @@ builtin_terms term.txt /*builtin_terms*
byte-count editing.txt /*byte-count*
byte2line() eval.txt /*byte2line()*
byteidx() eval.txt /*byteidx()*
byteidxcomp() eval.txt /*byteidxcomp()*
bzip2 pi_gzip.txt /*bzip2*
c change.txt /*c*
c.vim syntax.txt /*c.vim*
@@ -5460,6 +5472,8 @@ errors message.txt /*errors*
escape intro.txt /*escape*
escape() eval.txt /*escape()*
escape-bar version4.txt /*escape-bar*
euphoria3.vim syntax.txt /*euphoria3.vim*
euphoria4.vim syntax.txt /*euphoria4.vim*
eval eval.txt /*eval*
eval() eval.txt /*eval()*
eval-examples eval.txt /*eval-examples*
@@ -5726,6 +5740,7 @@ ft-dosbatch-syntax syntax.txt /*ft-dosbatch-syntax*
ft-dtd-syntax syntax.txt /*ft-dtd-syntax*
ft-eiffel-syntax syntax.txt /*ft-eiffel-syntax*
ft-erlang-syntax syntax.txt /*ft-erlang-syntax*
ft-euphoria-syntax syntax.txt /*ft-euphoria-syntax*
ft-flexwiki-syntax syntax.txt /*ft-flexwiki-syntax*
ft-form-syntax syntax.txt /*ft-form-syntax*
ft-fortran-indent indent.txt /*ft-fortran-indent*
@@ -5878,6 +5893,7 @@ g:ada_standard_types ft_ada.txt /*g:ada_standard_types*
g:ada_with_gnat_project_files ft_ada.txt /*g:ada_with_gnat_project_files*
g:ada_withuse_ordinary ft_ada.txt /*g:ada_withuse_ordinary*
g:clojure_align_multiline_strings indent.txt /*g:clojure_align_multiline_strings*
g:clojure_align_subforms indent.txt /*g:clojure_align_subforms*
g:clojure_fuzzy_indent indent.txt /*g:clojure_fuzzy_indent*
g:clojure_fuzzy_indent_blacklist indent.txt /*g:clojure_fuzzy_indent_blacklist*
g:clojure_fuzzy_indent_patterns indent.txt /*g:clojure_fuzzy_indent_patterns*
@@ -5926,6 +5942,7 @@ g:html_use_css syntax.txt /*g:html_use_css*
g:html_use_encoding syntax.txt /*g:html_use_encoding*
g:html_use_xhtml syntax.txt /*g:html_use_xhtml*
g:html_whole_filler syntax.txt /*g:html_whole_filler*
g:netrw_altfile pi_netrw.txt /*g:netrw_altfile*
g:netrw_alto pi_netrw.txt /*g:netrw_alto*
g:netrw_altv pi_netrw.txt /*g:netrw_altv*
g:netrw_banner pi_netrw.txt /*g:netrw_banner*
@@ -5960,6 +5977,7 @@ g:netrw_glob_escape pi_netrw.txt /*g:netrw_glob_escape*
g:netrw_hide pi_netrw.txt /*g:netrw_hide*
g:netrw_home pi_netrw.txt /*g:netrw_home*
g:netrw_http_cmd pi_netrw.txt /*g:netrw_http_cmd*
g:netrw_http_put_cmd pi_netrw.txt /*g:netrw_http_put_cmd*
g:netrw_http_xcmd pi_netrw.txt /*g:netrw_http_xcmd*
g:netrw_ignorenetrc pi_netrw.txt /*g:netrw_ignorenetrc*
g:netrw_keepdir pi_netrw.txt /*g:netrw_keepdir*
@@ -6360,6 +6378,7 @@ hl-WarningMsg syntax.txt /*hl-WarningMsg*
hl-WildMenu syntax.txt /*hl-WildMenu*
hlID() eval.txt /*hlID()*
hlexists() eval.txt /*hlexists()*
hlsearch-variable eval.txt /*hlsearch-variable*
holy-grail index.txt /*holy-grail*
home intro.txt /*home*
home-replace editing.txt /*home-replace*
@@ -6980,6 +6999,7 @@ netrw-gd pi_netrw.txt /*netrw-gd*
netrw-getftype pi_netrw.txt /*netrw-getftype*
netrw-gf pi_netrw.txt /*netrw-gf*
netrw-gh pi_netrw.txt /*netrw-gh*
netrw-gitignore pi_netrw.txt /*netrw-gitignore*
netrw-gp pi_netrw.txt /*netrw-gp*
netrw-gx pi_netrw.txt /*netrw-gx*
netrw-handler pi_netrw.txt /*netrw-handler*
@@ -6994,6 +7014,7 @@ netrw-incompatible pi_netrw.txt /*netrw-incompatible*
netrw-internal-variables pi_netrw.txt /*netrw-internal-variables*
netrw-intro-browse pi_netrw.txt /*netrw-intro-browse*
netrw-leftmouse pi_netrw.txt /*netrw-leftmouse*
netrw-lexplore pi_netrw.txt /*netrw-lexplore*
netrw-list pi_netrw.txt /*netrw-list*
netrw-listbookmark pi_netrw.txt /*netrw-listbookmark*
netrw-listhack pi_netrw.txt /*netrw-listhack*
@@ -7024,6 +7045,7 @@ netrw-netrc pi_netrw.txt /*netrw-netrc*
netrw-nexplore pi_netrw.txt /*netrw-nexplore*
netrw-noload pi_netrw.txt /*netrw-noload*
netrw-nread pi_netrw.txt /*netrw-nread*
netrw-ntree pi_netrw.txt /*netrw-ntree*
netrw-nwrite pi_netrw.txt /*netrw-nwrite*
netrw-o pi_netrw.txt /*netrw-o*
netrw-options pi_netrw.txt /*netrw-options*
@@ -7579,6 +7601,7 @@ s/\2 change.txt /*s\/\\2*
s/\3 change.txt /*s\/\\3*
s/\9 change.txt /*s\/\\9*
s/\<CR> change.txt /*s\/\\<CR>*
s/\= change.txt /*s\/\\=*
s/\E change.txt /*s\/\\E*
s/\L change.txt /*s\/\\L*
s/\U change.txt /*s\/\\U*
@@ -7789,6 +7812,7 @@ spell-affix-flags spell.txt /*spell-affix-flags*
spell-affix-mbyte spell.txt /*spell-affix-mbyte*
spell-affix-not-supported spell.txt /*spell-affix-not-supported*
spell-affix-vim spell.txt /*spell-affix-vim*
spell-cjk spell.txt /*spell-cjk*
spell-compound spell.txt /*spell-compound*
spell-dic-format spell.txt /*spell-dic-format*
spell-double-scoring spell.txt /*spell-double-scoring*
@@ -8366,6 +8390,7 @@ v:folddashes eval.txt /*v:folddashes*
v:foldend eval.txt /*v:foldend*
v:foldlevel eval.txt /*v:foldlevel*
v:foldstart eval.txt /*v:foldstart*
v:hlsearch eval.txt /*v:hlsearch*
v:insertmode eval.txt /*v:insertmode*
v:key eval.txt /*v:key*
v:lang eval.txt /*v:lang*

View File

@@ -1,4 +1,4 @@
*todo.txt* For Vim version 7.4. Last change: 2013 Nov 03
*todo.txt* For Vim version 7.4. Last change: 2014 Mar 08
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -34,134 +34,144 @@ not be repeated below, unless there is extra information.
*known-bugs*
-------------------- Known bugs and current work -----------------------
Revert patch 7.4.056? Do it differently?
Using \1 in pattern goes one line too far. (Bohr Shaw, 2013 Sep 5)
Column is OK. "/\v(^.+\n)\1/e" (John Little, Sep 5)
Also, matches start of 2nd line, not the whole line.
NFA regexp doesn't handle backreference correctly. (Ryuichi Hayashida, 2013
Oct 10)
Error for incomplete help argument. (John Beckett, 2013 Sep 12)
Should win_redr_custom() not be allowed to use recursively?
(Yasuhiro Matsumoto, 2013 Aug 15)
NFA engine combining character mismatch. (glts, 2013 Aug 27)
Remark Dominique, Aug 27
Regexp problems:
- NFA regexp doesn't count tab matches correctly. (Urtica Dioica / gaultheria
Shallon, 2013 Nov 18)
- After patch 7.4.100 there is still a difference between NFA and old engine.
25 a's with pattern \v^(aa+)\1+$ (Urtica Dioica, 2013 Nov 21) Also: 9 a's
with pattern \v^(a{-2,})\1+$ (Nov 23)
- NFA engine combining character mismatch. (glts, 2013 Aug 27)
Remark from Dominique, Aug 27
- Issue 164: freeze on regexp search.
- NFA problem with non-greedy match and branches. (Ingo Karkat, 2013 Nov 29)
- Ignorecase not handled properly for multi-byte characters. (Axel Bender,
2013 Dec 11)
- Using \@> and \?. (Brett Stahlman, 2013 Dec 21) Remark from Marcin Szamotulski
Remark from Brett 2014 Jan 6 and 7.
- Bug with back references. (Lech Lorens, 2014 Feb 3)
- Bug when using \>. (Ramel, 2014 Feb 2) (Aaron Bohannon, 2014 Feb 13)
Problem that a previous silent ":throw" causes a following try/catch not to
work. (ZyX, 2013 Sep 28)
Patch for VMS. (Zoltan Arpadffy, 2014 Mar 6)
Euphoria syntax, Shian Lee, Feb 27
":cd C:\Windows\System32\drivers\etc*" does not work, even though the
directory exists. (Sergio Gallelli, 2013 Dec 29)
Problem using ":try" inside ":execute". (ZyX, 2013 Sep 15)
Issue 164: freeze on regexp search.
Patch to Fix Python: DictionaryContains return -1 on error. (ZyX, 2013 Nov 1)
Patch to fix that inserting CR when replacing a Visual block doesn't cause a
line break. (Christian Brabandt, 2013 Oct 19)
Check: does CTRL-V CR insert a literal CR? New patch Oct 21
With test Oct 22.
When recording the character typed at the hit-enter prompt is recorded twice.
(Urtica Dioica) Patch by Christian Brabandt, 2013 Oct 8.
Can't build Vim with Perl when -Dusethreads is not specified for building
perl, and building with --enable-perlinterp=dynamic.
Patch by Yasuhiro Matsumoto, 2014 Feb 24.
Update for Clojure ftplugin. (Sung Pae). Await discussion about formatting in
ftplugins.
Update for phpcomplete.vim. (Complex, 2014 Mar 1)
Python: ":py raw_input('prompt')" doesn't work. (Manu Hack)
Patch to avoid problem with colon in file name. (Yasuhiro Matsumoto, 2013 Sep
5) Only copy file name when needed: Sep 9.
Using autoconf 2.69 gives a lot of warnings.
After inserting comment leader, CTRL-\ CTRL-O does move the cursor.
(Wiktor Ruben, 2013 Oct 7)
Patch by Christian Brabandt.
Patch to allow for negative index in string. (LCD, 2014 Feb 13)
Feb 14 with test. Or does this intentionally not work?
Patch to support slices in Python vim.List. (ZyX, 2013 Oct 20)
Issue 197: ]P doesn't paste over Visual selection. With patch from Christian
Brabandt, Feb 6. Issue 197.
Patch to support iterator on Python vim.options. (ZyX, 2013 Nov 2)
Patch to avoid "-no-cpp-precomp" on Mac. (Misty De Meo, demeo, 2013 Oct 19)
Patch to make Dictionary.update() work without arguments.
(ZyX, 2013 Oct 19)
Patch to make #N in 'cino' stop not indenting #lines. (Christian Brabandt,
2013 Sep 25)
Patch for Cobol ftplugin. (ZyX, 2013 Oct 20)
Await response from maintainer.
Can 'undolevels' be a buffer-local option? Helps for making big changes in
one file only, set 'ul' to -1 only for that buffer.
Patch by Christian Brabandt, 2010 Dec 17. Needs test.
Include systemverilog file? Two votes yes.
Wrapping around end of file does not work for "." after "cgn". (Dimitar
Dimitrov)
Patch by Christian Brabandt, 2013 Aug 22
Clang error for integer overflow. (Dominique Pelle, 2013 Sep 21)
Patch to add v:hlsearch. (ZyX, 2013 Sep 22)
Patch to fix E315 error. (Lech Lorens, 2013 Oct 26)
Patch to add :keeppatterns, don't put used search patterns in history.
(Christian Brabandt, 2013 Oct 18)
Make 'lispwords' global-local. (Sung Pae, 2014 Feb 16)
Problem with 'spellsuggest' file, only works for some words.
(Cesar Romani, 2013 Aug 20) Depends on file name? (Aug 24)
Additional remark by glts: the suggested words are marked bad?
8 non-ASCII font names don't work. Need to convert from 'encoding' and use
the wide functions. Patch by Ken Takata, 2013 Dec 22.
Update 2014 Jan 6.
Syntax highlighting slow (hangs) in SASS file. (Niek Bosch, 2013 Aug 21)
Problem with 'errorformat'. Patch by Lcd, 2014 Feb 21. With test.
Patch for the problem that a mapping where the second byte is 0x80 isn't
handled correcly. (Nobuhiro Takasaki, 2014 Feb 11)
Update 2014 Mar 8.
Patch for mksession. (Nobuhiro Takasaki, 2014 Jan 31)
Also fixes another problem (following email)
Patch to use rubyarchhdrdir for Ruby 2.x. (James McCoy, 2014 Feb 24)
Dynamic Ruby linking issues. Patch by Danek Duvall (2014 Feb 26)
and by Yukihiro Nakadaira (2014 Feb 27)
Patch: Detect grep options for Solaris. (Danek Duvall, 2014 Feb 26)
Adding "~" to 'cdpath' doesn't work for completion? (Davido, 2013 Aug 19)
Syntax file for gnuplot. Existing one is very old. (Andrew Rasmussen, 2014
Feb 24)
Crash with ":%s/\n//g" on long file. (Aidan Marlin, 2014 Jan 15)
Christian Brabandt: patch to run this into a join. (2014 Jan 18)
Suggestion to not save replaced line for undo: Yukihiro Nakadaira, 2014 Jan
25.
Add digraph for Rouble: =P. What's the Unicode?
Bug: "!ls %" expands parenthesis in %, but not spaces. So this doesn't work
either: ':!ls "%"'.
Patch by Gary Johnson, 2014 Mar 6.
Issue 174: Detect Mason files.
Patch for Python: Fix interrupt not being properly discarded in VimTryEnd.
With tests. (ZyX, 2013 Oct 19) Reported by Yggdroot Chen.
Phpcomplete.vim update. (Complex, 2014 Jan 15)
PHP syntax is extremely slow. (Anhad Jai Singh, 2014 Jan 19)
Can we make ":unlet $VAR" use unsetenv() to delete the env var?
What for systems that don't have unsetenv()?
spec ftplugin: patch from Igor Gnatenko, 2014 Jan 26.
Include if maintainers don't respond.
Patch to make has() check for Vim version and patch at the same time.
(Marc Weber, 2013 Jun 7)
Patch to fix Visual-block insert using cursor keys. (Christian Brabandt, 2013
Sep 28) With test Sept 29.
Regression on pach 7.4.034. (Ingo Karkat, 2013 Nov 20)
Patch to include smack support (Linux security library). (Jose Bollo, 2014 Jan
14) Update Jan 15.
Tag list, as used for :tjump, does not unescape regexp. (Gary Johnson, 2014 Jan
6) With patch in another message.
VMS: Select() doesn't work properly, typing ESC may hang Vim. Use sys$qiow
instead. (Samuel Ferencik, 2013 Sep 28)
Series of patches for NL vs NUL handling. (ZyX, 2013 Nov 3)
Series of patches for NL vs NUL handling. (ZyX, 2013 Nov 3, Nov 9)
Patch for XDG base directory support. (Jean François Bignolles, 2014 Mar 4)
Patch to add flag to shortmess to avoid giving completion messages.
(Shougo Matsu, 2014 Jan 6, update Jan 11)
Patch to add v:completed_item. (Shougo Matsu, 2013 Nov 29).
Patch to make test 100 work on MS-Windows. (Taro Muraoka, 2013 Dec 12)
Patch to define macros for hardcoded values. (Elias Diem, 2013 Dec 14)
Perl: support for Activestate perl 5.18: Issue 170.
Bug: Does not skip over expression with dict member properly. (ZyX, 2013 Sep
29)
Patch to fix expr7() when skipping. (2013 Oct 15) Oct 23 with test.
Several syntax file match "^\s*" which may get underlined if that's in the
highlight group. Add a "\zs" after it?
- Have an option for spell checking to not mark any Chinese, Japanese or
other double-width characters (or CJK characters) as error.
Helps a lot for mixed Asian and latin text.
More general: Have some way not to give spelling errors for a range of
characters.
Patch to add "cjk" to 'spelllang'. (Ken Takata, 2013 Oct 8, second one)
Patch to add mch_copy_sec() to vim_rename().
bug report on redhat. (Peter Backes, 2013 oct 8)
Patch to vim-dev, 2013 Oct 9.
Win32: When a directory name contains an exclamation mark, completion doesn't
complete the contents of the directory. No escaping for the "!"? (Jan
Stocker, 2012 Jan 5; 2013 Aug 20)
Patch 2013 Sept 10, test: Sept 11.
Patch to fix temp directories for Windows, so that it works without tweaking.
Issue 28.
Go through more coverity reports.
@@ -169,49 +179,74 @@ Include Haiku port? (Adrien Destugues, Siarzhuk Zharski, 2013 Oct 24)
Updated spec ftplugin. (Matěj Cepl, 2013 Oct 16)
Patch to make ColorScheme autocommand match with the colorscheme name instead
of the buffer name. (Christian Brabandt, 2013 Sep 25)
Some quickfix messages appear twice. (Gary Johnson, 2014 Feb 16)
Patch by Christian Brabandt, 2014 Feb 17.
Patch to right-align signs. (James Kolb (email james), 2013 Sep 23)
Patch to handle integer overflow. (Aaron Burrow, 2013 Dec 12)
With "$" in 'cpoptions' the popup menu isn't fully drawn. (Matti Niemenmaa,
2013 Sep 5)
"gUgn" cannot be repeated, while "dgn" can. (Dimitar Dimitrov)
Patch by Christian Brabandt (2013 Aug 12)
Several Win32 functions are not using Unicode.
Patches to fix this. (Ken Takata, 2013 Aug 9)
Patch to add item in 'listchars' to repeat first character. (Nathaniel Braun,
pragm, 2013 Oct 13)
Patch to add "ntab" item in 'listchars' to repeat first character. (Nathaniel
Braun, pragm, 2013 Oct 13) Again 2014 Mar 5.
Undo message is not always properly displayed. Patch by Ken Takata, 2013 oct
3. Doesn't work properly according to Yukihiro Nakadaira.
/[b-a] gives error E16, should probably be E769.
7 Windows XP: When using "ClearType" for text smoothing, a column of yellow
pixels remains when typing spaces in front of a "D" ('guifont' set to
"lucida_console:h8").
Patch by Thomas Tuegel, also for GTK, 2013 Nov 24
:help gives example for z?, but it does not work. m? and t? do work.
Python: Extended funcrefs: use func_T* structure in place of char_u* function
names. (ZyX, 2013 Jul 15, update Sep 22, 24, 28)
names.
(ZyX, 2013 Jul 15, update Sep 22, 24, 28; Update 2013 Dec 15, 2014 Jan 6)
Also fixes Bug: E685 error for func_unref(). (ZyX, 2010 Aug 5)
Patch to add funcref to Lua. (Luis Carvalho, 2013 Sep 4)
With tests: Sep 5.
Patch to fix that on suckless Terminal mousewheel up does not work.
(Ralph Eastwood, 2013 Nov 25)
Discussion about canonicalization of Hebrew. (Ron Aaron, 2011 April 10)
Patch to make external commands work with multi-byte characters on Win32 when
'encoding' differs from the active codepage. (Yasuhiro Matsumoto, 2013 Aug 5)
Checking runtime scripts: Thilo Six, 2012 Jun 6.
When evaluating expression in backticks, autoload doesn't work.
(Andy Wokula, 2013 Dec 14)
Using <nr>ifoobar<esc> can slow down Vim. Patch by Christian Brabandt, 2013
Dec 13.
Fold can't be opened after ":move". (Ein Brown)
Patch from Christian Brabandt doesn't fix it completely.
Patch from Christian Brabandt to preserve upper case marks when wiping out a
buffer. (2013 Dec 9)
Patch for drag&drop reordering of GUI tab pages reordering.
(Ken Takata, 2013 Nov 22, second one, also by Masamichi Abe)
":sign-jump" uses first window in buffer instead of current window.
Patch by James McCoy, 2013 Nov 22.
GTK: problem with 'L' in 'guioptions' changing the window width.
(Aaron Cornelius, 2012 Feb 6)
Patch to add option that tells whether small deletes go into the numbered
registers. (Aryeh Leib Taurog, 2013 Nov 18)
Win32: use different args for SearchPath()? (Yasuhiro Matsumoto, 2009 Jan 30)
Also fixes wrong result from executable().
Update from Ken Takata, 2014 Jan 10.
Javascript file where indent gets stuck on: GalaxyMaster, 2012 May 3.
The BufUnload event is triggered when re-using the empty buffer.
@@ -222,6 +257,10 @@ The CompleteDone autocommand needs some info passed to it:
- The word that was selected (empty if abandoned complete)
- Type of completion: tag, omnifunc, user func.
Patch to allow more types in remote_expr(). (Lech Lorens, 2014 Jan 5)
Doesn't work for string in list. Other way to pass all types of variables
reliably?
Using ":call foo#d.f()" doesn't autoload the "foo.vim" file.
That is, calling a dictionary function on an autoloaded dict.
Works OK for echo, just not for ":call" and ":call call()". (Ted, 2011 Mar
@@ -236,6 +275,15 @@ Or should we add a more general mechanism, like lambda functions?
Problem caused by patch 7.3.638: window->open does not update window
correctly. Issue 91.
Patch to add {lhs} to :mapclear: clear all maps starting with {lhs}.
(Christian Brabandt, 2013 Dec 9)
The garbage collector may use too much stack. Make set_ref_in_item()
iterative instead of recursive. Test program by Marc Weber (2013 Dec 10)
Exception caused by argument of return is not caught by try/catch.
(David Barnett, 2013 Nov 19)
8 'backupdir' and 'directory' should use $TMPDIR, $TMP and/or $TEMP when
defined.
Issue 28.
@@ -254,7 +302,7 @@ carried over when using :global. (Christian Brabandt, 2013 Jun 19)
Bug with 'cursorline' in diff mode. Line being scrolled into view gets
highlighted as the cursor line. (Alessandro Ivaldi, 2013 Jun 4)
Two highlighting bugs. (Zyx, 2013 Aug 18)
Two highlighting bugs. (ZyX, 2013 Aug 18)
Patch to add the bufferlist() function. (Yegappan Lakshmanan, 2013 May 5)
May 17: with winlist() and tabpagelist().
@@ -302,8 +350,18 @@ a reboot.
MS-Windows: Crash opening very long file name starting with "\\".
(Christian Brock, 2012 Jun 29)
Patch to have text objects defined by arbitrary single characters. (Daniel
Thau, 2013 Nov 20, 2014 Jan 29, 2014 Jan 31)
Ben Fritz: problem with 'selection' set to "exclusive".
Patch to select the next or previous text object if there isn't one under the
cursor. (Daniel Thau, 2013 Nov 20)
patch to add "combine" flag to syntax commands. (so8res, 2012 Dec 6)
Bug caused by patch 7.3.1288? Issue 183.
I can't reproduce it.
Syntax update problem in one buffer opened in two windows, bottom window is
not correctly updated. (Paul Harris, 2012 Feb 27)
@@ -429,6 +487,8 @@ Patch to add digraph() function. (Christian Brabandt, 2013 Aug 22, update Aug
Patch for input method status. (Hirohito Higashi, 2012 Apr 18)
Update Vim app icon (for Gnome). (Jakub Steiner, 2013 Dec 6)
Patch to use .png icons for the toolbar on MS-Windows. (Martin Gieseking, 2013
Apr 18)
@@ -447,8 +507,6 @@ And one for gui_x11.txt.
finddir() has the same problem. (Yukihiro Nakadaira, 2012 Jan 10)
Requires a rewrite of the file_file_in_path code.
Problem with l: dictionary being locked in a function. (ZyX, 2011 Jul 21)
Should use has("browsefilter") in ftplugins. Requires patch 7.3.593.
Update for vim2html.pl. (Tyru, 2013 Feb 22)
@@ -530,8 +588,6 @@ When using a Vim server, a # in the path causes an error message.
Setting $HOME on MS-Windows is not very well documented. Suggestion by Ben
Fritz (2011 Oct 27).
Bug: E685 error for func_unref(). (ZyX, 2010 Aug 5)
Bug: Windows 7 64 bit system freezes when 'clipboard' set to "unnamed" and
doing ":g/test/d". Putting every delete on the clipboard? (Robert Chan, 2011
Jun 17)
@@ -575,6 +631,8 @@ following "redir" command gives an error for not being able to access s:foo.
When setqflist() uses a filename that triggers a BufReadCmd autocommand Vim
doesn't jump to the correct line with :cfirst. (ZyX, 2011 Sep 18)
Behavior of i" and a" text objects isn't logical. (Ben Fritz, 2013 Nov 19)
7 Make "ga" show the digraph for a character, if it exists.
Patch from Christian Brabandt, 2011 Aug 19.
@@ -715,7 +773,7 @@ Assume the system converts between the actual encoding of the filesystem to
the system encoding (usually utf-8).
Patch to add GUI colors to the terminal, when it supports it. (ZyX, 2013 Jan
26)
26, update 2013 Dec 14)
Problem producing tags file when hebrew.frx is present. It has a BOM.
Results in E670. (Tony Mechelynck, 2010 May 2)
@@ -753,9 +811,6 @@ C-indenting: A matching { in a comment is ignored, but intermediate { are not
checked to be in a comment. Implement FM_SKIPCOMM flag of findmatchlimit().
Issue 46.
When 'paste' is changed with 'pastetoggle', the ruler doesn't reflect this
right away. (Samuel Ferencik, 2010 Dec 7)
Mac with X11: clipboard doesn't work properly. (Raf, 2010 Aug 16)
Using CompilerSet doesn't record where an option was set from. E.g., in the
@@ -993,8 +1048,6 @@ system when 'encoding' is "utf-8".
Win32 GUI: last message from startup doesn't show up when there is an echoerr
command. (Cyril Slobin, 2009 Mar 13)
Win32: use different args for SearchPath()? (Yasuhiro Matsumoto, 2009 Jan 30)
Win32: completion of file name ":e c:\!test" results in ":e c:\\!test", which
does not work. (Nieko Maatjes, 2009 Jan 8, Ingo Karkat, 2009 Jan 22)
@@ -1011,7 +1064,7 @@ Session file generates error upon loading, cause by --remote-silent-tab.
Using ~ works OK on 'a' with composing char, but not on 0x0418 with composing
char 0x0301. (Tony Mechelynck, 2009 Mar 4)
A function on a dictionary is not profiled. (Zyx, 2010 Dec 25)
A function on a dictionary is not profiled. (ZyX, 2010 Dec 25)
Inconsistent: starting with $LANG set to es_ES.utf-8 gives Spanish
messages, even though locale is not supported. But ":lang messages
@@ -1449,14 +1502,17 @@ Win32: When 'shell' is bash shellescape() doesn't always do the right thing.
Depends on 'shellslash', 'shellquote' and 'shellxquote', but shellescape()
only takes 'shellslash' into account.
Pressing the 'pastetoggle' key doesn't update the statusline. (Jan Christoph
Ebersbach, 2008 Feb 1)
Menu item that does "xxd -r" doesn't work when 'fileencoding' is utf-16.
Check for this and use iconv? (Edward L. Fox, 2007 Sep 12)
Does the conversion in the other direction work when 'fileencodings' is set
properly?
Add a few features to xxd. (Vadim Vygonets, 2013 Nov 11)
Patches: 2013 Nov 19
1: Add -e: little endian hexdump
2: Add -o: add offset to displayed position
3: Change displayed file position width to 8 chars
Cursor displayed in the wrong position when using 'numberwidth'. (James Vega,
2007 Jun 21)
@@ -1612,6 +1668,9 @@ Completing with 'wildmenu' and using <Up> and <Down> to move through directory
tree stops unexpectedly when using ":cd " and entering a directory that
doesn't contain other directories.
Default for 'background' is wrong when using xterm with 256 colors.
Table with estimates from Matteo Cavalleri, 2014 Jan 10.
Setting 'background' resets the Normal background color:
highlight Normal ctermbg=DarkGray
set background=dark
@@ -2017,8 +2076,6 @@ GTK+ GUI known bugs:
Win32 GUI known bugs:
- Win32: tearoff menu window should have a scrollbar when it's taller than
the screen.
8 non-ASCII font names don't work. Need to convert from 'encoding' and use
the wide functions.
8 On Windows 98 the unicows library is needed to support functions with UCS2
file names. Can we load unicows.dll dynamically?
8 The -P argument doesn't work very well with many MDI applications.
@@ -2026,9 +2083,6 @@ Win32 GUI known bugs:
Tutorial: http://win32assembly.online.fr/tut32.html
8 In eval.c, io.h is included when MSWIN32 is defined. Shouldn't this be
WIN32? Or can including io.h be moved to vim.h? (Dan Sharp)
7 Windows XP: When using "ClearType" for text smoothing, a column of yellow
pixels remains when typing spaces in front of a "D" ('guifont' set to
"lucida_console:h8").
6 Win32 GUI: With "-u NONE -U NONE" and doing "CTRL-W v" "CTRL-W o", the ":"
of ":only" is highlighted like the cursor. (Lipelis)
8 When 'encoding' is "utf-8", should use 'guifont' for both normal and wide

View File

@@ -128,7 +128,7 @@ be escaped with a backslash. Example: >
You can include special Vim keywords in the command specification. The %
character expands to the name of the current file. So if you execute the
command: >
:set makeprg=make\ %
:set makeprg=make\ %:S
When you are editing main.c, then ":make" executes the following command: >
@@ -137,7 +137,7 @@ When you are editing main.c, then ":make" executes the following command: >
This is not too useful, so you will refine the command a little and use the :r
(root) modifier: >
:set makeprg=make\ %:r.o
:set makeprg=make\ %:r:S.o
Now the command executed is as follows: >

View File

@@ -209,7 +209,7 @@ The ":map" command can be followed by another command. A | character
separates the two commands. This also means that a | character can't be used
inside a map command. To include one, use <Bar> (five characters). Example:
>
:map <F8> :write <Bar> !checkin %<CR>
:map <F8> :write <Bar> !checkin %:S<CR>
The same problem applies to the ":unmap" command, with the addition that you
have to watch out for trailing white space. These two commands are different:

View File

@@ -1,4 +1,4 @@
*usr_41.txt* For Vim version 7.4. Last change: 2013 Feb 20
*usr_41.txt* For Vim version 7.4. Last change: 2014 Jan 10
VIM USER MANUAL - by Bram Moolenaar
@@ -595,13 +595,17 @@ String manipulation: *string-functions*
matchlist() like matchstr() and also return submatches
stridx() first index of a short string in a long string
strridx() last index of a short string in a long string
strlen() length of a string
strlen() length of a string in bytes
strchars() length of a string in characters
strwidth() size of string when displayed
strdisplaywidth() size of string when displayed, deals with tabs
substitute() substitute a pattern match with a string
submatch() get a specific match in ":s" and substitute()
strpart() get part of a string
expand() expand special keywords
iconv() convert text from one encoding to another
byteidx() byte index of a character in a string
byteidxcomp() like byteidx() but count composing characters
repeat() repeat a string multiple times
eval() evaluate a string expression
@@ -656,6 +660,9 @@ Floating point computation: *float-functions*
ceil() round up
floor() round down
trunc() remove value after decimal point
fmod() remainder of division
exp() exponential
log() natural logarithm (logarithm to base e)
log10() logarithm to base 10
pow() value of x to the exponent y
sqrt() square root
@@ -675,6 +682,7 @@ Other computation: *bitwise-function*
invert() bitwise invert
or() bitwise OR
xor() bitwise XOR
sha256() SHA-256 hash
Variables: *var-functions*
type() type of a variable
@@ -697,11 +705,15 @@ Cursor and mark position: *cursor-functions* *mark-functions*
wincol() window column number of the cursor
winline() window line number of the cursor
cursor() position the cursor at a line/column
screencol() get screen column of the cursor
screenrow() get screen row of the cursor
getpos() get position of cursor, mark, etc.
setpos() set position of cursor, mark, etc.
byte2line() get line number at a specific byte count
line2byte() byte count at a specific line
diff_filler() get the number of filler lines above a line
screenattr() get attribute at a screen line/row
screenchar() get character code at a screen line/row
Working with text in the current buffer: *text-functions*
getline() get a line or list of lines from the buffer
@@ -883,14 +895,22 @@ Various: *various-functions*
libcall() call a function in an external library
libcallnr() idem, returning a number
undofile() get the name of the undo file
undotree() return the state of the undo tree
getreg() get contents of a register
getregtype() get type of a register
setreg() set contents and type of a register
shiftwidth() effective value of 'shiftwidth'
taglist() get list of matching tags
tagfiles() get a list of tags files
luaeval() evaluate Lua expression
mzeval() evaluate |MzScheme| expression
py3eval() evaluate Python expression (|+python3|)
pyeval() evaluate Python expression (|+python|)
==============================================================================
*41.7* Defining a function

View File

@@ -311,7 +311,7 @@ redefine what these items do (after the default menus are setup).
item with a bitmap. For example, define a new toolbar item with: >
:tmenu ToolBar.Compile Compile the current file
:amenu ToolBar.Compile :!cc % -o %:r<CR>
:amenu ToolBar.Compile :!cc %:S -o %:r:S<CR>
Now you need to create the icon. For MS-Windows it must be in bitmap format,
with the name "Compile.bmp". For Unix XPM format is used, the file name is

View File

@@ -1,4 +1,4 @@
*version7.txt* For Vim version 7.4. Last change: 2013 Sep 03
*version7.txt* For Vim version 7.4. Last change: 2013 Nov 18
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -7188,7 +7188,7 @@ More encryption *new-more-encryption*
---------------
Support for Blowfish encryption. Added the 'cryptmethod' option.
Mostly by Moshin Ahmed.
Mostly by Mohsin Ahmed.
Also encrypt the text in the swap file and the undo file.

View File

@@ -540,7 +540,7 @@ character (and shows it immediately).
Added :wnext command. Same as ":write" followed by ":next".
The ":w!" command always writes, also when the file is write protected. In Vi
you would have to do ":!chmod +w %" and ":set noro".
you would have to do ":!chmod +w %:S" and ":set noro".
When 'tildeop' has been set, "~" is an operator (must be followed by a
movement command).

View File

@@ -1,7 +1,7 @@
" Vim support file to detect file types
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2013 Oct 06
" Last Change: 2014 Feb 26
" Listen very carefully, I will say this only once
if exists("did_load_filetypes")
@@ -106,6 +106,9 @@ au BufNewFile,BufRead *.run setf ampl
" Ant
au BufNewFile,BufRead build.xml setf ant
" Arduino
au BufNewFile,BufRead *.ino,*.pde setf arduino
" Apache style config file
au BufNewFile,BufRead proftpd.conf* call s:StarSetf('apachestyle')
@@ -536,6 +539,20 @@ au BufNewFile,BufRead *enlightenment/*.cfg setf c
" Eterm
au BufNewFile,BufRead *Eterm/*.cfg setf eterm
" Euphoria 3 or 4
au BufNewFile,BufRead *.eu,*.ew,*.ex,*.exu,*.exw call s:EuphoriaCheck()
if has("fname_case")
au BufNewFile,BufRead *.EU,*.EW,*.EX,*.EXU,*.EXW call s:EuphoriaCheck()
endif
func! s:EuphoriaCheck()
if exists('g:filetype_euphoria')
exe 'setf ' . g:filetype_euphoria
else
setf euphoria3
endif
endfunc
" Lynx config files
au BufNewFile,BufRead lynx.cfg setf lynx
@@ -656,22 +673,26 @@ au BufNewFile,BufRead *.ed\(f\|if\|n\|o\) setf edif
" Embedix Component Description
au BufNewFile,BufRead *.ecd setf ecd
" Eiffel or Specman
" Eiffel or Specman or Euphoria
au BufNewFile,BufRead *.e,*.E call s:FTe()
" Elinks configuration
au BufNewFile,BufRead */etc/elinks.conf,*/.elinks/elinks.conf setf elinks
func! s:FTe()
let n = 1
while n < 100 && n < line("$")
if getline(n) =~ "^\\s*\\(<'\\|'>\\)\\s*$"
setf specman
return
endif
let n = n + 1
endwhile
setf eiffel
if exists('g:filetype_euphoria')
exe 'setf ' . g:filetype_euphoria
else
let n = 1
while n < 100 && n < line("$")
if getline(n) =~ "^\\s*\\(<'\\|'>\\)\\s*$"
setf specman
return
endif
let n = n + 1
endwhile
setf eiffel
endif
endfunc
" ERicsson LANGuage; Yaws is erlang too
@@ -1017,7 +1038,7 @@ au BufNewFile,BufRead *.ldif setf ldif
au BufNewFile,BufRead *.ld setf ld
" Lex
au BufNewFile,BufRead *.lex,*.l setf lex
au BufNewFile,BufRead *.lex,*.l,*.lxx,*.l++ setf lex
" Libao
au BufNewFile,BufRead */etc/libao.conf,*/.libao setf libao
@@ -1172,6 +1193,9 @@ au BufNewFile,BufRead *.mp setf mp
" MGL
au BufNewFile,BufRead *.mgl setf mgl
" MIX - Knuth assembly
au BufNewFile,BufRead *.mix,*.mixal setf mix
" MMIX or VMS makefile
au BufNewFile,BufRead *.mms call s:FTmms()
@@ -2237,6 +2261,9 @@ au BufNewFile,BufRead *.v setf verilog
" Verilog-AMS HDL
au BufNewFile,BufRead *.va,*.vams setf verilogams
" SystemVerilog
au BufNewFile,BufRead *.sv,*.svh setf systemverilog
" VHDL
au BufNewFile,BufRead *.hdl,*.vhd,*.vhdl,*.vbe,*.vst setf vhdl
au BufNewFile,BufRead *.vhdl_[0-9]* call s:StarSetf('vhdl')
@@ -2409,7 +2436,7 @@ au BufNewFile,BufRead *.xsd setf xsd
au BufNewFile,BufRead *.xsl,*.xslt setf xslt
" Yacc
au BufNewFile,BufRead *.yy setf yacc
au BufNewFile,BufRead *.yy,*.yxx,*.y++ setf yacc
" Yacc or racc
au BufNewFile,BufRead *.y call s:FTy()

View File

@@ -1,7 +1,7 @@
" Vim filetype plugin file
" Language: generic Changelog file
" Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2012-08-23
" Latest Revision: 2014-01-10
" Variables:
" g:changelog_timeformat (deprecated: use g:changelog_dateformat instead) -
" description: the timeformat used in ChangeLog entries.
@@ -122,12 +122,12 @@ if &filetype == 'changelog'
" Format used for new date entries.
if !exists('g:changelog_new_date_format')
let g:changelog_new_date_format = "%d %u\n\n\t* %c\n\n"
let g:changelog_new_date_format = "%d %u\n\n\t* %p%c\n\n"
endif
" Format used for new entries to current date entry.
if !exists('g:changelog_new_entry_format')
let g:changelog_new_entry_format = "\t* %c"
let g:changelog_new_entry_format = "\t* %p%c"
endif
" Regular expression used to find a given date entry.
@@ -143,16 +143,16 @@ if &filetype == 'changelog'
" Substitutes specific items in new date-entry formats and search strings.
" Can be done with substitute of course, but unclean, and need \@! then.
function! s:substitute_items(str, date, user)
function! s:substitute_items(str, date, user, prefix)
let str = a:str
let middles = {'%': '%', 'd': a:date, 'u': a:user, 'c': '{cursor}'}
let middles = {'%': '%', 'd': a:date, 'u': a:user, 'p': a:prefix, 'c': '{cursor}'}
let i = stridx(str, '%')
while i != -1
let inc = 0
if has_key(middles, str[i + 1])
let mid = middles[str[i + 1]]
let str = strpart(str, 0, i) . mid . strpart(str, i + 2)
let inc = strlen(mid)
let inc = strlen(mid) - 1
endif
let i = stridx(str, '%', i + 1 + inc)
endwhile
@@ -171,7 +171,7 @@ if &filetype == 'changelog'
endfunction
" Internal function to create a new entry in the ChangeLog.
function! s:new_changelog_entry()
function! s:new_changelog_entry(prefix)
" Deal with 'paste' option.
let save_paste = &paste
let &paste = 1
@@ -179,7 +179,7 @@ if &filetype == 'changelog'
" Look for an entry for today by our user.
let date = strftime(g:changelog_dateformat)
let search = s:substitute_items(g:changelog_date_entry_search, date,
\ s:username())
\ s:username(), a:prefix)
if search(search) > 0
" Ok, now we look for the end of the date entry, and add an entry.
call cursor(nextnonblank(line('.') + 1), 1)
@@ -188,7 +188,7 @@ if &filetype == 'changelog'
else
let p = line('.')
endif
let ls = split(s:substitute_items(g:changelog_new_entry_format, '', ''),
let ls = split(s:substitute_items(g:changelog_new_entry_format, '', '', a:prefix),
\ '\n')
call append(p, ls)
call cursor(p + 1, 1)
@@ -198,7 +198,7 @@ if &filetype == 'changelog'
" No entry today, so create a date-user header and insert an entry.
let todays_entry = s:substitute_items(g:changelog_new_date_format,
\ date, s:username())
\ date, s:username(), a:prefix)
" Make sure we have a cursor positioning.
if stridx(todays_entry, '{cursor}') == -1
let todays_entry = todays_entry . '{cursor}'
@@ -206,7 +206,7 @@ if &filetype == 'changelog'
" Now do the work.
call append(0, split(todays_entry, '\n'))
" Remove empty lines at end of file.
if remove_empty
$-/^\s*$/-1,$delete
@@ -223,8 +223,8 @@ if &filetype == 'changelog'
endfunction
if exists(":NewChangelogEntry") != 2
noremap <buffer> <silent> <Leader>o <Esc>:call <SID>new_changelog_entry()<CR>
command! -nargs=0 NewChangelogEntry call s:new_changelog_entry()
noremap <buffer> <silent> <Leader>o <Esc>:call <SID>new_changelog_entry('')<CR>
command! -nargs=0 NewChangelogEntry call s:new_changelog_entry('')
endif
let b:undo_ftplugin = "setl com< fo< et< ai<"
@@ -277,10 +277,7 @@ else
if exists('b:changelog_entry_prefix')
let prefix = call(b:changelog_entry_prefix, [])
else
let prefix = substitute(strpart(expand('%:p'), strlen(path)), '^/\+', "", "") . ':'
endif
if !empty(prefix)
let prefix = ' ' . prefix
let prefix = substitute(strpart(expand('%:p'), strlen(path)), '^/\+', "", "")
endif
let buf = bufnr(changelog)

View File

@@ -1,7 +1,7 @@
" Vim filetype plugin file
" Language: cobol
" Author: Tim Pope <vimNOSPAM@tpope.info>
" $Id: cobol.vim,v 1.1 2007/05/05 17:24:38 vimboss Exp $
" Last Update: By ZyX: use shiftwidth()
" Insert mode mappings: <C-T> <C-D> <Tab>
" Normal mode mappings: < > << >> [[ ]] [] ][
@@ -113,7 +113,7 @@ endfunction
function! s:increase(...)
let lnum = '.'
let sw = &shiftwidth
let sw = shiftwidth()
let i = a:0 ? a:1 : indent(lnum)
if i >= 11
return sw - (i - 11) % sw
@@ -128,7 +128,7 @@ endfunction
function! s:decrease(...)
let lnum = '.'
let sw = &shiftwidth
let sw = shiftwidth()
let i = indent(a:0 ? a:1 : lnum)
if i >= 11 + sw
return 1 + (i + 12) % sw
@@ -147,7 +147,7 @@ function! CobolIndentBlock(shift)
let head = strpart(getline('.'),0,7)
let tail = strpart(getline('.'),7)
let indent = match(tail,'[^ ]')
let sw = &shiftwidth
let sw = shiftwidth()
let shift = a:shift
if shift > 0
if indent < 4
@@ -221,7 +221,8 @@ endfunction
function! s:Tab()
if (strpart(getline('.'),0,col('.')-1) =~ '^\s*$' && &sta)
return s:IncreaseIndent()
elseif &sts == &sw && &sts != 8 && &et
" &softtabstop < 0: &softtabstop follows &shiftwidth
elseif (&sts < 0 || &sts == shiftwidth()) && &sts != 8 && &et
return s:repeat(" ",s:increase(col('.')-1))
else
return "\<Tab>"

View File

@@ -3,7 +3,7 @@
" Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
" Former Maintainers: Michael Piefel <piefel@informatik.hu-berlin.de>
" Stefano Zacchiroli <zack@debian.org>
" Last Change: 2012-01-31
" Last Change: 2014-01-31
" License: Vim License
" URL: http://hg.debian.org/hg/pkg-vim/vim/file/unstable/runtime/ftplugin/debchangelog.vim
@@ -152,7 +152,7 @@ function CloseBug()
endfunction
function Distribution(dist)
call setline(1, substitute(getline(1), ") [[:lower:] ]*;", ") " . a:dist . ";", ""))
call setline(1, substitute(getline(1), ') *\%(UNRELEASED\|\l\+\);', ") " . a:dist . ";", ""))
endfunction
function Urgency(urg)

View File

@@ -0,0 +1,15 @@
" Vim filetype plugin
" Language: Java properties file
" Maintainer: David Bürgin <676c7473@gmail.com>
" Last Change: 2013-11-19
if exists("b:did_ftplugin")
finish
endif
let b:did_ftplugin = 1
setlocal formatoptions-=t
setlocal comments=:#,:!
setlocal commentstring=#\ %s
let b:undo_ftplugin = "setl cms< com< fo<"

View File

@@ -1,7 +1,7 @@
" Vim filetype plugin file
" Language: python
" Maintainer: Johannes Zellner <johannes@zellner.org>
" Last Change: 2013 Sep 25
" Last Change: 2014 Feb 09
" Last Change By Johannes: Wed, 21 Apr 2004 13:13:08 CEST
if exists("b:did_ftplugin") | finish | endif
@@ -11,11 +11,11 @@ set cpo&vim
setlocal cinkeys-=0#
setlocal indentkeys-=0#
setlocal include=\s*\\(from\\\|import\\)
setlocal include=^\\s*\\(from\\\|import\\)
setlocal includeexpr=substitute(v:fname,'\\.','/','g')
setlocal suffixesadd=.py
setlocal comments-=:%
setlocal commentstring=#%s
setlocal comments=b:#,fb:-
setlocal commentstring=#\ %s
setlocal omnifunc=pythoncomplete#Complete
@@ -26,21 +26,21 @@ nnoremap <silent> <buffer> [[ :call <SID>Python_jump('?^\(class\\|def\)')<cr>
nnoremap <silent> <buffer> ]m :call <SID>Python_jump('/^\s*\(class\\|def\)')<cr>
nnoremap <silent> <buffer> [m :call <SID>Python_jump('?^\s*\(class\\|def\)')<cr>
if exists('*<SID>Python_jump') | finish | endif
if !exists('*<SID>Python_jump')
fun! <SID>Python_jump(motion) range
let cnt = v:count1
let save = @/ " save last search pattern
mark '
while cnt > 0
silent! exe a:motion
let cnt = cnt - 1
endwhile
call histdel('/', -1)
let @/ = save " restore last search pattern
endfun
endif
fun! <SID>Python_jump(motion) range
let cnt = v:count1
let save = @/ " save last search pattern
mark '
while cnt > 0
silent! exe a:motion
let cnt = cnt - 1
endwhile
call histdel('/', -1)
let @/ = save " restore last search pattern
endfun
if has("gui_win32") && !exists("b:browsefilter")
if has("browsefilter") && !exists("b:browsefilter")
let b:browsefilter = "Python Files (*.py)\t*.py\n" .
\ "All Files (*.*)\t*.*\n"
endif

View File

@@ -0,0 +1,36 @@
" Vim filetype plugin file
" Language: Windows Registry export with regedit (*.reg)
" Maintainer: Cade Forester <ahx2323@gmail.com>
" Latest Revision: 2014-01-09
if exists("b:did_ftplugin")
finish
endif
let b:did_ftplugin = 1
let s:cpo_save = &cpo
set cpo&vim
let b:undo_ftplugin =
\ 'let b:browsefilter = "" | ' .
\ 'setlocal ' .
\ 'comments< '.
\ 'commentstring< ' .
\ 'formatoptions< '
if has( 'gui_win32' )
\ && !exists( 'b:browsefilter' )
let b:browsefilter =
\ 'registry files (*.reg)\t*.reg\n' .
\ 'All files (*.*)\t*.*\n'
endif
setlocal comments=:;
setlocal commentstring=;\ %s
setlocal formatoptions-=t
setlocal formatoptions+=croql
let &cpo = s:cpo_save
unlet s:cpo_save

View File

@@ -1,7 +1,8 @@
" Plugin to update the %changelog section of RPM spec files
" Filename: spec.vim
" Maintainer: Gustavo Niemeyer <niemeyer@conectiva.com>
" Last Change: 2012 Mar 07
" Maintainer: Igor Gnatenko i.gnatenko.brain@gmail.com
" Former Maintainer: Gustavo Niemeyer <niemeyer@conectiva.com> (until March 2014)
" Last Change: Sun Mar 2 11:24 MSK 2014 Igor Gnatenko
if exists("b:did_ftplugin")
finish
@@ -150,6 +151,10 @@ if !exists("*s:ParseRpmVars")
execute a:strline
let definestr = "^[ \t]*%define[ \t]\\+" . varname . "[ \t]\\+\\(.*\\)$"
let linenum = search(definestr, "bW")
if (linenum == 0)
let definestr = substitute(definestr, "%define", "%global", "")
let linenum = search(definestr, "bW")
endif
if (linenum != -1)
let ret = ret . substitute(getline(linenum), definestr, "\\1", "")
else

View File

@@ -0,0 +1,11 @@
" Vim filetype plugin file
" Language: SystemVerilog
" Maintainer: kocha <kocha.lsifrontend@gmail.com>
" Last Change: 12-Aug-2013.
if exists("b:did_ftplugin")
finish
endif
" Behaves just like Verilog
runtime! ftplugin/verilog.vim

View File

@@ -6,7 +6,7 @@
" Maintainer: Sung Pae <self@sungpae.com>
" URL: https://github.com/guns/vim-clojure-static
" License: Same as Vim
" Last Change: 08 September 2013
" Last Change: 16 December 2013
" TODO: Indenting after multibyte characters is broken:
" (let [Δ (if foo
@@ -53,6 +53,10 @@ if exists("*searchpairpos")
let g:clojure_align_multiline_strings = 0
endif
if !exists('g:clojure_align_subforms')
let g:clojure_align_subforms = 0
endif
function! s:SynIdName()
return synIDattr(synID(line("."), col("."), 0), "name")
endfunction
@@ -284,7 +288,7 @@ if exists("*searchpairpos")
call search('\v\_s', 'cW')
call search('\v\S', 'W')
if paren[0] < line(".")
return paren[1] + &shiftwidth - 1
return paren[1] + (g:clojure_align_subforms ? 0 : &shiftwidth - 1)
endif
call search('\v\S', 'bW')

View File

@@ -3,7 +3,7 @@
" Author: John Wellesz <John.wellesz (AT) teaser (DOT) fr>
" URL: http://www.2072productions.com/vim/indent/php.vim
" Home: https://github.com/2072/PHP-Indenting-for-VIm
" Last Change: 2013 August 7th
" Last Change: 2014 Jan 21
" Version: 1.39
"
"
@@ -642,7 +642,7 @@ function! GetPhpIndent()
if previous_line =~ '^\s*}\|;\s*}'.endline " XXX
call cursor(last_line_num, 1)
call search('}\|;\s*}'.endline, 'W')
call search('}\|;\s*}'.endline, 'cW')
let oldLastLine = last_line_num
let last_line_num = searchpair('{', '', '}', 'bW', 'Skippmatch()')

View File

@@ -1,7 +1,8 @@
" Vim indent file
" Language: Shell Script
" Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2010-01-06
" Maintainer: Peter Aronoff <telemachus@arpinum.org>
" Original Author: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2013-11-28
if exists("b:did_indent")
finish
@@ -77,6 +78,8 @@ function! GetShIndent()
let line = getline(v:lnum)
if line =~ '^\s*\%(then\|do\|else\|elif\|fi\|done\)\>' || line =~ '^\s*}'
let ind -= s:indent_value('default')
elseif line =~ '^\s*esac\>' && s:is_case_empty(getline(v:lnum - 1))
let ind -= s:indent_value('default')
elseif line =~ '^\s*esac\>'
let ind -= (s:is_case_label(pine, lnum) && s:is_case_ended(pine) ?
\ 0 : s:indent_value('case-statements')) +
@@ -154,5 +157,13 @@ function! s:is_case_ended(line)
return s:is_case_break(a:line) || a:line =~ ';[;&]\s*\%(#.*\)\=$'
endfunction
function! s:is_case_empty(line)
if a:line =~ '^\s*$' || a:line =~ '^\s*#'
return s:is_case_empty(getline(v:lnum - 1))
else
return a:line =~ '^\s*case\>'
endif
endfunction
let &cpo = s:cpo_save
unlet s:cpo_save

View File

@@ -0,0 +1,230 @@
" Vim indent file
" Language: SystemVerilog
" Maintainer: kocha <kocha.lsifrontend@gmail.com>
" Last Change: 12-Aug-2013.
" Only load this indent file when no other was loaded.
if exists("b:did_indent")
finish
endif
let b:did_indent = 1
setlocal indentexpr=SystemVerilogIndent()
setlocal indentkeys=!^F,o,O,0),0},=begin,=end,=join,=endcase,=join_any,=join_none
setlocal indentkeys+==endmodule,=endfunction,=endtask,=endspecify
setlocal indentkeys+==endclass,=endpackage,=endsequence,=endclocking
setlocal indentkeys+==endinterface,=endgroup,=endprogram,=endproperty,=endchecker
setlocal indentkeys+==`else,=`endif
" Only define the function once.
if exists("*SystemVerilogIndent")
finish
endif
let s:cpo_save = &cpo
set cpo&vim
function SystemVerilogIndent()
if exists('b:systemverilog_indent_width')
let offset = b:systemverilog_indent_width
else
let offset = &sw
endif
if exists('b:systemverilog_indent_modules')
let indent_modules = offset
else
let indent_modules = 0
endif
" Find a non-blank line above the current line.
let lnum = prevnonblank(v:lnum - 1)
" At the start of the file use zero indent.
if lnum == 0
return 0
endif
let lnum2 = prevnonblank(lnum - 1)
let curr_line = getline(v:lnum)
let last_line = getline(lnum)
let last_line2 = getline(lnum2)
let ind = indent(lnum)
let ind2 = indent(lnum - 1)
let offset_comment1 = 1
" Define the condition of an open statement
" Exclude the match of //, /* or */
let sv_openstat = '\(\<or\>\|\([*/]\)\@<![*(,{><+-/%^&|!=?:]\([*/]\)\@!\)'
" Define the condition when the statement ends with a one-line comment
let sv_comment = '\(//.*\|/\*.*\*/\s*\)'
if exists('b:verilog_indent_verbose')
let vverb_str = 'INDENT VERBOSE:'
let vverb = 1
else
let vverb = 0
endif
" Indent accoding to last line
" End of multiple-line comment
if last_line =~ '\*/\s*$' && last_line !~ '/\*.\{-}\*/'
let ind = ind - offset_comment1
if vverb
echo vverb_str "De-indent after a multiple-line comment."
endif
" Indent after if/else/for/case/always/initial/specify/fork blocks
elseif last_line =~ '`\@<!\<\(if\|else\)\>' ||
\ last_line =~ '^\s*\<\(for\|case\%[[zx]]\|do\|foreach\|randcase\)\>' ||
\ last_line =~ '^\s*\<\(always\|always_comb\|always_ff\|always_latch\)\>' ||
\ last_line =~ '^\s*\<\(initial\|specify\|fork\|final\)\>'
if last_line !~ '\(;\|\<end\>\)\s*' . sv_comment . '*$' ||
\ last_line =~ '\(//\|/\*\).*\(;\|\<end\>\)\s*' . sv_comment . '*$'
let ind = ind + offset
if vverb | echo vverb_str "Indent after a block statement." | endif
endif
" Indent after function/task/class/package/sequence/clocking/
" interface/covergroup/property/checkerprogram blocks
elseif last_line =~ '^\s*\<\(function\|task\|class\|package\)\>' ||
\ last_line =~ '^\s*\<\(sequence\|clocking\|interface\)\>' ||
\ last_line =~ '^\s*\(\w\+\s*:\)\=\s*\<covergroup\>' ||
\ last_line =~ '^\s*\<\(property\|checker\|program\)\>'
if last_line !~ '\<end\>\s*' . sv_comment . '*$' ||
\ last_line =~ '\(//\|/\*\).*\(;\|\<end\>\)\s*' . sv_comment . '*$'
let ind = ind + offset
if vverb
echo vverb_str "Indent after function/task/class block statement."
endif
endif
" Indent after module/function/task/specify/fork blocks
elseif last_line =~ '^\s*\(\<extern\>\s*\)\=\<module\>'
let ind = ind + indent_modules
if vverb && indent_modules
echo vverb_str "Indent after module statement."
endif
if last_line =~ '[(,]\s*' . sv_comment . '*$' &&
\ last_line !~ '\(//\|/\*\).*[(,]\s*' . sv_comment . '*$'
let ind = ind + offset
if vverb
echo vverb_str "Indent after a multiple-line module statement."
endif
endif
" Indent after a 'begin' statement
elseif last_line =~ '\(\<begin\>\)\(\s*:\s*\w\+\)*' . sv_comment . '*$' &&
\ last_line !~ '\(//\|/\*\).*\(\<begin\>\)' &&
\ ( last_line2 !~ sv_openstat . '\s*' . sv_comment . '*$' ||
\ last_line2 =~ '^\s*[^=!]\+\s*:\s*' . sv_comment . '*$' )
let ind = ind + offset
if vverb | echo vverb_str "Indent after begin statement." | endif
" Indent after a '{' or a '('
elseif last_line =~ '[{(]' . sv_comment . '*$' &&
\ last_line !~ '\(//\|/\*\).*[{(]' &&
\ ( last_line2 !~ sv_openstat . '\s*' . sv_comment . '*$' ||
\ last_line2 =~ '^\s*[^=!]\+\s*:\s*' . sv_comment . '*$' )
let ind = ind + offset
if vverb | echo vverb_str "Indent after begin statement." | endif
" De-indent for the end of one-line block
elseif ( last_line !~ '\<begin\>' ||
\ last_line =~ '\(//\|/\*\).*\<begin\>' ) &&
\ last_line2 =~ '\<\(`\@<!if\|`\@<!else\|for\|always\|initial\|do\|foreach\|final\)\>.*' .
\ sv_comment . '*$' &&
\ last_line2 !~ '\(//\|/\*\).*\<\(`\@<!if\|`\@<!else\|for\|always\|initial\|do\|foreach\|final\)\>' &&
\ last_line2 !~ sv_openstat . '\s*' . sv_comment . '*$' &&
\ ( last_line2 !~ '\<begin\>' ||
\ last_line2 =~ '\(//\|/\*\).*\<begin\>' )
let ind = ind - offset
if vverb
echo vverb_str "De-indent after the end of one-line statement."
endif
" Multiple-line statement (including case statement)
" Open statement
" Ident the first open line
elseif last_line =~ sv_openstat . '\s*' . sv_comment . '*$' &&
\ last_line !~ '\(//\|/\*\).*' . sv_openstat . '\s*$' &&
\ last_line2 !~ sv_openstat . '\s*' . sv_comment . '*$'
let ind = ind + offset
if vverb | echo vverb_str "Indent after an open statement." | endif
" Close statement
" De-indent for an optional close parenthesis and a semicolon, and only
" if there exists precedent non-whitespace char
elseif last_line =~ ')*\s*;\s*' . sv_comment . '*$' &&
\ last_line !~ '^\s*)*\s*;\s*' . sv_comment . '*$' &&
\ last_line !~ '\(//\|/\*\).*\S)*\s*;\s*' . sv_comment . '*$' &&
\ ( last_line2 =~ sv_openstat . '\s*' . sv_comment . '*$' &&
\ last_line2 !~ ';\s*//.*$') &&
\ last_line2 !~ '^\s*' . sv_comment . '$'
let ind = ind - offset
if vverb | echo vverb_str "De-indent after a close statement." | endif
" `ifdef and `else
elseif last_line =~ '^\s*`\<\(ifdef\|else\)\>'
let ind = ind + offset
if vverb
echo vverb_str "Indent after a `ifdef or `else statement."
endif
endif
" Re-indent current line
" De-indent on the end of the block
" join/end/endcase/endfunction/endtask/endspecify
if curr_line =~ '^\s*\<\(join\|join_any\|join_none\|\|end\|endcase\|while\)\>' ||
\ curr_line =~ '^\s*\<\(endfunction\|endtask\|endspecify\|endclass\)\>' ||
\ curr_line =~ '^\s*\<\(endpackage\|endsequence\|endclocking\|endinterface\)\>' ||
\ curr_line =~ '^\s*\<\(endgroup\|endproperty\|endchecker\|endprogram\)\>' ||
\ curr_line =~ '^\s*}'
let ind = ind - offset
if vverb | echo vverb_str "De-indent the end of a block." | endif
elseif curr_line =~ '^\s*\<endmodule\>'
let ind = ind - indent_modules
if vverb && indent_modules
echo vverb_str "De-indent the end of a module."
endif
" De-indent on a stand-alone 'begin'
elseif curr_line =~ '^\s*\<begin\>'
if last_line !~ '^\s*\<\(function\|task\|specify\|module\|class\|package\)\>' ||
\ last_line !~ '^\s*\<\(sequence\|clocking\|interface\|covergroup\)\>' ||
\ last_line !~ '^\s*\<\(property\|checker\|program\)\>' &&
\ last_line !~ '^\s*\()*\s*;\|)\+\)\s*' . sv_comment . '*$' &&
\ ( last_line =~
\ '\<\(`\@<!if\|`\@<!else\|for\|case\%[[zx]]\|always\|initial\|do\|foreach\|randcase\|final\)\>' ||
\ last_line =~ ')\s*' . sv_comment . '*$' ||
\ last_line =~ sv_openstat . '\s*' . sv_comment . '*$' )
let ind = ind - offset
if vverb
echo vverb_str "De-indent a stand alone begin statement."
endif
endif
" De-indent after the end of multiple-line statement
elseif curr_line =~ '^\s*)' &&
\ ( last_line =~ sv_openstat . '\s*' . sv_comment . '*$' ||
\ last_line !~ sv_openstat . '\s*' . sv_comment . '*$' &&
\ last_line2 =~ sv_openstat . '\s*' . sv_comment . '*$' )
let ind = ind - offset
if vverb
echo vverb_str "De-indent the end of a multiple statement."
endif
" De-indent `else and `endif
elseif curr_line =~ '^\s*`\<\(else\|endif\)\>'
let ind = ind - offset
if vverb | echo vverb_str "De-indent `else and `endif statement." | endif
endif
" Return the indention
return ind
endfunction
let &cpo = s:cpo_save
unlet s:cpo_save
" vim:sw=2

View File

@@ -1,7 +1,7 @@
" ---------------------------------------------------------------------
" getscriptPlugin.vim
" Author: Charles E. Campbell
" Date: Jan 07, 2008
" Date: Nov 29, 2013
" Installing: :help glvs-install
" Usage: :help glvs
"
@@ -13,13 +13,16 @@
" Initialization: {{{1
" if you're sourcing this file, surely you can't be
" expecting vim to be in its vi-compatible mode
if &cp || exists("g:loaded_getscriptPlugin")
if exists("g:loaded_getscriptPlugin")
finish
endif
if &cp
if &verbose
echo "GetLatestVimScripts is not vi-compatible; not loaded (you need to set nocp)"
endif
finish
endif
let g:loaded_getscriptPlugin = "v35"
let g:loaded_getscriptPlugin = "v36"
let s:keepcpo = &cpo
set cpo&vim

View File

@@ -1,9 +1,9 @@
" netrwPlugin.vim: Handles file transfer and remote directory listing across a network
" PLUGIN SECTION
" Date: Apr 30, 2013
" Date: Dec 31, 2013
" Maintainer: Charles E Campbell <NdrOchip@ScampbellPfamily.AbizM-NOSPAM>
" GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim
" Copyright: Copyright (C) 1999-2012 Charles E. Campbell {{{1
" Copyright: Copyright (C) 1999-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,
@@ -20,27 +20,33 @@
if &cp || exists("g:loaded_netrwPlugin")
finish
endif
"DechoTabOn
let g:loaded_netrwPlugin = "v149"
let g:loaded_netrwPlugin = "v150"
if v:version < 702
echohl WarningMsg | echo "***netrw*** you need vim version 7.2 for this version of netrw" | echohl None
echohl WarningMsg
echo "***warning*** you need vim version 7.2 for this version of netrw"
echohl None
finish
endif
if v:version < 703 || (v:version == 703 && !has("patch465"))
echohl WarningMsg
echo "***warning*** this version of netrw needs vim 7.3.465 or later"
echohl Normal
finish
endif
let s:keepcpo = &cpo
set cpo&vim
"DechoTabOn
"DechoRemOn
" ---------------------------------------------------------------------
" Public Interface: {{{1
" Local Browsing: {{{2
" Local Browsing Autocmds: {{{2
augroup FileExplorer
au!
" SEE Benzinger problem...
au BufEnter * sil! call s:LocalBrowse(expand("<amatch>"))
au VimEnter * sil! call s:VimEnter(expand("<amatch>"))
au BufEnter * sil call s:LocalBrowse(expand("<amatch>"))
au VimEnter * sil call s:VimEnter(expand("<amatch>"))
if has("win32") || has("win95") || has("win64") || has("win16")
au BufEnter .* sil! call s:LocalBrowse(expand("<amatch>"))
au BufEnter .* sil call s:LocalBrowse(expand("<amatch>"))
endif
augroup END
@@ -50,8 +56,8 @@ augroup Network
au BufReadCmd file://* call netrw#FileUrlRead(expand("<amatch>"))
au BufReadCmd ftp://*,rcp://*,scp://*,http://*,https://*,dav://*,davs://*,rsync://*,sftp://* exe "sil doau BufReadPre ".fnameescape(expand("<amatch>"))|call netrw#Nread(2,expand("<amatch>"))|exe "sil doau BufReadPost ".fnameescape(expand("<amatch>"))
au FileReadCmd ftp://*,rcp://*,scp://*,http://*,https://*,dav://*,davs://*,rsync://*,sftp://* exe "sil doau FileReadPre ".fnameescape(expand("<amatch>"))|call netrw#Nread(1,expand("<amatch>"))|exe "sil doau FileReadPost ".fnameescape(expand("<amatch>"))
au BufWriteCmd ftp://*,rcp://*,scp://*,dav://*,davs://*,rsync://*,sftp://* exe "sil doau BufWritePre ".fnameescape(expand("<amatch>"))|exe 'Nwrite '.fnameescape(expand("<amatch>"))|exe "sil doau BufWritePost ".fnameescape(expand("<amatch>"))
au FileWriteCmd ftp://*,rcp://*,scp://*,dav://*,davs://*,rsync://*,sftp://* exe "sil doau FileWritePre ".fnameescape(expand("<amatch>"))|exe "'[,']".'Nwrite '.fnameescape(expand("<amatch>"))|exe "sil doau FileWritePost ".fnameescape(expand("<amatch>"))
au BufWriteCmd ftp://*,rcp://*,scp://*,http://*,dav://*,davs://*,rsync://*,sftp://* exe "sil doau BufWritePre ".fnameescape(expand("<amatch>"))|exe 'Nwrite '.fnameescape(expand("<amatch>"))|exe "sil doau BufWritePost ".fnameescape(expand("<amatch>"))
au FileWriteCmd ftp://*,rcp://*,scp://*,http://*,dav://*,davs://*,rsync://*,sftp://* exe "sil doau FileWritePre ".fnameescape(expand("<amatch>"))|exe "'[,']".'Nwrite '.fnameescape(expand("<amatch>"))|exe "sil doau FileWritePost ".fnameescape(expand("<amatch>"))
try
au SourceCmd ftp://*,rcp://*,scp://*,http://*,https://*,dav://*,davs://*,rsync://*,sftp://* exe 'Nsource '.fnameescape(expand("<amatch>"))
catch /^Vim\%((\a\+)\)\=:E216/
@@ -64,8 +70,9 @@ com! -count=1 -nargs=* Nread call netrw#NetrwSavePosn()<bar>call netrw#NetRead(
com! -range=% -nargs=* Nwrite call netrw#NetrwSavePosn()<bar><line1>,<line2>call netrw#NetWrite(<f-args>)<bar>call netrw#NetrwRestorePosn()
com! -nargs=* NetUserPass call NetUserPass(<f-args>)
com! -nargs=* Nsource call netrw#NetrwSavePosn()<bar>call netrw#NetSource(<f-args>)<bar>call netrw#NetrwRestorePosn()
com! -nargs=? Ntree call netrw#NetrwSetTreetop(<q-args>)
" Commands: :Explore, :Sexplore, Hexplore, Vexplore {{{2
" Commands: :Explore, :Sexplore, Hexplore, Vexplore, Lexplore {{{2
com! -nargs=* -bar -bang -count=0 -complete=dir Explore call netrw#Explore(<count>,0,0+<bang>0,<q-args>)
com! -nargs=* -bar -bang -count=0 -complete=dir Sexplore call netrw#Explore(<count>,1,0+<bang>0,<q-args>)
com! -nargs=* -bar -bang -count=0 -complete=dir Hexplore call netrw#Explore(<count>,1,2+<bang>0,<q-args>)
@@ -73,6 +80,7 @@ com! -nargs=* -bar -bang -count=0 -complete=dir Vexplore call netrw#Explore(<cou
com! -nargs=* -bar -count=0 -complete=dir Texplore call netrw#Explore(<count>,0,6 ,<q-args>)
com! -nargs=* -bar -bang Nexplore call netrw#Explore(-1,0,0,<q-args>)
com! -nargs=* -bar -bang Pexplore call netrw#Explore(-2,0,0,<q-args>)
com! -nargs=* -bar -complete=dir Lexplore call netrw#Lexplore(<q-args>)
" Commands: NetrwSettings {{{2
com! -nargs=0 NetrwSettings call netrwSettings#NetrwSettings()
@@ -83,46 +91,61 @@ if !exists("g:netrw_nogx") && maparg('gx','n') == ""
if !hasmapto('<Plug>NetrwBrowseX')
nmap <unique> gx <Plug>NetrwBrowseX
endif
nno <silent> <Plug>NetrwBrowseX :call netrw#NetrwBrowseX(expand("<cWORD>"),0)<cr>
nno <silent> <Plug>NetrwBrowseX :call netrw#NetrwBrowseX(expand("<cfile>"),0)<cr>
endif
" ---------------------------------------------------------------------
" LocalBrowse: {{{2
" LocalBrowse: invokes netrw#LocalBrowseCheck() on directory buffers {{{2
fun! s:LocalBrowse(dirname)
" unfortunate interaction -- debugging calls can't be used here;
" the BufEnter event causes triggering when attempts to write to
" Unfortunate interaction -- only DechoMsg debugging calls can be safely used here.
" Otherwise, the BufEnter event gets triggered when attempts to write to
" the DBG buffer are made.
if !exists("s:vimentered")
" If s:vimentered doesn't exist, then the VimEnter event hasn't fired. It will,
" and so s:VimEnter() will then be calling this routine, but this time with s:vimentered defined.
" call Dfunc("s:LocalBrowse(dirname<".a:dirname.">) (s:vimentered doesn't exist)")
" call Dret("s:LocalBrowse")
return
endif
" call Decho("s:LocalBrowse(dirname<".a:dirname.">){")
" echomsg "dirname<".a:dirname.">"
" call Dfunc("s:LocalBrowse(dirname<".a:dirname.">) (s:vimentered=".s:vimentered.")")
if has("amiga")
" The check against '' is made for the Amiga, where the empty
" string is the current directory and not checking would break
" things such as the help command.
" call Decho("(LocalBrowse) dirname<".a:dirname."> (amiga)")
" call Decho("(LocalBrowse) dirname<".a:dirname."> (isdirectory, amiga)")
if a:dirname != '' && isdirectory(a:dirname)
sil! call netrw#LocalBrowseCheck(a:dirname)
endif
elseif isdirectory(a:dirname)
" echomsg "dirname<".dirname."> isdir"
" call Decho("(LocalBrowse) dirname<".a:dirname."> (not amiga)")
" call Decho("(LocalBrowse) dirname<".a:dirname."> (isdirectory, not amiga)")
sil! call netrw#LocalBrowseCheck(a:dirname)
else
" not a directory, ignore it
" call Decho("(LocalBrowse) dirname<".a:dirname."> not a directory, ignoring...")
endif
" not a directory, ignore it
" call Decho("|return s:LocalBrowse }")
" call Dret("s:LocalBrowse")
endfun
" ---------------------------------------------------------------------
" s:VimEnter: {{{2
" s:VimEnter: after all vim startup stuff is done, this function is called. {{{2
" Its purpose: to look over all windows and run s:LocalBrowse() on
" them, which checks if they're directories and will create a directory
" listing when appropriate.
" It also sets s:vimentered, letting s:LocalBrowse() know that s:VimEnter()
" has already been called.
fun! s:VimEnter(dirname)
" call Decho("VimEnter(dirname<".a:dirname.">){")
" call Dfunc("s:VimEnter(dirname<".a:dirname.">) expand(%)<".expand("%").">")
let curwin = winnr()
let s:vimentered = 1
windo if a:dirname != expand("%")|call s:LocalBrowse(expand("%:p"))|endif
windo call s:LocalBrowse(expand("%:p"))
exe curwin."wincmd w"
" call Decho("|return VimEnter }")
" call Dret("s:VimEnter")
endfun
" ---------------------------------------------------------------------

View File

@@ -1,7 +1,7 @@
" Vim syntax file
" Language: xa 6502 cross assembler
" Maintainer: Clemens Kirchgatterer <clemens@thf.ath.cx>
" Last Change: 2003 May 03
" Maintainer: Clemens Kirchgatterer <clemens@1541.org>
" Last Change: 2014 Jan 05
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded

View File

@@ -3,7 +3,7 @@
" Maintainer: David Necas (Yeti) <yeti@physics.muni.cz>
" License: This file can be redistribued and/or modified under the same terms
" as Vim itself.
" Last Change: 2013-09-16
" Last Change: 2014-03-04
" Notes: Last synced with apache-2.2.3, version 1.x is no longer supported
" TODO: see particular FIXME's scattered through the file
" make it really linewise?
@@ -157,7 +157,7 @@ syn keyword apacheDeclaration PerlRestartHandler PerlDispatchHandler
syn keyword apacheDeclaration PerlFreshRestart PerlSendHeader
syn keyword apacheDeclaration php_value php_flag php_admin_value php_admin_flag
syn match apacheSection "<\/\=\(Proxy\|ProxyMatch\)[^>]*>" contains=apacheAnything
syn keyword apacheDeclaration AllowCONNECT NoProxy ProxyBadHeader ProxyBlock ProxyDomain ProxyErrorOverride ProxyIOBufferSize ProxyMaxForwards ProxyPass ProxyPassReverse ProxyPassReverseCookieDomain ProxyPassReverseCookiePath ProxyPreserveHost ProxyReceiveBufferSize ProxyRemote ProxyRemoteMatch ProxyRequests ProxyTimeout ProxyVia
syn keyword apacheDeclaration AllowCONNECT NoProxy ProxyBadHeader ProxyBlock ProxyDomain ProxyErrorOverride ProxyIOBufferSize ProxyMaxForwards ProxyPass ProxyPassMatch ProxyPassReverse ProxyPassReverseCookieDomain ProxyPassReverseCookiePath ProxyPreserveHost ProxyReceiveBufferSize ProxyRemote ProxyRemoteMatch ProxyRequests ProxyTimeout ProxyVia
syn keyword apacheDeclaration RewriteBase RewriteCond RewriteEngine RewriteLock RewriteLog RewriteLogLevel RewriteMap RewriteOptions RewriteRule
syn keyword apacheOption inherit
syn keyword apacheDeclaration BrowserMatch BrowserMatchNoCase SetEnvIf SetEnvIfNoCase

View File

@@ -0,0 +1,61 @@
" Vim syntax file
" Language: Arduino
" Maintainer: Johannes Hoff <johannes@johanneshoff.com>
" Last Change: 2011 June 3
" License: VIM license (:help license, replace vim by arduino.vim)
" Syntax highlighting like in the Arduino IDE
" Keywords extracted from <arduino>/build/shared/lib/keywords.txt (arduino
" version 0021)
" Thanks to Rik, Erik Nomitch, Adam Obeng and Graeme Cross for helpful feedback!
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
if version < 600
syntax clear
elseif exists("b:current_syntax")
finish
endif
" Read the C syntax to start with
if version < 600
so <sfile>:p:h/cpp.vim
else
runtime! syntax/cpp.vim
endif
syn keyword arduinoConstant HIGH LOW INPUT OUTPUT
syn keyword arduinoConstant DEC BIN HEX OCT BYTE
syn keyword arduinoConstant PI HALF_PI TWO_PI
syn keyword arduinoConstant LSBFIRST MSBFIRST
syn keyword arduinoConstant CHANGE FALLING RISING
syn keyword arduinoConstant SERIAL DISPLAY
syn keyword arduinoConstant DEFAULT EXTERNAL INTERNAL INTERNAL1V1 INTERNAL2V56
syn keyword arduinoStdFunc abs acos asin atan atan2 ceil constrain
syn keyword arduinoStdFunc cos degrees exp floor log
syn keyword arduinoStdFunc map max min pow radians
syn keyword arduinoStdFunc round sin sq sqrt tan
syn keyword arduinoStdFunc randomSeed random
syn keyword arduinoFunc analogReference analogRead analogWrite
syn keyword arduinoFunc attachInterrupt detachInterrupt interrupts noInterrupts
syn keyword arduinoFunc lowByte highByte bitRead bitWrite bitSet bitClear
syn keyword arduinoFunc millis micros delay delayMicroseconds
syn keyword arduinoFunc pinMode digitalWrite digitalRead
syn keyword arduinoFunc tone noTone pulseIn shiftOut
syn keyword arduinoMethod setup loop
syn keyword arduinoMethod begin end available read flush print println write peek
syn keyword arduinoType boolean byte word String
syn keyword arduinoModule Serial Serial1 Serial2 Serial3
hi def link arduinoType Type
hi def link arduinoConstant Constant
hi def link arduinoStdFunc Function
hi def link arduinoFunc Function
hi def link arduinoMethod Function
hi def link arduinoModule Identifier

View File

@@ -3,7 +3,7 @@
" Maintainer: Erik Wognsen <erik.wognsen@gmail.com>
" Previous maintainer:
" Kevin Dahlhausen <kdahlhaus@yahoo.com>
" Last Change: 2012 Apr 09
" Last Change: 2014 Feb 04
" Thanks to Ori Avtalion for feedback on the comment markers!
@@ -93,7 +93,11 @@ syn match asmCond "\.endif"
syn match asmMacro "\.macro"
syn match asmMacro "\.endm"
syn match asmDirective "\.[a-z][a-z]\+"
" Assembler directives start with a '.' and may contain upper case (e.g.,
" .ABORT), numbers (e.g., .p2align), dash (e.g., .app-file) and underscore in
" CFI directives (e.g., .cfi_startproc). This will also match labels starting
" with '.', including the GCC auto-generated '.L' labels.
syn match asmDirective "\.[A-Za-z][0-9A-Za-z-_]*"
syn case match

File diff suppressed because one or more lines are too long

View File

@@ -6,7 +6,7 @@
" Nikolai Weibull (Add CSS2 support)
" Maintainer: Jules Wang <w.jq0722@gmail.com>
" URL: https://github.com/JulesWang/css.vim
" Last Change: 2013 Sep 24
" Last Change: 2013 Nov.27
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
@@ -58,7 +58,8 @@ syn match cssSelectorOp2 "[~|^$*]\?=" contained
syn region cssAttributeSelector matchgroup=cssSelectorOp start="\[" end="]" contains=cssUnicodeEscape,cssSelectorOp2,cssStringQ,cssStringQQ
" .class and #id
syn match cssClassName "\.[A-Za-z][A-Za-z0-9_-]\+"
syn match cssClassName "\.[A-Za-z][A-Za-z0-9_-]\+" contains=cssClassNameDot
syn match cssClassNameDot contained '\.'
try
syn match cssIdentifier "#[A-Za-z<>-<2D>_@][A-Za-z<>-<2D>0-9_@-]*"
@@ -74,13 +75,14 @@ syn match cssValueAngle contained "[-+]\=\d\+\(\.\d*\)\=\(deg\|grad\|rad\)" cont
syn match cssValueTime contained "+\=\d\+\(\.\d*\)\=\(ms\|s\)" contains=cssUnitDecorators
syn match cssValueFrequency contained "+\=\d\+\(\.\d*\)\=\(Hz\|kHz\)" contains=cssUnitDecorators
syn match cssIncludeKeyword /@\(-[a-z]+-\)\=\(media\|keyframes\|import\|charset\|namespace\|page\)/ contained
" @media
syn match cssMedia "@media\>" nextgroup=cssMediaQuery,cssMediaBlock skipwhite skipnl
syn match cssMediaQuery /\(only\|not\)\=\s*[a-z]*\(\s\|,\)\@=\(\(\s\+and\)\=\s\+(.\{-})\)*/ contained skipwhite skipnl contains=cssMediaProp,cssValueLength,cssMediaKeyword,cssValueInteger,cssMediaAttr,cssVendor,cssMediaType nextgroup=cssMediaBlock,cssMediaComma
syn region cssInclude start=/@media\>/ end=/\ze{/ skipwhite skipnl contains=cssMediaProp,cssValueLength,cssMediaKeyword,cssValueInteger,cssMediaAttr,cssVendor,cssMediaType,cssIncludeKeyword,cssMediaComma,cssComment nextgroup=cssMediaBlock
syn keyword cssMediaType contained screen print aural braille embossed handheld projection tty tv speech all contained skipwhite skipnl
syn keyword cssMediaKeyword only not and contained
syn region cssMediaBlock transparent matchgroup=cssBraces start='{' end='}' contains=css.*Attr,css.*Prop,cssComment,cssValue.*,cssColor,cssURL,cssImportant,cssError,cssStringQ,cssStringQQ,cssFunction,cssUnicodeEscape,cssVendor,cssDefinition,cssTagName,cssClassName,cssIdentifier,cssPseudoClass,cssSelectorOp,cssSelectorOp2,cssAttributeSelector fold
syn match cssMediaComma "," nextgroup=cssMediaQuery skipwhite skipnl contained
syn match cssMediaComma "," skipwhite skipnl contained
" Reference: http://www.w3.org/TR/css3-mediaqueries/
syn keyword cssMediaProp contained width height orientation scan grid
@@ -91,21 +93,25 @@ syn match cssMediaProp contained /\(\(max\|min\)-\)\=\(height\|width\|resolution
syn keyword cssMediaAttr contained portrait landscape progressive interlace
" @page
syn match cssPage "@page\>" nextgroup=cssPagePseudo,cssDefinition skipwhite skipnl
syn match cssPagePseudo /:\(left\|right\|first\|\)/ nextgroup=cssDefinition contained skipwhite skipnl
syn match cssPageHeaderProp /@\(\(top\|left\|right\|bottom\)-\(left\|center\|right\|middle\|bottom\)\)\(-corner\)\=/ contained
syn keyword cssPageProp content size contained
" http://www.w3.org/TR/css3-page/
syn match cssPage "@page\>[^{]*{\@=" contains=cssPagePseudo,cssIncludeKeyword nextgroup=cssPageWrap transparent skipwhite skipnl
syn match cssPagePseudo /:\(left\|right\|first\|blank\)/ contained skipwhite skipnl
syn region cssPageWrap contained transparent matchgroup=cssBraces start="{" end="}" contains=cssPageMargin,cssPageProp,cssAttrRegion,css.*Prop,cssComment,cssValue.*,cssColor,cssURL,cssImportant,cssError,cssStringQ,cssStringQQ,cssFunction,cssUnicodeEscape,cssVendor,cssDefinition,cssHacks
syn match cssPageMargin /@\(\(top\|left\|right\|bottom\)-\(left\|center\|right\|middle\|bottom\)\)\(-corner\)\=/ contained nextgroup=cssDefinition skipwhite skipnl
syn keyword cssPageProp contained content size
" http://www.w3.org/TR/CSS2/page.html#break-inside
syn keyword cssPageProp contained orphans widows
" @keyframe
syn match cssKeyFrame "@\(-[a-z]*-\)\=keyframes\>\(\s*\<\S*\>\)\=" nextgroup=cssKeyFrameBlock contains=cssVendor skipwhite skipnl
syn region cssKeyFrameBlock contained transparent matchgroup=cssBraces start="{" end="}" contains=cssKeyFrameSelector,cssDefinition
syn match cssKeyFrameSelector /\(\d*%\|from\|to\)\=/ contained skipwhite skipnl
" http://www.w3.org/TR/css3-animations/#keyframes
syn match cssKeyFrame "@\(-[a-z]+-\)\=keyframes\>[^{]*{\@=" nextgroup=cssKeyFrameWrap contains=cssVendor,cssIncludeKeyword skipwhite skipnl transparent
syn region cssKeyFrameWrap contained transparent matchgroup=cssBraces start="{" end="}" contains=cssKeyFrameSelector
syn match cssKeyFrameSelector /\(\d*%\|from\|to\)\=/ contained skipwhite skipnl nextgroup=cssDefinition
" @import
syn region cssInclude start=/@import\>/ end=/\ze;/ contains=cssComment,cssURL,cssUnicodeEscape,cssMediaQuery,cssStringQ,cssStringQQ,cssIncludeKeyword
syn region cssInclude start=/@charset\>/ end=/\ze;/ contains=cssStringQ,cssStringQQ,cssUnicodeEscape,cssComment,cssIncludeKeyword
syn region cssInclude start=/@namespace\>/ end=/\ze;/ contains=cssStringQ,cssStringQQ,cssUnicodeEscape,cssComment,cssIncludeKeyword
syn match cssIncludeKeyword /\(@import\|@charset\|@namespace\)/ contained
syn region cssInclude start=/@import\>/ end=/\ze;/ transparent contains=cssStringQ,cssStringQQ,cssUnicodeEscape,cssComment,cssIncludeKeyword,cssURL,cssMediaProp,cssValueLength,cssMediaKeyword,cssValueInteger,cssMediaAttr,cssVendor,cssMediaType
syn region cssInclude start=/@charset\>/ end=/\ze;/ transparent contains=cssStringQ,cssStringQQ,cssUnicodeEscape,cssComment,cssIncludeKeyword
syn region cssInclude start=/@namespace\>/ end=/\ze;/ transparent contains=cssStringQ,cssStringQQ,cssUnicodeEscape,cssComment,cssIncludeKeyword
" @font-face
" http://www.w3.org/TR/css3-fonts/#at-font-face-rule
@@ -179,7 +185,7 @@ syn keyword cssCommonAttr contained top bottom center stretch hidden visible
"------------------------------------------------
" CSS Animations
" http://www.w3.org/TR/css3-animations/
syn match cssAnimationProp contained "\<animation\(-\(delay\|direction\|duration\|fill-mode\|name\|play-state\|timing-function\)\)\=\>"
syn match cssAnimationProp contained "\<animation\(-\(delay\|direction\|duration\|fill-mode\|name\|play-state\|timing-function\|iteration-count\)\)\=\>"
" animation-direction attributes
syn keyword cssAnimationAttr contained alternate reverse
@@ -215,7 +221,7 @@ syn match cssBorderProp contained "\<box-decoration-break\>"
syn match cssBorderProp contained "\<box-shadow\>"
" border-image attributes
syn keyword cssBorderAttr contained stretch repeat round space fill
syn keyword cssBorderAttr contained stretch round space fill
" border-style attributes
syn keyword cssBorderAttr contained dotted dashed solid double groove ridge inset outset
@@ -230,7 +236,7 @@ syn keyword cssBorderAttr contained clone slice
syn match cssBoxProp contained "\<padding\(-\(top\|right\|bottom\|left\)\)\=\>"
syn match cssBoxProp contained "\<margin\(-\(top\|right\|bottom\|left\)\)\=\>"
syn match cssBoxProp contained "\<overflow\(-\(x\|y\|style\)\)\=\>"
syn match cssBoxProp contained "\<rotation\(-point\)=\>"
syn match cssBoxProp contained "\<rotation\(-point\)\=\>"
syn keyword cssBoxAttr contained visible hidden scroll auto
syn match cssBoxAttr contained "\<no-\(display\|content\)\>"
@@ -289,13 +295,26 @@ syn keyword cssFontAttr contained bold bolder lighter
syn match cssFontProp contained "\<font-smooth\>"
syn match cssFontAttr contained "\<\(subpixel-\)\=\antialiased\>"
" CSS Multi-column Layout Module
" http://www.w3.org/TR/css3-multicol/
syn match cssMultiColumnProp contained "\<break-\(after\|before\|inside\)\>"
syn match cssMultiColumnProp contained "\<column-\(count\|fill\|gap\|rule\(-\(color\|style\|width\)\)\=\|span\|width\)\>"
syn keyword cssMultiColumnProp contained columns
syn keyword cssMultiColumnAttr contained balance medium
syn keyword cssMultiColumnAttr contained always avoid left right page column
syn match cssMultiColumnAttr contained "\<avoid-\(page\|column\)\>"
" http://www.w3.org/TR/css3-break/#page-break
syn match cssMultiColumnProp contained "\<page\(-break-\(before\|after\|inside\)\)\=\>"
" TODO find following items in w3c docs.
syn keyword cssGeneratedContentProp contained quotes crop
syn match cssGeneratedContentProp contained "\<counter-\(reset\|increment\)\>"
syn match cssGeneratedContentProp contained "\<move-to\>"
syn match cssGeneratedContentProp contained "\<page-policy\>"
syn match cssGeneratedContentAttr contained "\<\(no-\)\=\(open\|close\)-quote\>"
syn match cssGridProp contained "\<grid-\(columns\|rows\)\>"
syn match cssHyerlinkProp contained "\<target\(-\(name\|new\|position\)\)\=\>"
@@ -307,8 +326,6 @@ syn match cssListAttr contained "\<\(decimal\(-leading-zero\)\=\|cjk-ideographic
syn keyword cssListAttr contained disc circle square hebrew armenian georgian
syn keyword cssListAttr contained inside outside
syn match cssMultiColumnProp contained "\<column\(-\(\break-\(after\|before\)\|count\|gap\|rule\(-\(color\|style\|width\)\)\=\)\|span\|width\)\=\>"
syn keyword cssPositioningProp contained bottom clear clip display float left
syn keyword cssPositioningProp contained position right top visibility
syn match cssPositioningProp contained "\<z-index\>"
@@ -319,8 +336,6 @@ syn match cssPositioningAttr contained "\<list-item\>"
syn match cssPositioningAttr contained "\<inline\(-\(block\|box\|table\)\)\=\>"
syn keyword cssPositioningAttr contained static relative absolute fixed
syn match cssPrintProp contained "\<page\(-break-\(before\|after\|inside\)\)\=\>"
syn keyword cssPrintProp contained orphans widows
syn keyword cssPrintAttr contained landscape portrait crop cross always avoid
syn match cssTableProp contained "\<\(caption-side\|table-layout\|border-collapse\|border-spacing\|empty-cells\)\>"
@@ -394,7 +409,7 @@ syn keyword cssUIAttr contained both horizontal vertical
syn match cssUIProp contained "\<text-overflow\>"
syn keyword cssUIAttr contained clip ellipsis
" Already highlighted Props: font content
" Already highlighted Props: font content
"------------------------------------------------
" Webkit/iOS specific attributes
syn match cssUIAttr contained '\(preserve-3d\)'
@@ -456,8 +471,8 @@ syn match cssPseudoClassId contained "\<\(input-\)\=placeholder\>"
syn region cssComment start="/\*" end="\*/" contains=@Spell fold
syn match cssUnicodeEscape "\\\x\{1,6}\s\?"
syn match cssSpecialCharQQ +\\"+ contained
syn match cssSpecialCharQ +\\'+ contained
syn match cssSpecialCharQQ +\\\\\|\\"+ contained
syn match cssSpecialCharQ +\\\\\|\\'+ contained
syn region cssStringQQ start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=cssUnicodeEscape,cssSpecialCharQQ
syn region cssStringQ start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=cssUnicodeEscape,cssSpecialCharQ
@@ -478,11 +493,11 @@ syntax match cssNoise contained /\(:\|;\|\/\)/
" Attr Enhance
" Some keywords are both Prop and Attr, so we have to handle them
syn region cssAttrRegion start=/:/ end=/;/ contained keepend contains=css.*Attr,cssColor,cssImportant,cssValue.*,cssFunction,cssString.*,cssURL,cssComment,cssUnicodeEscape,cssVendor,cssError,cssTransitionHackProp,cssAttrComma,cssNoise
syn region cssAttrRegion start=/:/ end=/;/ contained keepend contains=css.*Attr,cssColor,cssImportant,cssValue.*,cssFunction,cssString.*,cssURL,cssComment,cssUnicodeEscape,cssVendor,cssError,cssAttrComma,cssNoise
" Hack for transition
" The 'transition' Prop has Props after ':'.
syn region cssAttrRegion start=/transition\s*:/ end=/;/ contained keepend contains=css.*Prop,css.*Attr,cssColor,cssImportant,cssValue.*,cssFunction,cssString.*,cssURL,cssComment,cssUnicodeEscape,cssVendor,cssError,cssTransitionHackProp,cssAttrComma,cssNoise
syn region cssAttrRegion start=/transition\s*:/ end=/;/ contained keepend contains=css.*Prop,css.*Attr,cssColor,cssImportant,cssValue.*,cssFunction,cssString.*,cssURL,cssComment,cssUnicodeEscape,cssVendor,cssError,cssAttrComma,cssNoise
if main_syntax == "css"
@@ -593,7 +608,6 @@ if version >= 508 || !exists("did_css_syn_inits")
HiLink cssBraces Function
HiLink cssBraceError Error
HiLink cssError Error
HiLink cssInclude Include
HiLink cssUnicodeEscape Special
HiLink cssStringQQ String
HiLink cssStringQ String
@@ -606,7 +620,7 @@ if version >= 508 || !exists("did_css_syn_inits")
HiLink cssMediaAttr cssAttr
HiLink cssPage atKeyword
HiLink cssPagePseudo PreProc
HiLink cssPageHeaderProp PreProc
HiLink cssPageMargin atKeyword
HiLink cssPageProp cssProp
HiLink cssKeyFrame atKeyword
HiLink cssKeyFrameSelector Constant
@@ -616,6 +630,7 @@ if version >= 508 || !exists("did_css_syn_inits")
HiLink cssFontDescriptorAttr cssAttr
HiLink cssUnicodeRange Constant
HiLink cssClassName Function
HiLink cssClassNameDot Function
HiLink cssProp StorageClass
HiLink cssAttr Constant
HiLink cssUnitDecorators Number

View File

@@ -3,7 +3,7 @@
" Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
" Former Maintainers: Gerfried Fuchs <alfie@ist.org>
" Wichert Akkerman <wakkerma@debian.org>
" Last Change: 2013 May 05
" Last Change: 2014 Jan 20
" URL: http://anonscm.debian.org/hg/pkg-vim/vim/raw-file/unstable/runtime/syntax/debchangelog.vim
" Standard syntax initialization
@@ -19,7 +19,7 @@ syn case ignore
" Define some common expressions we can use later on
syn match debchangelogName contained "^[[:alnum:]][[:alnum:].+-]\+ "
syn match debchangelogUrgency contained "; urgency=\(low\|medium\|high\|critical\|emergency\)\( \S.*\)\="
syn match debchangelogTarget contained "\v %(frozen|unstable|%(testing|%(old)=stable)%(-proposed-updates|-security)=|experimental|squeeze-%(backports%(-sloppy)=|volatile)|wheezy-backports|%(lucid|precise|quantal|raring|saucy)%(-%(security|proposed|updates|backports|commercial|partner))=)+"
syn match debchangelogTarget contained "\v %(frozen|unstable|%(testing|%(old)=stable)%(-proposed-updates|-security)=|experimental|squeeze-%(backports%(-sloppy)=|volatile)|wheezy-backports|%(lucid|precise|quantal|saucy|trusty)%(-%(security|proposed|updates|backports|commercial|partner))=)+"
syn match debchangelogVersion contained "(.\{-})"
syn match debchangelogCloses contained "closes:\_s*\(bug\)\=#\=\_s\=\d\+\(,\_s*\(bug\)\=#\=\_s\=\d\+\)*"
syn match debchangelogLP contained "\clp:\s\+#\d\+\(,\s*#\d\+\)*"

View File

@@ -3,7 +3,7 @@
" Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
" Former Maintainers: Gerfried Fuchs <alfie@ist.org>
" Wichert Akkerman <wakkerma@debian.org>
" Last Change: 2013 May 05
" Last Change: 2013 Oct 28
" URL: http://anonscm.debian.org/hg/pkg-vim/vim/raw-file/unstable/runtime/syntax/debcontrol.vim
" Standard syntax initialization
@@ -24,7 +24,7 @@ syn match debControlComma ", *"
syn match debControlSpace " "
" Define some common expressions we can use later on
syn match debcontrolArchitecture contained "\%(all\|linux-any\|\%(any-\)\=\%(alpha\|amd64\|arm\%(e[bl]\|hf\)\=\|avr32\|hppa\|i386\|ia64\|lpia\|m32r\|m68k\|mips\%(el\)\=\|powerpc\|ppc64\|s390x\=\|sh[34]\(eb\)\=\|sh\|sparc\%(64\)\=\)\|hurd-\%(i386\|any\)\|kfreebsd-\%(i386\|amd64\|any\)\|knetbsd-\%(i386\|any\)\|kopensolaris-\%(i386\|any\)\|netbsd-\%(alpha\|i386\|any\)\|any\)"
syn match debcontrolArchitecture contained "\%(all\|linux-any\|\%(any-\)\=\%(alpha\|amd64\|arm\%(e[bl]\|hf\|64\)\=\|avr32\|hppa\|i386\|ia64\|lpia\|m32r\|m68k\|mips\%(el\)\=\|powerpc\%(spe\)\=\|ppc64\|s390x\=\|sh[34]\(eb\)\=\|sh\|sparc\%(64\)\=\)\|x32\|hurd-\%(i386\|any\)\|kfreebsd-\%(i386\|amd64\|any\)\|knetbsd-\%(i386\|any\)\|kopensolaris-\%(i386\|any\)\|netbsd-\%(alpha\|i386\|any\)\|any\)"
syn match debcontrolMultiArch contained "\%(no\|foreign\|allowed\|same\)"
syn match debcontrolName contained "[a-z0-9][a-z0-9+.-]\+"
syn match debcontrolPriority contained "\(extra\|important\|optional\|required\|standard\)"

View File

@@ -2,7 +2,7 @@
" Language: Debian sources.list
" Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
" Former Maintainer: Matthijs Mohlmann <matthijs@cacholong.nl>
" Last Change: 2013 May 05
" Last Change: 2014 Jan 20
" URL: http://anonscm.debian.org/hg/pkg-vim/vim/raw-file/unstable/runtime/syntax/debsources.vim
" Standard syntax initialization
@@ -23,7 +23,7 @@ syn match debsourcesComment /#.*/ contains=@Spell
" Match uri's
syn match debsourcesUri +\(http://\|ftp://\|[rs]sh://\|debtorrent://\|\(cdrom\|copy\|file\):\)[^' <>"]\++
syn match debsourcesDistrKeyword +\([[:alnum:]_./]*\)\(squeeze\|wheezy\|\(old\)\=stable\|testing\|unstable\|sid\|rc-buggy\|experimental\|lucid\|precise\|quantal\|raring\|saucy\)\([-[:alnum:]_./]*\)+
syn match debsourcesDistrKeyword +\([[:alnum:]_./]*\)\(squeeze\|wheezy\|\(old\)\=stable\|testing\|unstable\|sid\|rc-buggy\|experimental\|lucid\|precise\|quantal\|saucy\|trusty\)\([-[:alnum:]_./]*\)+
" Associate our matches and regions with pretty colours
hi def link debsourcesLine Error

View File

@@ -0,0 +1,135 @@
" Vim syntax file
" Language: Euphoria 3.1.1 - supports DOS - (http://www.rapideuphoria.com/)
" Maintainer: Shian Lee
" Last Change: 2014 Feb 24 (for Vim 7.4)
" Remark: Euphoria has two syntax files, euphoria3.vim and euphoria4.vim;
" For details see :help ft-euphoria-syntax
" Quit if a (custom) syntax file was already loaded (compatible with Vim 5.8):
if version < 600
syntax clear
elseif exists("b:current_syntax")
finish
endif
" Reset compatible-options to Vim default value, just in case:
let s:save_cpo = &cpo
set cpo&vim
" Should suffice for very long expressions:
syn sync lines=40
" Euphoria is a case-sensitive language (with only 4 builtin types):
syntax case match
" Keywords/Builtins for Debug - from $EUDIR/bin/keywords.e:
syn keyword euphoria3Debug with without trace profile
syn keyword euphoria3Debug profile_time warning type_check
" Keywords (Statments) - from $EUDIR/bin/keywords.e:
syn keyword euphoria3Keyword if end then procedure else for return
syn keyword euphoria3Keyword do elsif while type constant to and or
syn keyword euphoria3Keyword exit function global by not include
syn keyword euphoria3Keyword xor
" Builtins (Identifiers) - from $EUDIR/bin/keywords.e:
syn keyword euphoria3Builtin length puts integer sequence position object
syn keyword euphoria3Builtin append prepend print printf
syn keyword euphoria3Builtin clear_screen floor getc gets get_key
syn keyword euphoria3Builtin rand repeat atom compare find match
syn keyword euphoria3Builtin time command_line open close getenv
syn keyword euphoria3Builtin sqrt sin cos tan log system date remainder
syn keyword euphoria3Builtin power machine_func machine_proc abort peek poke
syn keyword euphoria3Builtin call sprintf arctan and_bits or_bits xor_bits
syn keyword euphoria3Builtin not_bits pixel get_pixel mem_copy mem_set
syn keyword euphoria3Builtin c_proc c_func routine_id call_proc call_func
syn keyword euphoria3Builtin poke4 peek4s peek4u equal system_exec
syn keyword euphoria3Builtin platform task_create task_schedule task_yield
syn keyword euphoria3Builtin task_self task_suspend task_list
syn keyword euphoria3Builtin task_status task_clock_stop task_clock_start
syn keyword euphoria3Builtin find_from match_from
" Builtins (Identifiers) shortcuts for length() and print():
syn match euphoria3Builtin "\$"
syn match euphoria3Builtin "?"
" Library Identifiers (Function) - from $EUDIR/doc/library.doc:
syn keyword euphoria3Library reverse sort custom_sort lower upper
syn keyword euphoria3Library wildcard_match wildcard_file arcsin
syn keyword euphoria3Library arccos PI flush lock_file unlock_file
syn keyword euphoria3Library pretty_print sprint get_bytes prompt_string
syn keyword euphoria3Library wait_key get prompt_number value seek where
syn keyword euphoria3Library current_dir chdir dir walk_dir allow_break
syn keyword euphoria3Library check_break get_mouse mouse_events mouse_pointer
syn keyword euphoria3Library tick_rate sleep get_position graphics_mode
syn keyword euphoria3Library video_config scroll wrap text_color bk_color
syn keyword euphoria3Library palette all_palette get_all_palette read_bitmap
syn keyword euphoria3Library save_bitmap get_active_page set_active_page
syn keyword euphoria3Library get_display_page set_display_page sound
syn keyword euphoria3Library cursor text_rows get_screen_char put_screen_char
syn keyword euphoria3Library save_text_image display_text_image draw_line
syn keyword euphoria3Library polygon ellipse save_screen save_image display_image
syn keyword euphoria3Library dos_interrupt allocate free allocate_low free_low
syn keyword euphoria3Library allocate_string register_block unregister_block
syn keyword euphoria3Library get_vector set_vector lock_memory int_to_bytes
syn keyword euphoria3Library bytes_to_int int_to_bits bits_to_int atom_to_float64
syn keyword euphoria3Library atom_to_float32 float64_to_atom float32_to_atom
syn keyword euphoria3Library set_rand use_vesa crash_file crash_message
syn keyword euphoria3Library crash_routine open_dll define_c_proc define_c_func
syn keyword euphoria3Library define_c_var call_back message_box free_console
syn keyword euphoria3Library instance
" Library Identifiers (Function) - from $EUDIR/doc/database.doc:
syn keyword euphoria3Library db_create db_open db_select db_close db_create_table
syn keyword euphoria3Library db_select_table db_rename_table db_delete_table
syn keyword euphoria3Library db_table_list db_table_size db_find_key db_record_key
syn keyword euphoria3Library db_record_data db_insert db_delete_record
syn keyword euphoria3Library db_replace_data db_compress db_dump db_fatal_id
" Linux shell comment (#!...):
syn match euphoria3Comment "\%^#!.*$"
" Comment on one line:
syn region euphoria3Comment start=/--/ end=/$/
" Delimiters and brackets:
syn match euphoria3Delimit "[([\])]"
syn match euphoria3Delimit "\.\."
syn match euphoria3Operator "[{}]"
" Character constant:
syn region euphoria3Char start=/'/ skip=/\\'\|\\\\/ end=/'/ oneline
" String constant:
syn region euphoria3String start=/"/ skip=/\\"\|\\\\/ end=/"/ oneline
" Hexadecimal integer:
syn match euphoria3Number "#[0-9A-F]\+\>"
" Integer/Floating point without a dot:
syn match euphoria3Number "\<\d\+\>"
" Floating point with dot:
syn match euphoria3Number "\<\d\+\.\d*\>"
" Floating point starting with a dot:
syn match euphoria3Number "\.\d\+\>"
" Boolean constants:
syn keyword euphoria3Boolean true TRUE false FALSE
" Define the default highlighting.
" Only used when an item doesn't have highlighting yet:
hi def link euphoria3Comment Comment
hi def link euphoria3String String
hi def link euphoria3Char Character
hi def link euphoria3Number Number
hi def link euphoria3Boolean Boolean
hi def link euphoria3Builtin Identifier
hi def link euphoria3Library Function
hi def link euphoria3Keyword Statement
hi def link euphoria3Operator Statement
hi def link euphoria3Debug Debug
hi def link euphoria3Delimit Delimiter
let b:current_syntax = "euphoria3"
" Restore current compatible-options:
let &cpo = s:save_cpo
unlet s:save_cpo

View File

@@ -0,0 +1,246 @@
" Vim syntax file
" Language: Euphoria 4.0.5 (http://www.openeuphoria.org/)
" Maintainer: Shian Lee
" Last Change: 2014 Feb 24 (for Vim 7.4)
" Remark: Euphoria has two syntax files, euphoria3.vim and euphoria4.vim;
" For details see :help ft-euphoria-syntax
" Quit if a (custom) syntax file was already loaded (compatible with Vim 5.8):
if version < 600
syntax clear
elseif exists("b:current_syntax")
finish
endif
" Reset compatible-options to Vim default value, just in case:
let s:save_cpo = &cpo
set cpo&vim
" Should suffice for very long strings and expressions:
syn sync lines=40
" Euphoria is a case-sensitive language (with only 4 builtin types):
syntax case match
" Some keywords/Builtins for Debug - from $EUDIR/include/euphoria/keywords.e:
syn keyword euphoria4Debug with without trace profile batch check indirect
syn keyword euphoria4Debug includes inline warning define
" Keywords for conditional compilation - from $EUDIR/include/euphoria/keywords.e:
syn keyword euphoria4PreProc elsedef elsifdef ifdef
" Keywords (Statments) - from $EUDIR/include/euphoria/keywords.e:
syn keyword euphoria4Keyword and as break by case constant continue do else
syn keyword euphoria4Keyword elsif end entry enum exit export
syn keyword euphoria4Keyword fallthru for function global goto if include
syn keyword euphoria4Keyword label loop namespace not or override procedure
syn keyword euphoria4Keyword public retry return routine switch then to type
syn keyword euphoria4Keyword until while xor
" Builtins (Identifiers) - from $EUDIR/include/euphoria/keywords.e:
syn keyword euphoria4Builtin abort and_bits append arctan atom c_func c_proc
syn keyword euphoria4Builtin call call_func call_proc clear_screen close
syn keyword euphoria4Builtin command_line compare cos date delete delete_routine
syn keyword euphoria4Builtin equal find floor get_key getc getenv gets hash
syn keyword euphoria4Builtin head include_paths insert integer length log
syn keyword euphoria4Builtin machine_func machine_proc match mem_copy mem_set
syn keyword euphoria4Builtin not_bits object open option_switches or_bits peek
syn keyword euphoria4Builtin peek2s peek2u peek4s peek4u peek_string peeks pixel
syn keyword euphoria4Builtin platform poke poke2 poke4 position power prepend
syn keyword euphoria4Builtin print printf puts rand remainder remove repeat
syn keyword euphoria4Builtin replace routine_id sequence sin splice sprintf
syn keyword euphoria4Builtin sqrt system system_exec tail tan task_clock_start
syn keyword euphoria4Builtin task_clock_stop task_create task_list task_schedule
syn keyword euphoria4Builtin task_self task_status task_suspend task_yield time
syn keyword euphoria4Builtin xor_bits
" Builtins (Identifiers) shortcuts for length() and print():
syn match euphoria4Builtin "\$"
syn match euphoria4Builtin "?"
" Library Identifiers (Function) - grep from $EUDIR/include/*:
syn keyword euphoria4Library DEP_on SyntaxColor abbreviate_path abs absolute_path
syn keyword euphoria4Library accept add add_item all_copyrights all_matches
syn keyword euphoria4Library allocate allocate_code allocate_data allocate_low
syn keyword euphoria4Library allocate_pointer_array allocate_protect
syn keyword euphoria4Library allocate_string allocate_string_pointer_array
syn keyword euphoria4Library allocate_wstring allocations allow_break any_key
syn keyword euphoria4Library append_lines apply approx arccos arccosh arcsin
syn keyword euphoria4Library arcsinh arctanh assert at atan2 atom_to_float32
syn keyword euphoria4Library atom_to_float64 attr_to_colors avedev average
syn keyword euphoria4Library begins binary_search bind binop_ok bits_to_int
syn keyword euphoria4Library bk_color breakup build_commandline build_list
syn keyword euphoria4Library bytes_to_int calc_hash calc_primes call_back
syn keyword euphoria4Library canon2win canonical canonical_path ceil
syn keyword euphoria4Library central_moment chance char_test chdir
syn keyword euphoria4Library check_all_blocks check_break check_free_list
syn keyword euphoria4Library checksum clear clear_directory close cmd_parse
syn keyword euphoria4Library colors_to_attr columnize combine connect
syn keyword euphoria4Library console_colors copy copy_file cosh count crash
syn keyword euphoria4Library crash_file crash_message crash_routine create
syn keyword euphoria4Library create_directory create_file curdir current_dir
syn keyword euphoria4Library cursor custom_sort datetime days_in_month
syn keyword euphoria4Library days_in_year db_cache_clear db_clear_table db_close
syn keyword euphoria4Library db_compress db_connect db_create db_create_table
syn keyword euphoria4Library db_current db_current_table db_delete_record
syn keyword euphoria4Library db_delete_table db_dump db_fetch_record db_find_key
syn keyword euphoria4Library db_get_errors db_get_recid db_insert db_open
syn keyword euphoria4Library db_record_data db_record_key db_record_recid
syn keyword euphoria4Library db_rename_table db_replace_data db_replace_recid
syn keyword euphoria4Library db_select db_select_table db_set_caching
syn keyword euphoria4Library db_table_list db_table_size deallocate decanonical
syn keyword euphoria4Library decode defaulted_value defaultext define_c_func
syn keyword euphoria4Library define_c_proc define_c_var deg2rad delete_file
syn keyword euphoria4Library dep_works dequote deserialize diff dir dir_size
syn keyword euphoria4Library dirname disk_metrics disk_size display
syn keyword euphoria4Library display_text_image dnsquery driveid dump dup emovavg
syn keyword euphoria4Library encode ends ensure_in_list ensure_in_range
syn keyword euphoria4Library error_code error_message error_no error_string
syn keyword euphoria4Library error_to_string escape euphoria_copyright exec
syn keyword euphoria4Library exp extract fetch fib file_exists file_length
syn keyword euphoria4Library file_timestamp file_type filebase fileext filename
syn keyword euphoria4Library filter find_all find_all_but find_any find_each
syn keyword euphoria4Library find_nested find_replace find_replace_callback
syn keyword euphoria4Library find_replace_limit flags_to_string flatten
syn keyword euphoria4Library float32_to_atom float64_to_atom flush for_each
syn keyword euphoria4Library format frac free free_code free_console free_low
syn keyword euphoria4Library free_pointer_array from_date from_unix gcd geomean
syn keyword euphoria4Library get get_bytes get_charsets get_def_lang
syn keyword euphoria4Library get_display_page get_dstring get_encoding_properties
syn keyword euphoria4Library get_integer16 get_integer32 get_lang_path get_lcid
syn keyword euphoria4Library get_mouse get_option get_ovector_size get_pid
syn keyword euphoria4Library get_position get_rand get_screen_char get_text
syn keyword euphoria4Library get_vector getaddrinfo getmxrr getnsrr graphics_mode
syn keyword euphoria4Library harmean has has_console has_match hex_text
syn keyword euphoria4Library host_by_addr host_by_name http_get http_post iff
syn keyword euphoria4Library iif info init_class init_curdir insertion_sort
syn keyword euphoria4Library instance int_to_bits int_to_bytes intdiv
syn keyword euphoria4Library is_DEP_supported is_empty is_even is_even_obj
syn keyword euphoria4Library is_in_list is_in_range is_inetaddr is_leap_year
syn keyword euphoria4Library is_match is_using_DEP is_win_nt join join_path
syn keyword euphoria4Library keep_comments keep_newlines key_codes keys keyvalues
syn keyword euphoria4Library kill kurtosis lang_load larger_of largest last
syn keyword euphoria4Library listen load load_map locate_file lock_file
syn keyword euphoria4Library lock_memory log10 lookup lower malloc mapping
syn keyword euphoria4Library match_all match_any match_replace matches max
syn keyword euphoria4Library maybe_any_key median memory_used merge message_box
syn keyword euphoria4Library mid min minsize mod mode money mouse_events
syn keyword euphoria4Library mouse_pointer movavg move_file nested_get
syn keyword euphoria4Library nested_put new new_extra new_from_kvpairs
syn keyword euphoria4Library new_from_string new_time next_prime now now_gmt
syn keyword euphoria4Library number open_dll optimize option_spec_to_string
syn keyword euphoria4Library or_all pad_head pad_tail pairs parse
syn keyword euphoria4Library parse_commandline parse_ip_address parse_querystring
syn keyword euphoria4Library parse_url patch pathinfo pathname pcre_copyright
syn keyword euphoria4Library peek_end peek_top peek_wstring pivot platform_name
syn keyword euphoria4Library poke_string poke_wstring pop powof2 prepare_block
syn keyword euphoria4Library pretty_print pretty_sprint prime_list process_lines
syn keyword euphoria4Library product project prompt_number prompt_string proper
syn keyword euphoria4Library push put put_integer16 put_integer32 put_screen_char
syn keyword euphoria4Library quote rad2deg rand_range range raw_frequency read
syn keyword euphoria4Library read_bitmap read_file read_lines receive receive_from
syn keyword euphoria4Library register_block rehash remove_all remove_directory
syn keyword euphoria4Library remove_dups remove_item remove_subseq rename_file
syn keyword euphoria4Library repeat_pattern reset retain_all reverse rfind rmatch
syn keyword euphoria4Library rnd rnd_1 roll rotate rotate_bits round safe_address
syn keyword euphoria4Library sample save_bitmap save_map save_text_image scroll
syn keyword euphoria4Library seek select send send_to serialize series
syn keyword euphoria4Library service_by_name service_by_port set
syn keyword euphoria4Library set_accumulate_summary set_charsets set_colors
syn keyword euphoria4Library set_decimal_mark set_def_lang set_default_charsets
syn keyword euphoria4Library set_encoding_properties set_keycodes set_lang_path
syn keyword euphoria4Library set_option set_rand set_test_abort set_test_verbosity
syn keyword euphoria4Library set_vector set_wait_on_summary setenv shift_bits
syn keyword euphoria4Library show_block show_help show_tokens shuffle shutdown
syn keyword euphoria4Library sign sim_index sinh size skewness sleep slice small
syn keyword euphoria4Library smaller_of smallest sort sort_columns sound split
syn keyword euphoria4Library split_any split_limit split_path sprint start_time
syn keyword euphoria4Library statistics stdev store string_numbers subtract sum
syn keyword euphoria4Library sum_central_moments swap tanh task_delay temp_file
syn keyword euphoria4Library test_equal test_exec test_fail test_false
syn keyword euphoria4Library test_not_equal test_pass test_read test_report
syn keyword euphoria4Library test_true test_write text_color text_rows threshold
syn keyword euphoria4Library tick_rate to_integer to_number to_string to_unix
syn keyword euphoria4Library tokenize_file tokenize_string top transform translate
syn keyword euphoria4Library transmute trim trim_head trim_tail trsprintf trunc
syn keyword euphoria4Library type_of uname unlock_file unregister_block unsetenv
syn keyword euphoria4Library upper use_vesa valid valid_index value values version
syn keyword euphoria4Library version_date version_major version_minor version_node
syn keyword euphoria4Library version_patch version_revision version_string
syn keyword euphoria4Library version_string_long version_string_short version_type
syn keyword euphoria4Library video_config vlookup vslice wait_key walk_dir
syn keyword euphoria4Library warning_file weeks_day where which_bit wildcard_file
syn keyword euphoria4Library wildcard_match wrap write write_file write_lines
syn keyword euphoria4Library writef writefln years_day
" Library Identifiers (Type) - grep from $EUDIR/include/*:
syn keyword euphoria4Type ascii_string boolean bordered_address byte_range
syn keyword euphoria4Type case_flagset_type color cstring datetime
syn keyword euphoria4Type file_number file_position graphics_point
syn keyword euphoria4Type integer_array lcid lock_type machine_addr map
syn keyword euphoria4Type mixture number_array option_spec
syn keyword euphoria4Type page_aligned_address positive_int process regex
syn keyword euphoria4Type sequence_array socket stack std_library_address
syn keyword euphoria4Type string t_alnum t_alpha t_ascii t_boolean
syn keyword euphoria4Type t_bytearray t_cntrl t_consonant t_digit t_display
syn keyword euphoria4Type t_graph t_identifier t_lower t_print t_punct
syn keyword euphoria4Type t_space t_specword t_text t_upper t_vowel t_xdigit
syn keyword euphoria4Type valid_memory_protection_constant valid_wordsize
" Linux shell comment (#!...):
syn match euphoria4Comment "\%^#!.*$"
" Single and multilines comments:
syn region euphoria4Comment start=/--/ end=/$/
syn region euphoria4Comment start="/\*" end="\*/"
" Delimiters and brackets:
syn match euphoria4Delimit "[([\])]"
syn match euphoria4Delimit "\.\."
syn match euphoria4Delimit ":"
syn match euphoria4Operator "[{}]"
" Character constant:
syn region euphoria4Char start=/'/ skip=/\\'\|\\\\/ end=/'/ oneline
" Single and multiline string constant:
syn region euphoria4String start=/"\|b"\|x"/ skip=/\\"\|\\\\/ end=/"/ oneline
syn region euphoria4String start=/`/ end=/`/
syn region euphoria4String start=/"""/ end=/"""/
" Binary/Octal/Decimal/Hexadecimal integer:
syn match euphoria4Number "\<0b[01_]\+\>"
syn match euphoria4Number "\<0t[0-7_]\+\>"
syn match euphoria4Number "\<0d[0-9_]\+\>"
syn match euphoria4Number "\<0x[0-9A-Fa-f_]\+\>"
syn match euphoria4Number "#[0-9A-Fa-f_]\+\>"
" Integer/Floating point without a dot:
syn match euphoria4Number "\<\d\+\>"
" Floating point with dot:
syn match euphoria4Number "\<\d\+\.\d*\>"
" Floating point starting with a dot:
syn match euphoria4Number "\.\d\+\>"
" Boolean constants:
syn keyword euphoria4Boolean true TRUE false FALSE
" Define the default highlighting.
" Only used when an item doesn't have highlighting yet:
hi def link euphoria4Comment Comment
hi def link euphoria4String String
hi def link euphoria4Char Character
hi def link euphoria4Number Number
hi def link euphoria4Boolean Boolean
hi def link euphoria4Builtin Identifier
hi def link euphoria4Library Function
hi def link euphoria4Type Type
hi def link euphoria4Keyword Statement
hi def link euphoria4Operator Statement
hi def link euphoria4Debug Debug
hi def link euphoria4Delimit Delimiter
hi def link euphoria4PreProc PreProc
let b:current_syntax = "euphoria4"
" Restore current compatible-options:
let &cpo = s:save_cpo
unlet s:save_cpo

View File

@@ -1,7 +1,7 @@
" Vim syntax file
" Language: Vim help file
" Maintainer: Bram Moolenaar (Bram@vim.org)
" Last Change: 2013 Sep 05
" Last Change: 2014 Feb 12
" Quit when a (custom) syntax file was already loaded
if exists("b:current_syntax")
@@ -40,7 +40,7 @@ endif
syn match helpNormal "|.*====*|"
syn match helpNormal "|||"
syn match helpNormal ":|vim:|" " for :help modeline
syn match helpVim "Vim version [0-9.a-z]\+"
syn match helpVim "\<Vim version [0-9][0-9.a-z]*"
syn match helpVim "VIM REFERENCE.*"
syn match helpOption "'[a-z]\{2,\}'"
syn match helpOption "'t_..'"
@@ -153,7 +153,7 @@ syn sync minlines=40
" Define the default highlighting.
" Only used when an item doesn't have highlighting yet
hi def link helpIgnore Ignore
hi def link helpHyperTextJump Subtitle
hi def link helpHyperTextJump Identifier
hi def link helpBar Ignore
hi def link helpBacktick Ignore
hi def link helpStar Ignore
@@ -168,7 +168,6 @@ hi def link helpOption Type
hi def link helpNotVi Special
hi def link helpSpecial Special
hi def link helpNote Todo
hi def link Subtitle Identifier
hi def link helpComment Comment
hi def link helpConstant Constant

View File

@@ -2,14 +2,11 @@
" Language: Microsoft Macro Assembler (80x86)
" Orig Author: Rob Brady <robb@datatone.com>
" Maintainer: Wu Yongwei <wuyongwei@gmail.com>
" Last Change: $Date: 2012/02/04 12:45:39 $
" $Revision: 1.46 $
" Last Change: $Date: 2013/11/13 11:49:24 $
" $Revision: 1.48 $
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
if version < 600
syntax clear
elseif exists("b:current_syntax")
" Quit when a syntax file was already loaded
if exists("b:current_syntax")
finish
endif
@@ -194,6 +191,10 @@ syn keyword masmRegister R8D R9D R10D R11D R12D R13D R14D R15D
syn keyword masmRegister R8W R9W R10W R11W R12W R13W R14W R15W
syn keyword masmRegister R8B R9B R10B R11B R12B R13B R14B R15B
" SSE/AVX registers
syn match masmRegister "\(X\|Y\)MM[0-9]\>"
syn match masmRegister "\(X\|Y\)MM1[0-5]\>"
" Instruction prefixes
syn keyword masmOpcode LOCK REP REPE REPNE REPNZ REPZ
@@ -302,50 +303,69 @@ syn keyword masmOpcode FISTTP LDDQU ADDSUBPS ADDSUBPD
syn keyword masmOpcode HADDPS HSUBPS HADDPD HSUBPD
syn keyword masmOpcode MOVSHDUP MOVSLDUP MOVDDUP MONITOR MWAIT
" SSSE3 opcodes (Core and later)
syn keyword masmOpcode PSIGNB PSIGNW PSIGND PABSB PABSW PABSD
syn keyword masmOpcode PALIGNR PSHUFB PMULHRSW PMADDUBSW
syn keyword masmOpcode PHSUBW PHSUBD PHSUBSW PHADDW PHADDD PHADDSW
" SSE 4.1 opcodes (Penryn and later)
syn keyword masmOpcode MPSADBW PHMINPOSUW PMULDQ PMULLD DPPS DPPD
syn keyword masmOpcode BLENDPS BLENDPD BLENDVPS BLENDVPD
syn keyword masmOpcode PBLENDVB PBLENDW
syn keyword masmOpcode PMINSB PMAXSB PMINSD PMAXSD
syn keyword masmOpcode PMINUW PMAXUW PMINUD PMAXUD
syn keyword masmOpcode ROUNDPS ROUNDSS ROUNDPD ROUNDSD
syn keyword masmOpcode INSERTPS PINSRB PINSRD PINSRQ
syn keyword masmOpcode EXTRACTPS PEXTRB PEXTRD PEXTRQ
syn keyword masmOpcode PMOVSXBW PMOVZXBW PMOVSXBD PMOVZXBD
syn keyword masmOpcode PMOVSXBQ PMOVZXBQ PMOVSXWD PMOVZXWD
syn keyword masmOpcode PMOVSXWQ PMOVZXWQ PMOVSXDQ PMOVZXDQ
syn keyword masmOpcode PTEST PCMPEQQ PACKUSDW MOVNTDQA
" SSE 4.2 opcodes (Nehalem and later)
syn keyword masmOpcode PCMPESTRI PCMPESTRM PCMPISTRI PCMPISTRM PCMPGTQ
syn keyword masmOpcode CRC32 POPCNT LZCNT
" AES-NI (Westmere (2010) and later)
syn keyword masmOpcode AESENC AESENCLAST AESDEC AESDECLAST
syn keyword masmOpcode AESKEYGENASSIST AESIMC PCLMULQDQ
" AVX (Sandy Bridge (2011) and later)
syn keyword masmOpcode VBROADCASTSS VBROADCASTSD VBROADCASTF128
syn keyword masmOpcode VINSERTF128 VEXTRACTF128 VMASKMOVPS VMASKMOVPD
syn keyword masmOpcode VPERMILPS VPERMILPD VPERM2F128
syn keyword masmOpcode VZEROALL VZEROUPPER
" Other opcodes in Pentium and later processors
syn keyword masmOpcode CMPXCHG8B CPUID UD2
syn keyword masmOpcode RSM RDMSR WRMSR RDPMC RDTSC SYSENTER SYSEXIT
syn match masmOpcode "CMOV\(P[EO]\|\(N\?\([ABGL]E\?\|[CEOPSZ]\)\)\)\>"
" Define the default highlighting.
" For version 5.7 and earlier: only when not done already
" For version 5.8 and later: only when an item doesn't have highlighting yet
if version >= 508 || !exists("did_masm_syntax_inits")
if version < 508
let did_masm_syntax_inits = 1
command -nargs=+ HiLink hi link <args>
else
command -nargs=+ HiLink hi def link <args>
endif
" The default highlighting
hi def link masmLabel PreProc
hi def link masmComment Comment
hi def link masmDirective Statement
hi def link masmType Type
hi def link masmOperator Type
hi def link masmOption Special
hi def link masmRegister Special
hi def link masmString String
hi def link masmText String
hi def link masmTitle Title
hi def link masmOpcode Statement
hi def link masmOpFloat Statement
" The default methods for highlighting. Can be overridden later
HiLink masmLabel PreProc
HiLink masmComment Comment
HiLink masmDirective Statement
HiLink masmType Type
HiLink masmOperator Type
HiLink masmOption Special
HiLink masmRegister Special
HiLink masmString String
HiLink masmText String
HiLink masmTitle Title
HiLink masmOpcode Statement
HiLink masmOpFloat Statement
hi def link masmHexadecimal Number
hi def link masmDecimal Number
hi def link masmOctal Number
hi def link masmBinary Number
hi def link masmFloatRaw Number
hi def link masmFloat Number
HiLink masmHexadecimal Number
HiLink masmDecimal Number
HiLink masmOctal Number
HiLink masmBinary Number
HiLink masmFloatRaw Number
HiLink masmFloat Number
hi def link masmIdentifier Identifier
HiLink masmIdentifier Identifier
syntax sync minlines=50
delcommand HiLink
endif
syntax sync minlines=50
let b:current_syntax = "masm"

83
runtime/syntax/mix.vim Normal file
View File

@@ -0,0 +1,83 @@
" Vim syntax file
" Language: MIX (Donald Knuth's assembly language used in TAOCP)
" Maintainer: Wu Yongwei <wuyongwei@gmail.com>
" Filenames: *.mixal *.mix
" Last Change: 2013 Nov 13
" Quit when a syntax file was already loaded
if exists("b:current_syntax")
finish
endif
let s:cpo_save = &cpo
set cpo&vim
syn case ignore
" Special processing of ALF directive: implementations vary whether quotation
" marks are needed
syn match mixAlfParam #\s\{1,2\}"\?[^"]\{,5\}"\?# contains=mixAlfDirective,mixString nextgroup=mixEndComment contained
" Region for parameters
syn match mixParam #[-+*/:=0-9a-z,()"]\+# contains=mixIdentifier,mixSpecial,mixNumber,mixString,mixLabel nextgroup=mixEndComment contained
" Comment at the line end
syn match mixEndComment ".*" contains=mixRegister contained
" Identifier; must go before literals
syn match mixIdentifier "[a-z0-9_]\+" contained
" Literals
syn match mixSpecial "[-+*/:=]" contained
syn match mixNumber "[0-9]\+\>" contained
syn region mixString start=+"+ skip=+\\"+ end=+"+ contained
" Labels
syn match mixLabel "^[a-z0-9_]\{,10\}\s\+" nextgroup=mixAlfSpecial,mixOpcode,mixDirective
syn match mixLabel "[0-9][BF]" contained
" Comments
syn match mixComment "^\*.*" contains=mixRegister
" Directives
syn keyword mixDirective ORIG EQU CON END nextgroup=mixParam contained skipwhite
syn keyword mixDirective ALF nextgroup=mixAlfParam contained
" Opcodes
syn keyword mixOpcode NOP HLT NUM CHAR FLOT FIX nextgroup=mixEndComment contained
syn keyword mixOpcode FADD FSUB FMUL FDIV FCMP MOVE ADD SUB MUL DIV IOC IN OUT JRED JBUS JMP JSJ JOV JNOV JL JE JG JLE JNE JGE SLA SRA SLAX SRAX SLC SRC nextgroup=mixParam contained skipwhite
syn match mixOpcode "LD[AX1-6]N\?\>" nextgroup=mixParam contained skipwhite
syn match mixOpcode "ST[AX1-6JZ]\>" nextgroup=mixParam contained skipwhite
syn match mixOpcode "EN[TN][AX1-6]\>" nextgroup=mixParam contained skipwhite
syn match mixOpcode "INC[AX1-6]\>" nextgroup=mixParam contained skipwhite
syn match mixOpcode "DEC[AX1-6]\>" nextgroup=mixParam contained skipwhite
syn match mixOpcode "CMP[AX1-6]\>" nextgroup=mixParam contained skipwhite
syn match mixOpcode "J[AX1-6]N\?[NZP]\>" nextgroup=mixParam contained skipwhite
" Switch back to being case sensitive
syn case match
" Registers (only to used in comments now)
syn keyword mixRegister rA rX rI1 rI2 rI3 rI4 rI5 rI6 rJ contained
" The default highlighting
hi def link mixRegister Special
hi def link mixLabel Define
hi def link mixComment Comment
hi def link mixEndComment Comment
hi def link mixDirective Keyword
hi def link mixOpcode Keyword
hi def link mixSpecial Special
hi def link mixNumber Number
hi def link mixString String
hi def link mixAlfParam String
hi def link mixIdentifier Identifier
let b:current_syntax = "mix"
let &cpo = s:cpo_save
unlet s:cpo_save
" vim: ts=8

View File

@@ -19,11 +19,12 @@ syn cluster NetrwTreeGroup contains=netrwDir,netrwSymLink,netrwExe
syn match netrwPlain "\(\S\+ \)*\S\+" contains=@NoSpell
syn match netrwSpecial "\%(\S\+ \)*\S\+[*|=]\ze\%(\s\{2,}\|$\)" contains=netrwClassify,@NoSpell
syn match netrwDir "\.\{1,2}/" contains=netrwClassify,@NoSpell
syn match netrwDir "\%(\S\+ \)*\S\+/" contains=netrwClassify,@NoSpell
"syn match netrwDir "\%(\S\+ \)*\S\+/" contains=netrwClassify,@NoSpell
syn match netrwDir "\%(\S\+ \)*\S\+/\ze\%(\s\{2,}\|$\)" contains=netrwClassify,@NoSpell
syn match netrwSizeDate "\<\d\+\s\d\{1,2}/\d\{1,2}/\d\{4}\s" skipwhite contains=netrwDateSep,@NoSpell nextgroup=netrwTime
syn match netrwSymLink "\%(\S\+ \)*\S\+@\ze\%(\s\{2,}\|$\)" contains=netrwClassify,@NoSpell
syn match netrwExe "\%(\S\+ \)*\S*[^~]\*\ze\%(\s\{2,}\|$\)" contains=netrwClassify,@NoSpell
syn match netrwTreeBar "^\%([-+|] \)\+" contains=netrwTreeBarSpace nextgroup=@netrwTreeGroup
syn match netrwTreeBar "^\%([-+|] \)\+" contains=netrwTreeBarSpace nextgroup=@netrwTreeGroup
syn match netrwTreeBarSpace " " contained
syn match netrwClassify "[*=|@/]\ze\%(\s\{2,}\|$\)" contained

View File

@@ -1,7 +1,7 @@
" Vim syntax file
" Language: reStructuredText documentation format
" Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2013-06-03
" Latest Revision: 2013-11-26
if exists("b:current_syntax")
finish
@@ -152,7 +152,7 @@ for code in g:rst_syntax_code_list
exe 'syn region rstDirective'.code.' matchgroup=rstDirective fold '
\.'start=#\%(sourcecode\|code\%(-block\)\=\)::\s\+'.code.'\s*$# '
\.'skip=#^$# '
\.'end=#^\s\@!# contains=@NoSpell,@rst'.code
\.'end=#^\s\@!# contains=@NoSpell,@rst'.code.' keepend'
exe 'syn cluster rstDirectives add=rstDirective'.code
endfor

View File

@@ -1,8 +1,9 @@
" Filename: spec.vim
" Purpose: Vim syntax file
" Language: SPEC: Build/install scripts for Linux RPM packages
" Maintainer: Donovan Rebbechi elflord@panix.com
" Last Change: Fri Dec 3 11:54 EST 2004 Marcin Dalecki
" Maintainer: Igor Gnatenko i.gnatenko.brain@gmail.com
" Former Maintainer: Donovan Rebbechi elflord@panix.com (until March 2014)
" Last Change: Sun Mar 2 10:33 MSK 2014 Igor Gnatenko
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
@@ -82,8 +83,8 @@ syn keyword specMacroNameLocal contained _arch _binary_payload _bindir _build _b
"One line macros - valid in all ScriptAreas
"tip: remember do include new items on specScriptArea's skip section
syn region specSectionMacroArea oneline matchgroup=specSectionMacro start='^%\(define\|patch\d*\|setup\|configure\|GNUconfigure\|find_lang\|makeinstall\|include\)\>' end='$' contains=specCommandOpts,specMacroIdentifier
syn region specSectionMacroBracketArea oneline matchgroup=specSectionMacro start='^%{\(configure\|GNUconfigure\|find_lang\|makeinstall\)}' end='$' contains=specCommandOpts,specMacroIdentifier
syn region specSectionMacroArea oneline matchgroup=specSectionMacro start='^%\(define\|global\|patch\d*\|setup\|configure\|GNUconfigure\|find_lang\|makeinstall\|make_install\|include\)\>' end='$' contains=specCommandOpts,specMacroIdentifier
syn region specSectionMacroBracketArea oneline matchgroup=specSectionMacro start='^%{\(configure\|GNUconfigure\|find_lang\|makeinstall\|make_install\)}' end='$' contains=specCommandOpts,specMacroIdentifier
"%% Files Section %%
"TODO %config valid parameters: missingok\|noreplace
@@ -113,7 +114,7 @@ syn region specDescriptionArea matchgroup=specSection start='^%description' end=
syn region specPackageArea matchgroup=specSection start='^%package' end='^%'me=e-1 contains=specPackageOpts,specPreAmble,specComment
"%% Scripts Section %%
syn region specScriptArea matchgroup=specSection start='^%\(prep\|build\|install\|clean\|pre\|postun\|preun\|post\)\>' skip='^%{\|^%\(define\|patch\d*\|configure\|GNUconfigure\|setup\|find_lang\|makeinstall\)\>' end='^%'me=e-1 contains=specSpecialVariables,specVariables,@specCommands,specVariables,shDo,shFor,shCaseEsac,specNoNumberHilite,specCommandOpts,shComment,shIf,specSpecialChar,specMacroIdentifier,specSectionMacroArea,specSectionMacroBracketArea,shOperator,shQuote1,shQuote2
syn region specScriptArea matchgroup=specSection start='^%\(prep\|build\|install\|clean\|pre\|postun\|preun\|post\|posttrans\)\>' skip='^%{\|^%\(define\|patch\d*\|configure\|GNUconfigure\|setup\|find_lang\|makeinstall\|make_install\)\>' end='^%'me=e-1 contains=specSpecialVariables,specVariables,@specCommands,specVariables,shDo,shFor,shCaseEsac,specNoNumberHilite,specCommandOpts,shComment,shIf,specSpecialChar,specMacroIdentifier,specSectionMacroArea,specSectionMacroBracketArea,shOperator,shQuote1,shQuote2
"%% Changelog Section %%
syn region specChangelogArea matchgroup=specSection start='^%changelog' end='^%'me=e-1 contains=specEmail,specURL,specWeekday,specMonth,specNumber,specComment,specLicense

View File

@@ -2,15 +2,18 @@
" Language: Subversion (svn) commit file
" Maintainer: Dmitry Vasiliev <dima at hlabs dot org>
" URL: https://github.com/hdima/vim-scripts/blob/master/syntax/svn.vim
" Last Change: 2012-07-21
" Last Change: 2013-11-08
" Filenames: svn-commit*.tmp
" Version: 1.9
" Version: 1.10
" Contributors:
" Stefano Zacchiroli
"
" List of the contributors in alphabetical order:
"
" A. S. Budden
" Myk Taylor
" Ingo Karkat
" Myk Taylor
" Stefano Zacchiroli
" For version 5.x: Clear all syntax items.
" For version 6.x: Quit when a syntax file was already loaded.
@@ -20,14 +23,19 @@ elseif exists("b:current_syntax")
finish
endif
syn region svnText start="\%^" end="^--.*--$"me=s-1 contains=@Spell
syn spell toplevel
syn region svnRegion start="^--.*--$" end="\%$" contains=ALL
syn match svnRemoved "^D .*$" contained
syn match svnRenamed "^R[ M][ U][ +] .*$" contained
syn match svnAdded "^A[ M][ U][ +] .*$" contained
syn match svnModified "^M[ M][ U] .*$" contained
syn match svnProperty "^_M[ U] .*$" contained
syn match svnFirstLine "\%^.*" nextgroup=svnRegion,svnBlank skipnl
syn match svnSummary "^.\{0,50\}" contained containedin=svnFirstLine nextgroup=svnOverflow contains=@Spell
syn match svnOverflow ".*" contained contains=@Spell
syn match svnBlank "^.*" contained contains=@Spell
syn region svnRegion end="\%$" matchgroup=svnDelimiter start="^--.*--$" contains=svnRemoved,svnRenamed,svnAdded,svnModified,svnProperty,@NoSpell
syn match svnRemoved "^D .*$" contained contains=@NoSpell
syn match svnRenamed "^R[ M][ U][ +] .*$" contained contains=@NoSpell
syn match svnAdded "^A[ M][ U][ +] .*$" contained contains=@NoSpell
syn match svnModified "^M[ M][ U] .*$" contained contains=@NoSpell
syn match svnProperty "^_M[ U] .*$" contained contains=@NoSpell
" Synchronization.
syn sync clear
@@ -44,7 +52,11 @@ if version >= 508 || !exists("did_svn_syn_inits")
command -nargs=+ HiLink hi def link <args>
endif
HiLink svnSummary Keyword
HiLink svnBlank Error
HiLink svnRegion Comment
HiLink svnDelimiter NonText
HiLink svnRemoved Constant
HiLink svnAdded Identifier
HiLink svnModified Special

View File

@@ -0,0 +1,101 @@
" Vim syntax file
" Language: SystemVerilog
" Maintainer: kocha <kocha.lsifrontend@gmail.com>
" Last Change: 12-Aug-2013.
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
if version < 600
syntax clear
elseif exists("b:current_syntax")
finish
endif
" Read in Verilog syntax files
if version < 600
so <sfile>:p:h/verilog.vim
else
runtime! syntax/verilog.vim
unlet b:current_syntax
endif
" IEEE1800-2005
syn keyword systemverilogStatement always_comb always_ff always_latch
syn keyword systemverilogStatement class endclass new
syn keyword systemverilogStatement virtual local const protected
syn keyword systemverilogStatement package endpackage
syn keyword systemverilogStatement rand randc constraint randomize
syn keyword systemverilogStatement with inside dist
syn keyword systemverilogStatement sequence endsequence randsequence
syn keyword systemverilogStatement srandom
syn keyword systemverilogStatement logic bit byte
syn keyword systemverilogStatement int longint shortint
syn keyword systemverilogStatement struct packed
syn keyword systemverilogStatement final
syn keyword systemverilogStatement import export
syn keyword systemverilogStatement context pure
syn keyword systemverilogStatement void shortreal chandle string
syn keyword systemverilogStatement clocking endclocking iff
syn keyword systemverilogStatement interface endinterface modport
syn keyword systemverilogStatement cover covergroup coverpoint endgroup
syn keyword systemverilogStatement property endproperty
syn keyword systemverilogStatement program endprogram
syn keyword systemverilogStatement bins binsof illegal_bins ignore_bins
syn keyword systemverilogStatement alias matches solve static assert
syn keyword systemverilogStatement assume super before expect bind
syn keyword systemverilogStatement extends null tagged extern this
syn keyword systemverilogStatement first_match throughout timeprecision
syn keyword systemverilogStatement timeunit type union
syn keyword systemverilogStatement uwire var cross ref wait_order intersect
syn keyword systemverilogStatement wildcard within
syn keyword systemverilogTypeDef typedef enum
syn keyword systemverilogConditional randcase
syn keyword systemverilogConditional unique priority
syn keyword systemverilogRepeat return break continue
syn keyword systemverilogRepeat do foreach
syn keyword systemverilogLabel join_any join_none forkjoin
" IEEE1800-2009 add
syn keyword systemverilogStatement checker endchecker
syn keyword systemverilogStatement accept_on reject_on
syn keyword systemverilogStatement sync_accept_on sync_reject_on
syn keyword systemverilogStatement eventually nexttime until until_with
syn keyword systemverilogStatement s_always s_eventually s_nexttime s_until s_until_with
syn keyword systemverilogStatement let untyped
syn keyword systemverilogStatement strong weak
syn keyword systemverilogStatement restrict global implies
syn keyword systemverilogConditional unique0
" IEEE1800-2012 add
syn keyword systemverilogStatement implements
syn keyword systemverilogStatement interconnect soft nettype
" Define the default highlighting.
if version >= 508 || !exists("did_systemverilog_syn_inits")
if version < 508
let did_systemverilog_syn_inits = 1
command -nargs=+ HiLink hi link <args>
else
command -nargs=+ HiLink hi def link <args>
endif
" The default highlighting.
HiLink systemverilogStatement Statement
HiLink systemverilogTypeDef TypeDef
HiLink systemverilogConditional Conditional
HiLink systemverilogRepeat Repeat
HiLink systemverilogLabel Label
HiLink systemverilogGlobal Define
HiLink systemverilogNumber Number
delcommand HiLink
endif
let b:current_syntax = "systemverilog"
" vim: ts=8

View File

@@ -6,11 +6,9 @@
" (previously Matt Neumann <mattneu@purpleturtle.com>)
" (previously Allan Kelly <allan@fruitloaf.co.uk>)
" Original: Robin Becker <robin@jessikat.demon.co.uk>
" Last Change: 2009/04/06 02:38:36
" Version: 1.13
" URL: http://real.metasyntax.net:2357/cvs/cvsweb.cgi/Config/vim/syntax/tcl.vim
"
" Keywords TODO: click anchor
" Last Change: 2014-02-12
" Version: 1.14
" URL: http://bitbucket.org/taylor_venable/metasyntax/src/tip/Config/vim/syntax/tcl.vim
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
@@ -20,41 +18,39 @@ elseif exists("b:current_syntax")
finish
endif
" Basic Tcl commands: http://www.tcl.tk/man/tcl8.5/TclCmd/contents.htm
syn keyword tclCommand after append apply array bgerror binary catch cd chan clock
syn keyword tclCommand close concat dde dict encoding eof error eval exec exit
syn keyword tclCommand expr fblocked fconfigure fcopy file fileevent filename flush
syn keyword tclCommand format gets glob global history incr info interp join
syn keyword tclCommand lappend lassign lindex linsert list llength load lrange lrepeat
syn keyword tclCommand lreplace lreverse lsearch lset lsort memory namespace open package
syn keyword tclCommand pid proc puts pwd read regexp registry regsub rename return
syn keyword tclCommand scan seek set socket source split string subst tell time
syn keyword tclCommand trace unknown unload unset update uplevel upvar variable vwait
" Basic Tcl commands: http://www.tcl.tk/man/tcl8.6/TclCmd/contents.htm
syn keyword tclCommand after append array bgerror binary cd chan clock close concat
syn keyword tclCommand dde dict encoding eof error eval exec exit expr fblocked
syn keyword tclCommand fconfigure fcopy file fileevent flush format gets glob
syn keyword tclCommand global history http incr info interp join lappend lassign
syn keyword tclCommand lindex linsert list llength lmap load lrange lrepeat
syn keyword tclCommand lreplace lreverse lsearch lset lsort memory my namespace
syn keyword tclCommand next nextto open package pid puts pwd read refchan regexp
syn keyword tclCommand registry regsub rename scan seek self set socket source
syn keyword tclCommand split string subst tell time trace unknown unload unset
syn keyword tclCommand update uplevel upvar variable vwait
" The 'Tcl Standard Library' commands: http://www.tcl.tk/man/tcl8.5/TclCmd/library.htm
syn keyword tclCommand auto_execok auto_import auto_load auto_mkindex auto_mkindex_old
syn keyword tclCommand auto_qualify auto_reset parray tcl_endOfWord tcl_findLibrary
syn keyword tclCommand tcl_startOfNextWord tcl_startOfPreviousWord tcl_wordBreakAfter
syn keyword tclCommand tcl_wordBreakBefore
" The 'Tcl Standard Library' commands: http://www.tcl.tk/man/tcl8.6/TclCmd/library.htm
syn keyword tclCommand auto_execok auto_import auto_load auto_mkindex auto_reset
syn keyword tclCommand auto_qualify tcl_findLibrary parray tcl_endOfWord
syn keyword tclCommand tcl_startOfNextWord tcl_startOfPreviousWord
syn keyword tclCommand tcl_wordBreakAfter tcl_wordBreakBefore
" Commands that were added in Tcl 8.6
syn keyword tclCommand my oo::copy oo::define oo::objdefine self
syn keyword tclCommand coroutine tailcall throw yield
" Global variables used by Tcl: http://www.tcl.tk/man/tcl8.5/TclCmd/tclvars.htm
syn keyword tclVars env errorCode errorInfo tcl_library tcl_patchLevel tcl_pkgPath
syn keyword tclVars tcl_platform tcl_precision tcl_rcFileName tcl_traceCompile
syn keyword tclVars tcl_traceExec tcl_wordchars tcl_nonwordchars tcl_version argc argv
syn keyword tclVars argv0 tcl_interactive geometry
" Global variables used by Tcl: http://www.tcl.tk/man/tcl8.6/TclCmd/tclvars.htm
syn keyword tclVars auto_path env errorCode errorInfo tcl_library tcl_patchLevel
syn keyword tclVars tcl_pkgPath tcl_platform tcl_precision tcl_rcFileName
syn keyword tclVars tcl_traceCompile tcl_traceExec tcl_wordchars
syn keyword tclVars tcl_nonwordchars tcl_version argc argv argv0 tcl_interactive
" Strings which expr accepts as boolean values, aside from zero / non-zero.
syn keyword tclBoolean true false on off yes no
syn keyword tclLabel case default
syn keyword tclProcCommand apply coroutine proc return tailcall yield yieldto
syn keyword tclConditional if then else elseif switch
syn keyword tclConditional try finally
syn keyword tclConditional catch try throw finally
syn keyword tclLabel default
syn keyword tclRepeat while for foreach break continue
syn keyword tcltkSwitch contained insert create polygon fill outline tag
" WIDGETS
@@ -91,6 +87,11 @@ syn match tclVarRef "$\(\(::\)\?\([[:alnum:]_]*::\)*\)\a[[:alnum:]_]*"
" ${...} may contain any character except '}'
syn match tclVarRef "${[^}]*}"
" Used to facilitate hack to utilize string background for certain color
" schemes, e.g. inkpot and lettuce.
syn cluster tclVarRefC add=tclVarRef
syn cluster tclSpecialC add=tclSpecial
" The syntactic unquote-splicing replacement for [expand].
syn match tclExpand '\s{\*}'
syn match tclExpand '^{\*}'
@@ -203,9 +204,9 @@ syn match tclSpecial contained '\\[\[\]\{\}\"\$]'
syn region tclEmbeddedStatement start='\[' end='\]' contained contains=tclCommand,tclNumber,tclLineContinue,tclString,tclVarRef,tclEmbeddedStatement
" A string needs the skip argument as it may legitimately contain \".
" Match at start of line
syn region tclString start=+^"+ end=+"+ contains=tclSpecial skip=+\\\\\|\\"+
syn region tclString start=+^"+ end=+"+ contains=@tclSpecialC skip=+\\\\\|\\"+
"Match all other legal strings.
syn region tclString start=+[^\\]"+ms=s+1 end=+"+ contains=tclSpecial,tclVarRef,tclEmbeddedStatement skip=+\\\\\|\\"+
syn region tclString start=+[^\\]"+ms=s+1 end=+"+ contains=@tclSpecialC,@tclVarRefC,tclEmbeddedStatement skip=+\\\\\|\\"+
" Line continuation is backslash immediately followed by newline.
syn match tclLineContinue '\\$'
@@ -231,6 +232,9 @@ syn case match
syn region tclComment start="^\s*\#" skip="\\$" end="$" contains=tclTodo
syn region tclComment start=/;\s*\#/hs=s+1 skip="\\$" end="$" contains=tclTodo
"syn match tclComment /^\s*\#.*$/
"syn match tclComment /;\s*\#.*$/hs=s+1
"syn sync ccomment tclComment
" Define the default highlighting.
@@ -252,6 +256,7 @@ if version >= 508 || !exists("did_tcl_syntax_inits")
HiLink tclNumber Number
HiLink tclError Error
HiLink tclCommand Statement
HiLink tclProcCommand Type
HiLink tclString String
HiLink tclComment Comment
HiLink tclSpecial Special
@@ -279,4 +284,4 @@ endif
let b:current_syntax = "tcl"
" vim: ts=8 noet
" vim: ts=8 noet nolist

View File

@@ -55,8 +55,8 @@ NOTE: The cursor keys should also work. But using hjkl you will be able to
2. Type: :q! <ENTER>.
This exits the editor, DISCARDING any changes you have made.
3. When you see the shell prompt, type the command that got you into this
tutor. That would be: vimtutor <ENTER>
3. Get back here by executing the command that got you into this tutor. That
might be: vimtutor <ENTER>
4. If you have these steps memorized and are confident, execute steps
1 through 3 to exit and re-enter the editor.

View File

@@ -638,7 +638,7 @@ NOTA: Tutti i comandi : devono essere terminati premendo <INVIO>
NOTA: Se esci da Vim e riesegui Vim battendo vim TEST , il file aperto
sar<61> una copia esatta di "tutor.it" al momento del salvataggio.
5. Ora cancella il file battendo (MR-DOS): :!del TEST
5. Ora cancella il file battendo (MS-DOS): :!del TEST
o (Unix): :!rm TEST

View File

@@ -638,7 +638,7 @@ NOTA: Tutti i comandi : devono essere terminati premendo <INVIO>
NOTA: Se esci da Vim e riesegui Vim battendo vim TEST , il file aperto
sarà una copia esatta di "tutor.it" al momento del salvataggio.
5. Ora cancella il file battendo (MR-DOS): :!del TEST
5. Ora cancella il file battendo (MS-DOS): :!del TEST
o (Unix): :!rm TEST

View File

@@ -58,11 +58,11 @@ NOTA: As teclas de cursor devem funcionar tamb
Isso sai do editor SEM salvar qualquer mudan<61>a que tenha sido feita.
Se quiser salvar as altera<72><61>es e sair, digite :wq <ENTER>
3. Quando vir o prompt do shell digite o comando que lhe trouxe a este
tutorial, na maioria dos casos: vimtutor <ENTER>.
3. Repita o procedimento que lhe trouxe a este tutorial. O procedimento pode
ter sido a digita<74><61>o de: vimtutor <ENTER>.
4. Se voc<6F> memorizou estes passos e est<73> confiante, execute os passos de
1 a 3 para sair e re-entrar no editor.
1 a 3 para sair e reentrar no editor.
NOTA: :q! <ENTER> descarta qualquer mudan<61>a. Em uma pr<70>xima li<6C><69>o ser<65>
ensinado como salvar as mudan<61>as feitas em um arquivo.
@@ -560,7 +560,7 @@ Nota: Isso
1. Mova o cursor para a linha abaixo marcada com --->.
2. Digite :/s/aa/a <ENTER> . Note que este comando somente muda a
2. Digite :s/aa/a <ENTER> . Note que este comando somente muda a
primeira ocorr<72>ncia na linha.
3. Agora digite :s/aa/a/g significando substituir globalmente na linha.

View File

@@ -58,11 +58,11 @@ NOTA: As teclas de cursor devem funcionar também. Mas usando hjkl, tão logo
Isso sai do editor SEM salvar qualquer mudança que tenha sido feita.
Se quiser salvar as alterações e sair, digite :wq <ENTER>
3. Quando vir o prompt do shell digite o comando que lhe trouxe a este
tutorial, na maioria dos casos: vimtutor <ENTER>.
3. Repita o procedimento que lhe trouxe a este tutorial. O procedimento pode
ter sido a digitação de: vimtutor <ENTER>.
4. Se você memorizou estes passos e está confiante, execute os passos de
1 a 3 para sair e re-entrar no editor.
1 a 3 para sair e reentrar no editor.
NOTA: :q! <ENTER> descarta qualquer mudança. Em uma próxima lição será
ensinado como salvar as mudanças feitas em um arquivo.
@@ -560,7 +560,7 @@ Nota: Isso é muito útil para corrigir um programa com parênteses não-casados
1. Mova o cursor para a linha abaixo marcada com --->.
2. Digite :/s/aa/a <ENTER> . Note que este comando somente muda a
2. Digite :s/aa/a <ENTER> . Note que este comando somente muda a
primeira ocorrência na linha.
3. Agora digite :s/aa/a/g significando substituir globalmente na linha.

View File

@@ -1,7 +1,7 @@
" An example for a vimrc file.
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last change: 2011 Apr 15
" Last change: 2014 Feb 05
"
" To use it, copy it to
" for Unix and OS/2: ~/.vimrc
@@ -24,7 +24,8 @@ set backspace=indent,eol,start
if has("vms")
set nobackup " do not keep a backup file, use versions instead
else
set backup " keep a backup file
set backup " keep a backup file (restore to previous version)
set undofile " keep an undo file (undo changes after closing)
endif
set history=50 " keep 50 lines of command line history
set ruler " show the cursor position all the time

View File

@@ -419,7 +419,7 @@ CPUARG = -$(CPUNR)
ALIGNARG = -a$(ALIGN)
#
!if ("$(DEBUG)"=="yes")
DEFINES=$(DEFINES) -DDEBUG
DEFINES=$(DEFINES) -DDEBUG -D_DEBUG
!endif
#
!if ("$(OLE)"=="yes")

View File

@@ -1,6 +1,6 @@
#
# Makefile for VIM on Win32, using Cygnus gcc
# Last updated by Dan Sharp. Last Change: 2013 Sep 19
# Last updated by Dan Sharp. Last Change: 2013 Dec 11
#
# Also read INSTALLpc.txt!
#
@@ -155,7 +155,7 @@ endif
ifeq (yes, $(DYNAMIC_PERL))
DEFINES += -DDYNAMIC_PERL -DDYNAMIC_PERL_DLL=\"perl$(PERL_VER).dll\"
else
EXTRA_LIBS += $(PERL)/lib/CORE/perl$(PERL_VER).lib
EXTRA_LIBS += -L$(PERL)/lib/CORE -lperl$(PERL_VER)
endif
endif
@@ -272,7 +272,7 @@ ifeq (yes, $(DYNAMIC_RUBY))
DEFINES += -DDYNAMIC_RUBY -DDYNAMIC_RUBY_DLL=\"$(RUBY_INSTALL_NAME).dll\"
DEFINES += -DDYNAMIC_RUBY_VER=$(RUBY_VER)
else
EXTRA_LIBS += $(RUBY)/lib/$(RUBY_INSTALL_NAME).lib
EXTRA_LIBS += $(RUBY)/lib/$(RUBY_INSTALL_NAME)
endif
endif

View File

@@ -359,6 +359,7 @@ WINDRES_CC = $(CC)
CFLAGS = -Iproto $(DEFINES) -pipe -w -march=$(ARCH) -Wall
WINDRES_FLAGS = --preprocessor="$(WINDRES_CC) -E -xc" -DRC_INVOKED
EXTRA_LIBS =
ifdef GETTEXT
DEFINES += -DHAVE_GETTEXT -DHAVE_LOCALE_H
@@ -377,9 +378,10 @@ endif
endif
ifdef PERL
CFLAGS += -I$(PERLLIBS) -DFEAT_PERL -L$(PERLLIBS)
CFLAGS += -I$(PERLLIBS) -DFEAT_PERL
ifeq (yes, $(DYNAMIC_PERL))
CFLAGS += -DDYNAMIC_PERL -DDYNAMIC_PERL_DLL=\"perl$(PERL_VER).dll\"
EXTRA_LIBS += -L$(PERLLIBS) -lperl$(PERL_VER)
endif
endif
@@ -596,7 +598,7 @@ ifdef XPM
ifeq (yes, $(GUI))
OBJ += $(OUTDIR)/xpm_w32.o
# You'll need libXpm.a from http://gnuwin32.sf.net
LIB += -L $(XPM)/lib -lXpm
LIB += -L$(XPM)/lib -lXpm
endif
endif
@@ -632,7 +634,7 @@ endif
ifdef PERL
ifeq (no, $(DYNAMIC_PERL))
LIB += -lperl$(PERL_VER)
LIB += -L$(PERLLIBS) -lperl$(PERL_VER)
endif
endif

View File

@@ -424,6 +424,9 @@ MSVCVER = 11.0
!if "$(_NMAKE_VER)" == "11.00.60610.1"
MSVCVER = 11.0
!endif
!if "$(_NMAKE_VER)" == "11.00.61030.0"
MSVCVER = 11.0
!endif
!if "$(_NMAKE_VER)" == "12.00.21005.1"
MSVCVER = 12.0
!endif
@@ -488,7 +491,7 @@ CFLAGS=$(CFLAGS) $(WP64CHECK)
!endif
# Static code analysis generally available starting with VS2012
!if ("$(ANALYZE)" == "yes") && ("$(MSVCVER)" == "11.0") && ("$(MSVCVER)" == "12.0")
!if ("$(ANALYZE)" == "yes") && (("$(MSVCVER)" == "10.0") || ("$(MSVCVER)" == "11.0") || ("$(MSVCVER)" == "12.0"))
CFLAGS=$(CFLAGS) /analyze
!endif
@@ -825,7 +828,12 @@ PERL_INCDIR = $(PERL)\Lib$(PERL_ARCH)\Core
PERL_LIB = $(PERL_INCDIR)\perl.lib
!else
PERL_DLL = perl$(PERL_VER).dll
!if exist($(PERL_INCDIR)\perl$(PERL_VER).lib)
PERL_LIB = $(PERL_INCDIR)\perl$(PERL_VER).lib
!else
# For ActivePerl 5.18 and later
PERL_LIB = $(PERL_INCDIR)\libperl$(PERL_VER).a
!endif
!endif
CFLAGS = $(CFLAGS) -DFEAT_PERL

View File

@@ -2381,6 +2381,7 @@ shadow: runtime pixmaps
../../testdir/*.in \
../../testdir/*.vim \
../../testdir/python* \
../../testdir/sautest \
../../testdir/test83-tags? \
../../testdir/*.ok .

31
src/auto/configure vendored
View File

@@ -4743,7 +4743,7 @@ $as_echo_n "checking LuaJIT version... " >&6; }
if test "${vi_cv_version_luajit+set}" = set; then :
$as_echo_n "(cached) " >&6
else
vi_cv_version_luajit=`${vi_cv_path_luajit} -v | sed 's/LuaJIT \([0-9.]*\)\.[0-9] .*/\1/'`
vi_cv_version_luajit=`${vi_cv_path_luajit} -v 2>&1 | sed 's/LuaJIT \([0-9.]*\)\.[0-9]\(-[a-z0-9]*\)* .*/\1/'`
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $vi_cv_version_luajit" >&5
$as_echo "$vi_cv_version_luajit" >&6; }
@@ -5199,9 +5199,19 @@ $as_echo "not found" >&6; }
$as_echo_n "checking for mzscheme_base.c... " >&6; }
if test -f "${SCHEME_COLLECTS}collects/scheme/base.ss" ; then
MZSCHEME_EXTRA="mzscheme_base.c"
MZSCHEME_MZC="${vi_cv_path_mzscheme_pfx}/bin/mzc"
MZSCHEME_MOD="++lib scheme/base"
else
if test -f "${SCHEME_COLLECTS}collects/scheme/base.rkt" ; then
MZSCHEME_EXTRA="mzscheme_base.c"
MZSCHEME_MZC="${vi_cv_path_mzscheme_pfx}/bin/mzc"
MZSCHEME_MOD="++lib scheme/base"
else
if test -f "${SCHEME_COLLECTS}collects/racket/base.rkt" ; then
MZSCHEME_EXTRA="mzscheme_base.c"
MZSCHEME_MZC="${vi_cv_path_mzscheme_pfx}/bin/raco ctool"
MZSCHEME_MOD=""
fi
fi
fi
if test "X$MZSCHEME_EXTRA" != "X" ; then
@@ -12323,6 +12333,15 @@ _ACEOF
cat >>confdefs.h <<_ACEOF
#define VIM_SIZEOF_INT $ac_cv_sizeof_int
_ACEOF
cat >>confdefs.h <<_ACEOF
#define VIM_SIZEOF_LONG $ac_cv_sizeof_long
_ACEOF
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking uint32_t is 32 bits" >&5
$as_echo_n "checking uint32_t is 32 bits... " >&6; }
if test "$cross_compiling" = yes; then :
@@ -12690,6 +12709,8 @@ $as_echo_n "checking for NLS... " >&6; }
if test -f po/Makefile; then
have_gettext="no"
if test -n "$MSGFMT"; then
olibs=$LIBS
LIBS=""
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <libintl.h>
@@ -12703,10 +12724,9 @@ gettext("Test");
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: gettext() works" >&5
$as_echo "gettext() works" >&6; }; have_gettext="yes"
$as_echo "gettext() works" >&6; }; have_gettext="yes"; LIBS=$olibs
else
olibs=$LIBS
LIBS="$LIBS -lintl"
LIBS="-lintl"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <libintl.h>
@@ -12720,7 +12740,8 @@ gettext("Test");
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: gettext() works with -lintl" >&5
$as_echo "gettext() works with -lintl" >&6; }; have_gettext="yes"
$as_echo "gettext() works with -lintl" >&6; }; have_gettext="yes";
LIBS="$olibs -lintl"
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: gettext() doesn't work" >&5
$as_echo "gettext() doesn't work" >&6; };

View File

@@ -6,7 +6,7 @@
* Do ":help credits" in Vim to see a list of people who contributed.
* See README.txt for an overview of the Vim source code.
*
* Blowfish encryption for Vim; in Blowfish output feedback mode.
* Blowfish encryption for Vim; in Blowfish cipher feedback mode.
* Contributed by Mohsin Ahmed, http://www.cs.albany.edu/~mosh
* Based on http://www.schneier.com/blowfish.html by Bruce Schneier.
*/
@@ -19,7 +19,7 @@
#define BF_BLOCK 8
#define BF_BLOCK_MASK 7
#define BF_OFB_LEN (8*(BF_BLOCK))
#define BF_CFB_LEN (8*(BF_BLOCK))
typedef union {
UINT32_T ul[2];
@@ -554,42 +554,42 @@ bf_self_test()
return err > 0 ? FAIL : OK;
}
/* Output feedback mode. */
/* Cipher feedback mode. */
static int randbyte_offset = 0;
static int update_offset = 0;
static char_u ofb_buffer[BF_OFB_LEN]; /* 64 bytes */
static char_u cfb_buffer[BF_CFB_LEN]; /* 64 bytes */
/*
* Initialize with seed "iv[iv_len]".
*/
void
bf_ofb_init(iv, iv_len)
bf_cfb_init(iv, iv_len)
char_u *iv;
int iv_len;
{
int i, mi;
randbyte_offset = update_offset = 0;
vim_memset(ofb_buffer, 0, BF_OFB_LEN);
vim_memset(cfb_buffer, 0, BF_CFB_LEN);
if (iv_len > 0)
{
mi = iv_len > BF_OFB_LEN ? iv_len : BF_OFB_LEN;
mi = iv_len > BF_CFB_LEN ? iv_len : BF_CFB_LEN;
for (i = 0; i < mi; i++)
ofb_buffer[i % BF_OFB_LEN] ^= iv[i % iv_len];
cfb_buffer[i % BF_CFB_LEN] ^= iv[i % iv_len];
}
}
#define BF_OFB_UPDATE(c) { \
ofb_buffer[update_offset] ^= (char_u)c; \
if (++update_offset == BF_OFB_LEN) \
#define BF_CFB_UPDATE(c) { \
cfb_buffer[update_offset] ^= (char_u)c; \
if (++update_offset == BF_CFB_LEN) \
update_offset = 0; \
}
#define BF_RANBYTE(t) { \
if ((randbyte_offset & BF_BLOCK_MASK) == 0) \
bf_e_cblock(&ofb_buffer[randbyte_offset]); \
t = ofb_buffer[randbyte_offset]; \
if (++randbyte_offset == BF_OFB_LEN) \
bf_e_cblock(&cfb_buffer[randbyte_offset]); \
t = cfb_buffer[randbyte_offset]; \
if (++randbyte_offset == BF_CFB_LEN) \
randbyte_offset = 0; \
}
@@ -610,7 +610,7 @@ bf_crypt_encode(from, len, to)
{
ztemp = from[i];
BF_RANBYTE(t);
BF_OFB_UPDATE(ztemp);
BF_CFB_UPDATE(ztemp);
to[i] = t ^ ztemp;
}
}
@@ -630,7 +630,7 @@ bf_crypt_decode(ptr, len)
{
BF_RANBYTE(t);
*p ^= t;
BF_OFB_UPDATE(*p);
BF_CFB_UPDATE(*p);
}
}
@@ -646,13 +646,13 @@ bf_crypt_init_keys(passwd)
for (p = passwd; *p != NUL; ++p)
{
BF_OFB_UPDATE(*p);
BF_CFB_UPDATE(*p);
}
}
static int save_randbyte_offset;
static int save_update_offset;
static char_u save_ofb_buffer[BF_OFB_LEN];
static char_u save_cfb_buffer[BF_CFB_LEN];
static UINT32_T save_pax[18];
static UINT32_T save_sbx[4][256];
@@ -665,7 +665,7 @@ bf_crypt_save()
{
save_randbyte_offset = randbyte_offset;
save_update_offset = update_offset;
mch_memmove(save_ofb_buffer, ofb_buffer, BF_OFB_LEN);
mch_memmove(save_cfb_buffer, cfb_buffer, BF_CFB_LEN);
mch_memmove(save_pax, pax, 4 * 18);
mch_memmove(save_sbx, sbx, 4 * 4 * 256);
}
@@ -679,7 +679,7 @@ bf_crypt_restore()
{
randbyte_offset = save_randbyte_offset;
update_offset = save_update_offset;
mch_memmove(ofb_buffer, save_ofb_buffer, BF_OFB_LEN);
mch_memmove(cfb_buffer, save_cfb_buffer, BF_CFB_LEN);
mch_memmove(pax, save_pax, 4 * 18);
mch_memmove(sbx, save_sbx, 4 * 4 * 256);
}

View File

@@ -994,6 +994,50 @@ do_bufdel(command, arg, addr_count, start_bnr, end_bnr, forceit)
#if defined(FEAT_LISTCMDS) || defined(FEAT_PYTHON) \
|| defined(FEAT_PYTHON3) || defined(PROTO)
static int empty_curbuf __ARGS((int close_others, int forceit, int action));
/*
* Make the current buffer empty.
* Used when it is wiped out and it's the last buffer.
*/
static int
empty_curbuf(close_others, forceit, action)
int close_others;
int forceit;
int action;
{
int retval;
buf_T *buf = curbuf;
if (action == DOBUF_UNLOAD)
{
EMSG(_("E90: Cannot unload last buffer"));
return FAIL;
}
if (close_others)
{
/* Close any other windows on this buffer, then make it empty. */
#ifdef FEAT_WINDOWS
close_windows(buf, TRUE);
#endif
}
setpcmark();
retval = do_ecmd(0, NULL, NULL, NULL, ECMD_ONE,
forceit ? ECMD_FORCEIT : 0, curwin);
/*
* do_ecmd() may create a new buffer, then we have to delete
* the old one. But do_ecmd() may have done that already, check
* if the buffer still exists.
*/
if (buf != curbuf && buf_valid(buf) && buf->b_nwindows == 0)
close_buffer(NULL, buf, action, FALSE);
if (!close_others)
need_fileinfo = FALSE;
return retval;
}
/*
* Implementation of the commands for the buffer list.
*
@@ -1114,7 +1158,6 @@ do_buffer(action, start, dir, count, forceit)
if (unload)
{
int forward;
int retval;
/* When unloading or deleting a buffer that's already unloaded and
* unlisted: fail silently. */
@@ -1155,30 +1198,7 @@ do_buffer(action, start, dir, count, forceit)
if (bp->b_p_bl && bp != buf)
break;
if (bp == NULL && buf == curbuf)
{
if (action == DOBUF_UNLOAD)
{
EMSG(_("E90: Cannot unload last buffer"));
return FAIL;
}
/* Close any other windows on this buffer, then make it empty. */
#ifdef FEAT_WINDOWS
close_windows(buf, TRUE);
#endif
setpcmark();
retval = do_ecmd(0, NULL, NULL, NULL, ECMD_ONE,
forceit ? ECMD_FORCEIT : 0, curwin);
/*
* do_ecmd() may create a new buffer, then we have to delete
* the old one. But do_ecmd() may have done that already, check
* if the buffer still exists.
*/
if (buf != curbuf && buf_valid(buf) && buf->b_nwindows == 0)
close_buffer(NULL, buf, action, FALSE);
return retval;
}
return empty_curbuf(TRUE, forceit, action);
#ifdef FEAT_WINDOWS
/*
@@ -1212,7 +1232,8 @@ do_buffer(action, start, dir, count, forceit)
/*
* Deleting the current buffer: Need to find another buffer to go to.
* There must be another, otherwise it would have been handled above.
* There should be another, otherwise it would have been handled
* above. However, autocommands may have deleted all buffers.
* First use au_new_curbuf, if it is valid.
* Then prefer the buffer we most recently visited.
* Else try to find one that is loaded, after the current buffer,
@@ -1311,6 +1332,13 @@ do_buffer(action, start, dir, count, forceit)
}
}
if (buf == NULL)
{
/* Autocommands must have wiped out all other buffers. Only option
* now is to make the current buffer empty. */
return empty_curbuf(FALSE, forceit, action);
}
/*
* make buf current buffer
*/

View File

@@ -37,10 +37,10 @@
#undef UNIX
/* Defined to the size of an int */
#undef SIZEOF_INT
#undef VIM_SIZEOF_INT
/* Defined to the size of a long */
#undef SIZEOF_LONG
#undef VIM_SIZEOF_LONG
/* Defined to the size of off_t */
#undef SIZEOF_OFF_T

View File

@@ -496,7 +496,7 @@ if test "$enable_luainterp" = "yes" -o "$enable_luainterp" = "dynamic"; then
if test "X$vi_cv_path_luajit" != "X"; then
dnl -- find LuaJIT version
AC_CACHE_CHECK(LuaJIT version, vi_cv_version_luajit,
[ vi_cv_version_luajit=`${vi_cv_path_luajit} -v | sed 's/LuaJIT \([[0-9.]]*\)\.[[0-9]] .*/\1/'` ])
[ vi_cv_version_luajit=`${vi_cv_path_luajit} -v 2>&1 | sed 's/LuaJIT \([[0-9.]]*\)\.[[0-9]]\(-[[a-z0-9]]*\)* .*/\1/'` ])
AC_CACHE_CHECK(Lua version of LuaJIT, vi_cv_version_lua_luajit,
[ vi_cv_version_lua_luajit=`${vi_cv_path_luajit} -e "print(_VERSION)" | sed 's/.* //'` ])
vi_cv_path_lua="$vi_cv_path_luajit"
@@ -802,9 +802,19 @@ if test "$enable_mzschemeinterp" = "yes"; then
AC_MSG_CHECKING(for mzscheme_base.c)
if test -f "${SCHEME_COLLECTS}collects/scheme/base.ss" ; then
MZSCHEME_EXTRA="mzscheme_base.c"
MZSCHEME_MZC="${vi_cv_path_mzscheme_pfx}/bin/mzc"
MZSCHEME_MOD="++lib scheme/base"
else
if test -f "${SCHEME_COLLECTS}collects/scheme/base.rkt" ; then
MZSCHEME_EXTRA="mzscheme_base.c"
MZSCHEME_MZC="${vi_cv_path_mzscheme_pfx}/bin/mzc"
MZSCHEME_MOD="++lib scheme/base"
else
if test -f "${SCHEME_COLLECTS}collects/racket/base.rkt" ; then
MZSCHEME_EXTRA="mzscheme_base.c"
MZSCHEME_MZC="${vi_cv_path_mzscheme_pfx}/bin/raco ctool"
MZSCHEME_MOD=""
fi
fi
fi
if test "X$MZSCHEME_EXTRA" != "X" ; then
@@ -3571,6 +3581,10 @@ AC_CHECK_SIZEOF([long])
AC_CHECK_SIZEOF([time_t])
AC_CHECK_SIZEOF([off_t])
dnl Use different names to avoid clashing with other header files.
AC_DEFINE_UNQUOTED(VIM_SIZEOF_INT, [$ac_cv_sizeof_int])
AC_DEFINE_UNQUOTED(VIM_SIZEOF_LONG, [$ac_cv_sizeof_long])
dnl Make sure that uint32_t is really 32 bits unsigned.
AC_MSG_CHECKING([uint32_t is 32 bits])
AC_TRY_RUN([
@@ -3725,6 +3739,9 @@ if test "$MANDEF" = "man -s"; then
fi
dnl Check if gettext() is working and if it needs -lintl
dnl We take care to base this on an empty LIBS: on some systems libelf would be
dnl in LIBS and implicitly take along libintl. The final LIBS would then not
dnl contain libintl, and the link step would fail due to -Wl,--as-needed.
AC_MSG_CHECKING(--disable-nls argument)
AC_ARG_ENABLE(nls,
[ --disable-nls Don't support NLS (gettext()).], ,
@@ -3743,16 +3760,18 @@ if test "$enable_nls" = "yes"; then
if test -f po/Makefile; then
have_gettext="no"
if test -n "$MSGFMT"; then
olibs=$LIBS
LIBS=""
AC_TRY_LINK(
[#include <libintl.h>],
[gettext("Test");],
AC_MSG_RESULT([gettext() works]); have_gettext="yes",
olibs=$LIBS
LIBS="$LIBS -lintl"
AC_MSG_RESULT([gettext() works]); have_gettext="yes"; LIBS=$olibs,
LIBS="-lintl"
AC_TRY_LINK(
[#include <libintl.h>],
[gettext("Test");],
AC_MSG_RESULT([gettext() works with -lintl]); have_gettext="yes",
AC_MSG_RESULT([gettext() works with -lintl]); have_gettext="yes";
LIBS="$olibs -lintl",
AC_MSG_RESULT([gettext() doesn't work]);
LIBS=$olibs))
else

View File

@@ -1192,23 +1192,29 @@ install_vimrc(int idx)
fprintf(fd, " if arg3 =~ ' ' | let arg3 = '\"' . arg3 . '\"' | endif\n");
/* If the path has a space: When using cmd.exe (Win NT/2000/XP) put
* quotes around the whole command and around the diff command.
* quotes around the diff command and rely on the default value of
* shellxquote to solve the quoting problem for the whole command.
*
* Otherwise put a double quote just before the space and at the
* end of the command. Putting quotes around the whole thing
* doesn't work on Win 95/98/ME. This is mostly guessed! */
fprintf(fd, " let eq = ''\n");
fprintf(fd, " if $VIMRUNTIME =~ ' '\n");
fprintf(fd, " if &sh =~ '\\<cmd'\n");
fprintf(fd, " let cmd = '\"\"' . $VIMRUNTIME . '\\diff\"'\n");
fprintf(fd, " let eq = '\"'\n");
fprintf(fd, " if empty(&shellxquote)\n");
fprintf(fd, " let l:shxq_sav = ''\n");
fprintf(fd, " set shellxquote&\n");
fprintf(fd, " endif\n");
fprintf(fd, " let cmd = '\"' . $VIMRUNTIME . '\\diff\"'\n");
fprintf(fd, " else\n");
fprintf(fd, " let cmd = substitute($VIMRUNTIME, ' ', '\" ', '') . '\\diff\"'\n");
fprintf(fd, " endif\n");
fprintf(fd, " else\n");
fprintf(fd, " let cmd = $VIMRUNTIME . '\\diff'\n");
fprintf(fd, " endif\n");
fprintf(fd, " silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3 . eq\n");
fprintf(fd, " silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3\n");
fprintf(fd, " if exists('l:shxq_sav')\n");
fprintf(fd, " let &shellxquote=l:shxq_sav\n");
fprintf(fd, " endif\n");
fprintf(fd, "endfunction\n");
fprintf(fd, "\n");
}

View File

@@ -264,6 +264,7 @@ static char_u *do_insert_char_pre __ARGS((int c));
static colnr_T Insstart_textlen; /* length of line when insert started */
static colnr_T Insstart_blank_vcol; /* vcol for first inserted blank */
static int update_Insstart_orig = TRUE; /* set Insstart_orig to Insstart */
static char_u *last_insert = NULL; /* the text of the previous insert,
K_SPECIAL and CSI are escaped */
@@ -340,6 +341,9 @@ edit(cmdchar, startln, count)
* error message */
check_for_delay(TRUE);
/* set Insstart_orig to Insstart */
update_Insstart_orig = TRUE;
#ifdef HAVE_SANDBOX
/* Don't allow inserting in the sandbox. */
if (sandbox != 0)
@@ -631,6 +635,9 @@ edit(cmdchar, startln, count)
if (arrow_used) /* don't repeat insert when arrow key used */
count = 0;
if (update_Insstart_orig)
Insstart_orig = Insstart;
if (stop_insert_mode)
{
/* ":stopinsert" used or 'insertmode' reset */
@@ -1556,87 +1563,89 @@ ins_redraw(ready)
int conceal_update_lines = FALSE;
#endif
if (!char_avail())
{
if (char_avail())
return;
#if defined(FEAT_AUTOCMD) || defined(FEAT_CONCEAL)
/* Trigger CursorMoved if the cursor moved. Not when the popup menu is
* visible, the command might delete it. */
if (ready && (
/* Trigger CursorMoved if the cursor moved. Not when the popup menu is
* visible, the command might delete it. */
if (ready && (
# ifdef FEAT_AUTOCMD
has_cursormovedI()
has_cursormovedI()
# endif
# if defined(FEAT_AUTOCMD) && defined(FEAT_CONCEAL)
||
||
# endif
# ifdef FEAT_CONCEAL
curwin->w_p_cole > 0
curwin->w_p_cole > 0
# endif
)
&& !equalpos(last_cursormoved, curwin->w_cursor)
)
&& !equalpos(last_cursormoved, curwin->w_cursor)
# ifdef FEAT_INS_EXPAND
&& !pum_visible()
# endif
)
{
# ifdef FEAT_SYN_HL
/* Need to update the screen first, to make sure syntax
* highlighting is correct after making a change (e.g., inserting
* a "(". The autocommand may also require a redraw, so it's done
* again below, unfortunately. */
if (syntax_present(curwin) && must_redraw)
update_screen(0);
# endif
# ifdef FEAT_AUTOCMD
if (has_cursormovedI())
apply_autocmds(EVENT_CURSORMOVEDI, NULL, NULL, FALSE, curbuf);
# endif
# ifdef FEAT_CONCEAL
if (curwin->w_p_cole > 0)
{
conceal_old_cursor_line = last_cursormoved.lnum;
conceal_new_cursor_line = curwin->w_cursor.lnum;
conceal_update_lines = TRUE;
}
# endif
last_cursormoved = curwin->w_cursor;
}
#endif
#ifdef FEAT_AUTOCMD
/* Trigger TextChangedI if b_changedtick differs. */
if (ready && has_textchangedI()
&& last_changedtick != curbuf->b_changedtick
# ifdef FEAT_INS_EXPAND
&& !pum_visible()
# endif
)
{
# ifdef FEAT_SYN_HL
/* Need to update the screen first, to make sure syntax
* highlighting is correct after making a change (e.g., inserting
* a "(". The autocommand may also require a redraw, so it's done
* again below, unfortunately. */
if (syntax_present(curwin) && must_redraw)
update_screen(0);
# endif
# ifdef FEAT_AUTOCMD
if (has_cursormovedI())
apply_autocmds(EVENT_CURSORMOVEDI, NULL, NULL, FALSE, curbuf);
# endif
# ifdef FEAT_CONCEAL
if (curwin->w_p_cole > 0)
{
conceal_old_cursor_line = last_cursormoved.lnum;
conceal_new_cursor_line = curwin->w_cursor.lnum;
conceal_update_lines = TRUE;
}
# endif
last_cursormoved = curwin->w_cursor;
}
#endif
#ifdef FEAT_AUTOCMD
/* Trigger TextChangedI if b_changedtick differs. */
if (!ready && has_textchangedI()
&& last_changedtick != curbuf->b_changedtick
# ifdef FEAT_INS_EXPAND
&& !pum_visible()
# endif
)
{
if (last_changedtick_buf == curbuf)
apply_autocmds(EVENT_TEXTCHANGEDI, NULL, NULL, FALSE, curbuf);
last_changedtick_buf = curbuf;
last_changedtick = curbuf->b_changedtick;
}
#endif
if (must_redraw)
update_screen(0);
else if (clear_cmdline || redraw_cmdline)
showmode(); /* clear cmdline and show mode */
# if defined(FEAT_CONCEAL)
if ((conceal_update_lines
&& (conceal_old_cursor_line != conceal_new_cursor_line
|| conceal_cursor_line(curwin)))
|| need_cursor_line_redraw)
{
if (conceal_old_cursor_line != conceal_new_cursor_line)
update_single_line(curwin, conceal_old_cursor_line);
update_single_line(curwin, conceal_new_cursor_line == 0
? curwin->w_cursor.lnum : conceal_new_cursor_line);
curwin->w_valid &= ~VALID_CROW;
}
# endif
showruler(FALSE);
setcursor();
emsg_on_display = FALSE; /* may remove error message now */
)
{
if (last_changedtick_buf == curbuf)
apply_autocmds(EVENT_TEXTCHANGEDI, NULL, NULL, FALSE, curbuf);
last_changedtick_buf = curbuf;
last_changedtick = curbuf->b_changedtick;
}
#endif
if (must_redraw)
update_screen(0);
else if (clear_cmdline || redraw_cmdline)
showmode(); /* clear cmdline and show mode */
# if defined(FEAT_CONCEAL)
if ((conceal_update_lines
&& (conceal_old_cursor_line != conceal_new_cursor_line
|| conceal_cursor_line(curwin)))
|| need_cursor_line_redraw)
{
if (conceal_old_cursor_line != conceal_new_cursor_line)
update_single_line(curwin, conceal_old_cursor_line);
update_single_line(curwin, conceal_new_cursor_line == 0
? curwin->w_cursor.lnum : conceal_new_cursor_line);
curwin->w_valid &= ~VALID_CROW;
}
# endif
showruler(FALSE);
setcursor();
emsg_on_display = FALSE; /* may remove error message now */
}
/*
@@ -4178,6 +4187,7 @@ ins_compl_get_exp(ini)
char_u *dict = NULL;
int dict_f = 0;
compl_T *old_match;
int set_match_pos;
if (!compl_started)
{
@@ -4196,6 +4206,7 @@ ins_compl_get_exp(ini)
for (;;)
{
found_new_match = FAIL;
set_match_pos = FALSE;
/* For ^N/^P pick a new entry from e_cpt if compl_started is off,
* or if found_all says this entry is done. For ^X^L only use the
@@ -4215,6 +4226,10 @@ ins_compl_get_exp(ini)
dec(&first_match_pos);
last_match_pos = first_match_pos;
type = 0;
/* Remember the first match so that the loop stops when we
* wrap and come back there a second time. */
set_match_pos = TRUE;
}
else if (vim_strchr((char_u *)"buwU", *e_cpt) != NULL
&& (ins_buf = ins_compl_next_buf(ins_buf, *e_cpt)) != curbuf)
@@ -4379,7 +4394,7 @@ ins_compl_get_exp(ini)
if (ins_buf->b_p_inf)
p_scs = FALSE;
/* buffers other than curbuf are scanned from the beginning or the
/* Buffers other than curbuf are scanned from the beginning or the
* end but never from the middle, thus setting nowrapscan in this
* buffers is a good idea, on the other hand, we always set
* wrapscan for curbuf to avoid missing matches -- Acevedo,Webb */
@@ -4406,12 +4421,13 @@ ins_compl_get_exp(ini)
compl_pattern, 1L, SEARCH_KEEP + SEARCH_NFMSG,
RE_LAST, (linenr_T)0, NULL);
--msg_silent;
if (!compl_started)
if (!compl_started || set_match_pos)
{
/* set "compl_started" even on fail */
compl_started = TRUE;
first_match_pos = *pos;
last_match_pos = *pos;
set_match_pos = FALSE;
}
else if (first_match_pos.lnum == last_match_pos.lnum
&& first_match_pos.col == last_match_pos.col)
@@ -6914,6 +6930,7 @@ stop_insert(end_insert_pos, esc, nomove)
if (end_insert_pos != NULL)
{
curbuf->b_op_start = Insstart;
curbuf->b_op_start_orig = Insstart_orig;
curbuf->b_op_end = *end_insert_pos;
}
}
@@ -8248,6 +8265,7 @@ ins_ctrl_g()
/* Need to reset Insstart, esp. because a BS that joins
* a line to the previous one must save for undo. */
update_Insstart_orig = FALSE;
Insstart = curwin->w_cursor;
break;

View File

@@ -125,9 +125,6 @@ static dictitem_T globvars_var; /* variable used for g: */
*/
static hashtab_T compat_hashtab;
/* When using exists() don't auto-load a script. */
static int no_autoload = FALSE;
/*
* When recursively copying lists and dicts we need to remember which ones we
* have done to avoid endless recursiveness. This unique ID is used for that.
@@ -156,6 +153,11 @@ static int echo_attr = 0; /* attributes used for ":echo" */
/* Values for trans_function_name() argument: */
#define TFN_INT 1 /* internal function name OK */
#define TFN_QUIET 2 /* no error messages */
#define TFN_NO_AUTOLOAD 4 /* do not use script autoloading */
/* Values for get_lval() flags argument: */
#define GLV_QUIET TFN_QUIET /* no error messages */
#define GLV_NO_AUTOLOAD TFN_NO_AUTOLOAD /* do not use script autoloading */
/*
* Structure to hold info for a user function.
@@ -390,7 +392,7 @@ static void list_func_vars __ARGS((int *first));
static char_u *list_arg_vars __ARGS((exarg_T *eap, char_u *arg, int *first));
static char_u *ex_let_one __ARGS((char_u *arg, typval_T *tv, int copy, char_u *endchars, char_u *op));
static int check_changedtick __ARGS((char_u *arg));
static char_u *get_lval __ARGS((char_u *name, typval_T *rettv, lval_T *lp, int unlet, int skip, int quiet, int fne_flags));
static char_u *get_lval __ARGS((char_u *name, typval_T *rettv, lval_T *lp, int unlet, int skip, int flags, int fne_flags));
static void clear_lval __ARGS((lval_T *lp));
static void set_var_lval __ARGS((lval_T *lp, char_u *endp, typval_T *rettv, int copy, char_u *op));
static int tv_op __ARGS((typval_T *tv1, typval_T *tv2, char_u *op));
@@ -445,7 +447,7 @@ static int string2float __ARGS((char_u *text, float_T *value));
#endif
static int get_env_tv __ARGS((char_u **arg, typval_T *rettv, int evaluate));
static int find_internal_func __ARGS((char_u *name));
static char_u *deref_func_name __ARGS((char_u *name, int *lenp));
static char_u *deref_func_name __ARGS((char_u *name, int *lenp, int no_autoload));
static int get_func_tv __ARGS((char_u *name, int len, typval_T *rettv, char_u **arg, linenr_T firstline, linenr_T lastline, int *doesrange, int evaluate, dict_T *selfdict));
static int call_func __ARGS((char_u *funcname, int len, typval_T *rettv, int argcount, typval_T *argvars, linenr_T firstline, linenr_T lastline, int *doesrange, int evaluate, dict_T *selfdict));
static void emsg_funcname __ARGS((char *ermsg, char_u *name));
@@ -770,7 +772,7 @@ static char_u *find_name_end __ARGS((char_u *arg, char_u **expr_start, char_u **
static char_u * make_expanded_name __ARGS((char_u *in_start, char_u *expr_start, char_u *expr_end, char_u *in_end));
static int eval_isnamec __ARGS((int c));
static int eval_isnamec1 __ARGS((int c));
static int get_var_tv __ARGS((char_u *name, int len, typval_T *rettv, int verbose));
static int get_var_tv __ARGS((char_u *name, int len, typval_T *rettv, int verbose, int no_autoload));
static int handle_subscript __ARGS((char_u **arg, typval_T *rettv, int evaluate, int verbose));
static typval_T *alloc_tv __ARGS((void));
static typval_T *alloc_string_tv __ARGS((char_u *string));
@@ -781,8 +783,8 @@ static linenr_T get_tv_lnum_buf __ARGS((typval_T *argvars, buf_T *buf));
static char_u *get_tv_string __ARGS((typval_T *varp));
static char_u *get_tv_string_buf __ARGS((typval_T *varp, char_u *buf));
static char_u *get_tv_string_buf_chk __ARGS((typval_T *varp, char_u *buf));
static dictitem_T *find_var __ARGS((char_u *name, hashtab_T **htp));
static dictitem_T *find_var_in_ht __ARGS((hashtab_T *ht, int htname, char_u *varname, int writing));
static dictitem_T *find_var __ARGS((char_u *name, hashtab_T **htp, int no_autoload));
static dictitem_T *find_var_in_ht __ARGS((hashtab_T *ht, int htname, char_u *varname, int no_autoload));
static hashtab_T *find_var_ht __ARGS((char_u *name, char_u **varname));
static void vars_clear_ext __ARGS((hashtab_T *ht, int free_val));
static void delete_var __ARGS((hashtab_T *ht, hashitem_T *hi));
@@ -1059,7 +1061,7 @@ var_redir_start(name, append)
ga_init2(&redir_ga, (int)sizeof(char), 500);
/* Parse the variable name (can be a dict or list entry). */
redir_endp = get_lval(redir_varname, NULL, redir_lval, FALSE, FALSE, FALSE,
redir_endp = get_lval(redir_varname, NULL, redir_lval, FALSE, FALSE, 0,
FNE_CHECK_START);
if (redir_endp == NULL || redir_lval->ll_name == NULL || *redir_endp != NUL)
{
@@ -1150,7 +1152,7 @@ var_redir_stop()
/* Call get_lval() again, if it's inside a Dict or List it may
* have changed. */
redir_endp = get_lval(redir_varname, NULL, redir_lval,
FALSE, FALSE, FALSE, FNE_CHECK_START);
FALSE, FALSE, 0, FNE_CHECK_START);
if (redir_endp != NULL && redir_lval->ll_name != NULL)
set_var_lval(redir_lval, redir_endp, &tv, FALSE, (char_u *)".");
clear_lval(redir_lval);
@@ -2239,7 +2241,7 @@ list_arg_vars(eap, arg, first)
{
if (tofree != NULL)
name = tofree;
if (get_var_tv(name, len, &tv, TRUE) == FAIL)
if (get_var_tv(name, len, &tv, TRUE, FALSE) == FAIL)
error = TRUE;
else
{
@@ -2474,7 +2476,7 @@ ex_let_one(arg, tv, copy, endchars, op)
{
lval_T lv;
p = get_lval(arg, tv, &lv, FALSE, FALSE, FALSE, FNE_CHECK_START);
p = get_lval(arg, tv, &lv, FALSE, FALSE, 0, FNE_CHECK_START);
if (p != NULL && lv.ll_name != NULL)
{
if (endchars != NULL && vim_strchr(endchars, *skipwhite(p)) == NULL)
@@ -2519,18 +2521,22 @@ check_changedtick(arg)
* "unlet" is TRUE for ":unlet": slightly different behavior when something is
* wrong; must end in space or cmd separator.
*
* flags:
* GLV_QUIET: do not give error messages
* GLV_NO_AUTOLOAD: do not use script autoloading
*
* Returns a pointer to just after the name, including indexes.
* When an evaluation error occurs "lp->ll_name" is NULL;
* Returns NULL for a parsing error. Still need to free items in "lp"!
*/
static char_u *
get_lval(name, rettv, lp, unlet, skip, quiet, fne_flags)
get_lval(name, rettv, lp, unlet, skip, flags, fne_flags)
char_u *name;
typval_T *rettv;
lval_T *lp;
int unlet;
int skip;
int quiet; /* don't give error messages */
int flags; /* GLV_ values */
int fne_flags; /* flags for find_name_end() */
{
char_u *p;
@@ -2544,6 +2550,7 @@ get_lval(name, rettv, lp, unlet, skip, quiet, fne_flags)
char_u *key = NULL;
int len;
hashtab_T *ht;
int quiet = flags & GLV_QUIET;
/* Clear everything in "lp". */
vim_memset(lp, 0, sizeof(lval_T));
@@ -2591,7 +2598,7 @@ get_lval(name, rettv, lp, unlet, skip, quiet, fne_flags)
cc = *p;
*p = NUL;
v = find_var(lp->ll_name, &ht);
v = find_var(lp->ll_name, &ht, flags & GLV_NO_AUTOLOAD);
if (v == NULL && !quiet)
EMSG2(_(e_undefvar), lp->ll_name);
*p = cc;
@@ -2904,7 +2911,7 @@ set_var_lval(lp, endp, rettv, copy, op)
/* handle +=, -= and .= */
if (get_var_tv(lp->ll_name, (int)STRLEN(lp->ll_name),
&tv, TRUE) == OK)
&tv, TRUE, FALSE) == OK)
{
if (tv_op(&tv, rettv, op) == OK)
set_var(lp->ll_name, &tv, FALSE);
@@ -3425,7 +3432,7 @@ ex_call(eap)
/* If it is the name of a variable of type VAR_FUNC use its contents. */
len = (int)STRLEN(tofree);
name = deref_func_name(tofree, &len);
name = deref_func_name(tofree, &len, FALSE);
/* Skip white space to allow ":call func ()". Not good, but required for
* backward compatibility. */
@@ -3556,7 +3563,7 @@ ex_unletlock(eap, argstart, deep)
do
{
/* Parse the name and find the end. */
name_end = get_lval(arg, NULL, &lv, TRUE, eap->skip || error, FALSE,
name_end = get_lval(arg, NULL, &lv, TRUE, eap->skip || error, 0,
FNE_CHECK_START);
if (lv.ll_name == NULL)
error = TRUE; /* error but continue parsing */
@@ -3709,7 +3716,7 @@ do_lock_var(lp, name_end, deep, lock)
ret = FAIL;
else
{
di = find_var(lp->ll_name, NULL);
di = find_var(lp->ll_name, NULL, TRUE);
if (di == NULL)
ret = FAIL;
else
@@ -5152,7 +5159,7 @@ eval7(arg, rettv, evaluate, want_string)
{
/* If "s" is the name of a variable of type VAR_FUNC
* use its contents. */
s = deref_func_name(s, &len);
s = deref_func_name(s, &len, !evaluate);
/* Invoke the function. */
ret = get_func_tv(s, len, rettv, arg,
@@ -5179,7 +5186,7 @@ eval7(arg, rettv, evaluate, want_string)
}
}
else if (evaluate)
ret = get_var_tv(s, len, rettv, TRUE);
ret = get_var_tv(s, len, rettv, TRUE, FALSE);
else
ret = OK;
}
@@ -6418,6 +6425,16 @@ list_insert_tv(l, tv, item)
if (ni == NULL)
return FAIL;
copy_tv(tv, &ni->li_tv);
list_insert(l, ni, item);
return OK;
}
void
list_insert(l, ni, item)
list_T *l;
listitem_T *ni;
listitem_T *item;
{
if (item == NULL)
/* Append new item at end of list. */
list_append(l, ni);
@@ -6439,7 +6456,6 @@ list_insert_tv(l, tv, item)
item->li_prev = ni;
++l->lv_len;
}
return OK;
}
/*
@@ -7998,7 +8014,7 @@ static struct fst
{"log10", 1, 1, f_log10},
#endif
#ifdef FEAT_LUA
{"luaeval", 1, 2, f_luaeval},
{"luaeval", 1, 2, f_luaeval},
#endif
{"map", 2, 2, f_map},
{"maparg", 1, 4, f_maparg},
@@ -8275,16 +8291,17 @@ find_internal_func(name)
* name it contains, otherwise return "name".
*/
static char_u *
deref_func_name(name, lenp)
deref_func_name(name, lenp, no_autoload)
char_u *name;
int *lenp;
int no_autoload;
{
dictitem_T *v;
int cc;
cc = name[*lenp];
name[*lenp] = NUL;
v = find_var(name, NULL);
v = find_var(name, NULL, no_autoload);
name[*lenp] = cc;
if (v != NULL && v->di_tv.v_type == VAR_FUNC)
{
@@ -9186,7 +9203,7 @@ f_byte2line(argvars, rettv)
byteidx(argvars, rettv, comp)
typval_T *argvars;
typval_T *rettv;
int comp;
int comp UNUSED;
{
#ifdef FEAT_MBYTE
char_u *t;
@@ -10039,8 +10056,6 @@ f_exists(argvars, rettv)
int n = FALSE;
int len = 0;
no_autoload = TRUE;
p = get_tv_string(&argvars[0]);
if (*p == '$') /* environment variable */
{
@@ -10091,7 +10106,7 @@ f_exists(argvars, rettv)
{
if (tofree != NULL)
name = tofree;
n = (get_var_tv(name, len, &tv, FALSE) == OK);
n = (get_var_tv(name, len, &tv, FALSE, TRUE) == OK);
if (n)
{
/* handle d.key, l[idx], f(expr) */
@@ -10107,8 +10122,6 @@ f_exists(argvars, rettv)
}
rettv->vval.v_number = n;
no_autoload = FALSE;
}
#ifdef FEAT_FLOAT
@@ -11119,6 +11132,8 @@ get_buffer_lines(buf, start, end, retlist, rettv)
{
char_u *p;
rettv->v_type = VAR_STRING;
rettv->vval.v_string = NULL;
if (retlist && rettv_list_alloc(rettv) == FAIL)
return;
@@ -11131,8 +11146,6 @@ get_buffer_lines(buf, start, end, retlist, rettv)
p = ml_get_buf(buf, start, FALSE);
else
p = (char_u *)"";
rettv->v_type = VAR_STRING;
rettv->vval.v_string = vim_strsave(p);
}
else
@@ -13344,8 +13357,8 @@ f_islocked(argvars, rettv)
dictitem_T *di;
rettv->vval.v_number = -1;
end = get_lval(get_tv_string(&argvars[0]), NULL, &lv, FALSE, FALSE, FALSE,
FNE_CHECK_START);
end = get_lval(get_tv_string(&argvars[0]), NULL, &lv, FALSE, FALSE,
GLV_NO_AUTOLOAD, FNE_CHECK_START);
if (end != NULL && lv.ll_name != NULL)
{
if (*end != NUL)
@@ -13358,7 +13371,7 @@ f_islocked(argvars, rettv)
rettv->vval.v_number = 1; /* always locked */
else
{
di = find_var(lv.ll_name, NULL);
di = find_var(lv.ll_name, NULL, TRUE);
if (di != NULL)
{
/* Consider a variable locked when:
@@ -13892,6 +13905,7 @@ find_some_match(argvars, rettv, type)
int type;
{
char_u *str = NULL;
long len = 0;
char_u *expr = NULL;
char_u *pat;
regmatch_T regmatch;
@@ -13931,7 +13945,10 @@ find_some_match(argvars, rettv, type)
li = l->lv_first;
}
else
{
expr = str = get_tv_string(&argvars[0]);
len = (long)STRLEN(str);
}
pat = get_tv_string_buf_chk(&argvars[1], patbuf);
if (pat == NULL)
@@ -13955,7 +13972,7 @@ find_some_match(argvars, rettv, type)
{
if (start < 0)
start = 0;
if (start > (long)STRLEN(str))
if (start > len)
goto theend;
/* When "count" argument is there ignore matches before "start",
* otherwise skip part of the string. Differs when pattern is "^"
@@ -13963,7 +13980,10 @@ find_some_match(argvars, rettv, type)
if (argvars[3].v_type != VAR_UNKNOWN)
startcol = start;
else
{
str += start;
len -= start;
}
}
if (argvars[3].v_type != VAR_UNKNOWN)
@@ -14013,6 +14033,12 @@ find_some_match(argvars, rettv, type)
#else
startcol = (colnr_T)(regmatch.startp[0] + 1 - str);
#endif
if (startcol > (colnr_T)len
|| str + startcol <= regmatch.startp[0])
{
match = FALSE;
break;
}
}
}
@@ -14141,8 +14167,8 @@ f_matcharg(argvars, rettv)
}
else
{
list_append_string(rettv->vval.v_list, NUL, -1);
list_append_string(rettv->vval.v_list, NUL, -1);
list_append_string(rettv->vval.v_list, NULL, -1);
list_append_string(rettv->vval.v_list, NULL, -1);
}
}
#endif
@@ -16924,7 +16950,7 @@ f_shellescape(argvars, rettv)
typval_T *rettv;
{
rettv->vval.v_string = vim_strsave_shellescape(
get_tv_string(&argvars[0]), non_zero_arg(&argvars[1]));
get_tv_string(&argvars[0]), non_zero_arg(&argvars[1]), TRUE);
rettv->v_type = VAR_STRING;
}
@@ -19774,11 +19800,12 @@ set_cmdarg(eap, oldarg)
* Return OK or FAIL.
*/
static int
get_var_tv(name, len, rettv, verbose)
get_var_tv(name, len, rettv, verbose, no_autoload)
char_u *name;
int len; /* length of "name" */
typval_T *rettv; /* NULL when only checking existence */
int verbose; /* may give error message */
int no_autoload; /* do not use script autoloading */
{
int ret = OK;
typval_T *tv = NULL;
@@ -19805,7 +19832,7 @@ get_var_tv(name, len, rettv, verbose)
*/
else
{
v = find_var(name, NULL);
v = find_var(name, NULL, no_autoload);
if (v != NULL)
tv = &v->di_tv;
}
@@ -19845,24 +19872,30 @@ handle_subscript(arg, rettv, evaluate, verbose)
while (ret == OK
&& (**arg == '['
|| (**arg == '.' && rettv->v_type == VAR_DICT)
|| (**arg == '(' && rettv->v_type == VAR_FUNC))
|| (**arg == '(' && (!evaluate || rettv->v_type == VAR_FUNC)))
&& !vim_iswhite(*(*arg - 1)))
{
if (**arg == '(')
{
/* need to copy the funcref so that we can clear rettv */
functv = *rettv;
rettv->v_type = VAR_UNKNOWN;
if (evaluate)
{
functv = *rettv;
rettv->v_type = VAR_UNKNOWN;
/* Invoke the function. Recursive! */
s = functv.vval.v_string;
/* Invoke the function. Recursive! */
s = functv.vval.v_string;
}
else
s = (char_u *)"";
ret = get_func_tv(s, (int)STRLEN(s), rettv, arg,
curwin->w_cursor.lnum, curwin->w_cursor.lnum,
&len, evaluate, selfdict);
/* Clear the funcref afterwards, so that deleting it while
* evaluating the arguments is possible (see test55). */
clear_tv(&functv);
if (evaluate)
clear_tv(&functv);
/* Stop the expression evaluation when immediately aborting on
* error, or when an interrupt occurred or an exception was thrown
@@ -20201,9 +20234,10 @@ get_tv_string_buf_chk(varp, buf)
* hashtab_T used.
*/
static dictitem_T *
find_var(name, htp)
find_var(name, htp, no_autoload)
char_u *name;
hashtab_T **htp;
int no_autoload;
{
char_u *varname;
hashtab_T *ht;
@@ -20213,7 +20247,7 @@ find_var(name, htp)
*htp = ht;
if (ht == NULL)
return NULL;
return find_var_in_ht(ht, *name, varname, htp != NULL);
return find_var_in_ht(ht, *name, varname, no_autoload || htp != NULL);
}
/*
@@ -20221,11 +20255,11 @@ find_var(name, htp)
* Returns NULL if not found.
*/
static dictitem_T *
find_var_in_ht(ht, htname, varname, writing)
find_var_in_ht(ht, htname, varname, no_autoload)
hashtab_T *ht;
int htname;
char_u *varname;
int writing;
int no_autoload;
{
hashitem_T *hi;
@@ -20257,7 +20291,7 @@ find_var_in_ht(ht, htname, varname, writing)
* worked find the variable again. Don't auto-load a script if it was
* loaded already, otherwise it would be loaded every time when
* checking if a function name is a Funcref variable. */
if (ht == &globvarht && !writing)
if (ht == &globvarht && !no_autoload)
{
/* Note: script_autoload() may make "hi" invalid. It must either
* be obtained again or not used. */
@@ -20337,7 +20371,7 @@ get_var_value(name)
{
dictitem_T *v;
v = find_var(name, NULL);
v = find_var(name, NULL, FALSE);
if (v == NULL)
return NULL;
return get_tv_string(&v->di_tv);
@@ -21423,6 +21457,7 @@ ex_function(eap)
if (STRCMP(((char_u **)(newargs.ga_data))[i], arg) == 0)
{
EMSG2(_("E853: Duplicate argument name: %s"), arg);
vim_free(arg);
goto erret;
}
@@ -21666,7 +21701,7 @@ ex_function(eap)
*/
if (fudi.fd_dict == NULL)
{
v = find_var(name, &ht);
v = find_var(name, &ht, FALSE);
if (v != NULL && v->di_tv.v_type == VAR_FUNC)
{
emsg_funcname(N_("E707: Function name conflicts with variable: %s"),
@@ -21824,8 +21859,9 @@ ret_free:
* Also handles a Funcref in a List or Dictionary.
* Returns the function name in allocated memory, or NULL for failure.
* flags:
* TFN_INT: internal function name OK
* TFN_QUIET: be quiet
* TFN_INT: internal function name OK
* TFN_QUIET: be quiet
* TFN_NO_AUTOLOAD: do not use script autoloading
* Advances "pp" to just after the function name (if no error).
*/
static char_u *
@@ -21863,7 +21899,8 @@ trans_function_name(pp, skip, flags, fdp)
if (lead > 2)
start += lead;
end = get_lval(start, NULL, &lv, FALSE, skip, flags & TFN_QUIET,
/* Note that TFN_ flags use the same values as GLV_ flags. */
end = get_lval(start, NULL, &lv, FALSE, skip, flags,
lead > 2 ? 0 : FNE_CHECK_START);
if (end == start)
{
@@ -21925,14 +21962,14 @@ trans_function_name(pp, skip, flags, fdp)
if (lv.ll_exp_name != NULL)
{
len = (int)STRLEN(lv.ll_exp_name);
name = deref_func_name(lv.ll_exp_name, &len);
name = deref_func_name(lv.ll_exp_name, &len, flags & TFN_NO_AUTOLOAD);
if (name == lv.ll_exp_name)
name = NULL;
}
else
{
len = (int)(end - *pp);
name = deref_func_name(*pp, &len);
name = deref_func_name(*pp, &len, flags & TFN_NO_AUTOLOAD);
if (name == *pp)
name = NULL;
}
@@ -22140,7 +22177,8 @@ function_exists(name)
char_u *p;
int n = FALSE;
p = trans_function_name(&nm, FALSE, TFN_INT|TFN_QUIET, NULL);
p = trans_function_name(&nm, FALSE, TFN_INT|TFN_QUIET|TFN_NO_AUTOLOAD,
NULL);
nm = skipwhite(nm);
/* Only accept "funcname", "funcname ", "funcname (..." and
@@ -22387,10 +22425,6 @@ script_autoload(name, reload)
int ret = FALSE;
int i;
/* Return quickly when autoload disabled. */
if (no_autoload)
return FALSE;
/* If there is no '#' after name[0] there is no package name. */
p = vim_strchr(name, AUTOLOAD_CHAR);
if (p == NULL || p == name)
@@ -24322,6 +24356,17 @@ repeat:
}
}
if (src[*usedlen] == ':' && src[*usedlen + 1] == 'S')
{
p = vim_strsave_shellescape(*fnamep, FALSE, FALSE);
if (p == NULL)
return -1;
vim_free(*bufp);
*bufp = *fnamep = p;
*fnamelen = (int)STRLEN(p);
*usedlen += 2;
}
return valid;
}
@@ -24345,7 +24390,7 @@ do_string_sub(str, pat, sub, flags)
garray_T ga;
char_u *ret;
char_u *save_cpo;
int zero_width;
char_u *zero_width = NULL;
/* Make 'cpoptions' empty, so that the 'l' flag doesn't work here */
save_cpo = p_cpo;
@@ -24362,6 +24407,19 @@ do_string_sub(str, pat, sub, flags)
tail = str;
while (vim_regexec_nl(&regmatch, str, (colnr_T)(tail - str)))
{
/* Skip empty match except for first match. */
if (regmatch.startp[0] == regmatch.endp[0])
{
if (zero_width == regmatch.startp[0])
{
/* avoid getting stuck on a match with an empty string */
*((char_u *)ga.ga_data + ga.ga_len) = *tail++;
++ga.ga_len;
continue;
}
zero_width = regmatch.startp[0];
}
/*
* Get some space for a temporary buffer to do the substitution
* into. It will contain:
@@ -24384,17 +24442,9 @@ do_string_sub(str, pat, sub, flags)
(void)vim_regsub(&regmatch, sub, (char_u *)ga.ga_data
+ ga.ga_len + i, TRUE, TRUE, FALSE);
ga.ga_len += i + sublen - 1;
zero_width = (tail == regmatch.endp[0]
|| regmatch.startp[0] == regmatch.endp[0]);
tail = regmatch.endp[0];
if (*tail == NUL)
break;
if (zero_width)
{
/* avoid getting stuck on a match with an empty string */
*((char_u *)ga.ga_data + ga.ga_len) = *tail++;
++ga.ga_len;
}
if (!do_all)
break;
}

View File

@@ -3253,8 +3253,10 @@ do_ecmd(fnum, ffname, sfname, eap, newlnum, flags, oldwin)
if ( ((!other_file && !(flags & ECMD_OLDBUF))
|| (curbuf->b_nwindows == 1
&& !(flags & (ECMD_HIDE | ECMD_ADDBUF))))
&& check_changed(curbuf, p_awa, !other_file,
(flags & ECMD_FORCEIT), FALSE))
&& check_changed(curbuf, (p_awa ? CCGD_AW : 0)
| (other_file ? 0 : CCGD_MULTWIN)
| ((flags & ECMD_FORCEIT) ? CCGD_FORCEIT : 0)
| (eap == NULL ? 0 : CCGD_EXCMD)))
{
if (fnum == 0 && other_file && ffname != NULL)
(void)setaltfname(ffname, sfname, newlnum < 0 ? 0 : newlnum);
@@ -4097,12 +4099,12 @@ ex_z(eap)
* 'scroll' */
if (eap->forceit)
bigness = curwin->w_height;
else if (firstwin == lastwin)
bigness = curwin->w_p_scr * 2;
#ifdef FEAT_WINDOWS
else
else if (firstwin != lastwin)
bigness = curwin->w_height - 3;
#endif
else
bigness = curwin->w_p_scr * 2;
if (bigness < 1)
bigness = 1;
@@ -5934,14 +5936,18 @@ find_help_tags(arg, num_matches, matches, keep_lang)
"?", ":?", "?<CR>", "g?", "g?g?", "g??", "z?",
"/\\?", "/\\z(\\)", "\\=", ":s\\=",
"[count]", "[quotex]", "[range]",
"[pattern]", "\\|", "\\%$"};
"[pattern]", "\\|", "\\%$",
"s/\\~", "s/\\U", "s/\\L",
"s/\\1", "s/\\2", "s/\\3", "s/\\9"};
static char *(rtable[]) = {"star", "gstar", "[star", "]star", ":star",
"/star", "/\\\\star", "quotestar", "starstar",
"cpo-star", "/\\\\(\\\\)", "/\\\\%(\\\\)",
"?", ":?", "?<CR>", "g?", "g?g?", "g??", "z?",
"/\\\\?", "/\\\\z(\\\\)", "\\\\=", ":s\\\\=",
"\\[count]", "\\[quotex]", "\\[range]",
"\\[pattern]", "\\\\bar", "/\\\\%\\$"};
"\\[pattern]", "\\\\bar", "/\\\\%\\$",
"s/\\\\\\~", "s/\\\\U", "s/\\\\L",
"s/\\\\1", "s/\\\\2", "s/\\\\3", "s/\\\\9"};
int flags;
d = IObuff; /* assume IObuff is long enough! */
@@ -5980,7 +5986,7 @@ find_help_tags(arg, num_matches, matches, keep_lang)
/* Replace:
* "[:...:]" with "\[:...:]"
* "[++...]" with "\[++...]"
* "\{" with "\\{"
* "\{" with "\\{" -- matching "} \}"
*/
if ((arg[0] == '[' && (arg[1] == ':'
|| (arg[1] == '+' && arg[2] == '+')))
@@ -7664,7 +7670,7 @@ ex_drop(eap)
# ifdef FEAT_WINDOWS
++emsg_off;
# endif
split = check_changed(curbuf, TRUE, FALSE, FALSE, FALSE);
split = check_changed(curbuf, CCGD_AW | CCGD_EXCMD);
# ifdef FEAT_WINDOWS
--emsg_off;
# else

View File

@@ -477,6 +477,8 @@ EX(CMD_keepmarks, "keepmarks", ex_wrongmodifier,
NEEDARG|EXTRA|NOTRLCOM),
EX(CMD_keepjumps, "keepjumps", ex_wrongmodifier,
NEEDARG|EXTRA|NOTRLCOM),
EX(CMD_keeppatterns, "keeppatterns", ex_wrongmodifier,
NEEDARG|EXTRA|NOTRLCOM),
EX(CMD_keepalt, "keepalt", ex_wrongmodifier,
NEEDARG|EXTRA|NOTRLCOM),
EX(CMD_list, "list", ex_print,

View File

@@ -1436,20 +1436,20 @@ autowrite_all()
}
/*
* return TRUE if buffer was changed and cannot be abandoned.
* Return TRUE if buffer was changed and cannot be abandoned.
* For flags use the CCGD_ values.
*/
int
check_changed(buf, checkaw, mult_win, forceit, allbuf)
check_changed(buf, flags)
buf_T *buf;
int checkaw; /* do autowrite if buffer was changed */
int mult_win; /* check also when several wins for the buf */
int forceit;
int allbuf UNUSED; /* may write all buffers */
int flags;
{
int forceit = (flags & CCGD_FORCEIT);
if ( !forceit
&& bufIsChanged(buf)
&& (mult_win || buf->b_nwindows <= 1)
&& (!checkaw || autowrite(buf, forceit) == FAIL))
&& ((flags & CCGD_MULTWIN) || buf->b_nwindows <= 1)
&& (!(flags & CCGD_AW) || autowrite(buf, forceit) == FAIL))
{
#if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
if ((p_confirm || cmdmod.confirm) && p_write)
@@ -1457,7 +1457,7 @@ check_changed(buf, checkaw, mult_win, forceit, allbuf)
buf_T *buf2;
int count = 0;
if (allbuf)
if (flags & CCGD_ALLBUF)
for (buf2 = firstbuf; buf2 != NULL; buf2 = buf2->b_next)
if (bufIsChanged(buf2)
&& (buf2->b_ffname != NULL
@@ -1480,7 +1480,10 @@ check_changed(buf, checkaw, mult_win, forceit, allbuf)
return bufIsChanged(buf);
}
#endif
EMSG(_(e_nowrtmsg));
if (flags & CCGD_EXCMD)
EMSG(_(e_nowrtmsg));
else
EMSG(_(e_nowrtmsg_nobang));
return TRUE;
}
return FALSE;
@@ -1690,7 +1693,9 @@ check_changed_any(hidden)
{
/* Try auto-writing the buffer. If this fails but the buffer no
* longer exists it's not changed, that's OK. */
if (check_changed(buf, p_awa, TRUE, FALSE, TRUE) && buf_valid(buf))
if (check_changed(buf, (p_awa ? CCGD_AW : 0)
| CCGD_MULTWIN
| CCGD_ALLBUF) && buf_valid(buf))
break; /* didn't save - still changes */
}
}
@@ -2274,7 +2279,10 @@ do_argfile(eap, argn)
vim_free(p);
}
if ((!P_HID(curbuf) || !other)
&& check_changed(curbuf, TRUE, !other, eap->forceit, FALSE))
&& check_changed(curbuf, CCGD_AW
| (other ? 0 : CCGD_MULTWIN)
| (eap->forceit ? CCGD_FORCEIT : 0)
| CCGD_EXCMD))
return;
}
@@ -2315,7 +2323,9 @@ ex_next(eap)
*/
if ( P_HID(curbuf)
|| eap->cmdidx == CMD_snext
|| !check_changed(curbuf, TRUE, FALSE, eap->forceit, FALSE))
|| !check_changed(curbuf, CCGD_AW
| (eap->forceit ? CCGD_FORCEIT : 0)
| CCGD_EXCMD))
{
if (*eap->arg != NUL) /* redefine file list */
{
@@ -2458,7 +2468,9 @@ ex_listdo(eap)
if (eap->cmdidx == CMD_windo
|| eap->cmdidx == CMD_tabdo
|| P_HID(curbuf)
|| !check_changed(curbuf, TRUE, FALSE, eap->forceit, FALSE))
|| !check_changed(curbuf, CCGD_AW
| (eap->forceit ? CCGD_FORCEIT : 0)
| CCGD_EXCMD))
{
/* start at the first argument/window/buffer */
i = 0;

View File

@@ -1843,6 +1843,11 @@ do_one_cmd(cmdlinep, sourcing,
cmdmod.keepalt = TRUE;
continue;
}
if (checkforcmd(&ea.cmd, "keeppatterns", 5))
{
cmdmod.keeppatterns = TRUE;
continue;
}
if (!checkforcmd(&ea.cmd, "keepjumps", 5))
break;
cmdmod.keepjumps = TRUE;
@@ -2584,6 +2589,7 @@ do_one_cmd(cmdlinep, sourcing,
case CMD_keepalt:
case CMD_keepjumps:
case CMD_keepmarks:
case CMD_keeppatterns:
case CMD_leftabove:
case CMD_let:
case CMD_lockmarks:
@@ -3089,6 +3095,7 @@ static struct cmdmod
{"keepalt", 5, FALSE},
{"keepjumps", 5, FALSE},
{"keepmarks", 3, FALSE},
{"keeppatterns", 5, FALSE},
{"leftabove", 5, FALSE},
{"lockmarks", 3, FALSE},
{"noautocmd", 3, FALSE},
@@ -3254,7 +3261,11 @@ set_one_cmd_context(xp, buff)
++p;
/* for python 3.x: ":py3*" commands completion */
if (cmd[0] == 'p' && cmd[1] == 'y' && p == cmd + 2 && *p == '3')
{
++p;
while (ASCII_ISALPHA(*p) || *p == '*')
++p;
}
len = (int)(p - cmd);
if (len == 0)
@@ -3597,6 +3608,7 @@ set_one_cmd_context(xp, buff)
case CMD_keepalt:
case CMD_keepjumps:
case CMD_keepmarks:
case CMD_keeppatterns:
case CMD_leftabove:
case CMD_lockmarks:
case CMD_rightbelow:
@@ -6565,7 +6577,9 @@ ex_quit(eap)
if (check_more(FALSE, eap->forceit) == OK && only_one_window())
exiting = TRUE;
if ((!P_HID(curbuf)
&& check_changed(curbuf, p_awa, FALSE, eap->forceit, FALSE))
&& check_changed(curbuf, (p_awa ? CCGD_AW : 0)
| (eap->forceit ? CCGD_FORCEIT : 0)
| CCGD_EXCMD))
|| check_more(TRUE, eap->forceit) == FAIL
|| (only_one_window() && check_changed_any(eap->forceit)))
{
@@ -7099,7 +7113,7 @@ handle_drop(filec, filev, split)
if (!P_HID(curbuf) && !split)
{
++emsg_off;
split = check_changed(curbuf, TRUE, FALSE, FALSE, FALSE);
split = check_changed(curbuf, CCGD_AW);
--emsg_off;
}
if (split)
@@ -7361,7 +7375,11 @@ ex_recover(eap)
{
/* Set recoverymode right away to avoid the ATTENTION prompt. */
recoverymode = TRUE;
if (!check_changed(curbuf, p_awa, TRUE, eap->forceit, FALSE)
if (!check_changed(curbuf, (p_awa ? CCGD_AW : 0)
| CCGD_MULTWIN
| (eap->forceit ? CCGD_FORCEIT : 0)
| CCGD_EXCMD)
&& (*eap->arg == NUL
|| setfname(curbuf, eap->arg, NULL, TRUE) == OK))
ml_recover();
@@ -8036,6 +8054,8 @@ ex_syncbind(eap)
{
#ifdef FEAT_SCROLLBIND
win_T *wp;
win_T *save_curwin = curwin;
buf_T *save_curbuf = curbuf;
long topline;
long y;
linenr_T old_linenr = curwin->w_cursor.lnum;
@@ -8067,13 +8087,13 @@ ex_syncbind(eap)
/*
* set all scrollbind windows to the same topline
* Set all scrollbind windows to the same topline.
*/
wp = curwin;
for (curwin = firstwin; curwin; curwin = curwin->w_next)
{
if (curwin->w_p_scb)
{
curbuf = curwin->w_buffer;
y = topline - curwin->w_topline;
if (y > 0)
scrollup(y, TRUE);
@@ -8087,7 +8107,8 @@ ex_syncbind(eap)
#endif
}
}
curwin = wp;
curwin = save_curwin;
curbuf = save_curbuf;
if (curwin->w_p_scb)
{
did_syncbind = TRUE;
@@ -8207,6 +8228,7 @@ post_chdir(local)
int local;
{
vim_free(curwin->w_localdir);
curwin->w_localdir = NULL;
if (local)
{
/* If still in global directory, need to remember current
@@ -8223,7 +8245,6 @@ post_chdir(local)
* name. */
vim_free(globaldir);
globaldir = NULL;
curwin->w_localdir = NULL;
}
shorten_fnames(TRUE);
@@ -8350,7 +8371,7 @@ ex_sleep(eap)
{
n = W_WINROW(curwin) + curwin->w_wrow - msg_scrolled;
if (n >= 0)
windgoto((int)n, curwin->w_wcol);
windgoto((int)n, W_WINCOL(curwin) + curwin->w_wcol);
}
len = eap->line2;
@@ -8556,6 +8577,11 @@ ex_operators(eap)
beginline(BL_SOL | BL_FIX);
}
#if defined(FEAT_VISUAL)
if (VIsual_active)
end_visual_mode();
#endif
switch (eap->cmdidx)
{
case CMD_delete:

View File

@@ -320,6 +320,17 @@ free_msglist(l)
}
}
/*
* Free global "*msg_list" and the messages it contains, then set "*msg_list"
* to NULL.
*/
void
free_global_msglist()
{
free_msglist(*msg_list);
*msg_list = NULL;
}
/*
* Throw the message specified in the call to cause_errthrow() above as an
* error exception. If cstack is NULL, postpone the throw until do_cmdline()
@@ -410,66 +421,41 @@ do_intthrow(cstack)
return TRUE;
}
/*
* Throw a new exception. Return FAIL when out of memory or it was tried to
* throw an illegal user exception. "value" is the exception string for a user
* or interrupt exception, or points to a message list in case of an error
* exception.
* Get an exception message that is to be stored in current_exception->value.
*/
static int
throw_exception(value, type, cmdname)
char_u *
get_exception_string(value, type, cmdname, should_free)
void *value;
int type;
char_u *cmdname;
int *should_free;
{
except_T *excp;
char_u *p, *mesg, *val;
char_u *ret, *mesg;
int cmdlen;
/*
* Disallow faking Interrupt or error exceptions as user exceptions. They
* would be treated differently from real interrupt or error exceptions when
* no active try block is found, see do_cmdline().
*/
if (type == ET_USER)
{
if (STRNCMP((char_u *)value, "Vim", 3) == 0 &&
(((char_u *)value)[3] == NUL || ((char_u *)value)[3] == ':' ||
((char_u *)value)[3] == '('))
{
EMSG(_("E608: Cannot :throw exceptions with 'Vim' prefix"));
goto fail;
}
}
excp = (except_T *)alloc((unsigned)sizeof(except_T));
if (excp == NULL)
goto nomem;
char_u *p, *val;
if (type == ET_ERROR)
{
/* Store the original message and prefix the exception value with
* "Vim:" or, if a command name is given, "Vim(cmdname):". */
excp->messages = (struct msglist *)value;
mesg = excp->messages->throw_msg;
*should_free = FALSE;
mesg = ((struct msglist *)value)->throw_msg;
if (cmdname != NULL && *cmdname != NUL)
{
cmdlen = (int)STRLEN(cmdname);
excp->value = vim_strnsave((char_u *)"Vim(",
ret = vim_strnsave((char_u *)"Vim(",
4 + cmdlen + 2 + (int)STRLEN(mesg));
if (excp->value == NULL)
goto nomem;
STRCPY(&excp->value[4], cmdname);
STRCPY(&excp->value[4 + cmdlen], "):");
val = excp->value + 4 + cmdlen + 2;
if (ret == NULL)
return ret;
STRCPY(&ret[4], cmdname);
STRCPY(&ret[4 + cmdlen], "):");
val = ret + 4 + cmdlen + 2;
}
else
{
excp->value = vim_strnsave((char_u *)"Vim:", 4 + (int)STRLEN(mesg));
if (excp->value == NULL)
goto nomem;
val = excp->value + 4;
ret = vim_strnsave((char_u *)"Vim:", 4 + (int)STRLEN(mesg));
if (ret == NULL)
return ret;
val = ret + 4;
}
/* msg_add_fname may have been used to prefix the message with a file
@@ -506,14 +492,65 @@ throw_exception(value, type, cmdname)
}
}
else
excp->value = value;
{
*should_free = FALSE;
ret = (char_u *) value;
}
return ret;
}
/*
* Throw a new exception. Return FAIL when out of memory or it was tried to
* throw an illegal user exception. "value" is the exception string for a
* user or interrupt exception, or points to a message list in case of an
* error exception.
*/
static int
throw_exception(value, type, cmdname)
void *value;
int type;
char_u *cmdname;
{
except_T *excp;
int should_free;
/*
* Disallow faking Interrupt or error exceptions as user exceptions. They
* would be treated differently from real interrupt or error exceptions
* when no active try block is found, see do_cmdline().
*/
if (type == ET_USER)
{
if (STRNCMP((char_u *)value, "Vim", 3) == 0
&& (((char_u *)value)[3] == NUL || ((char_u *)value)[3] == ':'
|| ((char_u *)value)[3] == '('))
{
EMSG(_("E608: Cannot :throw exceptions with 'Vim' prefix"));
goto fail;
}
}
excp = (except_T *)alloc((unsigned)sizeof(except_T));
if (excp == NULL)
goto nomem;
if (type == ET_ERROR)
/* Store the original message and prefix the exception value with
* "Vim:" or, if a command name is given, "Vim(cmdname):". */
excp->messages = (struct msglist *)value;
excp->value = get_exception_string(value, type, cmdname, &should_free);
if (excp->value == NULL && should_free)
goto nomem;
excp->type = type;
excp->throw_name = vim_strsave(sourcing_name == NULL
? (char_u *)"" : sourcing_name);
if (excp->throw_name == NULL)
{
if (type == ET_ERROR)
if (should_free)
vim_free(excp->value);
goto nomem;
}
@@ -2033,10 +2070,7 @@ leave_cleanup(csp)
/* If an error was about to be converted to an exception when
* enter_cleanup() was called, free the message list. */
if (msg_list != NULL)
{
free_msglist(*msg_list);
*msg_list = NULL;
}
free_global_msglist();
}
/*

View File

@@ -3852,9 +3852,9 @@ vim_strsave_fnameescape(fname, shell)
char_u buf[20];
int j = 0;
/* Don't escape '[' and '{' if they are in 'isfname'. */
/* Don't escape '[', '{' and '!' if they are in 'isfname'. */
for (p = PATH_ESC_CHARS; *p != NUL; ++p)
if ((*p != '[' && *p != '{') || !vim_isfilec(*p))
if ((*p != '[' && *p != '{' && *p != '!') || !vim_isfilec(*p))
buf[j++] = *p;
buf[j] = NUL;
p = vim_strsave_escaped(fname, buf);
@@ -5498,6 +5498,9 @@ add_to_history(histype, new_entry, in_map, sep)
if (hislen == 0) /* no history */
return;
if (cmdmod.keeppatterns && histype == HIST_SEARCH)
return;
/*
* Searches inside the same mapping overwrite each other, so that only
* the last line is kept. Be careful not to remove a line that was moved

View File

@@ -328,7 +328,7 @@
*
* Disabled for EBCDIC as it requires multibyte.
*/
#if defined(FEAT_BIG) && !defined(WIN16) && SIZEOF_INT >= 4 && !defined(EBCDIC)
#if defined(FEAT_BIG) && !defined(WIN16) && VIM_SIZEOF_INT >= 4 && !defined(EBCDIC)
# define FEAT_ARABIC
#endif
#ifdef FEAT_ARABIC
@@ -640,7 +640,7 @@
*/
#if (defined(FEAT_NORMAL) || defined(FEAT_GUI_GTK) || defined(FEAT_ARABIC)) \
&& !defined(FEAT_MBYTE) && !defined(WIN16) \
&& SIZEOF_INT >= 4 && !defined(EBCDIC)
&& VIM_SIZEOF_INT >= 4 && !defined(EBCDIC)
# define FEAT_MBYTE
#endif
@@ -661,7 +661,7 @@
# define FEAT_MBYTE
#endif
#if defined(FEAT_MBYTE) && SIZEOF_INT < 4 && !defined(PROTO)
#if defined(FEAT_MBYTE) && VIM_SIZEOF_INT < 4 && !defined(PROTO)
Error: Can only handle multi-byte feature with 32 bit int or larger
#endif

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