Compare commits

..

696 Commits

Author SHA1 Message Date
51971b3398 updated for version 7.3.807
Problem:    Popup menu does not work properly with the preview window, folds
            and 'cursorcolumn'.
Solution:   Redraw the popup menu after redrawing windows. (Christian
            Brabandt)
2013-02-13 12:16:05 +01:00
e9d47cd08b updated for version 7.3.806
Problem:    Compiler warnings in Perl code when building with Visual studio
            2012. (skeept)
Solution:   Add type casts. (Christian Brabandt, 2013 Jan 30)
2013-02-06 19:58:43 +01:00
07e1da6bbd updated for version 7.3.805
Problem:    Lua version 5.2 is not detected properly on Arch Linux.
Solution:   Adjust autoconf. (lilydjwg)
2013-02-06 19:49:43 +01:00
fffcfea984 updated for version 7.3.804
Problem:    Compiler warning for tiny build. (Tony Mechelynck)
Solution:   Add #ifdefs around variable.
2013-02-06 18:45:01 +01:00
11cb6e6e13 updated for version 7.3.803
Problem:    Substitute with confirmation and then "q" does not replace
            anything.  (John McGowan)
Solution:   Do not break the loop, skip to the end.
2013-02-06 18:24:02 +01:00
fa13eef3c9 Updated runtime files. 2013-02-06 17:34:04 +01:00
309379fc98 updated for version 7.3.802
Problem:    After setting 'isk' to a value ending in a comma appending to the
            option fails.
Solution:   Disallow a trailing comma for 'isk' and similar options.
2013-02-06 16:26:26 +01:00
530e7dfafd updated for version 7.3.801
Problem:    ":window set nu?" displays the cursor line. (Nazri Ramliy)
Solution:   Do not update the cursor line when conceallevel is zero or the
            screen has scrolled. (partly by Christian Brabandt)
2013-02-06 13:38:02 +01:00
b6a76ffc4c updated for version 7.3.800
Problem:    The " mark is not adjusted when inserting lines. (Roland Eggner)
Solution:   Adjust the line number. (Christian Brabandt)
2013-02-06 12:33:21 +01:00
9c2e6cc6ed updated for version 7.3.799
Problem:    The color column is not correct when entering a buffer. (Ben
            Fritz)
Solution:   Call check_colorcolumn() if 'textwidth' changed. (Christian
            Brabandt)
2013-02-06 12:14:48 +01:00
39d7d51bcd updated for version 7.3.798
Problem:    MzScheme: circular list does not work correctly.
Solution:   Separate Mac-specific code from generic code. (Sergey Khorev)
2013-01-31 21:09:15 +01:00
04e5b5a228 updated for version 7.3.797
Problem:    Compiler warning for size_t to int conversion. (Skeept)
Solution:   Add type casts.
2013-01-30 21:56:21 +01:00
e337e5f634 updated for version 7.3.796
Problem:    "/[^\n]" does match at a line break.
Solution:   Make it do the same as "/.". (Christian Brabandt)
2013-01-30 18:21:51 +01:00
d214221375 updated for version 7.3.795
Problem:    MzScheme does not build with tiny features.
Solution:   Add #ifdefs.  Also add UNUSED to avoid warnings.  And change
            library ordering.
2013-01-30 17:41:50 +01:00
a50e5866b0 updated for version 7.3.794
Problem:    Tiny build fails. (Tony Mechelynck)
Solution:   Adjust #ifdefs.
2013-01-30 17:30:17 +01:00
8ceb1735a2 updated for version 7.3.793
Problem:    New interactive :substutite behavior is not tested.
Solution:   Add tests. (Christian Brabandt)
2013-01-30 17:03:30 +01:00
4bc8cf0e7c updated for version 7.3.792
Problem:    ":substitute" works differently without confirmation.
Solution:   Do not change the text when asking for confirmation, only display
            it.
2013-01-30 16:30:26 +01:00
7567646f13 updated for version 7.3.791
Problem:    MzScheme interface doesn't work propely.
Solution:   Make it work better. (Sergey Khorev)
2013-01-30 14:55:42 +01:00
a3e6bc93d1 Update runtime files. 2013-01-30 14:18:00 +01:00
52f85b730e updated for version 7.3.790
Problem:    After reloading a buffer the modelines are not processed.
Solution:   call do_modelines(). (Ken Takata)
2013-01-30 14:13:56 +01:00
f813a1883f updated for version 7.3.789
Problem:    "\k" in regexp does not work in other window.
Solution:   Use the right buffer. (Yukihiro Nakadaira)
2013-01-30 13:59:37 +01:00
8d61617238 updated for version 7.3.788
Problem:    When only using patches build fails on missing nl.po.
Solution:   Create an empty nl.po file.
2013-01-30 12:50:56 +01:00
700e7345de updated for version 7.3.787
Problem:    With 'relativenumber' set it is not possible to see the absolute
            line number.
Solution:   For the cursor line show the absolute line number instead of a
            zero. (Nazri Ramliy)
2013-01-30 12:31:36 +01:00
02366255c9 updated for version 7.3.786
Problem:    Python threads don't run in the background (issue 103).
Solution:   Move the statements to manipulate thread state.
2013-01-30 11:44:39 +01:00
2f315ab7be updated for version 7.3.785
Problem:    Crash with specific use of search pattern.
Solution:   Initialize reg_buf to curbuf.
2013-01-25 20:11:01 +01:00
826763f87b updated for version 7.3.784
Problem:    Error when 'guifontwide' has a comma.
Solution:   Use gui.wide_font. (Taro Muraoka)
2013-01-25 19:28:38 +01:00
15364d74ca updated for version 7.3.783
Problem:    Crash when mark is not set. (Dominique Pelle)
Solution:   Check for NULL.
2013-01-24 21:00:20 +01:00
0f2721223e updated for version 7.3.782
Problem:    Windows: IME composition may use a wrong font.
Solution:   Use 'guifontwide' for IME when it is set. (Taro Muraoka)
2013-01-23 18:37:40 +01:00
4593396625 updated for version 7.3.781
Problem:    Drawing with 'guifontwide' can be slow.
Solution:   Draw multiple characters at a time. (Taro Muraoka)
2013-01-23 17:43:57 +01:00
d35d784e91 updated for version 7.3.780
Problem:    char2nr() and nr2char() always use 'encoding'.
Solution:   Add argument to use utf-8 characters. (Yasuhiro Matsumoto)
2013-01-23 17:17:10 +01:00
55b7b7eeb5 updated for version 7.3.779
Problem:    Backwards search lands in wrong place when started on a multibyte
            character.
Solution:   Do not set extra_col for a backwards search. (Sung Pae)
2013-01-23 16:43:11 +01:00
94a8adfdd8 updated for version 7.3.778
Problem:    Compiler error for adding up two pointers. (Titov Anatoly)
Solution:   Add a type cast. (Ken Takata)
2013-01-23 16:19:23 +01:00
3be71ce28d updated for version 7.3.777
Problem:    When building with Gnome locale gets reset.
Solution:   Set locale after gnome_program_init(). (Christian Brabandt)
2013-01-23 16:00:11 +01:00
9d182dd0a6 updated for version 7.3.776
Problem:    ml_get error when searching, caused by curwin not matching curbuf.
Solution:   Avoid changing curbuf. (Lech Lorens)
2013-01-23 15:53:15 +01:00
4da70dbc4d updated for version 7.3.775
Problem:    Cygwin and Mingw builds miss dependency on gui_w48.c.
Solution:   Add a build rule. (Ken Takata)
2013-01-23 13:55:20 +01:00
f939c4e6b1 updated for version 7.3.774
Problem:    Tiny GUI version misses console dialog feature.
Solution:   Define FEAT_CON_DIALOG when apprpriate. (Christian Brabandt)
2013-01-23 13:41:00 +01:00
b5f7bf6ed9 updated for version 7.3.773
Problem:    Crash when OriginalFirstThunk is zero.
Solution:   Skip items with OriginalFirstThunk not set. (Ken Takata)
2013-01-19 14:02:02 +01:00
8c4fbd1a15 updated for version 7.3.772
Problem:    Cursor is at the wrong location and below the end of the file
            after doing substitutions with confirm flag: %s/x/y/c
            (Dominique Pelle)
Solution:   Update the cursor position. (Christian Brabandt & Dominique)
2013-01-17 18:34:05 +01:00
0936502538 updated for version 7.3.771
Problem:    Uninitialized variable. (Yasuhiro Matsumoto)
Solution:   Set x2 to -1.
2013-01-17 17:37:35 +01:00
08ed30eca7 updated for version 7.3.770
Problem:    Vim.h indentation is inconsistent.
Solution:   Adjust the indentation. (Elias Diem)
2013-01-17 17:17:26 +01:00
8c7694a864 updated for version 7.3.769
Problem:    'matchpairs' does not work with multi-byte characters.
Solution:   Make it work. (Christian Brabandt)
2013-01-17 17:02:05 +01:00
3e37fd0950 updated for version 7.3.768
Problem:    settabvar() and setwinvar() may move the cursor.
Solution:   Save and restore the cursor position when appropriate. (idea by
            Yasuhiro Matsumoto)
2013-01-17 15:37:01 +01:00
8fae8e658f updated for version 7.3.767
Problem:    (Win32) The _errno used for iconv may be the wrong one.
Solution:   Use the _errno from iconv.dll. (Ken Takata)
2013-01-17 14:39:47 +01:00
117f2c4b91 updated for version 7.3.766
Problem:    ":help cpo-*" jumps to the wrong place.
Solution:   Make it equivalent to ":help cpo-star".
2013-01-17 14:09:44 +01:00
802418d5eb updated for version 7.3.765
Problem:    Segfault when doing "cclose" on BufUnload in a python function.
            (Sean Reifschneider)
Solution:   Skip window with NULL buffer. (Christian Brabandt)
2013-01-17 14:00:11 +01:00
c4fba6f881 updated for version 7.3.764
Problem:    Not all message translation files are installed.
Solution:   Also install the converted files.
2013-01-17 13:37:32 +01:00
8754deb3b6 updated for version 7.3.763
Problem:    Jumping to a mark does not open a fold if it is in the same line.
            (Wiktor Ruben)
Solution:   Also compare the column after the jump. (Christian Brabandt)
2013-01-17 13:24:08 +01:00
14e28811b3 updated for version 7.3.762
Problem:    On some systems the tabline is not redrawn.
Solution:   Call RedrawWindow(). (Charles Peacech)
2012-12-16 12:50:39 +01:00
ba6e858556 updated for version 7.3.761
Problem:    In Visual mode a "-p does not work. (Marcin Szamotulski)
Solution:   Avoid writing to "- before putting it. (Christian Brabandt)
2012-12-12 18:20:32 +01:00
83dadafdd7 updated for version 7.3.760
Problem:    dv_ deletes the white space before the line.
Solution:   Move the cursor to the first non-white. (Christian Brabandt)
2012-12-12 17:33:32 +01:00
4b166d0a6d updated for version 7.3.759
Problem:    MS-Windows: Updating the tabline is slow when there are many tabs.
Solution:   Disable redrawing while performing the update. (Arseny Kapoulkine)
2012-12-12 17:12:25 +01:00
cfde76c74d updated for version 7.3.758
Problem:    Matchit plugin does not handle space in #ifdef.
Solution:   Change matching pattern to allow spaces. (Mike Morearty)
2012-12-12 16:43:58 +01:00
27356ad4f4 updated for version 7.3.757
Problem:    Issue 96: May access freed memory when a put command triggers
            autocommands. (Dominique Pelle)
Solution:   Call u_save() before getting y_array.
2012-12-12 16:11:36 +01:00
321a9ec680 updated for version 7.3.756
Problem:    A location list can get a wrong count in :lvimgrep.
Solution:   Check if the list was changed by autocommands. (mostly by
            Christian Brabandt)
2012-12-12 15:55:20 +01:00
09ba6d766b updated for version 7.3.755
Problem:    Autoconf doesn't find Python 3 if it's called "python".
Solution:   Search for "python2" and "python3" first, then "python".
2012-12-12 14:25:05 +01:00
52cc266dae updated for version 7.3.754
Problem:    Latest nmake is not recognized.
Solution:   Add nmake version 11.00.51106.1. (Raymond Ko)
2012-12-06 21:30:29 +01:00
21691f896a updated for version 7.3.753
Problem:    When there is a QuitPre autocommand using ":q" twice does not work
            for exiting when there are more files to edit.
Solution:   Do not decrement quitmore in an autocommand. (Techlive Zheng)
2012-12-05 19:13:18 +01:00
34feacbcce Update runtime files. 2012-12-05 19:01:43 +01:00
32c8f1cb19 updated for version 7.3.752
Problem:    Test 49 script file doesn't fold properly.
Solution:   Add a colon.
2012-12-05 19:00:06 +01:00
60ec5f35a5 updated for version 7.3.751
Problem:    Test 61 is flaky, it fails once in a while.
Solution:   When it fails retry once.
2012-12-05 18:21:32 +01:00
57e4ee4d38 updated for version 7.3.750
Problem:    The justify macro does not always work correctly.
Solution:   Fix off-by-one error (James McCoy)
2012-12-05 17:03:22 +01:00
a54bf40017 updated for version 7.3.749
Problem:    Python interface doesn't build without the multi-byte feature.
Solution:   Add #ifdef. (Ken Takata)
2012-12-05 16:30:07 +01:00
9750bb199e updated for version 7.3.748
Problem:    Cannot properly test conceal mode.
Solution:   Add the screencol() and screenrow() functions.  Use them in
            test88. (Simon Ruderich)
2012-12-05 16:10:42 +01:00
0f9d0869c7 updated for version 7.3.747
Problem:    When characters are concealed text aligned with tabs are no longer
            aligned, e.g. at ":help :index".
Solution:   Compensate space for tabs for concealed characters. (Dominique
            Pelle)
2012-12-05 15:32:30 +01:00
81484f4215 updated for version 7.3.746
Problem:    Memory leaks when using location lists.
Solution:   Set qf_title to something. (Christian Brabandt)
2012-12-05 15:16:47 +01:00
15d55dec03 updated for version 7.3.745
Problem:    Automatically setting 'ttymouse' doesn't work.
Solution:   Reset the "option was set" flag when using the default.
2012-12-05 14:43:02 +01:00
862cfa356d updated for version 7.3.744
Problem:    64 bit compiler warning.
Solution:   Add type cast. (Mike Williams)
2012-11-29 20:10:00 +01:00
2a94225c23 updated for version 7.3.743
Problem:    Tiny build still fails.
Solution:   Add #else in the right place.
2012-11-28 23:03:07 +01:00
f135435f80 updated for version 7.3.742
Problem:    Leaking memory when :vimgrep restores the directory.
Solution:   Free the allocated memory. (Christian Brabandt)
2012-11-28 22:12:44 +01:00
2e18a12780 updated for version 7.3.741
Problem:    Tiny build fails.
Solution:   Move #ifdef. (Ike Devolder)
2012-11-28 19:10:54 +01:00
97d4ea71d6 updated for version 7.3.740
Problem:    IOC tool complains about undefined behavior for int.
Solution:   Change to unsigned int. (Dominique Pelle)
2012-11-28 18:31:54 +01:00
f4f1956724 updated for version 7.3.739
Problem:    Computing number of lines may have an integer overflow.
Solution:   Check for MAXCOL explicitly. (Dominique Pelle)
2012-11-28 18:22:11 +01:00
2df58b4a58 Updated runtime files. 2012-11-28 18:21:11 +01:00
9411615985 updated for version 7.3.738
Problem:    Unused function argument.
Solution:   Remove it. (Christian Brabandt)
2012-11-28 17:41:59 +01:00
d4ad0d4e21 updated for version 7.3.737
Problem:    When using do_cmdline() recursively did_endif is not reset,
            causing messages to be overwritten.
Solution:   Reset did_endif. (Christian Brabandt)
2012-11-28 17:34:48 +01:00
b347963869 updated for version 7.3.736
Problem:    File name completion in input() escapes white space. (Frederic
            Hardy)
Solution:   Do not escape white space. (Christian Brabandt)
2012-11-28 16:49:58 +01:00
dd53a41553 updated for version 7.3.735
Problem:    Cannot build Ruby 1.9 with MingW or Cygwin.
Solution:   Add another include directory. (Ken Takata)
2012-11-28 16:18:29 +01:00
442b5c48fd updated for version 7.3.734
Problem:    Cannot put help files in a sub-directory.
Solution:   Make :helptags work for sub-directories. (Charles Campbell)
2012-11-28 16:06:22 +01:00
8866d277c9 updated for version 7.3.733
Problem:    Tests fail when including MzScheme.
Solution:   Change #ifdefs for vim_main2().
2012-11-28 15:55:42 +01:00
02e14d67b9 updated for version 7.3.732
Problem:    Compiler warnings for function arguments.
Solution:   Use inteptr_t instead of long.
2012-11-28 15:37:51 +01:00
7854e3abcf updated for version 7.3.731
Problem:    Py3Init_vim() is exported uneccessarily.
Solution:   Make it static. (Ken Takata)
2012-11-28 15:33:14 +01:00
c83a44bf8f updated for version 7.3.730
Problem:    Crash in PHP file when using syntastic. (Ike Devolder)
Solution:   Avoid using NULL pointer. (Christian Brabandt)
2012-11-28 15:25:34 +01:00
ff8cf2be66 updated for version 7.3.729
Problem:    Building with Ruby fails on some systems.
Solution:   Remove "static" and add #ifndef PROTO. (Ken Takata)
2012-11-24 13:39:00 +01:00
fe9fb927ae updated for version 7.3.728
Problem:    Cannot compile with MzScheme interface on Ubuntu 12.10.
Solution:   Find the collects directory under /usr/share.
2012-11-23 21:54:48 +01:00
7331304fd3 updated for version 7.3.727
Problem:    Can't always find Win32.mak when building GvimExt.
Solution:   Use same mechanism as in Make_mvc.mak. (Cade Foster)
2012-11-23 21:47:22 +01:00
ef6585abef updated for version 7.3.726
Problem:    Typos and duplicate info in README.
Solution:   Fix the text.
2012-11-23 21:45:25 +01:00
77642c0fef updated for version 7.3.725
Problem:    :aboveleft and :belowright have no effect on :copen.
Solution:   Check for cmdmod.split. (Christian Brabandt)
2012-11-20 17:55:10 +01:00
65d7396cb4 updated for version 7.3.724
Problem:    Building with Ruby and Tcl on MS-Windows does not work.
Solution:   Remove Ruby and Tcl from the big MS-Windows build.
2012-11-20 17:21:52 +01:00
8d4eecc5e8 updated for version 7.3.723
Problem:    Various tiny problems.
Solution:   Various tiny fixes.
2012-11-20 17:19:01 +01:00
d59762dcb6 updated for version 7.3.722
Problem:    Perl flags may contain "-g", which breaks "make proto".
Solution:   Filter out the "-g" flag for cproto. (Ken Takata)
2012-11-20 17:03:27 +01:00
c0d4759373 updated for version 7.3.721
Problem:    Ruby interface defines local functions globally.
Solution:   Make the functions static.
2012-11-20 16:59:14 +01:00
7c5f120410 updated for version 7.3.720
Problem:    Proto files are outdated.
Solution:   Update the newly generated proto files.
2012-11-20 16:56:54 +01:00
8288149866 updated for version 7.3.719
Problem:    Cannot run new version of cproto, it fails on missing include
            files.
Solution:   Add lots of #ifndef PROTO
2012-11-20 16:53:39 +01:00
0ac24e1ef4 updated for version 7.3.718
Problem:    When re-using the current buffer the buffer-local options stay.
Solution:   Re-initialize the buffer-local options. (Christian Brabandt)
2012-11-20 12:16:58 +01:00
b031626427 updated for version 7.3.717
Problem:    When changing the font size, only MS-Windows limits the window
            size.
Solution:   Also limit the window size on other systems. (Roland Puntaier)
2012-11-20 12:03:06 +01:00
99a547d3a1 updated for version 7.3.716
Problem:    Error on exit when using Python 3.
Solution:   Remove PythonIO_Fini(). (Roland Puntaier)
2012-11-20 11:04:35 +01:00
97d62497f5 Updated runtime files. 2012-11-15 21:28:22 +01:00
41b884b273 updated for version 7.3.715
Problem:    Crash when calling setloclist() in BufUnload autocmd. (Marcin
            Szamotulski)
Solution:   Set w_llist to NULL when it was freed.  Also add a test.
            (Christian Brabandt)
2012-11-14 22:38:08 +01:00
b826ddb034 updated for version 7.3.714
Problem:    Inconsistency: :set can be used in the sandbox, but :setlocal and
            :setglobal cannot. (Michael Henry)
Solution:   Fix the flags for :setlocal and :setglobal. (Christian Brabandt)
2012-11-14 20:52:28 +01:00
3ab72c5c72 updated for version 7.3.713
Problem:    printf() can only align to bytes, not characters.
Solution:   Add the "S" item. (Christian Brabandt)
2012-11-14 18:10:56 +01:00
e3a2246227 updated for version 7.3.712
Problem:    Nmake from VS2010 SP1 is not recognized.
Solution:   Add the version number. (Ken Takata)
2012-10-23 05:35:34 +02:00
9c9cbf1351 updated for version 7.3.711
Problem:    vim.current.buffer is not available. (lilydjwg)
Solution:   Use py3_PyUnicode_AsUTF8 instead of py3_PyUnicode_AsUTF8String.
            (Ken Takata)
2012-10-23 05:17:37 +02:00
12a753a5ca updated for version 7.3.710
Problem:    Patch 7.3.704 breaks "fn".
Solution:   Add check for ca.cmdchar. (Christian Brabandt)
2012-10-23 05:08:53 +02:00
95e09eaaad updated for version 7.3.709
Problem:    Compiler warning for unused argument.
Solution:   Add UNUSED.
2012-10-21 23:56:05 +02:00
a80888d296 updated for version 7.3.708
Problem:    Filler lines above the first line may be hidden when opening Vim.
Solution:   Change how topfill is computed. (Christian Brabandt)
2012-10-21 22:18:21 +02:00
17aa8cc255 updated for version 7.3.707
Problem:    Problems loading a library for a file name with non-latin
            characters.
Solution:   Use wide system functions when possible. (Ken Takata)
2012-10-21 21:38:45 +02:00
a9a2d8f4d0 updated for version 7.3.706
Problem:    Can't build Motif version.
Solution:   Fix wrongly named variable. (Ike Devolder)
2012-10-21 21:25:22 +02:00
707cfb82dc updated for version 7.3.705
Problem:    Mouse features are not sorted properly. (Tony Mechelynck)
Solution:   Put the mouse features in alphabetical order.
2012-10-21 04:00:07 +02:00
f00dc2627b updated for version 7.3.704
Problem:    Repeating "cgn" does not always work correctly.
Solution:   Also fetch the operator character. (Christian Brabandt)
2012-10-21 03:54:33 +02:00
e8d8fd2add updated for version 7.3.703
Problem:    When 'undofile' is reset the hash is computed unnecessarily.
Solution:   Only compute the hash when the option was set. (Christian Brabandt)
2012-10-21 03:46:05 +02:00
3a0d8090b1 Updated runtime files. 2012-10-21 03:02:54 +02:00
67a4f6cfb4 updated for version 7.3.702
Problem:    Nmake from VS6 service pack 6 is not recognized.
Solution:   Detect the version number. (Jiri Sedlak)
2012-10-21 02:41:08 +02:00
faca84059a updated for version 7.3.701
Problem:    MS-Windows: Crash with stack overflow when setting 'encoding'.
Solution:   Handle that loading the iconv library may be called recursively.
            (Jiri Sedlak)
2012-10-21 02:37:10 +02:00
cfb807026f updated for version 7.3.700
Problem:    Cannot detect URXVT and SGR mouse support.
Solution:   add +mouse_urxvt and +mouse_sgr. (Hayaki Saito)
2012-10-21 02:17:45 +02:00
bffa06ddb8 updated for version 7.3.699
Problem:    When 'ttymouse' is set to "sgr" manually, it is overruled by
            automatic detection.
Solution:   Do not use automatic detection when 'ttymouse' was set manually.
            (Hayaki Saito)
2012-10-21 02:10:24 +02:00
003d14a267 updated for version 7.3.698
Problem:    Python 3 does not preserve state beween commands.
Solution:   Preserve the state. (Paul Ollis)
2012-10-21 01:47:00 +02:00
c4b98fbb3e updated for version 7.3.697
Problem:    Leaking resources when setting GUI font.
Solution:   Free the font. (Ken Takata)
2012-10-21 01:40:30 +02:00
f3408e76fb updated for version 7.3.696
Problem:    Message about added spell language can be wrong.
Solution:   Give correct message. Add g:menutrans_set_lang_to to allow for
            translation. (Jiri Sedlak)
2012-10-21 01:21:59 +02:00
b6101cf77f updated for version 7.3.695
Problem:    Balloon cannot show multi-byte text.
Solution:   Properly deal with multi-byte characters. (Dominique Pelle)
2012-10-21 00:58:39 +02:00
2d17fa3ebd updated for version 7.3.694
Problem:    Now that 'shiftwidth' may use the value of 'tabstop' it is not so
            easy to use in indent files.
Solution:   Add the shiftwidth() function. (so8res)
2012-10-21 00:45:18 +02:00
9f340fa57b updated for version 7.3.693
Problem:    Can't make 'softtabstop' follow 'shiftwidth'.
Solution:   When 'softtabstop' is negative use the value of 'shiftwidth'.
            (so8res)
2012-10-21 00:10:39 +02:00
205f9f5e2d updated for version 7.3.692
Problem:    Can't build GTK version with GTK 2.0.
Solution:   Put GtkFileFilter declaration in the right place. (Yegappan
            Lakshmanan)
2012-10-18 05:18:32 +02:00
b88adbf844 updated for version 7.3.691
Problem:    State specific to the Python thread is discarded.
Solution:   Keep state between threads. (Paul)
2012-10-14 05:20:12 +02:00
dac7569612 updated for version 7.3.690
Problem:    When the current directory name is exactly the maximum path length
            Vim may crash.
Solution:   Only add "/" when there is room. (Danek Duvall)
2012-10-14 04:35:45 +02:00
d04da7cb4a updated for version 7.3.689
Problem:    MzScheme and Lua may use a NULL string.
Solution:   Use an empty string instead of NULL. (Yukihiro Nakadaira)
2012-10-14 03:41:59 +02:00
7bc4f93c07 updated for version 7.3.688
Problem:    Python 3.3 is not supported.
Solution:   Add Python 3.3 support (Ken Takata)
2012-10-14 03:22:56 +02:00
172ddb60c2 updated for version 7.3.687
Problem:    Test 16 fails when $DISPLAY is not set.
Solution:   Skip the test when $DISPLAY is not set.
2012-10-11 04:44:33 +02:00
b73568149f updated for version 7.3.686
Problem:    Using CTRL-\ e mappings is useful also when entering an
            expression, but it doesn't work. (Marcin Szamotulski)
Solution:   Allow using CTRL-\ e when entering an expression if it was not
            typed.
2012-10-11 04:04:37 +02:00
0c17875ef3 updated for version 7.3.685
Problem:    No test for what patch 7.3.673 fixes.
Solution:   Add a test. (Christian Brabandt)
2012-10-11 03:35:45 +02:00
b35c338f96 updated for version 7.3.684
Problem:    "make test" does not delete lua.vim.
Solution:   Add lua.vim to the clean target. (Simon Ruderich)
2012-10-06 19:10:35 +02:00
0c5fa7d740 Updated runtime files. 2012-10-05 22:26:30 +02:00
d1f13fd597 updated for version 7.3.683
Problem:    ":python" may crash when vimbindeval() returns None.
Solution:   Check for v_string to be NULL. (Yukihiro Nakadaira)
2012-10-05 21:30:07 +02:00
4ccb265bd4 updated for version 7.3.682
Problem:    Compiler complains about incompatible types.
Solution:   Remove type casts. (hint by Danek Duvall)
2012-10-04 22:38:37 +02:00
7d11244c99 updated for version 7.3.681
Problem:    List of distributed files picks up backup files.
Solution:   Make tutor patterns more specific.
2012-10-03 21:48:43 +02:00
97cc2384c0 Update runtime files. 2012-10-03 21:46:54 +02:00
14f5827940 updated for version 7.3.680
Problem:    Some files missing in the list of distributed files.
Solution:   Add lines for new files.
2012-10-03 21:33:41 +02:00
8139889a5f updated for version 7.3.679
Problem:    Ruby detection uses Config, newer Ruby versions use RbConfig.
Solution:   Detect the need to use RbConfig. (Vit Ondruch)
2012-10-03 21:09:35 +02:00
6f3d6b48a6 updated for version 7.3.678
Problem:    Ruby .so name may not be correct.
Solution:   Use the LIBRUBY_SO entry from the config. (Vit Ondruch)
2012-10-03 18:50:00 +02:00
e1704bada4 updated for version 7.3.677
Problem:    buf_spname() is used inconsistently.
Solution:   Make the return type a char_u pointer.  Check the size of the
            returned string.
2012-10-03 18:25:00 +02:00
b213da0b57 updated for version 7.3.676
Problem:    Ruby compilation on Windows 32 bit doesn't work.
Solution:   Only use some functions for 64 bit. (Ken Takata)
2012-10-03 18:06:59 +02:00
ec3cfeb199 updated for version 7.3.675
Problem:    Using uninitialized memory with very long file name.
Solution:   Put NUL after text when it is truncated. (ZyX)
2012-10-03 17:12:47 +02:00
1e91f2606b updated for version 7.3.674
Problem:    Can't compile with Lua/dyn on Cygwin.
Solution:   Adjust configure to use the right library name. (Ken Takata)
2012-10-03 14:48:08 +02:00
718f007499 updated for version 7.3.673
Problem:    Using "gN" while 'selection' is "exclusive" misses one character.
            (Ben Fritz)
Solution:   Check the direction when compensating for exclusive selection.
            (Christian Brabandt)
2012-10-03 13:35:51 +02:00
d09acef44b Updated runtime files. 2012-09-21 14:54:30 +02:00
66b7985ec9 updated for version 7.3.672
Problem:    Not possible to lock/unlock lists in Python interface.
Solution:   Add .locked and .scope attributes. (ZyX)
2012-09-21 14:00:35 +02:00
770456589e updated for version 7.3.671
Problem:    More Python code can be shared between Python 2 and 3.
Solution:   Move code to if_py_both.h. (ZyX)
2012-09-21 13:46:06 +02:00
696c2116dc updated for version 7.3.670
Problem:    Python: memory leaks when there are exceptions.
Solution:   Add DICTKEY_UNREF in the right places. (ZyX)
2012-09-21 13:43:14 +02:00
f94a13c286 updated for version 7.3.669
Problem:    When building with Cygwin loading Python dynamically fails.
Solution:   Use DLLLIBRARY instead of INSTSONAME. (Ken Takata)
2012-09-21 13:26:49 +02:00
01c10524d2 updated for version 7.3.668
Problem:    Building with Perl loaded dynamically  still uses static library.
Solution:   Adjust use of PL_thr_key. (Ken Takata)
2012-09-21 12:50:51 +02:00
f5fe79a5f3 updated for version 7.3.667
Problem:    Unused variables in Perl interface.
Solution:   Adjust #ifdefs.
2012-09-21 12:42:44 +02:00
6f586de755 updated for version 7.3.666
Problem:    With MSVC 11 Win32.mak is not found.
Solution:   Add the SDK_INCLUDE_DIR variable. (Raymond Ko)
2012-09-18 22:00:08 +02:00
2b017fae8f updated for version 7.3.665
Problem:    MSVC 11 is not supported.
Solution:   Recognize MSVC 11. (Raymond Ko)
2012-09-18 18:27:12 +02:00
4fabd7dd4a updated for version 7.3.664
Problem:    Buffer overflow in unescaping text. (Raymond Ko)
Solution:   Limit check for multi-byte character to 4 bytes.
2012-09-18 18:03:37 +02:00
be1e9e9fc1 updated for version 7.3.663
Problem:    End of color scheme name not clear in E185. (Aaron Lewis)
Solution:   Put the name in single quotes.
2012-09-18 16:47:07 +02:00
2623b4f412 updated for version 7.3.662
Problem:    Can't build Ruby interface with Ruby 1.9.3.
Solution:   Add missing functions. (V. Ondruch)
2012-09-18 16:36:32 +02:00
e8cdcef875 updated for version 7.3.661
Problem:    SEGV in Python code.
Solution:   Initialize len to zero.  Use the right function depending on
            version. (Maxim Philippov)
2012-09-12 20:21:43 +02:00
fca93c093e updated for version 7.3.660
Problem:    ":help !" jumps to help for ":!".
Solution:   Adjust check for tag header line. (Andy Wokula)
2012-09-12 18:19:46 +02:00
c11073c9aa updated for version 7.3.659
Problem:    Recent Python changes are not tested.
Solution:   Add tests for Python bindings. (ZyX)
2012-09-05 19:17:42 +02:00
afa6b9af86 updated for version 7.3.658
Problem:    NUL bytes truncate strings when converted from Python.
Solution:   Handle truncation as an error. (ZyX)
2012-09-05 19:09:11 +02:00
cdab905136 updated for version 7.3.657
Problem:    Python bindings silently truncate string values containing NUL.
Solution:   Fail when a string contains NUL. (ZyX)
2012-09-05 19:03:56 +02:00
77fceb8908 updated for version 7.3.656
Problem:    Internal error in :pyeval.
Solution:   Handle failed object conversion. (ZyX)
2012-09-05 18:54:48 +02:00
e48a2dd3af updated for version 7.3.655
Problem:    64 bit MingW xpm .a file is missing.
Solution:   Add the file. (Sergey Khorev)
2012-09-05 18:49:24 +02:00
231e1a1723 updated for version 7.3.654
Problem:    When creating a Vim dictionary from Python objects an empty key
            might be used.
Solution:   Do not use empty keys, throw an IndexError. (ZyX)
2012-09-05 18:45:28 +02:00
e2db4361d2 updated for version 7.3.653
Problem:    MingW needs build rule for included XPM files.  Object directory
            for 32 and 64 builds is the same, also for MSVC.
Solution:   Add MingW build rule to use included XPM files.  Add the CPU or
            architecture to the object directory name. (Sergey Khorev)
2012-09-05 17:57:39 +02:00
ac0ddc15e9 updated for version 7.3.652
Problem:    Workaround for Python crash isn't perfect.
Solution:   Change the type of the length argument. (Sean Estabrooks)
2012-09-05 17:28:21 +02:00
7c0a86b1e8 updated for version 7.3.651
Problem:    Completion after ":help \{-" gives an error message.
Solution:   Prepend a backslash.
2012-09-05 15:15:07 +02:00
b4a80cdd91 updated for version 7.3.650
Problem:    Completion after ":help \{-" gives an error message and messes up
            the command line.
Solution:   Cancel the tag search if the pattern can't be compiled. (Yasuhiro
            Matsumoto)
2012-09-05 15:03:30 +02:00
7c82130a76 updated for version 7.3.649
Problem:    When 'clipboard' is set to "unnamed" small deletes end up in the
            numbered registers. (Ingo Karkat)
Solution:   Use the original register name to decide whether to put a delete
            in a numbered register. (Christian Brabandt)
2012-09-05 14:18:45 +02:00
2c66669c33 updated for version 7.3.648
Problem:    Crash when using a very long file name. (ZyX)
Solution:   Properly check length of buffer space.
2012-09-05 13:30:40 +02:00
57c0ea8692 updated for version 7.3.647
Problem:    "gnd" doesn't work correctly in Visual mode.
Solution:   Handle Visual mode differently in "gn". (Christian Brabandt)
2012-09-05 12:16:45 +02:00
465748e411 updated for version 7.3.646
Problem:    When reloading a buffer the undo file becomes unusable unless ":w"
            is executed. (Dmitri Frank)
Solution:   After reloading the buffer write the undo file. (Christian
            Brabandt)
2012-08-29 18:50:54 +02:00
dd7d846475 updated for version 7.3.645
Problem:    No tests for patch 7.3.625 and 7.3.637.
Solution:   Add more tests for the "gn" command and try/catch. (Christian
            Brabandt)
2012-08-29 16:55:13 +02:00
0551410a14 updated for version 7.3.644
Problem:    Dead code for BeOS GUI.
Solution:   Remove unused __BEOS__ stuff.
2012-08-29 16:34:27 +02:00
3633dc0129 updated for version 7.3.643
Problem:    MS-Windows: When starting gvim maximized 'lines' and 'columns' are
            wrong. (Christian Robinson)
Solution:   Move the check for gui.starting from ui_get_shellsize() to
            check_shellsize().
2012-08-29 16:26:04 +02:00
8f91399366 updated for version 7.3.642
Problem:    Segfault with specific autocommands.  Was OK after 7.3.449 and
            before 7.3.545. (Richard Brown)
Solution:   Pass TRUE for abort_if_last in the call to close_buffer().
            (Christian Brabandt)
2012-08-29 15:50:26 +02:00
002a4edc5b updated for version 7.3.641
Problem:    ":mkview" uses ":normal" instead of ":normal!" for folds. (Dan)
Solution:   Add the bang. (Christian Brabandt)
2012-08-29 15:22:25 +02:00
18a1b9bd5f updated for version 7.3.640
Problem:    It's not easy to build Vim on Windows with XPM support.
Solution:   Binary files for 7.3.639. (Sergey Khorev)
2012-08-29 14:26:27 +02:00
c6c1d8b802 updated for version 7.3.639
Problem:    It's not easy to build Vim on Windows with XPM support.
Solution:   Include the required files, they are quite small.  Update the
            MSVC makefile to use them.  Binary files are in the next patch.
            (Sergey Khorev)
2012-08-29 14:18:33 +02:00
1c75a03501 Fix version.c, 638 was there twice. 2012-08-23 22:28:46 +02:00
451cf63751 updated for version 7.3.638 2012-08-23 18:58:14 +02:00
00b8ae0d3d updated for version 7.3.637
Problem:    Cannot catch the error caused by a foldopen when there is no fold.
            (ZyX, Issue 48)
Solution:   Do not break out of the loop early when inside try/catch.
            (Christian Brabandt) Except when there is a syntax error.
2012-08-23 18:43:10 +02:00
dde0efed85 updated for version 7.3.636
Problem:    Not all zero-width matches handled correctly for "gn".
Solution:   Move zero-width detection to a separate function. (Christian
            Brabandt)
2012-08-23 15:53:05 +02:00
4d93dc2699 updated for version 7.3.635
Problem:    Issue 21: System call during startup sets 'lines' to a wrong
            value. (Karl Yngve)
Solution:   Don't set the shell size while the GUI is still starting up.
            (Christian Brabandt)
2012-08-23 13:28:55 +02:00
b9ce83e135 updated for version 7.3.634
Problem:    Month/Day format for undo is confusing. (Marcin Szamotulski)
Solution:   Always use Year/Month/Day, should work for everybody.
2012-08-23 12:59:02 +02:00
9b4512500a Update runtime files. 2012-08-15 17:43:31 +02:00
dd82d699c8 updated for version 7.3.633
Problem:    Selection remains displayed as selected after selecting another
            text.
Solution:   Call xterm_update() before select(). (Andrew Pimlott)
2012-08-15 17:26:57 +02:00
2b9578f0f8 updated for version 7.3.632
Problem:    Cannot select beyond 222 columns with the mouse in xterm.
Solution:   Add support for SGR mouse tracking. (Hayaki Saito)
2012-08-15 16:21:32 +02:00
2430586629 updated for version 7.3.631
Problem:    Cannot complete user names.
Solution:   Add user name completion.  (Dominique Pelle)
2012-08-15 14:05:05 +02:00
2dac213ac6 updated for version 7.3.630
Problem:    "|" does not behave correctly when 'virtualedit' is set.
Solution:   Call validate_virtcol(). (David Bürgin)
2012-08-15 13:31:00 +02:00
14f2474147 updated for version 7.3.629
Problem:    There is no way to make 'shiftwidth' follow 'tabstop'.
Solution:   When 'shiftwidth' is zero use the value of 'tabstop'. (Christian
            Brabandt)
2012-08-08 18:01:05 +02:00
b02612b641 updated for version 7.3.628
Problem:    ":open" does not allow for a !, which results in a confusing error
            message. (Shawn Wilson)
Solution:   Allow ! on ":open". (Christian Brabandt)
2012-08-08 17:31:40 +02:00
07e31c571a updated for version 7.3.627
Problem:    When using the "n" flag with the ":s" command a \= substitution
            will not be evaluated.
Solution:   Do perform the evaluation, so that a function can be invoked at
            every matching position without changing the text. (Christian
            Brabandt)
2012-08-08 16:51:15 +02:00
c1a995db49 updated for version 7.3.626
Problem:    Python interface doesn't build with Python 2.4 or older.
Solution:   Define Py_ssize_t. (Benjamin Bannier)
2012-08-08 16:05:07 +02:00
ba6ba36fa2 updated for version 7.3.625
Problem:    "gn" does not handle zero-width matches correctly.
Solution:   Handle zero-width patterns specially. (Christian Brabandt)
2012-08-08 15:27:57 +02:00
04b2751899 updated for version 7.3.624
Problem:    When cancelling input() it returns the third argument. That should
            only happen for inputdialog().
Solution:   Check if inputdialog() was used. (Hirohito Higashi)
2012-08-08 14:33:21 +02:00
c271c48e80 updated for version 7.3.623
Problem:    Perl 5.14 commands crash Vim on MS-Windows.
Solution:   Use perl_get_sv() instead of GvSV(). (Raymond Ko)
2012-08-08 13:17:31 +02:00
e66822e3d1 updated for version 7.3.622
Problem:    XPM library for Win32 can't be found.
Solution:   Suggest using the one from the Vim ftp site.
2012-08-02 21:48:24 +02:00
09168a77e4 updated for version 7.3.621
Problem:    Compiler warnings on 64 bit windows.
Solution:   Add type casts. (Mike Williams)
2012-08-02 21:24:42 +02:00
da3cb831e9 updated for version 7.3.620
Problem:    Building with recent Ruby on Win32 doesn't work.
Solution:   Add a separate argument for the API version. (Yasuhiro Matsumoto)
2012-08-02 21:21:47 +02:00
e4195c5d84 updated for version 7.3.619
Problem:    When executing a shell command Vim may become slow to respond.
Solution:   Don't wait after every processed message. (idea by Yasuhiro
            Matsumoto)
2012-08-02 12:31:44 +02:00
8a0f3c78fe updated for version 7.3.618
Problem:    Still doesn't compile with small features.
Solution:   Move current_search() out of #ifdef. (Dominique Pelle)
2012-07-29 12:55:32 +02:00
a07c831bef updated for version 7.3.617
Problem:    Hang on completion.
Solution:   Skip over the space. (Yasuhiro Matsumoto)
2012-07-27 21:12:07 +02:00
dad937f77f updated for version 7.3.616
Problem:    Can't compile without +visual.
Solution:   Add #ifdef.
2012-07-27 21:05:54 +02:00
6c35beaa11 Updated runtime files. 2012-07-25 17:49:10 +02:00
848f87633a updated for version 7.3.615
Problem:    Completion for a user command does not recognize backslash before
            a space.
Solution:   Recognize escaped characters. (Yasuhiro Matsumoto)
2012-07-25 17:22:23 +02:00
0cbba94b7e updated for version 7.3.614
Problem:    Number argument gets turned into a number while it should be a
            string.
Solution:   Add flag to the call_vim_function() call. (Yasuhiro Matsumoto)
2012-07-25 16:47:03 +02:00
9bdb9a0987 updated for version 7.3.613
Problem:    Including Python's config.c in the build causes trouble.  It is
            not clear why it was there.
Solution:   Omit the config file. (James McCoy)
2012-07-25 16:32:08 +02:00
5fb9ec5ed7 updated for version 7.3.612
Problem:    Auto formatting messes up text when 'fo' contains "2". (ZyX)
Solution:   Decrement "less_cols". (Tor Perkins)
2012-07-25 16:10:03 +02:00
9581b5f70e updated for version 7.3.611
Problem:    Can't use Vim dictionary as self argument in Python.
Solution:   Fix the check for the "self" argument. (ZyX)
2012-07-25 15:36:04 +02:00
641e286153 updated for version 7.3.610
Problem:    Cannot operate on the text that a search pattern matches.
Solution:   Add the "gn" and "gN" commands. (Christian Brabandt)
2012-07-25 15:06:34 +02:00
058bdcfd5d updated for version 7.3.609
Problem:    File names in :checkpath! output are garbled.
Solution:   Check for \zs in the pattern. (Lech Lorens)
2012-07-25 13:46:30 +02:00
6763c140d6 updated for version 7.3.608
Problem:    winrestview() does not always restore the view correctly.
Solution:   Call win_new_height() and win_new_width(). (Lech Lorens)
2012-07-19 18:05:44 +02:00
049d8e79cf updated for version 7.3.607
Problem:    With an 8 color terminal the selected menu item is black on black,
            because darkGrey as bg is the same as black.
Solution:   Swap fg and bg colors. (James McCoy)
2012-07-19 17:39:07 +02:00
94c465c53d updated for version 7.3.606
Problem:    CTRL-P completion has a problem with multi-byte characters.
Solution:   Check for next character being NUL properly.  (Yasuhiro Matsumoto)
2012-07-19 17:18:26 +02:00
1a0cee53d4 updated for version 7.3.605
Problem:    MS-Windows: Can't compile with older compilers. (Titov Anatoly)
Solution:   Add #ifdef for MEMORYSTATUSEX.
2012-07-19 11:37:26 +02:00
b5c9cb555e updated for version 7.3.604
Problem:    inputdialog() doesn't use the cancel argument in the console.
            (David Fishburn)
Solution:   Use the third argument. (Christian Brabant)
2012-07-16 19:27:29 +02:00
bdb620560b updated for version 7.3.603
Problem:    It is possible to add replace builtin functions by calling
            extend() on g:.
Solution:   Add a flag to a dict to indicate it is a scope.  Check for
            existing functions. (ZyX)
2012-07-16 17:31:53 +02:00
c2ece10274 updated for version 7.3.602
Problem:    Missing files in distribution.
Solution:   Update the list of files.
2012-07-16 17:28:11 +02:00
97f38d9540 updated for version 7.3.601
Problem:    Bad code style.
Solution:   Insert space, remove parens.
2012-07-16 17:26:22 +02:00
30b6581799 Updated runtime files. 2012-07-12 22:01:11 +02:00
dfef15481d updated for version 7.3.600
Problem:    <f-args> is not expanded properly with DBCS encoding.
Solution:   Skip over character instead of byte. (Yukihiro Nakadaira)
2012-07-10 19:25:10 +02:00
89af439409 updated for version 7.3.599
Problem:    Missing change in one file.
Solution:   Patch for changed clip_autoselect().
2012-07-10 18:31:54 +02:00
cfa3caec0c updated for version 7.3.598
Problem:    Cannot act upon end of completion. (Taro Muraoka)
Solution:   Add an autocommand event that is triggered when completion has
            finished. (Idea by Florian Klein)
2012-07-10 17:14:56 +02:00
c0885aad5c updated for version 7.3.597
Problem:    'clipboard' "autoselect" only applies to the * register. (Sergey
            Vakulenko)
Solution:   Make 'autoselect' work for the + register. (Christian Brabant)
            Add the "autoselectplus" option in 'clipboard' and the "P" flag in
            'guioptions'.
2012-07-10 16:49:23 +02:00
f65e5667df updated for version 7.3.596
Problem:    Can't remove all signs for a file or buffer.
Solution:   Support "*" for the sign id. (Christian Brabandt)
2012-07-10 15:18:22 +02:00
773c1ef81b updated for version 7.3.595
Problem:    The X command server responds slowly
Solution:   Change the loop that waits for replies. (Brian Burns)
2012-07-10 14:56:45 +02:00
52bf469f6f updated for version 7.3.594
Problem:    The X command server doesn't work perfectly. It sends an empty
            reply for as-keys requests.
Solution:   Remove duplicate ga_init2(). Do not send a reply for as-keys
            requests. (Brian Burns)
2012-07-10 14:25:04 +02:00
77c604d3ff updated for version 7.3.593
Problem:    No easy way to decide if b:browsefilter will work.
Solution:   Add the browsefilter feature.
2012-07-10 13:41:14 +02:00
6c4b646d84 updated for version 7.3.592
Problem:    Vim on GTK does not support g:browsefilter.
Solution:   Add a GtkFileFilter to the file chooser. (Christian Brabandt)
2012-07-10 13:12:51 +02:00
8cb8dca2f0 updated for version 7.3.591
Problem:    Can only move to a tab by absolute number.
Solution:   Move a number of tabs to the left or the right. (Lech Lorens)
2012-07-06 18:27:39 +02:00
0306ac33a5 updated for version 7.3.590
Problem:    The '< and '> marks cannot be set directly.
Solution:   Allow setting '< and '>. (Christian Brabandt)
2012-07-06 17:51:28 +02:00
bef4790c23 updated for version 7.3.589
Problem:    Crash when $HOME is not set.
Solution:   Check for a NULL pointer. (Chris Webb)
2012-07-06 16:49:40 +02:00
756287da38 updated for version 7.3.588
Problem:    Crash on NULL pointer.
Solution:   Fix the immediate problem by checking for NULL. (Lech Lorens)
2012-07-06 16:39:47 +02:00
e25865a7f3 updated for version 7.3.587
Problem:    Compiler warning for local var shadowing global var.
Solution:   Rename the var and move it to an inner block. (Christian Brabandt)
2012-07-06 16:22:02 +02:00
95b557b1dc updated for version 7.3.586
Problem:    When compiling with Cygwin or MingW MEMORYSTATUSEX is not defined.
Solution:   Set the default for WINVER to 0x0500.
2012-07-06 13:40:50 +02:00
5967abb97f updated for version 7.3.585
Problem:    Calling changed_bytes() too often.
Solution:   Move changed_bytes() out of a loop. (Tor Perkins)
2012-07-06 13:36:48 +02:00
221d6872c4 updated for version 7.3.584
Problem:    PyCObject is not always defined.
Solution:   Use PyObject instead.
2012-06-30 13:34:34 +02:00
e721122b79 updated for version 7.3.583
Problem:    PyObject_NextNotImplemented is not defined before Python 2.7.
            (Danek Duvall)
Solution:   Add #ifdefs.
2012-06-30 13:21:08 +02:00
49346f4155 updated for version 7.3.582
Problem:    Missing parts of the test OK file.
Solution:   Add the missing parts.
2012-06-29 23:57:54 +02:00
cc3e85f169 updated for version 7.3.581
Problem:    Problems compiling with Python.
Solution:   Pick UCS2 or UCS4 function at runtime. (lilydjwg)
2012-06-29 19:14:52 +02:00
3cd3e7ab17 updated for version 7.3.580
Problem:    Warning on 64 bit MS-Windows.
Solution:   Add type cast. (Mike Williams)
2012-06-29 17:52:02 +02:00
2afa3238a1 updated for version 7.3.579
Problem:    Can't compile with Python 2.5.
Solution:   Use PyCObject when Capsules are not available.
2012-06-29 16:28:28 +02:00
f27839c1a9 updated for version 7.3.578
Problem:    Misplaced declaration.
Solution:   Move declaration to start of block.
2012-06-29 16:19:50 +02:00
11b73d668f updated for version 7.3.577
Problem:    Size of memory does not fit in 32 bit unsigned.
Solution:   Use Kbyte instead of byte.  Call GlobalMemoryStatusEx() instead of
            GlobalMemoryStatus() when available.
2012-06-29 15:51:30 +02:00
96b7ca5142 updated for version 7.3.576
Problem:    Formatting of lists inside comments is not right yet.
Solution:   Use another solution and add a test. (Tor Perkins)
2012-06-29 15:04:49 +02:00
89f940fcac updated for version 7.3.575
Problem:    "ygt" tries to yank instead of giving an error. (Daniel Mueller)
Solution:   Check for a pending operator.
2012-06-29 13:56:06 +02:00
e79abddb2f updated for version 7.3.574
Problem:    When pasting a register in the search command line a CTRL-L
            character is not pasted. (Dominique Pelle)
Solution:   Escape the CTRL-L. (Christian Brabandt)
2012-06-29 13:44:41 +02:00
88b1ba151a updated for version 7.3.573
Problem:    Using array index before bounds checking.
Solution:   Swap the parts of the condition. (Dominique Pelle)
2012-06-29 13:34:19 +02:00
a53c60d33c updated for version 7.3.572
Problem:    Duplicate statement in if and else. (Dominique Pelle)
Solution:   Remove the condition and add a TODO.
2012-06-29 13:19:27 +02:00
f6a2b08c54 updated for version 7.3.571
Problem:    Duplicated condition.
Solution:   Remove one. (Dominique Pelle)
2012-06-29 13:14:03 +02:00
8f5c6f003a updated for version 7.3.570
Problem:    ":vimgrep" does not obey 'wildignore'.
Solution:   Apply 'wildignore' and 'suffixes' to ":vimgrep". (Ingo Karkat)
2012-06-29 12:57:06 +02:00
db91395312 updated for version 7.3.569
Problem:    Evaluating Vim expression in Python is insufficient.
Solution:   Add vim.bindeval().  Also add pyeval() and py3eval(). (ZyX)
2012-06-29 12:54:53 +02:00
a7014df975 updated for version 7.3.568
Problem:    Bad indents for #ifdefs.
Solution:   Add and remove spaces. (Elias Diem)
2012-06-29 12:35:44 +02:00
002850940e updated for version 7.3.567
Problem:    Missing copyright notice.
Solution:   Add Vim copyright notice. (Taro Muraoka)
2012-06-29 11:46:33 +02:00
22189a4bd6 updated for version 7.3.566
Problem:    Redo after completion does not work correctly when refresh: always
            is not used. (Raymond Ko)
Solution:   Check the compl_opt_refresh_always flag. (Christian Brabandt)
2012-06-20 22:56:02 +02:00
3943156034 updated for version 7.3.565
Problem:    Can't generate proto file for Python 3.
Solution:   Add PYTHON3_CFLAGS to LINT_CFLAGS.
2012-06-20 18:39:15 +02:00
d12f811816 updated for version 7.3.564
Problem:    Warning for pointer conversion.
Solution:   Add type cast.
2012-06-20 17:56:09 +02:00
50a12b4078 updated for version 7.3.563
Problem:    Can't build with tiny features.
Solution:   Add #ifdef.
2012-06-20 17:54:38 +02:00
38bdbd6c6f updated for version 7.3.562
Problem:    ":profdel" should not work when the +profile feature is disabled.
Solution:   Call ex_ni(). (Yasuhiro Matsumoto)
2012-06-20 15:48:57 +02:00
5e1a0a9a65 updated for version 7.3.561
Problem:    Using refresh: always in a complete function breaks the "."
            command. (Val Markovic)
Solution:   Add match leader to the redo buffer. (Yasuhiro Matsumoto)
2012-06-20 14:26:35 +02:00
ed46560bf0 updated for version 7.3.560
Problem:    Get an error for a locked argument in extend().
Solution:   Initialize the lock flag for a dictionary. (Yukihiro Nakadaira)
2012-06-20 14:13:06 +02:00
9158f9e423 updated for version 7.3.559
Problem:    home_replace() does not work with 8.3 filename.
Solution:   Make ":p" expand 8.3 name to full path. (Yasuhiro Matsumoto)
2012-06-20 14:02:27 +02:00
dc7e85ee5d updated for version 7.3.558
Problem:    Memory access error. (Gary Johnson)
Solution:   Allocate one more byte. (Dominique Pelle)
2012-06-20 12:40:08 +02:00
9e931224db updated for version 7.3.557
Problem:    Crash when an autocommand wipes out a buffer when it is hidden.
Solution:   Restore the current window when needed. (Christian Brabandt)
2012-06-20 11:55:01 +02:00
36105782d2 updated for version 7.3.556
Problem:    Compiler warnings on 64 bit Windows.
Solution:   Add type casts. (Mike Williams)
2012-06-14 20:59:25 +02:00
77c193579b updated for version 7.3.555
Problem:    Building on IBM z/OS fails.
Solution:   Adjust configure. Use the QUOTESED value from config.mk instead of
            the hard coded one in Makefile. (Stephen Bovy)
2012-06-13 19:19:41 +02:00
795ec43112 updated for version 7.3.554
Problem:    Compiler warning for unused argument.
Solution:   Add UNUSED.
2012-06-13 18:15:19 +02:00
5641f38d41 updated for version 7.3.553
Problem:    With double-width characters and 'listchars' containing "precedes"
            the text is displayed one cell off.
Solution:   Check for double-width character being overwritten by the
            "precedes" character. (Yasuhiro Matsumoto)
2012-06-13 18:06:36 +02:00
bfe3bf806a updated for version 7.3.552
Problem:    Formatting inside comments does not use the "2" flag in
            'formatoptions'.
Solution:   Support the "2" flag.  (Tor Perkins)
2012-06-13 17:28:55 +02:00
a8596c4772 updated for version 7.3.551
Problem:    When using :tablose a TabEnter autocommand is triggered too early.
            (Karthick)
Solution:   Don't trigger *Enter autocommands before closing the tab.
            (Christian Brabandt)
2012-06-13 14:28:20 +02:00
e04a48f204 updated for version 7.3.550
Problem:    With "j" in 'formatoptions' a list leader is not removed. (Gary
            Johnson)
Solution:   Don't ignore the start of a three part comment. (Lech Lorens)
2012-06-13 14:01:41 +02:00
48d279215f updated for version 7.3.549
Problem:    In 'cinoptions' "0s" is interpreted as one shiftwidth. (David
            Pineau)
Solution:   Use the zero as zero. (Lech Lorens)
2012-06-13 13:40:48 +02:00
27ba088549 updated for version 7.3.548
Problem:    Compiler warning on 64 bit Windows.
Solution:   Add type cast. (Mike Williams)
2012-06-07 21:09:39 +02:00
802053f14a updated for version 7.3.547
Problem:    Compiler warning for uninitialized variable.
Solution:   Initialize it.
2012-06-06 23:08:38 +02:00
3b393a0b53 updated for version 7.3.546
Problem:    Bogus line break.
Solution:   Remove the line break.
2012-06-06 19:05:50 +02:00
362ce48048 updated for version 7.3.545
Problem:    When closing a window or buffer autocommands may close it too,
            causing problems for where the autocommand was invoked from.
Solution:   Add the w_closing and b_closing flags.  When set disallow ":q" and
            ":close" to prevent recursive closing.
2012-06-06 19:02:45 +02:00
3b53dfb3b0 updated for version 7.3.544
Problem:    There is no good way to close a quickfix window when closing the
            last ordinary window.
Solution:   Add the QuitPre autocommand.
2012-06-06 18:03:07 +02:00
ab984db296 updated for version 7.3.543
Problem:    The cursor is in the wrong line after using ":copen". (John
            Beckett)
Solution:   Invoke more drastic redraw method.
2012-06-06 16:29:10 +02:00
08bc274e88 updated for version 7.3.542
Problem:    Function is sometimes unused.
Solution:   Add #ifdef.
2012-06-06 16:14:40 +02:00
8134039744 updated for version 7.3.541
Problem:    When joining lines comment leaders need to be removed manually.
Solution:   Add the 'j' flag to 'formatoptions'. (Lech Lorens)
2012-06-06 16:12:59 +02:00
bc256d91ea updated for version 7.3.540
Problem:    Cursor is left on the text instead of the command line.
Solution:   Don't call setcursor() in command line mode.
2012-06-06 12:06:15 +02:00
64fdf5ceae updated for version 7.3.539
Problem:    Redrawing a character on the command line does not work properly
            for multi-byte charactes.
Solution:   Count the number of bytes in a character. (Yukihiro Nakadaira)
2012-06-06 12:03:06 +02:00
c873442b15 Updated runtime files. 2012-06-01 22:38:45 +02:00
f13de07e49 updated for version 7.3.538
Problem:    'efm' does not handle Tabs in pointer lines.
Solution:   Add Tab support. Improve tests. (Lech Lorens)
2012-06-01 18:34:41 +02:00
24ee83b0a0 updated for version 7.3.537
Problem:    Unecessary call to init_spell_chartab().
Solution:   Delete the call.
2012-06-01 17:49:55 +02:00
88178de99f updated for version 7.3.536
Problem:    When spell checking the German sharp s is not seen as a word
            character. (Aexl Bender)
Solution:   In utf_islower() return true for the sharp s. Note: also need
            updated spell file for this to take effect.
2012-06-01 17:46:59 +02:00
9a920d8c31 updated for version 7.3.535
Problem:    Many #ifdefs for MB_MAXBYTES.
Solution:   Also define MB_MAXBYTES without the +multi_byte feature.  Fix
            places where the buffer didn't include space for a NUL byte.
2012-06-01 15:21:02 +02:00
704984ac87 updated for version 7.3.534
Problem:    When using an InsertCharPre autocommand autoindent fails.
Solution:   Proper handling of v:char. (Alexey Radkov)
2012-06-01 14:57:51 +02:00
d2aed44c77 updated for version 7.3.533
Problem:    Memory leak when writing undo file.
Solution:   Free the ACL. (Dominique Pelle)
2012-06-01 13:46:12 +02:00
112f318551 updated for version 7.3.532
Problem:    Compiler warning from Clang.
Solution:   Use a different way to point inside a string. (Dominique Pelle)
2012-06-01 13:18:53 +02:00
ae084bb97c updated for version 7.3.531
Problem:    GUI does not work on MS-Windows.
Solution:   Add the missing #ifdef. (Patrick Avery)
2012-05-27 00:37:51 +02:00
6a3c1b44e5 updated for version 7.3.530
Problem:    Gvim does not work when 'guioptions' includes "f". (Davido)
Solution:   Call gui_mch_init_check() when running GUI in the foreground.
            (Yasuhiro Matsumoto)
2012-05-25 14:06:36 +02:00
6057b9c658 updated for version 7.3.529
Problem:    Using a count before "v" and "V" does not work (Kikyous)
Solution:   Make the count select that many characters or lines. (Christian
            Brabandt)
2012-05-25 13:12:36 +02:00
bef1c36ab6 updated for version 7.3.528
Problem:    Crash when closing last window in a tab. (Alex Efros)
Solution:   Use common code in close_last_window_tabpage(). (Christian
            Brabandt)
2012-05-25 12:39:00 +02:00
936347b6bf updated for version 7.3.527
Problem:    Clang complains about non-ASCII characters in a string.
Solution:   Change to \x88 form. (Dominique Pelle)
2012-05-25 11:56:22 +02:00
0c50a6ba59 updated for version 7.3.526
Problem:    Confusing indenting for #ifdef.
Solution:   Remove and add indent. (Elias Diem)
2012-05-25 11:04:38 +02:00
17bd9dc2bd updated for version 7.3.525
Problem:    Compiler warning on 64 bit MS-Windows.
Solution:   Add type cast. (Mike Williams)
2012-05-25 11:02:41 +02:00
1763969e5c updated for version 7.3.524
Problem:    Missing comma.
Solution:   Add the comma.
2012-05-18 21:54:13 +02:00
8e52a59376 Fix more 'cpo' issues in runtime files. 2012-05-18 21:49:28 +02:00
bd1d560895 updated for version 7.3.523
Problem:    ":diffupdate" doesn't check for files changed elsewhere.
Solution:   Add the ! flag. (Christian Brabandt)
2012-05-18 18:47:17 +02:00
455981e69b updated for version 7.3.522
Problem:    Crash in vim_realloc() when using MEM_PROFILE.
Solution:   Avoid using a NULL argument. (Dominique Pelle)
2012-05-18 18:34:19 +02:00
f9de140e7f updated for version 7.3.521
Problem:    Using "z=" on a multi-byte character may cause a crash.
Solution:   Don't use strlen() on an int pointer.
2012-05-18 18:08:01 +02:00
2969570036 updated for version 7.3.520
Problem:    Gvim starts up slow on Unbuntu 12.04.
Solution:   Move the call to gui_mch_init_check() to after fork(). (Yasuhiro
            Matsumoto)  Do check $DISPLAY being set.
2012-05-18 17:03:18 +02:00
8a4c136a90 updated for version 7.3.519
Problem:    When completefunction returns it cannot indicate end of completion
            mode.
Solution:   Recognize completefunction returning -3.  (Mtsushita Shougo)
2012-05-18 16:35:21 +02:00
a0149c7401 updated for version 7.3.518
Problem:    When 'encoding' is a double-byte encoding ":helptags" may not find
            tags correctly.
Solution:   Use vim_strbyte() instead of vim_strchr(). (Yasuhiro Matsumoto)
2012-05-18 16:24:11 +02:00
1aeaf8c0e0 Updated runtime files. 2012-05-18 13:46:39 +02:00
dbb4a42cdc Ignore file generated by tests. 2012-05-18 13:14:26 +02:00
18e00d2c86 updated for version 7.3.517
Problem:    Crash when using "vipvv". (Alexandre Provencio)
Solution:   Don't let the text length become negative.
2012-05-18 12:49:40 +02:00
2fc8802fcc updated for version 7.3.516
Problem:    extend(o, o) may crash Vim.
Solution:   Fix crash and add test. (Thinca and Hirohito Higashi)
2012-05-18 12:07:05 +02:00
8071607aa5 More runtime file fixes for 'compatible' mode. 2012-05-01 21:14:34 +02:00
2d0b92f8f9 updated for version 7.3.515
Problem:    'wildignorecase' only applies to the last part of the path.
Solution:   Also ignore case for letters earlier in the path.
2012-04-30 21:09:43 +02:00
5ae636b9bb updated for version 7.3.514
Problem:    No completion for :history command.
Solution:   Add the completion and update the docs. Also fix ":behave"
            completion. (Dominique Pelle)
2012-04-30 18:48:53 +02:00
8320da42bc updated for version 7.3.513
Problem:    Cannot use CTRL-E and CTRL-Y with "r".
Solution:   Make CTRL-E and CTRL-Y work like in Insert mode. (Christian
            Brabandt)
2012-04-30 18:18:47 +02:00
b41d9689f1 updated for version 7.3.512
Problem:    undofile() returns a useless name when passed an empty string.
Solution:   Return an empty string. (Christian Brabandt)
2012-04-30 17:35:48 +02:00
7da9c37a17 updated for version 7.3.511
Problem:    Using a FileReadCmd autocommand that does ":e! {file}" may cause a
            crash. (Christian Brabandt)
Solution:   Properly restore curwin->w_s.
2012-04-30 17:04:52 +02:00
9a7224b5a0 Fixed compatible mode in most runtime files. 2012-04-30 15:56:52 +02:00
e8938e507e updated for version 7.3.510
Problem:    Test 77 fails on Solaris 7. (Michael Soyka)
Solution:   Replace any tabs with spaces.
2012-04-30 11:34:28 +02:00
ddbb5550b4 Updated runtime files, include fixes for line continuation. 2012-04-26 20:17:03 +02:00
d38b055ab8 Updated runtime files. 2012-04-25 19:07:41 +02:00
7f51a82c1b updated for version 7.3.509
Problem:    ":vimgrep" fails when 'autochdir' is set.
Solution:   A more generic solution for changing directory. (Ben Fritz)
2012-04-25 18:57:21 +02:00
b429cdeb6e updated for version 7.3.508
Problem:    Default for v:register is not set.
Solution:   Init v:register in eval_init(). Correct for 'clipboard' before the
            main loop. (Ingo Karkat)
2012-04-25 18:24:29 +02:00
8218f60b61 updated for version 7.3.507
Problem:    When exiting with unsaved changes, selecting an existing file in
            the file dialog, there is no dialog to ask whether the existing
            file should be overwritten. (Felipe G. Nievinski)
Solution:   Call check_overwrite() before writing. (Christian Brabandt)
2012-04-25 17:32:18 +02:00
68fb5dcd13 updated for version 7.3.506
Problem:    GTK gives an error when selecting a non-existent file.
Solution:   Add a handler to avoid the error. (Christian Brabandt)
2012-04-25 17:10:16 +02:00
68a33fc704 updated for version 7.3.505
Problem:    Test 11 fails on MS-Windows in some versions.
Solution:   Fix #ifdefs for whether filtering through a pipe is possible. Move
            setting b_no_eol_lnum back to where it was before patch 7.3.124.
            (David Pope)
2012-04-25 16:50:48 +02:00
720ce53af0 updated for version 7.3.504
Problem:    Commands in help files are not highlighted.
Solution:   Allow for commands in backticks.  Adjust CTRL-] to remove the
            backticks.
2012-04-25 12:57:28 +02:00
6217cdcec3 updated for version 7.3.503
Problem:    Warning for unused argument.
Solution:   Add UNUSED.
2012-04-25 12:28:09 +02:00
e436528e04 updated for version 7.3.502
Problem:    Netbeans insert halfway a line actually appends to the line.
Solution:   Insert halfway the line. (Brian Victor)
2012-04-20 19:47:05 +02:00
35df7d2d99 updated for version 7.3.501
Problem:    Error for "flush" not being defined when using Ruby command.
Solution:   Defined "flush" as a no-op method. (Kent Sibilev)
2012-04-20 18:05:47 +02:00
a6cdc99152 updated for version 7.3.500
Problem:    Ming makefile unconditionally sets WINVER.
Solution:   Only defined when not already defined. (Yasuhiro Matsumoto)
2012-04-20 16:13:25 +02:00
6be120e7f5 updated for version 7.3.499
Problem:    When using any interface language when Vim is waiting for a child
            process it gets confused by a child process started through the
            interface.
Solution:   Always used waitpid() instead of wait(). (Yasuhiro Matsumoto)
2012-04-20 15:55:16 +02:00
84298db3a4 updated for version 7.3.498
Problem:    The behavior of the "- register changes depending on value of
            the 'clipboard' option. (Szamotulski)
Solution:   Also set the "- register when the register is "*" or "+".
            (Christian Brabandt)
2012-04-20 13:46:08 +02:00
b830f0c7df updated for version 7.3.497
Problem:    Crash when doing ":python print" and compiled with gcc and
            the optimizer enabled.
Solution:   Avoid the crash, doesn't really fix the problem. (Christian
            Brabandt)
2012-04-20 13:31:21 +02:00
53bfca22f1 Updated runtime files. 2012-04-13 23:04:47 +02:00
09210ac93c updated for version 7.3.496
Problem:    MS-DOS: When "diff" trips over difference in line separators some
            tests fail.
Solution:   Make some .ok files use unix line separators. (David Pope)
2012-04-13 19:11:20 +02:00
b345d49e06 updated for version 7.3.495
Problem:    Compiler warnings.
Solution:   Add function declaration.  Remove "offset" argument.
2012-04-09 20:42:26 +02:00
bd2f3c3ec6 updated for version 7.3.494
Problem:    Can't compile with Lua 9.1 or dynamic Lua.
Solution:   Fix dll_ methods. Fix luado(). (Muraoka Taro, Luis Carvalho)
2012-04-06 14:31:00 +02:00
b0d7a15d3a updated for version 7.3.493
Problem:    Two unused variables.
Solution:   Remove them. (Hong Xu)
2012-04-06 13:56:04 +02:00
5b435d671e Updated runtime files. 2012-04-05 17:33:26 +02:00
3675fa09a7 updated for version 7.3.492
Problem:    Can't indent conditions separately from function arguments.
Solution:   Add the 'k' flag in 'cino. (Lech Lorens)
2012-04-05 17:17:42 +02:00
98411e57ab updated for version 7.3.491
Problem:    No tests for Lua.
Solution:   Add some simple tests for Lua. (Luis Carvalho)
2012-04-05 16:56:52 +02:00
1dced5727f updated for version 7.3.490
Problem:    Member confusion in Lua interface.
Solution:   Fix it.  Add luaeval(). (Taro Muraoka, Luis Carvalho)
2012-04-05 16:54:08 +02:00
e0ebfd7507 updated for version 7.3.489
Problem:    CTRL-] in Insert mode does not expand abbreviation when used in a
            mapping. (Yichao Zhou)
Solution:   Special case using CTRL-]. (Christian Brabandt)
2012-04-05 16:07:06 +02:00
3dbde6226d updated for version 7.3.488
Problem:    ":help!" in a help file does not work as document.
Solution:   When in a help file don't give an error message. (thinca)
2012-04-05 16:05:05 +02:00
61d35bd020 Updated runtime files. 2012-03-28 20:51:51 +02:00
913077c37c updated for version 7.3.487
Problem:    When setting 'timeoutlen' or 'ttimeoutlen' the column for vertical
            movement is reset unnecessarily.
Solution:   Do not set w_set_curswant for every option. Add a test for this.
            (Kana Natsuno) Add the P_CURSWANT flag for options.
2012-03-28 19:59:04 +02:00
ca628610c0 updated for version 7.3.486
Problem:    Build error with mingw64 on Windows 7.
Solution:   Avoid the step of going through vimres.res. (Guopeng Wen)
2012-03-28 17:43:11 +02:00
da5a4970a9 updated for version 7.3.485
Problem:    When building Vim LDFLAGS isn't passed on to building xxd.
Solution:   Pass the LDFLAGS value. (James McCoy)
2012-03-28 17:17:48 +02:00
f99bc6d002 updated for version 7.3.484
Problem:    The -E and --echo-wid command line arguments are not mentioned in
            "vim --help".
Solution:   Add the help lines. (Dominique Pelle)
2012-03-28 17:10:31 +02:00
6df5e5ae42 updated for version 7.3.483
Problem:    More prompt shows up too often.
Solution:   Instead of adding a line break, only start a new line in the
            message history. (Christian Brabandt)
2012-03-28 16:49:29 +02:00
524780d69f updated for version 7.3.482
Problem:    With 'cursorbind' set moving up/down does not always keep the same
            column.
Solution:   Set curswant appropriately. (Gary Johnson)
2012-03-28 14:19:50 +02:00
61d281a4c0 updated for version 7.3.481
Problem:    Changing 'virtualedit' in an operator function to "all" does not
            have the desired effect. (Aaron Bohannon)
Solution:   Save, reset and restore virtual_op when executing an operator
            function.
2012-03-28 12:59:57 +02:00
970a1b82ec updated for version 7.3.480
Problem:    When using ":qa" and there is a changed buffer picking the buffer
            to jump to is not very good.
Solution:   Consider current and other tab pages. (Hirohito Higashi)
2012-03-23 18:39:18 +01:00
06ca513e2c updated for version 7.3.479
Problem:    When 'cursorline' is set the line number highlighting can't be set
            separately.
Solution:   Add "CursorLineNr". (Howard Buchholz)
2012-03-23 16:25:17 +01:00
507cc8acf1 updated for version 7.3.478
Problem:    Memory leak using the ':rv!' command when reading dictionary or
            list global variables i.e. with 'viminfo' containing !.
Solution:   Free the typeval. (Dominique Pelle)
2012-03-23 15:37:02 +01:00
12b0290d42 updated for version 7.3.477
Problem:    Using ":echo" to output enough lines to scroll, then using "j" and
            "k" at the more prompt, displays the command on top of the output.
            (Marcin Szamotulski)
Solution:   Put the output below the command. (Christian Brabandt)
2012-03-23 15:18:24 +01:00
5e4b9e9ff8 updated for version 7.3.476
Problem:    When selecting a block, using "$" to include the end of each line
            and using "A" and typing a backspace strange things happen.
            (Yuangchen Xie)
Solution:   Avoid using a negative length. (Christian Brabandt)
2012-03-23 14:16:23 +01:00
5d3a8038b6 updated for version 7.3.475
Problem:    In a terminal with few colors the omnicomplete menu may be hard to
            see when using the default colors.
Solution:   Use more explicit colors. (suggested by Alex Henrie)
2012-03-16 20:16:46 +01:00
dfba6b6449 updated for version 7.3.474
Problem:    Perl build with gcc 4 fails.
Solution:   Remove XS() statements. (Yasuhiro Matsumoto)
2012-03-16 19:34:47 +01:00
1ea69b7077 updated for version 7.3.473
Problem:    'cursorbind' does not work correctly in combination with
            'virtualedit' set to "all".
Solution:   Copy coladd. (Gary Johnson)
2012-03-16 19:24:26 +01:00
5ad15df9ce updated for version 7.3.472
Problem:    Crash when using ":redraw" in a BufEnter autocommand and
            switching to another tab. (驼峰)
Solution:   Move triggering the the autocommands to after correcting the
            option values. Also check the row value to be out of bounds.
            (Christian Brabandt, Sergey Khorev)
2012-03-16 19:07:58 +01:00
1c0b03e857 updated for version 7.3.471
Problem:    Can't abort listing placed signs.
Solution:   Check "got_int". (Christian Brabandt)
2012-03-16 14:32:15 +01:00
84f7235bdb Updated runtime files. Add Dutch translations. 2012-03-11 15:57:40 +01:00
7c578d3c3f updated for version 7.3.470
Problem:    Test 62 fails when compiled without GUI and X11.
Solution:   Don't test :drop when it is not supported.
2012-03-07 22:55:20 +01:00
5fbe699390 updated for version 7.3.469
Problem:    Compiler warning for unused argument without some features.
Solution:   Add UNUSED.
2012-03-07 22:52:36 +01:00
8ec1f8523b updated for version 7.3.468
Problem:    For some compilers the error file is not easily readable.
Solution:   Use QuickFixCmdPre for more commands. (Marcin Szamotulski)
2012-03-07 20:13:49 +01:00
917ba89f7f updated for version 7.3.467
Problem:    Cursor positioned wrong at the command line when regaining focus
            and using some input method.
Solution:   Do not position the cursor in command line mode.
2012-03-07 19:38:55 +01:00
9e98edfe8f updated for version 7.3.466
Problem:    Get ml_get error hen ":behave mswin" was used and selecting
            several lines.  (A. Sinan Unur)
Solution:   Adjust the end of the operation. (Christian Brabandt)
2012-03-07 19:30:36 +01:00
146e9c3886 updated for version 7.3.465
Problem:    Cannot get file name with newline from glob().
Solution:   Add argument to glob() and expand() to indicate they must return a
            list. (Christian Brabandt)
2012-03-07 19:18:23 +01:00
552ac13d55 updated for version 7.3.464
Problem:    Compiler warning for sprintf.
Solution:   Put the length in a variable. (Dominique Pelle)
2012-03-07 18:03:10 +01:00
0faaeb826e updated for version 7.3.463
Problem:    When using ":s///c" the cursor is moved away from the match.
            (Lawman)
Solution:   Don't move the cursor when do_ask is set. (Christian Brabandt)
2012-03-07 14:57:52 +01:00
d25ad65a97 updated for version 7.3.462
Problem:    When using ":loadview" folds may be closed unexpectedly.
Solution:   Take into account foldlevel. (Xavier de Gaye)
2012-02-29 19:20:02 +01:00
f5876f147a updated for version 7.3.461
Problem:    The InsertCharPre autocommand event is not triggered during
            completion and when typing several characters quickly.
Solution:   Also trigger InsertCharPre during completion.  Do not read ahead
            when an InsertCharPre autocommand is defined. (Yasuhiro Matsumoto)
2012-02-29 18:22:08 +01:00
91856270df updated for version 7.3.460
Problem:    Win32: UPX does not compress 64 bit binaries.
Solution:   Mention and add the alternative: mpress. (Dave Bodenstab)
2012-02-29 16:56:39 +01:00
4336cdf318 updated for version 7.3.459
Problem:    Win32: Warnings for type conversion.
Solution:   Add type casts. (Mike Williams)
2012-02-29 13:58:47 +01:00
7f29f7a2f4 updated for version 7.3.458
Problem:    Crash when calling smsg() during startup.
Solution:   Don't use 'shortmess' when it is not set yet.
2012-02-29 13:51:37 +01:00
011a34d77d updated for version 7.3.457
Problem:    When setting $VIMRUNTIME later the directory for fetching
            translated messages is not adjusted.
Solution:   Put bindtextdomain() in vim_setenv().
2012-02-29 13:49:09 +01:00
52379eadfb updated for version 7.3.456
Problem:    ":tab drop file" has several problems, including moving the
            current window and opening a new tab for a file that already has a
            window.
Solution:   Refactor ":tab drop" handling. (Hirohito Higashi)
2012-02-22 19:13:08 +01:00
b549a731fb updated for version 7.3.455
Problem:    Using many continuation lines can be slow.
Solution:   Adjust the reallocation size to the current length.
2012-02-22 18:29:33 +01:00
7282bc3e7e updated for version 7.3.454
Problem:    Re-allocating memory slows Vim down.
Solution:   Use realloc() in ga_grow(). (Dominique Pelle)
2012-02-22 18:12:32 +01:00
58437e0409 updated for version 7.3.453
Problem:    Pasting in the command line is slow.
Solution:   Don't redraw if there is another character to read. (Dominique
            Pelle)
2012-02-22 17:58:04 +01:00
5f1e3e4473 updated for version 7.3.452
Problem:    Undo broken when pasting close to the last line. (Andrey Radev)
Solution:   Use a flag to remember if the deleted included the last line.
            (Christian Brabandt)
2012-02-22 17:38:00 +01:00
db7207e6e5 Updated runtime files. 2012-02-22 17:30:19 +01:00
84a4c334e1 updated for version 7.3.451
Problem:    Tcl doesn't work on 64 MS-Windows.
Solution:   Make it work. (Dave Bodenstab)
2012-02-22 16:01:56 +01:00
ee7d100091 updated for version 7.3.450
Problem:    Win32: Still a problem with "!start /b".
Solution:   Fix pointer use. (Yasuhiro Matsumoto)
2012-02-22 15:34:08 +01:00
42ec656524 updated for version 7.3.449
Problem:    Crash when a BufWinLeave autocommand closes the only other window.
            (Daniel Hunt)
Solution:   Abort closing a buffer when it becomes the only one.
2012-02-22 14:58:37 +01:00
fb7df7be2f updated for version 7.3.448
Problem:    Win32: Still a problem with "!start /b".
Solution:   Escape only '|'. (Yasuhiro Matsumoto)
2012-02-22 13:07:05 +01:00
6b707b4b82 updated for version 7.3.447
Problem:    Win32: External commands with "start" do not work.
Solution:   Unescape part of the command. (Yasuhiro Matsumoto)
2012-02-21 21:22:44 +01:00
f66b3fcf6c updated for version 7.3.446
Problem:    Win32: External commands with special characters don't work.
Solution:   Add the 'shellxescape' option.
2012-02-20 22:18:30 +01:00
034b115568 updated for version 7.3.445
Problem:    Can't properly escape commands for cmd.exe.
Solution:   Default 'shellxquote' to '('.  Append ')' to make '(command)'.
            No need to use "/s" for 'shellcmdflag'.
2012-02-19 18:19:30 +01:00
5dc6252d33 Update runtime files. 2012-02-13 00:05:22 +01:00
61c3519b78 updated for version 7.3.444
Problem:    ":all!" and ":sall!" give error E477, even though the
            documentation says these are valid commands.
Solution:   Support the exclamation mark. (Hirohito Higashi)
2012-02-13 00:01:43 +01:00
a64ba220f0 updated for version 7.3.443
Problem:    MS-Windows: 'shcf' and 'shellxquote' defaults are not very good.
Solution:   Make a better guess when 'shell' is set to "cmd.exe". (Ben Fritz)
2012-02-12 23:23:31 +01:00
60542ac9fd updated for version 7.3.442
Problem:    Still read modelines for ":doautocmd".
Solution:   Move check for <nomodeline> to separate function.
2012-02-12 20:14:01 +01:00
bbc98db7c4 updated for version 7.3.441
Problem:    Newer versions of MzScheme (Racket) require earlier (trampolined)
            initialisation.
Solution:   Call mzscheme_main() early in main(). (Sergey Khorev)
2012-02-12 01:55:55 +01:00
efcb54b78c updated for version 7.3.440
Problem:    Vim does not support UTF8_STRING for the X selection.
Solution:   Add UTF8_STRING atom support. (Alex Efros) Use it only when
            'encoding' is set to Unicode.
2012-02-12 01:35:10 +01:00
be74734429 updated for version 7.3.439
Problem:    Compiler warnings to size casts in Perl interface.
Solution:   Use XS macros. (James McCoy)
2012-02-12 00:31:52 +01:00
a61d5fbf7a updated for version 7.3.438
Problem:    There is no way to avoid ":doautoall" reading modelines.
Solution:   Add the <nomodeline> argument. Adjust documentation.
2012-02-12 00:18:58 +01:00
28f2908d95 updated for version 7.3.437
Problem:    Continue looping inside FOR_ALL_TAB_WINDOWS even when already done.
Solution:   Use goto instead of break. (Hirohito Higashi)
2012-02-11 23:45:37 +01:00
68ba0dd633 updated for version 7.3.436
Problem:    Compiler warnings for types on Windows.
Solution:   Add type casts. (Mike Williams)
2012-02-11 20:44:10 +01:00
c047b9a49f updated for version 7.3.435
Problem:    Compiler warning for unused variable.
Solution:   Move the variable inside #ifdef.
2012-02-11 20:40:55 +01:00
3fe37d62d1 updated for version 7.3.434
Problem:    Using join() can be slow.
Solution:   Compute the size of the result before allocation to avoid a lot of
            allocations and copies. (Taro Muraoka)
2012-02-06 00:13:22 +01:00
b3a6bbc7b6 updated for version 7.3.433
Problem:    Using continued lines in a Vim script can be slow.
Solution:   Instead of reallocating for every line use a growarray. (Yasuhiro
            Matsumoto)
2012-02-05 23:10:30 +01:00
8d462f9666 updated for version 7.3.432
Problem:    ACLs are not supported for ZFS or NFSv4 on Solaris.
Solution:   Add configure check and code. (Danek Duvall)
2012-02-05 22:51:33 +01:00
a8c8a688ac updated for version 7.3.431
Problem:    Fetching a key at a prompt may be confused by escape sequences.
            Especially when getting a prompt at a VimEnter autocommand.
            (Alex Efros)
Solution:   Properly handle escape sequences deleted by check_termcode().
2012-02-05 22:05:48 +01:00
73b2470896 updated for version 7.3.430
Problem:    When a custom filetype detection uses "augroup END" the conf
            fileytpe detection does not have the filetypedetect group.
Solution:   Always end the group and include filetypedetect in the conf
            autocommand. (Lech Lorens)
2012-02-05 20:08:36 +01:00
be094a1579 updated for version 7.3.429
Problem:    When 'cpoptions' includes "E" "c0" in the first column is an
            error. The redo register is then set to the errornous command.
Solution:   Do not set the redo register if the command fails because of an
            empty region. (Hideki Eiraku)
2012-02-05 01:18:48 +01:00
e37c611012 updated for version 7.3.428
Problem:    Win32: an xpm file without a mask crashes Vim.
Solution:   Fail when the mask is missing. (Dave Bodenstab)
2012-02-05 00:48:00 +01:00
a489e1d9d6 updated for version 7.3.427
Problem:    readfile() can be slow with long lines.
Solution:   Use realloc() instead of alloc(). (John Little)
2012-02-05 00:39:18 +01:00
76b9b3696c updated for version 7.3.426
Problem:    With '$' in 'cpoptions' the $ is not displayed in the first
            column.
Solution:   Use -1 instead of 0 as a special value. (Hideki Eiraku and
            Hirohito Higashi)
2012-02-04 23:35:00 +01:00
d87fbc2b1c updated for version 7.3.425
Problem:    Search history lines are duplicated. (Edwin Steiner)
Solution:   Convert separator character from space to NUL.
2012-02-04 22:44:32 +01:00
fbe323d854 updated for version 7.3.424
Problem:    Win16 version missing some functions.
Solution:   Add #defines for the functions.
2012-02-04 22:01:48 +01:00
b8ff1fb5eb updated for version 7.3.423
Problem:    Small mistakes in comments, proto and indent.
Solution:   Fix the mistakes.

Also update runtime files
2012-02-04 21:59:01 +01:00
7f85d297dc updated for version 7.3.422
Problem:    Python 3 does not have __members__.
Solution:   Add "name" and "number" in another way. (lilydjwg)
2012-02-04 20:17:26 +01:00
3c70f33440 updated for version 7.3.421
Problem:    Get E832 when setting 'undofile' in vimrc and there is a file to
            be edited on the command line. (Toothpik)
Solution:   Do not try reading the undo file for a file that wasn't loaded.
2012-01-28 18:03:35 +01:00
16c31fe1b7 updated for version 7.3.420
Problem:    "it" and "at" don't work properly with a dash in the tag name.
Solution:   Require a space to match the tag name. (Christian Brabandt)
2012-01-26 20:58:26 +01:00
7d550fbde5 updated for version 7.3.419
Problem:    DBCS encoding in a user command does not always work.
Solution:   Skip over DBCS characters. (Yasuhiro Matsumoto)
2012-01-26 20:41:26 +01:00
6110a006d5 updated for version 7.3.418
Problem:    When a user complete function returns -1 an error message is
            given.
Solution:   When -2 is returned stop completion silently. (Yasuhiro Matsumoto)
2012-01-26 18:58:38 +01:00
8e808d2b4d updated for version 7.3.417
Problem:    Test 43 fails with a tiny build.
Solution:   Only run test 43 with at least a small build.
2012-01-26 18:56:47 +01:00
975261e8a0 updated for version 7.3.416
Problem:    Compiler warning for wrong pointer.
Solution:   Add type cast.
2012-01-26 18:52:06 +01:00
f44cfb88f6 updated for version 7.3.416
Problem:    Compiler warning for wrong pointer.
Solution:   Add type cast.
2012-01-26 18:03:07 +01:00
abe838b099 updated for version 7.3.415
Problem:    Completion of functions stops once a dictionary is encountered.
            (James McCoy)
Solution:   Return an empty string instead of NULL.
2012-01-26 14:32:30 +01:00
06af60244e updated for version 7.3.414
Problem:    Using CTRL-A on "000" drops the leading zero, while on "001" it
            doesn't.
Solution:   Detect "000" as an octal number. (James McCoy)
2012-01-26 13:40:08 +01:00
38f5f9529a updated for version 7.3.413
Problem:    Build warnings on MS-Windows.
Solution:   Add type casts. (Mike Williams)
2012-01-26 13:01:59 +01:00
2b04b19455 updated for version 7.3.412
Problem:    Storing a float in a session file has an additional '&'.
Solution:   Remove the '&'. (Yasuhiro Matsumoto)
2012-01-26 11:45:30 +01:00
53748fcb7b updated for version 7.3.411
Problem:    Pasting in Visual mode using the "" register does not work. (John
            Beckett)
Solution:   Detect that the write is overwriting the pasted register.
            (Christian Brabandt)
2012-01-26 11:43:09 +01:00
33c1b198c6 updated for version 7.3.410
Problem:    Compiler error for // comment. (Joachim Schmitz)
Solution:   Turn into /* comment */.
2012-01-23 20:48:40 +01:00
7474c7c3d6 updated for version 7.3.409
Problem:    The license in pty.c is unclear.
Solution:   Add a comment about the license.
2012-01-20 21:13:59 +01:00
6be7f8733f Update runtime files. 2012-01-20 21:08:56 +01:00
90b280059f updated for version 7.3.408
Problem:    Missing declaration.
Solution:   Add the declaration. (John Marriott)
2012-01-20 20:54:19 +01:00
f31b764c23 updated for version 7.3.407
Problem:    ":12verbose call F()" may duplicate text while trying to truncate.
            (Thinca)
Solution:   Only truncate when there is not enough room.  Also check the byte
            length of the buffer.
2012-01-20 20:44:43 +01:00
3ef7cdf0fd updated for version 7.3.406
Problem:    Multi-byte characters in b:browsefilter are not handled correctly.
Solution:   First use convert_filter() normally and then convert to wide
            characters. (Taro Muraoka)
2012-01-20 17:57:51 +01:00
5af7d71276 updated for version 7.3.405
Problem:    When xterm gets back the function keys it may delete the urxvt
            mouse termcap code.
Solution:   Check for the whole code, not just the start. (Egmont Koblinger)
2012-01-20 17:15:51 +01:00
6d6cec8375 updated for version 7.3.404
Problem:    When a complete function uses refresh "always" redo will not work
            properly.
Solution:   Do not reset compl_leader when compl_opt_refresh_always is set.
            (Yasuhiro Matsumoto)
2012-01-20 14:32:27 +01:00
73633f84d6 updated for version 7.3.403
Problem:    ":helpgrep" does not trigger QuickFixCmd* autocommands.
Solution:   Trigger the autocommands. (Christian Brabandt)
2012-01-20 13:39:07 +01:00
8f55d103db updated for version 7.3.402
Problem:    When jumping to the first error a line of the buffer is sometimes
            redrawn on top of the list of errors.
Solution:   Do not call update_topline_redraw() if the display was scrolled
            up.
2012-01-20 13:28:34 +01:00
309cbc3840 updated for version 7.3.401
Problem:    A couple more shadowed variables.
Solution:   Rename the variables.
2012-01-10 22:31:31 +01:00
70b2a56d5a updated for version 7.3.400
Problem:    Compiler warnings for shadowed variables.
Solution:   Remove or rename the variables.
2012-01-10 22:26:17 +01:00
1f5965b3c4 updated for version 7.3.399
Problem:    ":cd" doesn't work when the path contains wildcards. (Yukihiro
            Nakadaira)
Solution:   Ignore wildcard errors when the EW_NOTWILD flag is used.
2012-01-10 18:37:58 +01:00
a0f299b4e8 updated for version 7.3.398
Problem:    When creating more than 10 location lists and adding items one by
            one a previous location may be used. (Audrius Kažukauskas)
Solution:   Clear the location list completely when adding the tenth one.
2012-01-10 17:13:52 +01:00
10b7b39b3d updated for version 7.3.397
Problem:    ":helpgrep" does not work properly when 'encoding' is not utf-8 or
            latin1.
Solution:   Convert non-ascii lines to 'encoding'. (Yasuhiro Matsumoto)
2012-01-10 16:28:45 +01:00
6ee8d89cf9 Updated runtime files. 2012-01-10 14:55:01 +01:00
64a72303f8 updated for version 7.3.396
Problem:    After forcing an operator to be characterwise it can still become
            linewise when spanning whole lines.
Solution:   Don't make the operator linewise when motion_force was set.
            (Christian Brabandt)
2012-01-10 13:46:22 +01:00
66accae339 updated for version 7.3.395
Problem:    "dv?bar" in the last line deletes too much and breaks undo.
Solution:   Only adjust the cursor position when it's after the last line of
            the buffer.  Add a test. (Christian Brabandt)
2012-01-10 13:44:27 +01:00
738f8fc8ed updated for version 7.3.394
Problem:    When placing a mark while starting up a screen redraw messes up
            the screen. (lith)
Solution:   Don't redraw while still starting up. (Christian Brabandt)
2012-01-10 12:42:09 +01:00
6ef47c223e updated for version 7.3.393
Problem:    Win32: When resizing Vim it is always moved to the primary monitor
            if the secondary monitor is on the left.
Solution:   Use the nearest monitor. (Yukihiro Nakadaira)
2012-01-04 20:29:22 +01:00
374d32d70f updated for version 7.3.392
Problem:    When setting 'undofile' while the file is already loaded but
            unchanged, try reading the undo file. (Andy Wokula)
Solution:   Compute a checksum of the text when 'undofile' is set. (Christian
            Brabandt)
2012-01-04 19:34:37 +01:00
79a2a49c5a updated for version 7.3.391
Problem:    Can't check if the XPM_W32 feature is enabled.
Solution:   Add xpm_w32 to the list of features. (kat)
2012-01-04 14:35:37 +01:00
fc57380c3f updated for version 7.3.390
Problem:    Using NULL buffer pointer in a window.
Solution:   Check for w_buffer being NULL in more places. (Bjorn Winckler)
2011-12-30 15:01:59 +01:00
5d6f75e17e updated for version 7.3.389
Problem:    After typing at a prompt the "MORE" message appears too soon.
Solution:   reset lines_left in msg_end_prompt(). (Eswald)
2011-12-30 14:14:29 +01:00
83bac4c31a updated for version 7.3.388
Problem:    Crash on exit when EXITFREE is defined and using tiny features.
Solution:   Check for NULL window pointer. (Dominique Pelle)
2011-12-30 13:39:10 +01:00
b6b046b281 Updated runtime files. 2011-12-30 13:11:27 +01:00
deaf7b7397 updated for version 7.3.387
Problem:    Test 83 may fail for some encodings.
Solution:   Set 'encoding' to utf-8 earlier.
2011-12-30 13:09:21 +01:00
ff0a4809e3 updated for version 7.3.386
Problem:    Test 83 fails when iconv does not support cp932. (raf)
Solution:   Test if conversion works. (Yukihiro Nakadaira)
2011-12-23 14:56:28 +01:00
637606413f updated for version 7.3.385
Problem:    When using an expression mapping on the command line the cursor
            ends up in the wrong place. (Yasuhiro Matsumoto)
Solution:   Save and restore msg_col and msg_row when evaluating the
            expression.
2011-12-23 14:54:04 +01:00
bbd9fd7353 updated for version 7.3.384
Problem:    Mapping CTRL-K in Insert mode breaks CTRL-X CTRL-K for dictionary
            completion.
Solution:   Add CTRL-K to the list of recognized keys. (James McCoy)
2011-12-23 13:15:03 +01:00
265116a99a updated for version 7.3.383
Problem:    For EBCDIC pound sign is defined as 't'.
Solution:   Correctly define POUND.
2011-12-23 12:47:03 +01:00
213ae48854 updated for version 7.3.382
Problem:    IME characters are inserted twice.
Solution:   Do not call DefWindowProc() if the event was handled. (Yasuhiro
            Matsumoto)
2011-12-15 21:51:36 +01:00
f1568eca24 Update runtime files. 2011-12-14 21:17:39 +01:00
f788a06103 updated for version 7.3.381
Problem:    Configure silently skips interfaces that won't work.
Solution:   Add the --enable-fail_if_missing argument. (Shlomi Fish)
2011-12-14 20:51:25 +01:00
c367faad99 updated for version 7.3.380
Problem:    C-indenting wrong for a function header.
Solution:   Skip to the start paren. (Lech Lorens)
2011-12-14 20:21:35 +01:00
a528565cf1 updated for version 7.3.379
Problem:    C-indenting wrong for static enum.
Solution:   Skip over "static". (Lech Lorens)
2011-12-14 20:05:21 +01:00
323cb95120 updated for version 7.3.378
Problem:    When cross-compiling the check for uint32_t fails.
Solution:   Only give a warning message. (Maksim Melnikau)
2011-12-14 19:22:34 +01:00
d6e256c31a updated for version 7.3.377
Problem:    No support for bitwise AND, OR, XOR and invert.
Solution:   Add add(), or(), invert() and xor() functions.
2011-12-14 15:32:50 +01:00
2787ab91b0 updated for version 7.3.376
Problem:    Win32: Toolbar repainting does not work when the mouse pointer
            hovers over a button.
Solution:   Call DefWindowProc() when not hanlding an event. (Sergiu Dotenco)
2011-12-14 15:23:59 +01:00
68dfcdf725 updated for version 7.3.375
Problem:    Duplicate return statement.
Solution:   Remove the superfluous one. (Dominique Pelle)
2011-12-14 15:07:29 +01:00
b38e9ab4af updated for version 7.3.374
Problem:    ++encoding does not work properly.
Solution:   Recognize ++encoding before ++enc. (Charles Cooper)
2011-12-14 14:49:45 +01:00
08fc756582 updated for version 7.3.373
Problem:    A tags file with an extremely long name may cause an infinite loop.
Solution:   When encountering a long name switch to linear search.
2011-12-14 14:15:16 +01:00
96a8964564 updated for version 7.3.372
Problem:    When using a command line mapping to <Up> with file name
            completion to go one directory up, 'wildchar' is inserted.
            (Yasuhiro Matsumoto)
Solution:   Set the KeyTyped flag.
2011-12-08 18:44:51 +01:00
b9ba403542 updated for version 7.3.371
Problem:    Crash in autocomplete. (Greg Weber)
Solution:   Check not going over allocated buffer size.
2011-12-08 17:49:35 +01:00
fa263a517b updated for version 7.3.370
Problem:    Compiler warns for unused variable in Lua interface.
Solution:   Remove the variable.
2011-12-08 16:00:16 +01:00
f4120a8964 updated for version 7.3.369
Problem:    When compiled with Gnome get an error message when using --help.
Solution:   Don't fork. (Ivan Krasilnikov)
2011-12-08 15:57:59 +01:00
aeabe0545d updated for version 7.3.368
Problem:    Gcc complains about redefining _FORTIFY_SOURCE.
Solution:   Undefine it before redefining it.
2011-12-08 15:17:34 +01:00
ae7ba984ee updated for version 7.3.367
Problem:    :wundo and :rundo use a wrong checksum.
Solution:   Include the last line when computing the hash. (Christian Brabandt)
2011-12-08 15:14:09 +01:00
0a11f8ce4e updated for version 7.3.366
Problem:    A tags file with an extremely long name causes errors.
Solution:   Ignore tags that are too long. (Arno Renevier)
2011-12-08 15:12:11 +01:00
f0b6b0cc3b updated for version 7.3.365
Problem:    Crash when using a large Unicode character in a file that has
            syntax highlighting. (ngollan)
Solution:   Check for going past the end of the utf tables. (Dominique Pelle)
2011-12-08 15:09:52 +01:00
2bbafdbcee updated for version 7.3.364
Problem:    Can't compile on HP-UX. (John Marriott)
Solution:   Only use TTYM_URXVT when it is defined.
2011-12-01 20:59:21 +01:00
3388bb4847 updated for version 7.3.363
Problem:    C indenting is wrong after #endif followed by a semicolon.
Solution:   Add special handling for a semicolon in a line by itself. (Lech
            Lorens)
2011-11-30 17:20:23 +01:00
0612ec8d53 updated for version 7.3.362
Problem:    ml_get error when using ":g" with folded lines.
Solution:   Adjust the line number for changed_lines(). (Christian Brabandt)
2011-11-30 17:01:58 +01:00
89c7122c05 updated for version 7.3.361
Problem:    Accessing memory after it is freed when EXITFREE is defined.
Solution:   Don't access curwin when firstwin is NULL. (Dominique Pelle)
2011-11-30 15:40:56 +01:00
8000baffa7 updated for version 7.3.360
Problem:    Interrupting the load of an autoload function may cause a crash.
Solution:   Do not use the hashitem when not valid. (Yukihiro Nakadaira)
2011-11-30 15:19:28 +01:00
195ea0ff6c updated for version 7.3.359
Problem:    Command line completion shows dict functions.
Solution:   Skip dict functions for completion. (Yasuhiro Matsumoto)
2011-11-30 14:57:31 +01:00
b491c03ee7 updated for version 7.3.358
Problem:    Mouse support doesn't work properly.
Solution:   Add HMT_URXVT. (lilydjwg, James McCoy)
2011-11-30 14:47:15 +01:00
26fdd7da96 updated for version 7.3.357
Problem:    Compiler warning in MS-Windows console build.
Solution:   Adjust return type of PrintHookProc(). (Mike Williams)
2011-11-30 13:42:44 +01:00
6d8f9c6f59 updated for version 7.3.356
Problem:    Using "o" with 'cindent' set may freeze Vim. (lolilolicon)
Solution:   Skip over {} correctly. (Hari G)
2011-11-30 13:03:28 +01:00
49e4ec6eee updated for version 7.3.355
Problem:    GTK warnings when using netrw.vim. (Ivan Krasilnikov)
Solution:   Do not remove the beval event handler twice.
2011-11-30 11:31:30 +01:00
4e5ccfa5c7 updated for version 7.3.354
Problem:    ":set backspace+=eol" doesn't work when 'backspace' has a
            backwards compatible value of 2.
Solution:   Convert the number to a string. (Hirohito Higashi)
2011-11-30 11:15:47 +01:00
1dff76bcb8 updated for version 7.3.353
Problem:    Missing part of the urxvt patch.
Solution:   Add the change in term.c
2011-10-26 23:48:20 +02:00
db710ed999 updated for version 7.3.352
Problem:    When completing methods dict functions and script-local functions
            get in the way.
Solution:   Sort function names starting with "<" to the end. (Yasuhiro
            Matsumoto)
2011-10-26 22:02:15 +02:00
a27ad5aea1 updated for version 7.3.351
Problem:    Text formatting uses start of insert position when it should not.
            (Peter Wagenaar)
Solution:   Do not use Insstart when intentionally formatting.
2011-10-26 17:04:29 +02:00
50bfb3278e updated for version 7.3.350
Problem:    Block of code after ":lua << EOF" may not work. (Paul Isambert)
Solution:   Recognize the ":lua" command, skip to EOF.
2011-10-26 13:19:27 +02:00
f541c36a8c updated for version 7.3.349
Problem:    When running out of memory during startup trying to open a
            swapfile will loop forever.
Solution:   Let findswapname() set dirp to NULL if out of memory.
2011-10-26 11:44:18 +02:00
79739e163b updated for version 7.3.348
Problem:    "call range(1, 947948399)" causes a crash. (ZyX)
Solution:   Avoid a loop in the out of memory message.
2011-10-26 11:41:00 +02:00
b931d74b06 updated for version 7.3.347
Problem:    When dropping text from a browser on Vim it receives HTML even
            though "html" is excluded from 'clipboard'. (Andrei Avk)
Solution:   Fix the condition for TARGET_HTML.
2011-10-26 11:36:25 +02:00
1514667a24 Updated runtime files. 2011-10-20 22:22:38 +02:00
e3cc6d4223 updated for version 7.3.346
Problem:    It's hard to test netbeans commands.
Solution:   Process netbeans commands after :sleep. (Xavier de Gaye)
2011-10-20 21:58:34 +02:00
6cc00c75c1 updated for version 7.3.345 2011-10-20 21:41:09 +02:00
cd6fe97e6b updated for version 7.3.344
Problem:    Problem with GUI startup related to XInitThreads.
Solution:   Use read() and write() instead of fputs() and fread(). (James
            Vega)
2011-10-20 21:28:01 +02:00
c842748302 updated for version 7.3.343
Problem:    No mouse support for urxvt.
Solution:   Implement urxvt mouse support, also for > 252 columns.  (Yiding
            Jia)
2011-10-20 21:09:35 +02:00
62dbdc4a5a updated for version 7.3.342
Problem:    Code not in Vim style.
Solution:   Fix the style. (Elias Diem)
2011-10-20 18:24:22 +02:00
667b4d2db9 updated for version 7.3.341
Problem:    Local help files are only listed in help.txt, not in translated
            help files.
Solution:   Also find translated help files. (Yasuhiro Matsumoto)
2011-10-20 18:17:42 +02:00
f34dc6537d updated for version 7.3.340
Problem:    When 'verbosefile' is set ftplugof.vim can give an error.
Solution:   Only remove filetypeplugin autocommands when they exist. (Yasuhiro
            Matsumoto)
2011-10-20 18:12:32 +02:00
a4594f6b82 updated for version 7.3.339
Problem:    "make shadow" doesn't link all test files.
Solution:   Add a line in Makefile and Filelist.
2011-10-20 16:35:35 +02:00
b3479bd229 updated for version 7.3.338
Problem:    Using getchar() in an expression mapping doesn't work well.
Solution:   Don't save and restore the typeahead. (James Vega)
2011-10-12 22:02:14 +02:00
2e7b1df8fa updated for version 7.3.337
Problem:    Screen doesn't update after resizing the xterm until a character
            is typed.
Solution:   When the select call is interrupted check do_resize. (Taylor
            Hedberg)
2011-10-12 21:04:20 +02:00
e06461a821 updated for version 7.3.336
Problem:    When a tags file specifies an encoding different from 'enc' it
            may hang and using a pattern doesn't work.
Solution:   Convert the whole line.  Continue reading the header after the
            SORT tag.  Add test83. (Yukihiro Nakadaira)
2011-10-12 19:53:52 +02:00
725a962194 updated for version 7.3.335
Problem:    When 'imdisable' is reset from an autocommand in Insert mode it
            doesn't take effect.
Solution:   Call im_set_active() in Insert mode. (Taro Muraoka)
2011-10-12 16:57:13 +02:00
08c51aabc4 updated for version 7.3.334
Problem:    Latest MingW about XSUBPP referencing itself. (Gongqian Li)
Solution:   Rename the first use to XSUBPPTRY.
2011-10-12 14:11:45 +02:00
ca0c9fcda0 updated for version 7.3.333
Problem:    Using "." to repeat a Visual delete counts the size in bytes, not
            characters.  (Connor Lane Smith)
Solution:   Store the virtual column numbers instead of byte positions.
2011-10-04 21:22:44 +02:00
e79d1535cf updated for version 7.3.332
Problem:    Indent after "public:" is not increased in C++ code. (Lech Lorens)
Solution:   Check for namespace after the regular checks. (partly by Martin
            Gieseking)
2011-10-04 18:03:47 +02:00
aa0e80471f updated for version 7.3.331
Problem:    "vit" selects wrong text when a tag name starts with the same text
            as an outer tag name. (Ben Fritz)
Solution:   Add "\>" to the pattern to check for word boundary.
2011-10-04 17:00:20 +02:00
7701c24e36 updated for version 7.3.330
Problem:    When longjmp() is invoked if the X server gives an error the state
            is not properly restored.
Solution:   Reset vgetc_busy. (Yukihiro Nakadaira)
2011-10-04 16:43:53 +02:00
946c1eeafc Add files aaded by patch 7.3.326. 2011-10-03 22:12:32 +02:00
250912918e updated for version 7.3.329
Problem:    When skipping over code from ":for" to ":endfor" get an error for
            calling a dict function. (Yasuhiro Matsumoto)
Solution:   Ignore errors when skipping over :call command.
2011-09-30 18:35:57 +02:00
73dc59aad8 updated for version 7.3.328
Problem:    When command line wraps the cursor may be displayed wrong when
            there are multi-byte characters.
Solution:   Position the cursor before drawing the text. (Yasuhiro Matsumoto)
2011-09-30 17:46:21 +02:00
8f535582ad updated for version 7.3.327
Problem:    When jumping to a help tag a closed fold doesn't open.
Solution:   Save and restore KeyTyped. (Yasuhiro Matsumoto)
2011-09-30 17:30:31 +02:00
2369e35b39 updated for version 7.3.326
Problem:    MingW 4.6 no longer supports the -mno-cygwin option.
Solution:   Split the Cygwin and MingW makefiles. (Matsushita Shougo)
2011-09-30 16:56:02 +02:00
acd6a049f6 updated for version 7.3.325
Problem:    A duplicated function argument gives an internal error.
Solution:   Give a proper error message. (based on patch by Tyru)
2011-09-30 16:39:48 +02:00
a627c96182 updated for version 7.3.324
Problem:    Completion for ":compiler" shows color scheme names.
Solution:   Fix the directory name. (James Vega)
2011-09-30 16:23:32 +02:00
98a22f4a63 updated for version 7.3.323
Problem:    The default 'errorformat' does not ignore some "included from"
            lines.
Solution:   Add a few more patterns. (Ben Boeckel)
2011-09-30 14:44:54 +02:00
9f733d1ffd updated for version 7.3.322
Problem:    #ifdef for PDP_RETVAL doesn't work, INT_PTR can be a typedef.
Solution:   Check the MSC version and 64 bit flags. (Sergiu Dotenco)
2011-09-21 20:09:42 +02:00
447038a127 updated for version 7.3.321
Problem:    Code not following Vim style.
Solution:   Fix the style. (Elias Diem)
2011-09-21 19:50:05 +02:00
d960d76d5e Updated a few runtime files. 2011-09-21 19:22:10 +02:00
a6f4d61af7 updated for version 7.3.320
Problem:    When a 0xa0 character is in a sourced file the error message for
            unrecognized command does not show the problem.
Solution:   Display 0xa0 as <a0>.
2011-09-21 19:10:46 +02:00
62951b1e0d updated for version 7.3.319
Problem:    Redobuff doesn't always include changes of the completion leader.
Solution:   Insert backspaces as needed. (idea by Taro Muraoka)
2011-09-21 18:23:05 +02:00
a554a1933c updated for version 7.3.318
Problem:    "C" on the last line deletes that line if it's blank.
Solution:   Only delete the last line for a delete operation. (James Vega)
2011-09-21 17:33:53 +02:00
38e2b0636b updated for version 7.3.317
Problem:    Calling debug.debug() in Lua may cause Vim to hang.
Solution:   Add a better debug method. (Rob Hoelz, Luis Carvalho)
2011-09-21 17:15:39 +02:00
50f834dfb2 updated for version 7.3.316
Problem:    Crash when 'colorcolumn' is set and closing buffer.
Solution:   Check for w_buffer to be NULL. (Yasuhiro Matsumoto)
2011-09-21 13:40:17 +02:00
7f78bd73d6 updated for version 7.3.315
Problem:    Opening a window before forking causes problems for GTK.
Solution:   Fork first, create the window in the child and report back to the
            parent process whether it worked.  If successful the parent exits,
            if unsuccessful the child exits and the parent continues in the
            terminal. (Tim Starling)
2011-09-14 19:04:39 +02:00
52f8317926 updated for version 7.3.314
Problem:    Missing parenthesis.
Solution:   Add it. (Benjamin R. Haskell)
2011-09-14 19:01:42 +02:00
314ed4b21a updated for version 7.3.313
Problem:    One more warning when compiling with dynamic Python 3.
Solution:   Change PySliceObject to PyObject.
2011-09-14 18:59:39 +02:00
5302d9ebc1 Updated runtime files. 2011-09-14 17:55:08 +02:00
ddab33232a updated for version 7.3.312
Problem:    Can't compile with tiny features.
Solution:   Add #ifdef around win_valid().
2011-09-14 17:50:14 +02:00
821390843b updated for version 7.3.311
Problem:    Complete function isn't called when the leader changed.
Solution:   Allow the complete function to return a dictionary with a flag
            that indicates ins_compl_restart() is to be called when the leader
            changes. (Taro Muraoka)
2011-09-14 16:52:09 +02:00
15d6319b9d updated for version 7.3.310
Problem:    Code not following Vim style.
Solution:   Fix the style. (Elias Diem)
2011-09-14 16:05:15 +02:00
9e8edf6ee6 updated for version 7.3.309
Problem:    Warnings for pointer types.
Solution:   Change PySliceObject to PyObject.
2011-09-14 15:41:58 +02:00
b5b5b895f7 updated for version 7.3.308
Problem:    Writing to 'verbosefile' has problems, e.g. for :highlight.
Solution:   Do not use a separate verbose_write() function but write with the
            same code that does redirecting. (Yasuhiro Matsumoto)
2011-09-14 15:39:29 +02:00
ba4897e6e5 updated for version 7.3.307
Problem:    Python 3 doesn't support slice assignment.
Solution:   Implement slices. (Brett Overesch, Roland Puntaier)
2011-09-14 15:01:58 +02:00
a971b82b16 updated for version 7.3.306
Problem:    When closing a window there is a chance that deleting a scrollbar
            triggers a GUI resize, which uses the window while it is not in a
            valid state.
Solution:   Set the buffer pointer to NULL to be able to detect the invalid
            situation.  Fix a few places that used the buffer pointer
            incorrectly.
2011-09-14 14:43:25 +02:00
52af96527c updated for version 7.3.305
Problem:    Auto-loading a function while editing the command line causes
            scrolling up the display.
Solution:   Don't set msg_scroll when defining a function and the user is not
            typing. (Yasuhiro Matsumoto)
2011-09-14 14:33:51 +02:00
612af43cb6 updated for version 7.3.304
Problem:    Strawberry Perl doesn't work on MS-Windows.
Solution:   Use xsubpp if needed. (Yasuhiro Matsumoto)
2011-09-14 10:49:46 +02:00
9f1188152f updated for version 7.3.303
Problem:    Compilation error.
Solution:   Correct return type from int to pid_t. (Danek Duvall)
2011-09-08 23:24:14 +02:00
868272f58e updated for version 7.3.302
Problem:    Test 19 fails without 'smartindent' and +eval.
Solution:   Don't use ":exe". Source small.vim.
2011-09-08 23:22:40 +02:00
c42e7ed777 updated for version 7.3.301
Problem:    When 'smartindent' and 'copyindent' are set a Tab is used even
            though 'expandtab' is set.
Solution:   Do not insert Tabs. Add a test. (Christian Brabandt)
2011-09-07 19:58:09 +02:00
275648066d updated for version 7.3.300
Problem:    Python doesn't parse multi-byte argument correctly.
Solution:   Use "t" instead of "s". (lilydjwg)
2011-09-07 19:30:21 +02:00
0d55ff1594 updated for version 7.3.299
Problem:    Source code not in Vim style.
Solution:   Adjust the style. (Elias Diem)
2011-09-07 19:09:01 +02:00
092e3c874f updated for version 7.3.298
Problem:    Built-in colors are different from rgb.txt.
Solution:   Adjust the color values. (Benjamin Haskell)
2011-09-07 18:58:29 +02:00
6dfff547a7 updated for version 7.3.297
Problem:    Can't load Perl 5.14 dynamically.
Solution:   Add code in #ifdefs. (Charles Cooper)
2011-09-07 18:47:23 +02:00
205b886a41 updated for version 7.3.296
Problem:    When writing to an external command a zombie process may be left
            behind.
Solution:   Wait on the process. (James Vega)
2011-09-07 15:04:31 +02:00
493c7a8541 updated for version 7.3.295
Problem:    When filtering text with an external command Vim may not read all
            the output.
Solution:   When select() is interrupted loop and try again. (James Vega)
2011-09-07 14:06:47 +02:00
01a78342e0 updated for version 7.3.294
Problem:    Patch 289 causes more problems than it solves.
Solution:   Rever the patch untill a better solution is found.
2011-09-05 20:13:42 +02:00
d3184b57d2 updated for version 7.3.293
Problem:    MSVC compiler has a problem with non-ASCII characters.
Solution:   Avoid non-ASCII characters. (Hong Xu)
2011-09-02 14:18:20 +02:00
6c167c6451 updated for version 7.3.292
Problem:    Crash when using fold markers and selecting a visual block that
            includes a folded line and goes to end of line. (Sam Lidder)
Solution:   Check for the column to be MAXCOL. (James Vega)
2011-09-02 14:07:36 +02:00
6fabcbe260 updated for version 7.3.291
Problem:    Configure doesn't work properly with Python3.
Solution:   Put -ldl before $LDFLAGS. Add PY3_NO_RTLD_GLOBAL. (Roland
            Puntaier)
2011-09-02 12:27:25 +02:00
39fc42ef9d updated for version 7.3.290
Problem:    When a BufWriteCmd autocommand resets 'modified' this doesn't
            change older buffer states to be marked as 'modified' like
            ":write" does.  (Yukihiro Nakadaira)
Solution:   When the BufWriteCmd resets 'modified' then adjust the undo
            information like ":write" does.
2011-09-02 11:56:20 +02:00
03aa60826e updated for version 7.3.289
Problem:    Complete function isn't called when the leader changed.
Solution:   Call ins_compl_restart() when the leader changed.  (Taro Muraoka)
2011-08-28 16:02:28 +02:00
9dc93ae43e updated for version 7.3.288
Problem:    has('python') may give an error message for not being able to load
            the library after using python3.
Solution:   Only give the error when the verbose argument is true.
2011-08-28 16:00:19 +02:00
2eba18255e updated for version 7.3.287
Problem:    Can't compile with MSVC and tiny options.
Solution:   Move variables and #ifdefs. (Sergey Khorev)
2011-08-27 15:10:04 +02:00
c9927c136f updated for version 7.3.286
Problem:    Crash when using "zd" on a large number of folds. (Sam King)
Solution:   Recompute pointer after reallocating array.  Move fewer entries
            when making room.
2011-08-26 16:13:00 +02:00
792826c0c7 updated for version 7.3.285
Problem:    Mapping <Char-123> no longer works.
Solution:   Properly check for "char-".  Add a test for it.
2011-08-19 22:29:02 +02:00
b8bf541f89 updated for version 7.3.284
Problem:    The str2special() function doesn't handle multi-byte characters
            properly.
Solution:   Recognize multi-byte characters. (partly by Vladimir Vichniakov)
2011-08-17 20:33:22 +02:00
f6f4a01ab1 updated for version 7.3.283
Problem:    An expression mapping with a multi-byte character containing a
            0x80 byte gets messed up. (ZyX)
Solution:   Unescape the expression before evaluating it (Yukihiro Nakadaira)
2011-08-17 17:18:20 +02:00
1db1f77d4a updated for version 7.3.282
Problem:    When using input() and :echo in a loop the displayed text is
            incorrect. (Benjamin Fritz)
Solution:   Only restore the cursor position when there is a command line.
            (Ben Schmidt)
2011-08-17 16:25:48 +02:00
dc93555c0f updated for version 7.3.281
Problem:    After using "expand('%:8')" the buffer name is changed.
Solution:   Make a copy of the file name before shortening it.
2011-08-17 15:23:23 +02:00
c95e32635c updated for version 7.3.280
Problem:    ":lmake" does not update the quickfix window title.
Solution:   Update the title. (Lech Lorens)
2011-08-10 18:36:54 +02:00
12bc1b5c9f updated for version 7.3.279
Problem:    With GTK, when gvim is full-screen and a tab is opened and using a
            specific monitor configuration the window is too big.
Solution:   Adjust the window size like on MS-Windows. (Yukihiro Nakadaira)
2011-08-10 17:44:45 +02:00
17fb0e891a updated for version 7.3.278
Problem:    Passing the file name to open in VisVim doesn't work.
Solution:   Adjust the index and check for end of buffer. (Jiri Sedlak)
2011-08-10 17:25:51 +02:00
8c85fa3b26 updated for version 7.3.277
Problem:    MS-Windows: some characters do not show in dialogs.
Solution:   Use the wide methods when available. (Yanwei Jia)
2011-08-10 17:08:03 +02:00
cf83973211 updated for version 7.3.276
Problem:    GvimExt sets $LANG in the wrong way.
Solution:   Save the environment and use it for gvim. (Yasuhiro Matsumoto)
2011-08-10 16:31:23 +02:00
e78c206856 updated for version 7.3.275
Problem:    MS-Windows: When using a black background some screen updates
            cause the window to flicker.
Solution:   Add WS_CLIPCHILDREN to CreateWindow().  (René Aguirre)
2011-08-10 15:56:27 +02:00
8a20b0f25e updated for version 7.3.274
Problem:    With concealed characters tabs do not have the right size.
Solution:   Use VCOL_HLC instead of vcol. (Eiichi Sato)
2011-08-10 14:32:39 +02:00
836082d398 updated for version 7.3.273
Problem:    A BOM in an error file is seen as text. (Aleksey Baibarin)
Solution:   Remove the BOM from the text before evaluating. (idea by Christian
            Brabandt)
2011-08-10 13:21:46 +02:00
213b10a57e updated for version 7.3.272
Problem:    ":put =list" does not add an empty line for a trailing empty
            item.
Solution:   Add a trailing NL when turning a list into a string.
2011-08-10 12:38:08 +02:00
d0988c50f3 updated for version 7.3.271
Problem:    Code not following Vim coding style.
Solution:   Fix the style. (Elias Diem)
2011-08-10 12:19:04 +02:00
1cb7e0976d updated for version 7.3.270
Problem:    Illegal memory access.
Solution:   Swap conditions. (Dominique Pelle)
2011-08-10 12:11:01 +02:00
ea35ef6888 updated for version 7.3.269
Problem:    'shellcmdflag' only works with one flag.
Solution:   Split into multiple arguments. (Gary Johnson)
2011-08-04 22:59:28 +02:00
e70172e1fc updated for version 7.3.268
Problem:    Vim freezes when executing an external command with zsh.
Solution:   Use O_NOCTTY both in the master and slave. (Bjorn Winckler)
2011-08-04 19:36:52 +02:00
3f5f795f76 updated for version 7.3.267
Problem:    Ruby on Mac OS X 10.7 may crash.
Solution:   Avoid alloc(0). (Bjorn Winckler)
2011-08-04 19:34:59 +02:00
673214bb7d updated for version 7.3.266
Problem:    In Gvim with iBus typing space in Insert mode doesn't work.
Solution:   Clear xim_expected_char after checking it.
2011-07-27 18:25:44 +02:00
4c40223649 updated for version 7.3.265
Problem:    When storing a pattern in search history there is no proper check
            for the separator character.
Solution:   Pass the separator character to in_history(). (Muraoka Taro)
2011-07-27 17:58:46 +02:00
0b573a58e6 updated for version 7.3.264
Problem:    When the current directory name contains wildcard characters, such
            as "foo[with]bar", the tags file can't be found.  (Jeremy
            Erickson)
Solution:   When searching for matching files also match without expanding
            wildcards.  This is a bit of a hack.
2011-07-27 17:31:47 +02:00
a171162356 updated for version 7.3.263
Problem:    Perl and Tcl have a few code style problems.
Solution:   Clean it up.  (Elias Diem)
2011-07-27 14:15:46 +02:00
d2221131cf updated for version 7.3.262
Problem:    Photon code style doesn't match Vim style.
Solution:   Clean up some of it.  (Elias Diem)
2011-07-27 14:09:09 +02:00
d0c7ba57b1 updated for version 7.3.261
Problem:    G++ error message errornously recognized as error.
Solution:   Ignore "In file included from" line also when it ends in a colon.
            (Fernando Castillo)
2011-07-27 13:59:21 +02:00
0533443638 updated for version 7.3.260
Problem:    CursorHold triggers on an incomplete mapping. (Will Gray)
Solution:   Don't trigger CursorHold when there is typeahead.
2011-07-20 18:29:39 +02:00
522f9aebff updated for version 7.3.259
Problem:    Equivalence classes only work for latin characters.
Solution:   Add the Unicode equivalence characters. (Dominique Pelle)
2011-07-20 17:58:20 +02:00
ce35c88ade updated for version 7.3.258
Problem:    MS-Windows: The edit with existing vim context menu entries can be
            unwanted.
Solution:   Let a registry entry disable them. (Jerome Vuarand)
2011-07-20 17:27:25 +02:00
e9edd7fbdd updated for version 7.3.257
Problem:    Not all completions are available to user commands.
Solution:   Add "color", "compiler", "file_in_path" and "locale". (Dominique
            Pelle)
2011-07-20 16:37:24 +02:00
76f7fd3df3 updated for version 7.3.256
Problem:    Javascript indenting not sufficiently tested.
Solution:   Add more tests. (Luc Deschenaux)  Mark the lines that are indented
            wrong.
2011-07-20 15:09:43 +02:00
b560983d2f updated for version 7.3.255
Problem:    When editing a file such as "File[2010-08-15].vim" an E16 error is
            given. (Manuel Stol)
Solution:   Don't give an error for failing to compile the regexp.
2011-07-20 15:04:58 +02:00
9729301aa0 Updated runtime files.
Add missing test82 files.
2011-07-18 19:40:27 +02:00
0acc5618f6 updated for version 7.3.254
Problem:    The coladd field is not reset when setting the line number for a
            ":call" command.
Solution:   Reset it.
2011-07-15 21:24:11 +02:00
35ee452de0 updated for version 7.3.253
Problem:    "echo 'abc' > ''" returns 0 or 1, depending on 'ignorecase'.
            Checks in mb_strnicmp() for illegal and truncated bytes are
            wrong.  Should not assume that byte length is equal before case
            folding.
Solution:   Add utf_safe_read_char_adv() and utf_strnicmp(). Add a test for
            this. (Ivan Krasilnikov)
2011-07-15 21:16:59 +02:00
01b2a23b95 updated for version 7.3.252
Problem:    Tests fail. (David Northfield)
Solution:   Add missing update for .ok file.
2011-07-15 17:56:16 +02:00
44286ca3c4 updated for version 7.3.251
Problem:    "gH<Del>" deletes the current line, except when it's the last
            line.
Solution:   Set the "include" flag to indicate the last line is to be deleted.
2011-07-15 17:51:34 +02:00
3d64a3176c updated for version 7.3.250
Problem:    Python: Errors in Unicode characters not handled nicely.
Solution:   Add the surrogateescape error handler. (lilydjwg)
2011-07-15 15:54:44 +02:00
50f42cadb1 updated for version 7.3.249
Problem:    Wrong indenting for array initializer.
Solution:   Detect '}' in a better way. (Lech Lorens)
2011-07-15 14:12:30 +02:00
734d99804b updated for version 7.3.248
Problem:    PC Install instructions missing install instructions.
Solution:   Step-by-step explanation. (Michael Soyka)
2011-07-15 13:52:04 +02:00
37a02ca1c2 updated for version 7.3.247
Problem:    Running tests changes the users viminfo file.  Test for patch
            7.3.245 missing.
Solution:   Add "nviminfo" to the 'viminfo' option.  Include the test.
2011-07-15 13:33:21 +02:00
19fd09a78f updated for version 7.3.246
Problem:    Repeating "f4" in "4444" skips one 4.
Solution:   Check the t_cmd flag. (Christian Brabandt)
2011-07-15 13:21:30 +02:00
54ee2b8741 updated for version 7.3.245
Problem:    Python 3.2 libraries not correctly detected.
Solution:   Add the suffix to the library name. (Niclas Zeising)
2011-07-15 13:09:51 +02:00
4da95d377f updated for version 7.3.244
Problem:    MS-Windows: Build problem with old compiler. (John Beckett)
Solution:   Only use HandleToLong() when available. (Mike Williams)
2011-07-07 17:43:41 +02:00
f56a6de10b updated for version 7.3.243
Problem:    Illegal memory access in readline().
Solution:   Swap the conditions. (Dominique Pelle)
2011-07-07 17:36:56 +02:00
b5ce04dd28 updated for version 7.3.242
Problem:    Illegal memory access in after_pathsep().
Solution:   Check that the pointer is not at the start of the file name.
            (Dominique Pelle)
2011-07-07 17:15:33 +02:00
80ae7b2287 updated for version 7.3.241
Problem:    Using CTRL-R CTRL-W on the command line may insert only part of
            the word.
Solution:   Use the cursor position instead of assuming it is at the end of
            the command. (Tyru)
2011-07-07 16:44:37 +02:00
4b9669f1dc updated for version 7.3.240
Problem:    External commands can't use pipes on MS-Windows.
Solution:   Implement pipes and use them when 'shelltemp' isn't set. (Vincent
            Berthoux)
2011-07-07 16:20:52 +02:00
03a807aaf4 updated for version 7.3.239
Problem:    Python corrects the cursor column without taking 'virtualedit'
            into account. (lilydjwg)
Solution:   Call check_cursor_col_win().
2011-07-07 15:08:58 +02:00
5cfe2d760d updated for version 7.3.238
Problem:    Compiler warning for conversion.
Solution:   Add type cast. (Mike Williams)
2011-07-07 15:04:52 +02:00
0c7437a5d2 updated for version 7.3.237
Problem:    "filetype" completion doesn't work on Windows. (Yue Wu)
Solution:   Don't use a glob pattern for the directories, use a list of
            directories. (Dominique Pelle)
2011-06-26 19:40:23 +02:00
0baa7f1cd0 updated for version 7.3.236
Problem:    Python 3 doesn't compile without +multi_byte
Solution:   Use "latin1" when MULTI_BYTE is not defined. (lilydjwg)
2011-06-26 19:13:50 +02:00
8b3e0330ba updated for version 7.3.235
Problem:    ";" gets stuck on a "t" command, it's not useful.
Solution:   Add the ';' flag in 'cpo'. (Christian Brabandt)
2011-06-26 05:36:34 +02:00
20892c1e68 updated for version 7.3.234
Problem:    With GTK menu may be popping down.
Solution:   Use event time instead of GDK_CURRENT_TIME. (Hong Xu)
2011-06-26 04:49:00 +02:00
d58ea07227 updated for version 7.3.233
Problem:    ":scriptnames" and ":breaklist" show long file names.
Solution:   Shorten to use "~/" when possible. (Jean-Rene David)
2011-06-26 04:25:30 +02:00
91805fc0db updated for version 7.3.232
Problem:    Python doesn't compile without +multi_byte
Solution:   Use "latin1" when MULTI_BYTE is not defined.
2011-06-26 04:01:44 +02:00
6e948a652d updated for version 7.3.231
Problem:    Runtime file patches failed.
Solution:   Redo the patches made against the patched files instead of the
            files in the mercurial repository.
2011-06-26 03:18:52 +02:00
f9b4815918 updated for version 7.3.230
Problem:    ":wundo" and ":rundo" don't unescape their argument.  (Aaron
            Thoma)
Solution:   Use FILE1 instead of XFILE.
2011-06-20 05:02:58 +02:00
67d441ba36 updated for version 7.3.229
Problem:    Using fork() makes gvim crash on Mac when build with
            CoreFoundation.
Solution:   Disallow fork() when __APPLE__ is defined. (Hisashi T Fujinaka)
2011-06-20 00:53:15 +02:00
914968e66d updated for version 7.3.228
Problem:    "2gj" does not always move to the correct position.
Solution:   Get length of line after moving to a next line. (James Vega)
2011-06-20 00:45:58 +02:00
54b08a5e78 updated for version 7.3.227
Problem:    Mac OS doesn't have the linewise clipboard fix.
Solution:   Also change the Mac OS file. (Bjorn Winckler)
2011-06-20 00:25:44 +02:00
251e191271 Updated runtime files. 2011-06-19 05:09:16 +02:00
d6761c3cdf updated for version 7.3.226
Problem:    On a 64 bit system "syn sync fromstart" is very slow.  (Bjorn
            Steinbrink)
Solution:   Store the state when starting to parse from the first line.
2011-06-19 04:54:21 +02:00
978287b8f8 updated for version 7.3.225
Problem:    Using "\n" in a substitute inside ":s" does not result in a line
            break.
Solution:   Change behavior inside vim_regexec_nl().   Add tests.  (Motoya
            Kurotsu)
2011-06-19 04:32:15 +02:00
5f8949656a updated for version 7.3.224
Problem:    Can't pass dict to sort function.
Solution:   Add the optional {dict} argument to sort(). (ZyX)
2011-06-19 02:55:37 +02:00
c16756d829 updated for version 7.3.223
Problem:    MingW cross compilation doesn't work with tiny features.
Solution:   Move acp_to_enc(), enc_to_utf16() and utf16_to_enc() outside of
            "#ifdef CLIPBOARD".  Fix typo in makefile.
2011-06-19 01:30:07 +02:00
26f3c637fc updated for version 7.3.222
Problem:    Warning for building GvimExt.
Solution:   Comment-out the DESCRIPTION line. (Mike Williams)
2011-06-19 01:27:34 +02:00
d44347f1e7 updated for version 7.3.221
Problem:    Text from the clipboard is sometimes handled as linewise, but not
            consistently.
Solution:   Assume the text is linewise when it ends in a CR or NL.
2011-06-19 01:14:29 +02:00
19e6094378 updated for version 7.3.220
Problem:    Python 3: vim.error is a 'str' instead of an 'Exception' object,
            so 'except' or 'raise' it causes a 'SystemError' exception.
            Buffer objects do not support slice assignment.
            When exchanging text between Vim and Python, multibyte texts become
            gabage or cause Unicode Expceptions, etc.
            'py3file' tries to read in the file as Unicode, sometimes causes
            UnicodeDecodeException
Solution:   Fix the problems. (lilydjwg)
2011-06-19 00:27:51 +02:00
f85dae3c34 Add files added by recent patches. 2011-06-13 21:21:22 +02:00
9a4d7fd214 updated for version 7.3.219
Problem:    Can't compile with GTK on Mac.
Solution:   Add some #ifdef trickery. (Ben Schmidt)
2011-06-13 02:04:00 +02:00
015de43f70 updated for version 7.3.218
Problem:    Tiny configuration problem with Python 3.
Solution:   Add abiflags in one more place. (Andreas Behr)
2011-06-13 01:32:46 +02:00
12bde494a5 updated for version 7.3.217
Problem:    Inside an "if" a ":wincmd" causes problems.
Solution:   When skipping commands let ":wincmd" skip over its argument.
2011-06-13 01:19:56 +02:00
986a0039cb updated for version 7.3.216
Problem:    When recovering a file a range of lines is missing. (Charles Jie)
Solution:   Reset the index when advancing to the next pointer block.  Add a
            test to verify recovery works.
2011-06-13 01:07:27 +02:00
f7befa9f1d updated for version 7.3.215
Problem:    Wrong file names in previous patch. (Toothpik)
Solution:   Include the option changes.
2011-06-12 22:13:40 +02:00
d9758e37ee updated for version 7.3.214
Problem:    The text displayed by ":z-" isn't exactly like old Vi.
Solution:   Add one to the start line number. (ChangZhuo Chen)
2011-06-12 22:03:23 +02:00
6ec154b57d updated for version 7.3.213
Problem:    Javascript object literal is not indented correctly.
Solution:   Make a special case for when "J1" is in 'cino'. (Luc Deschenaux)
2011-06-12 21:51:08 +02:00
456f2bb24f updated for version 7.3.212
Problem:    With Python 3.2 ":py3" fails.
Solution:   Move PyEval_InitThreads() to after Py_Initialize(). (Roland
            Puntaier)  Check abiflags in configure. (Andreas Behr)
2011-06-12 21:37:13 +02:00
03227eeb79 updated for version 7.3.211
Problem:    Compiler warning.
Solution:   Add type cast.
2011-06-12 21:25:00 +02:00
2f982e4fab updated for version 7.3.210
Problem:    Can't always find the file when using cscope.
Solution:   Add the 'cscoperelative' option. (Raghavendra D Prabhu)
2011-06-12 20:42:22 +02:00
536d95f617 updated for version 7.3.209
Problem:    MSVC Install instructions point to wrong batch file.
Solution:   Add a batch file for use with MSVC 10.
2011-06-12 20:36:09 +02:00
d8644bd646 updated for version 7.3.208
Problem:    Early terminated if statement.
Solution:   Remove the semicolon. (Lech Lorens)
2011-06-12 20:33:38 +02:00
3ed16dc6b7 updated for version 7.3.207
Problem:    Can't compile with MSVC with pentium4 and 64 bit.
Solution:   Only use SSE2 for 32 bit. (Mike Williams)
2011-06-12 20:31:31 +02:00
7154b326d0 updated for version 7.3.206
Problem:    64bit MS-Windows compiler warning.
Solution:   Use HandleToLong() instead of type cast. (Mike Williams)
2011-05-25 21:18:06 +02:00
6fa46363ad updated for version 7.3.205
Problem:    Syntax "extend" doesn't work correctly.
Solution:   Avoid calling check_state_ends() recursively (Ben Schmidt)
2011-05-25 17:56:27 +02:00
9b83c2f979 updated for version 7.3.204
Problem:    Compiler warning.
Solution:   Add type cast. (Mike Williams)
2011-05-25 17:29:44 +02:00
bd8608d979 updated for version 7.3.203
Problem:    MS-Windows: Can't run an external command without a console window.
Solution:   Support ":!start /b cmd". (Xaizek)
2011-05-25 17:06:22 +02:00
ed38b0ac41 updated for version 7.3.202
Problem:    Cannot influence the indent inside a namespace.
Solution:   Add the "N" 'cino' parameter. (Konstantin Lepa)
2011-05-25 15:16:18 +02:00
334adf0ae5 updated for version 7.3.201
Problem:    "} else" still causes following lines to be indented too much.
Solution:   Better detection for the "else" block. (Lech Lorens)
2011-05-25 13:34:04 +02:00
a660dc8f30 updated for version 7.3.200
Problem:    CTRL-D doesn't complete :lang.
Solution:   Add the missing part of the change. (Dominique Pelle)
2011-05-25 12:51:22 +02:00
72952de239 updated for version 7.3.199
Problem:    MS-Windows: Compilation problem of OLE with MingW compiler.
Solution:   Put #ifdef around declarations. (Guopeng Wen)
2011-05-25 12:09:50 +02:00
9b486ca391 updated for version 7.3.198
Problem:    No completion for ":lang".
Solution:   Get locales to complete from. (Dominique Pelle)
2011-05-19 18:26:40 +02:00
efa8e80c0b updated for version 7.3.197
Problem:    When a QuickfixCmdPost event removes all errors, Vim still tries
            to jump to the first error, resulting in E42.
Solution:   Get the number of error after the autocmd event. (Mike Lundy)
2011-05-19 17:42:59 +02:00
e659c95b01 updated for version 7.3.196
Problem:    Can't intercept a character that is going to be inserted.
Solution:   Add the InsertCharPre autocommand event. (Jakson A. Aquino)
2011-05-19 17:25:41 +02:00
496f9517cb updated for version 7.3.195
Problem:    "} else" causes following lines to be indented too much. (Rouben
            Rostamian)
Solution:   Better detection for the "else". (Lech Lorens)
2011-05-19 16:35:09 +02:00
1385c3ee7f updated for version 7.3.194
Problem:    When "b" is a symlink to directory "a", resolve("b/") doesn't
            result in "a/".  (ZyX)
Solution:   Remove the trailing slash. (Jean-Rene David)
2011-05-19 14:59:10 +02:00
9bd1a7ea28 updated for version 7.3.193
Problem:    In the command line window ":close" doesn't work properly. (Tony
            Mechelynck)
Solution:   Use Ctrl_C instead of K_IGNORE for cmdwin_result. (Jean-Rene
            David)
2011-05-19 14:50:54 +02:00
0df1102698 updated for version 7.3.192
Problem:    Ex command ":s/ \?/ /g" splits multi-byte characters into bytes.
            (Dominique Pelle)
Solution:   Advance over whole character instead of one byte.
2011-05-19 14:30:16 +02:00
2d5204ff88 Updated message translations. 2011-05-19 13:44:07 +02:00
b07269a548 updated for version 7.3.191
Problem:    Still some RISC OS stuff to remove.
Solution:   Remove files and lines. (Hong Xu)
            Remove the 'osfiletype' option code.
2011-05-19 13:41:14 +02:00
20f90cf99a Updated runtime files. 2011-05-19 12:22:51 +02:00
3a7d8c3adb updated for version 7.3.190
Problem:    When there is a "containedin" syntax argument highlighting may be
            wrong. (Radek)
Solution:   Reset current_next_list. (Ben Schmidt)
2011-05-19 12:14:10 +02:00
e2bdce3f5c updated for version 7.3.189
Problem:    Can't build without +clipboard feature. (Christian Ebert)
Solution:   Add the missing #ifdef.
2011-05-10 17:29:33 +02:00
1bfb61e80b updated for version 7.3.188
Problem:    More RISC OS files to remove.
Solution:   Remove them.  Update the file list.
2011-05-10 17:21:56 +02:00
446beb48d9 Updated runtime files. 2011-05-10 17:18:44 +02:00
1c2b2c12bb Remove the deleted RISC OS files. 2011-05-10 16:42:00 +02:00
e60acc180b updated for version 7.3.187
Problem:    The RISC OS port has obvious errors and is not being maintained.
Solution:   Remove the RISC OS files and code.
2011-05-10 16:41:25 +02:00
536681be5d updated for version 7.3.186
Problem:    When 'clipboard' contains "unnamed" or "unnamedplus" the value of
            v:register is wrong for operators without a specific register.
Solution:   Adjust the register according to 'clipboard'. (Ingo Karkat)
2011-05-10 16:12:45 +02:00
bb99322ef9 updated for version 7.3.185
Problem:    ":windo g/pattern/q" closes windows and reports "N more lines".
            (Tim Chase)
Solution:   Remember what buffer ":global" started in. (Jean-Rene David)
2011-05-10 16:00:47 +02:00
18e0bfb07c updated for version 7.3.184
Problem:    Static code analysis errors in riscOS.
Solution:   Make buffer size bigger. (Dominique Pelle)
2011-05-10 15:52:15 +02:00
5897e0c470 updated for version 7.3.183
Problem:    When Exuberant ctags binary is exuberant-ctags it's not found.
Solution:   Add configure check for exuberant-ctags.
2011-05-10 15:42:03 +02:00
05da428462 updated for version 7.3.182
Problem:    Compiler warning for uninitialized variable.
Solution:   Add dummy initializer.
2011-05-10 14:44:11 +02:00
9c520cb544 updated for version 7.3.181
Problem:    When repeating the insert of CTRL-V or a digraph the display may
            not be updated correctly.
Solution:   Only call edit_unputchar() after edit_putchar(). (Lech Lorens)
2011-05-10 14:22:16 +02:00
a4271d598b updated for version 7.3.180
Problem:    When both a middle part of 'comments' matches and an end part, the
            middle part was used errornously.
Solution:   After finding the middle part match continue looking for a better
            end part match. (partly by Lech Lorens)
2011-05-10 13:38:27 +02:00
aede6ceba3 updated for version 7.3.179
Problem:    C-indent doesn't handle colon in string correctly.
Solution:   Skip the string. (Lech Lorens)
2011-05-10 11:56:30 +02:00
4ae06c1fa5 updated for version 7.3.178
Problem:    C-indent doesn't handle code right after { correctly.
Solution:   Fix detecting unterminated line. (Lech Lorens)
2011-05-10 11:39:19 +02:00
3c9c99cb2c updated for version 7.3.177
Problem:    MS-Windows: mkdir() doesn't work properly when 'encoding' is
            "utf-8".
Solution:   Convert to utf-16. (Yukihiro Nakadaira)
2011-05-05 18:31:59 +02:00
948733a874 updated for version 7.3.176
Problem:    Ruby linking doesn't work properly on Mac OS X.
Solution:   Fix the configure check for Ruby. (Bjorn Winckler)
2011-05-05 18:10:16 +02:00
1701e4069b updated for version 7.3.175
Problem:    When 'colorcolumn' is set locally to a window, ":new" opens a
            window with the same highlighting but 'colorcolumn' is empty.
            (Tyru)
Solution:   Call check_colorcolumn() after clearing and copying options.
            (Christian Brabandt)
2011-05-05 17:32:44 +02:00
8f4ba6942d updated for version 7.3.174
Problem:    When Exuberant ctags binary is exctags it's not found.
Solution:   Add configure check for exctags. (Hong Xu)
2011-05-05 17:24:27 +02:00
d236ac0d49 updated for version 7.3.173
Problem:    After using setqflist() to make the quickfix list empty ":cwindow"
            may open the window anyway.  Also after ":vimgrep".
Solution:   Correctly check whether the list is empty. (Ingo Karkat)
2011-05-05 17:14:14 +02:00
1c32dff7d6 updated for version 7.3.172
Problem:    MS-Windows: rename() might delete the file if the name differs but
            it's actually the same file.
Solution:   Use the file handle to check if it's the same file. (Yukihiro
            Nakadaira)
2011-05-05 16:41:24 +02:00
85de20665f updated for version 7.3.171
Problem:    When the clipboard isn't supported: ":yank*" gives a confusing
            error message.
Solution:   Specifically mention that the register name is invalid.
            (Jean-Rene David)
2011-05-05 14:26:41 +02:00
72bb0d6455 updated for version 7.3.170
Problem:    VMS Makefile for testing was not updated for test77.
Solution:   Add test77 to the Makefile.
2011-04-28 19:05:05 +02:00
8e5af3e531 Updated runtime files. 2011-04-28 19:02:44 +02:00
b453a53b59 updated for version 7.3.169
Problem:    Freeing memory already freed, warning from static code analyzer.
Solution:   Initialize pointers to NULL, correct use of "mustfree". (partly by
            Dominique Pelle)
2011-04-28 17:48:44 +02:00
877b97b953 updated for version 7.3.168
Problem:    When the second argument of input() contains a CR the text up to
            that is used without asking the user. (Yasuhiro Matsumoto)
Solution:   Change CR, NL and ESC in the text to a space.
2011-04-28 17:30:09 +02:00
d88e02def5 updated for version 7.3.167
Problem:    When using the internal grep QuickFixCmdPost is not triggered.
            (Yukihiro Nakadaira)
Solution:   Change the place where autocommands are triggered.
2011-04-28 17:27:09 +02:00
f844147747 updated for version 7.3.166
Problem:    Buffer on the stack may be too big
Solution:   Allocate the space.
2011-04-28 17:24:58 +02:00
cca92ec8cf updated for version 7.3.165
Problem:    ":find" completion does not escape spaces in a directory name.
            (Isz)
Solution:   Add backslashes for EXPAND_FILES_IN_PATH. (Carlo Teubner)
2011-04-28 17:21:53 +02:00
8d2d71d4bb updated for version 7.3.164
Problem:    C-indenting: a preprocessor statement confuses detection of a
            function delcaration.
Solution:   Ignore preprocessor lines. (Lech Lorens)  Also recognize the style
            to put a comma before the argument name.
2011-04-28 13:02:09 +02:00
f1fda2d6e5 updated for version 7.3.163
Problem:    For the default of 'shellpipe' "mksh" and "pdksh" are not
            recognized.
Solution:   Recognize these shell names.
2011-04-28 12:57:36 +02:00
e962388eac updated for version 7.3.162
Problem:    No error message when assigning to a list with an index out of
            range. (Yukihiro Nakadaira)
Solution:   Add the error message.
2011-04-21 14:27:28 +02:00
d9462e394a updated for version 7.3.161
Problem:    Items on the stack may be too big.
Solution:   Make items static or allocate them.
2011-04-11 21:35:11 +02:00
ef9d6aa70d updated for version 7.3.160
Problem:    Unsafe string copying.
Solution:   Use vim_strncpy() instead of strcpy().  Use vim_strcat() instead
            of strcat().
2011-04-11 16:56:35 +02:00
0d35e91abf updated for version 7.3.159
Problem:    Using uninitialized pointer when out of memory.
Solution:   Check for NULL return value.
2011-04-11 14:29:17 +02:00
4aa97427be updated for version 7.3.158
Problem:    Might use uninitialized memory in C indenting.
Solution:   Init arrays to empty.
2011-04-11 14:27:38 +02:00
367bec852e updated for version 7.3.157
Problem:    Superfluous assignment.
Solution:   Remove assignment.
2011-04-11 14:26:19 +02:00
639304ddb1 updated for version 7.3.156
Problem:    Tty names possibly left unterminated.
Solution:   Use vim_strncpy() instead of strncpy().
2011-04-11 14:24:37 +02:00
767 changed files with 51795 additions and 21501 deletions

3
.gitignore vendored
View File

@ -30,6 +30,7 @@ src/auto/pathdef.c
*.suo
*.res
*.RES
src/if_perl.c
src/pathdef.c
src/Obj*/pathdef.c
gvimext.dll
@ -41,11 +42,13 @@ gvimext.lib
*.mo
*.swp
*~
src/po/vim.pot
# Generated by "make test"
src/po/*.ck
src/testdir/mbyte.vim
src/testdir/mzscheme.vim
src/testdir/lua.vim
src/testdir/small.vim
src/testdir/tiny.vim
src/testdir/test*.out

View File

@ -81,6 +81,7 @@ SRC_ALL = \
src/testdir/test[0-9]*.ok \
src/testdir/test49.vim \
src/testdir/test60.vim \
src/testdir/test83-tags? \
src/proto.h \
src/proto/blowfish.pro \
src/proto/buffer.pro \
@ -260,8 +261,10 @@ SRC_DOS = \
src/Make_mvc.mak \
src/Make_w16.mak \
src/bigvim.bat \
src/bigvim64.bat \
src/msvcsetup.bat \
src/msvc2008.bat \
src/msvc2010.bat \
src/dimm.idl \
src/dlldata.c \
src/dosinst.c \
@ -312,6 +315,7 @@ SRC_DOS = \
src/xxd/Make_bc5.mak \
src/xxd/Make_cyg.mak \
src/xxd/Make_djg.mak \
src/xxd/Make_ming.mak \
src/xxd/Make_mvc.mak \
nsis/gvim.nsi \
nsis/README.txt \
@ -346,6 +350,13 @@ SRC_DOS_BIN = \
src/vim*.ico \
src/vim.tlb \
src/vimtbar.lib \
src/xpm/COPYRIGHT \
src/xpm/README.txt \
src/xpm/include/*.h \
src/xpm/x64/lib/libXpm.a \
src/xpm/x64/lib/libXpm.lib \
src/xpm/x86/lib/libXpm.a \
src/xpm/x86/lib/libXpm.lib \
src/vimtbar.dll \
nsis/icons/*.bmp \
nsis/icons/*.ico \
@ -427,9 +438,6 @@ SRC_EXTRA = \
$(SRC_VMS) \
README_os390.txt \
src/Make_mint.mak \
src/Make_ro.mak \
src/gui_riscos.c \
src/gui_riscos.h \
src/if_sniff.c \
src/infplist.xml \
src/link.390 \
@ -437,10 +445,6 @@ SRC_EXTRA = \
src/os_beos.h \
src/os_beos.rsrc \
src/os_mint.h \
src/os_riscos.c \
src/os_riscos.h \
src/proto/gui_riscos.pro \
src/proto/os_riscos.pro \
src/os_vms_fix.com \
src/toolbar.phi \
@ -467,6 +471,7 @@ RT_ALL = \
runtime/macros/hanoi/hanoi.vim \
runtime/macros/hanoi/poster \
runtime/macros/justify.vim \
runtime/macros/less.bat \
runtime/macros/less.sh \
runtime/macros/less.vim \
runtime/macros/life/click.me \
@ -670,6 +675,8 @@ EXTRA = \
# generic language files
LANG_GEN = \
runtime/doc/*-de.1 \
runtime/doc/*-de.UTF-8.1 \
runtime/doc/*-fr.1 \
runtime/doc/*-fr.UTF-8.1 \
runtime/doc/*-it.1 \
@ -686,9 +693,17 @@ LANG_GEN = \
runtime/tutor/Makefile \
runtime/tutor/tutor.utf-8 \
runtime/tutor/tutor.?? \
runtime/tutor/tutor.??.* \
runtime/tutor/tutor.??.utf-8 \
runtime/tutor/tutor.??.euc \
runtime/tutor/tutor.??.sjis \
runtime/tutor/tutor.??.iso9 \
runtime/tutor/tutor.??.big5 \
runtime/tutor/tutor.??.cp1250 \
runtime/tutor/tutor.??.cp1251 \
runtime/tutor/tutor.??.cp737 \
runtime/tutor/tutor.??_??.utf-8 \
runtime/tutor/tutor.bar \
runtime/tutor/tutor.bar.* \
runtime/tutor/tutor.bar.utf-8 \
runtime/spell/README.txt \
runtime/spell/??/*.diff \
runtime/spell/??/main.aap \

View File

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

View File

@ -13,9 +13,6 @@ src/if_sniff.* Interface to SNiFF. If you don't know what SNiFF is,
src/os_amiga.* Files for the Amiga port.
src/gui_riscos.*
src/os_riscos.* Files for the RISC OS port.
src/gui_beos.*
src/os_beos.* Files for the BeOS port.

View File

@ -29,6 +29,8 @@
if version < 700
finish
endif
let s:keepcpo= &cpo
set cpo&vim
" Section: Constants {{{1
"
@ -619,6 +621,9 @@ lockvar g:ada#Comment
lockvar! g:ada#Keywords
lockvar! g:ada#Ctags_Kinds
let &cpo = s:keepcpo
unlet s:keepcpo
finish " 1}}}
"------------------------------------------------------------------------------

View File

@ -1,8 +1,10 @@
" Vim completion script
" Language: C
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2010 Mar 23
" Last Change: 2012 Jun 20
let s:cpo_save = &cpo
set cpo&vim
" This function is used for the 'omnifunc' option.
function! ccomplete#Complete(findstart, base)
@ -498,7 +500,7 @@ function! s:StructMembers(typename, items, all)
endif
if !cached
while 1
exe 'silent! ' . n . 'vimgrep /\t' . typename . '\(\t\|$\)/j ' . fnames
exe 'silent! keepj noautocmd ' . n . 'vimgrep /\t' . typename . '\(\t\|$\)/j ' . fnames
let qflist = getqflist()
if len(qflist) > 0 || match(typename, "::") < 0
@ -603,3 +605,6 @@ function! s:SearchMembers(matches, items, all)
endfor
return res
endfunc
let &cpo = s:cpo_save
unlet s:cpo_save

File diff suppressed because one or more lines are too long

View File

@ -1,8 +1,8 @@
" ---------------------------------------------------------------------
" getscript.vim
" Author: Charles E. Campbell, Jr.
" Date: Dec 28, 2009
" Version: 32
" Date: Jan 17, 2012
" Version: 34
" Installing: :help glvs-install
" Usage: :help glvs
"
@ -15,7 +15,7 @@
if exists("g:loaded_getscript")
finish
endif
let g:loaded_getscript= "v32"
let g:loaded_getscript= "v34"
if &cp
echoerr "GetLatestVimScripts is not vi-compatible; not loaded (you need to set nocp)"
finish
@ -519,6 +519,7 @@ fun! s:GetOneScript(...)
" --------------------------------------------------------------------------
" AutoInstall: only if doautoinstall has been requested by the plugin itself
" --------------------------------------------------------------------------
" call Decho("checking if plugin requested autoinstall: doautoinstall=".doautoinstall)
if doautoinstall
" call Decho(" ")
" call Decho("Autoinstall: getcwd<".getcwd()."> filereadable(".sname.")=".filereadable(sname))
@ -526,7 +527,7 @@ fun! s:GetOneScript(...)
" call Decho("<".sname."> is readable")
" call Decho("exe silent !".g:GetLatestVimScripts_mv." ".shellescape(sname)." ".shellescape(s:autoinstall))
exe "silent !".g:GetLatestVimScripts_mv." ".shellescape(sname)." ".shellescape(s:autoinstall)
let curdir = escape(substitute(getcwd(),'\','/','ge'),"|[]*'\" #")
let curdir = fnameescape(substitute(getcwd(),'\','/','ge'))
let installdir= curdir."/Installed"
if !isdirectory(installdir)
call mkdir(installdir)
@ -549,25 +550,42 @@ fun! s:GetOneScript(...)
" decompress
if sname =~ '\.bz2$'
" call Decho("decompress: attempt to bunzip2 ".sname)
exe "silent !bunzip2 ".shellescape(sname)
exe "sil !bunzip2 ".shellescape(sname)
let sname= substitute(sname,'\.bz2$','','')
" call Decho("decompress: new sname<".sname."> after bunzip2")
elseif sname =~ '\.gz$'
" call Decho("decompress: attempt to gunzip ".sname)
exe "silent !gunzip ".shellescape(sname)
exe "sil !gunzip ".shellescape(sname)
let sname= substitute(sname,'\.gz$','','')
" call Decho("decompress: new sname<".sname."> after gunzip")
elseif sname =~ '\.xz$'
" call Decho("decompress: attempt to unxz ".sname)
exe "sil !unxz ".shellescape(sname)
let sname= substitute(sname,'\.xz$','','')
" call Decho("decompress: new sname<".sname."> after unxz")
else
" call Decho("no decompression needed")
endif
" distribute archive(.zip, .tar, .vba) contents
" distribute archive(.zip, .tar, .vba, ...) contents
if sname =~ '\.zip$'
" call Decho("dearchive: attempt to unzip ".sname)
exe "silent !unzip -o ".shellescape(sname)
elseif sname =~ '\.tar$'
" call Decho("dearchive: attempt to untar ".sname)
exe "silent !tar -xvf ".shellescape(sname)
elseif sname =~ '\.tgz$'
" call Decho("dearchive: attempt to untar+gunzip ".sname)
exe "silent !tar -zxvf ".shellescape(sname)
elseif sname =~ '\.taz$'
" call Decho("dearchive: attempt to untar+uncompress ".sname)
exe "silent !tar -Zxvf ".shellescape(sname)
elseif sname =~ '\.tbz$'
" call Decho("dearchive: attempt to untar+bunzip2 ".sname)
exe "silent !tar -jxvf ".shellescape(sname)
elseif sname =~ '\.txz$'
" call Decho("dearchive: attempt to untar+xz ".sname)
exe "silent !tar -Jxvf ".shellescape(sname)
elseif sname =~ '\.vba$'
" call Decho("dearchive: attempt to handle a vimball: ".sname)
silent 1split

View File

@ -1,7 +1,7 @@
" Vim completion script
" Language: HTML and XHTML
" Maintainer: Mikolaj Machowski ( mikmach AT wp DOT pl )
" Last Change: 2006 Oct 19
" Last Change: 2011 Apr 28
function! htmlcomplete#CompleteTags(findstart, base)
if a:findstart
@ -285,6 +285,7 @@ function! htmlcomplete#CompleteTags(findstart, base)
let cssfiles = styletable + secimportfiles
let classes = []
for file in cssfiles
let classlines = []
if filereadable(file)
let stylesheet = readfile(file)
let stylefile = join(stylesheet, ' ')

File diff suppressed because it is too large Load Diff

View File

@ -1,9 +1,9 @@
" netrwFileHandlers: contains various extension-based file handlers for
" netrw's browsers' x command ("eXecute launcher")
" Author: Charles E. Campbell, Jr.
" Date: Sep 30, 2008
" Version: 10
" Copyright: Copyright (C) 1999-2008 Charles E. Campbell, Jr. {{{1
" Date: Mar 14, 2012
" Version: 11a
" Copyright: Copyright (C) 1999-2012 Charles E. Campbell, Jr. {{{1
" Permission is hereby granted to use and distribute this code,
" with or without modifications, provided that this copyright
" notice is copied with it. Like anything else that's free,
@ -20,7 +20,7 @@
if exists("g:loaded_netrwFileHandlers") || &cp
finish
endif
let g:loaded_netrwFileHandlers= "v10"
let g:loaded_netrwFileHandlers= "v11a"
if v:version < 702
echohl WarningMsg
echo "***warning*** this version of netrwFileHandlers needs vim 7.2"
@ -64,7 +64,7 @@ fun! netrwFileHandlers#Invoke(exten,fname)
" call Decho("let ret= netrwFileHandlers#NFH_".a:exten.'("'.fname.'")')
exe "let ret= s:NFH_".a:exten.'("'.fname.'")'
endif
" call Dret("netrwFileHandlers#Invoke 0 : ret=".ret)
return 0
endfun
@ -356,6 +356,7 @@ fun! s:NFH_obj(obj)
endfun
let &cpo= s:keepcpo
unlet s:keepcpo
" ---------------------------------------------------------------------
" Modelines: {{{1
" vim: fdm=marker

View File

@ -106,7 +106,7 @@ fun! netrwSettings#NetrwSettings()
put = 'let g:netrw_browsex_viewer = (not defined)'
endif
put = 'let g:netrw_compress = '.g:netrw_compress
put = 'let g:netrw_cursorline = '.g:netrw_cursorline
put = 'let g:netrw_cursor = '.g:netrw_cursor
let decompressline= line("$")
put ='let g:netrw_decompress...'
put = 'let g:netrw_dirhistmax = '.g:netrw_dirhistmax
@ -125,9 +125,9 @@ fun! netrwSettings#NetrwSettings()
put = 'let g:netrw_list_hide = '.g:netrw_list_hide
put = 'let g:netrw_liststyle = '.g:netrw_liststyle
put = 'let g:netrw_localcopycmd = '.g:netrw_localcopycmd
put = 'let g:netrw_local_mkdir = '.g:netrw_local_mkdir
put = 'let g:netrw_localmkdir = '.g:netrw_localmkdir
put = 'let g:netrw_localmovecmd = '.g:netrw_localmovecmd
put = 'let g:netrw_local_rmdir = '.g:netrw_local_rmdir
put = 'let g:netrw_localrmdir = '.g:netrw_localrmdir
put = 'let g:netrw_maxfilenamelen = '.g:netrw_maxfilenamelen
put = 'let g:netrw_menu = '.g:netrw_menu
put = 'let g:netrw_mkdir_cmd = '.g:netrw_mkdir_cmd

View File

@ -1,7 +1,7 @@
" Vim completion script
" Language: PHP
" Maintainer: Mikolaj Machowski ( mikmach AT wp DOT pl )
" Last Change: 2006 May 9
" Last Change: 2011 Dec 08
"
" TODO:
" - Class aware completion:
@ -650,6 +650,7 @@ function! phpcomplete#GetClassContents(file, name) " {{{
" this is the most efficient way. The other way
" is to go through the looong string looking for
" matching {}
let original_window = winnr()
below 1new
0put =cfile
call search('class\s\+'.a:name)
@ -667,6 +668,9 @@ function! phpcomplete#GetClassContents(file, name) " {{{
let classcontent = join(classc, "\n")
bw! %
" go back to where we started
exe original_window.'wincmd w'
if extends_class != ''
let classlocation = phpcomplete#GetClassLocation(extends_class)
if filereadable(classlocation)

View File

@ -1,6 +1,6 @@
" Vim script to download a missing spell file
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2008 Nov 29
" Last Change: 2012 Jan 08
if !exists('g:spellfile_URL')
" Prefer using http:// when netrw should be able to use it, since
@ -70,7 +70,7 @@ function! spellfile#LoadFile(lang)
" Remember the buffer number, we check it below.
new
let newbufnr = winbufnr(0)
setlocal bin
setlocal bin fenc=
echo 'Downloading ' . fname . '...'
call spellfile#Nread(fname)
if getline(2) !~ 'VIMspell'
@ -83,7 +83,7 @@ function! spellfile#LoadFile(lang)
" Our buffer has vanished!? Open a new window.
echomsg "download buffer disappeared, opening a new one"
new
setlocal bin
setlocal bin fenc=
else
exe winnr . "wincmd w"
endif
@ -120,6 +120,7 @@ function! spellfile#LoadFile(lang)
else
let dirname = escape(dirlist[dirchoice], ' ')
endif
setlocal fenc=
exe "write " . dirname . '/' . fname
" Also download the .sug file, if the user wants to.

View File

@ -1,16 +1,51 @@
" Vim OMNI completion script for SQL
" Language: SQL
" Maintainer: David Fishburn <dfishburn dot vim at gmail dot com>
" Version: 10.0
" Last Change: 2010 Jun 11
" Version: 14.0
" Last Change: 2012 Dec 04
" Homepage: http://www.vim.org/scripts/script.php?script_id=1572
" Usage: For detailed help
" ":help sql.txt"
" or ":help ft-sql-omni"
" ":help sql.txt"
" or ":help ft-sql-omni"
" or read $VIMRUNTIME/doc/sql.txt
" History
"
" Version 14.0 (Dec 2012)
" - BF: Added check for cpo
"
" Version 13.0 (Dec 2012)
" - NF: When completing column lists or drilling into a table
" and g:omni_sql_include_owner is enabled, the
" only the table name would be replaced with the column
" list instead of the table name and owner (if specified).
" - NF: When completing column lists using table aliases
" and g:omni_sql_include_owner is enabled, account
" for the owner name when looking up the table
" list instead of the table name and owner (if specified).
" - BF: When completing column lists or drilling into a table
" and g:omni_sql_include_owner is enabled, the
" column list could often not be found for the table.
" - BF: When OMNI popped up, possibly the wrong word
" would be replaced for column and column list options.
"
" Version 12.0 (Feb 2012)
" - Partial column name completion did not work when a table
" name or table alias was provided (Jonas Enberg).
" - Improved the handling of column completion. First we match any
" columns from a previous completion. If not matches are found, we
" consider the partial name to be a table or table alias for the
" query and attempt to match on it.
"
" Version 11.0 (Jan 2012)
" Added g:omni_sql_default_compl_type variable
" - You can specify which type of completion to default to
" when pressing <C-X><C-O>. The entire list of available
" choices can be found in the calls to sqlcomplete#Map in:
" ftplugin/sql.vim
"
" Version 10.0
" Updated PreCacheSyntax()
" Updated PreCacheSyntax()
" - Now returns a List of the syntax items it finds.
" This allows other plugins / scripts to use this list for their own
" purposes. In this case XPTemplate can use them for a Choose list.
@ -18,33 +53,33 @@
" warning if not.
" - Verifies the parameters are the correct type and displays a
" warning if not.
" Updated SQLCWarningMsg()
" Updated SQLCWarningMsg()
" - Prepends warning message with SQLComplete so you know who issued
" the warning.
" Updated SQLCErrorMsg()
" Updated SQLCErrorMsg()
" - Prepends error message with SQLComplete so you know who issued
" the error.
"
" Version 9.0
"
" Version 9.0 (May 2010)
" This change removes some of the support for tables with spaces in their
" names in order to simplify the regexes used to pull out query table
" names in order to simplify the regexes used to pull out query table
" aliases for more robust table name and column name code completion.
" Full support for "table names with spaces" can be added in again
" after 7.3.
"
" Version 8.0
" Incorrectly re-executed the g:ftplugin_sql_omni_key_right and g:ftplugin_sql_omni_key_left
" Incorrectly re-executed the g:ftplugin_sql_omni_key_right and g:ftplugin_sql_omni_key_left
" when drilling in and out of a column list for a table.
"
" Version 7.0
" Version 7.0 (Jan 2010)
" Better handling of object names
"
" Version 6.0
" Version 6.0 (Apr 2008)
" Supports object names with spaces "my table name"
"
" Set completion with CTRL-X CTRL-O to autoloaded function.
" This check is in place in case this script is
" sourced directly instead of using the autoload feature.
" sourced directly instead of using the autoload feature.
if exists('&omnifunc')
" Do not set the option if already set since this
" results in an E117 warning.
@ -54,9 +89,11 @@ if exists('&omnifunc')
endif
if exists('g:loaded_sql_completion')
finish
finish
endif
let g:loaded_sql_completion = 100
let g:loaded_sql_completion = 130
let s:keepcpo= &cpo
set cpo&vim
" Maintains filename of dictionary
let s:sql_file_table = ""
@ -69,7 +106,7 @@ let s:tbl_alias = []
let s:tbl_cols = []
let s:syn_list = []
let s:syn_value = []
" Used in conjunction with the syntaxcomplete plugin
let s:save_inc = ""
let s:save_exc = ""
@ -79,7 +116,7 @@ endif
if exists('g:omni_syntax_group_exclude_sql')
let s:save_exc = g:omni_syntax_group_exclude_sql
endif
" Used with the column list
let s:save_prev_table = ""
@ -110,14 +147,25 @@ if !exists('g:omni_sql_include_owner')
if g:loaded_dbext >= 300
" New to dbext 3.00, by default the table lists include the owner
" name of the table. This is used when determining how much of
" whatever has been typed should be replaced as part of the
" whatever has been typed should be replaced as part of the
" code replacement.
let g:omni_sql_include_owner = 1
endif
endif
endif
" Default type of completion used when <C-X><C-O> is pressed
if !exists('g:omni_sql_default_compl_type')
let g:omni_sql_default_compl_type = 'table'
endif
" This function is used for the 'omnifunc' option.
" It is called twice by omni and it is responsible
" for returning the completion list of items.
" But it must also determine context of what to complete
" and what to "replace" with the completion.
" The a:base, is replaced directly with what the user
" chooses from the choices.
" The s:prepend provides context for the completion.
function! sqlcomplete#Complete(findstart, base)
" Default to table name completion
@ -126,6 +174,7 @@ function! sqlcomplete#Complete(findstart, base)
if exists('b:sql_compl_type')
let compl_type = b:sql_compl_type
endif
let begindot = 0
" First pass through this function determines how much of the line should
" be replaced by whatever is chosen from the completion list
@ -134,13 +183,12 @@ function! sqlcomplete#Complete(findstart, base)
let line = getline('.')
let start = col('.') - 1
let lastword = -1
let begindot = 0
" Check if the first character is a ".", for column completion
if line[start - 1] == '.'
let begindot = 1
endif
while start > 0
" Additional code was required to handle objects which
" Additional code was required to handle objects which
" can contain spaces like "my table name".
if line[start - 1] !~ '\(\w\|\.\)'
" If the previous character is not a period or word character
@ -150,7 +198,7 @@ function! sqlcomplete#Complete(findstart, base)
elseif line[start - 1] =~ '\w'
" If the previous character is word character continue back
let start -= 1
elseif line[start - 1] =~ '\.' &&
elseif line[start - 1] =~ '\.' &&
\ compl_type =~ 'column\|table\|view\|procedure'
" If the previous character is a period and we are completing
" an object which can be specified with a period like this:
@ -160,7 +208,10 @@ function! sqlcomplete#Complete(findstart, base)
" If lastword has already been set for column completion
" break from the loop, since we do not also want to pickup
" a table name if it was also supplied.
if lastword != -1 && compl_type == 'column'
" Unless g:omni_sql_include_owner == 1, then we can
" include the ownername.
if lastword != -1 && compl_type == 'column'
\ && g:omni_sql_include_owner == 0
break
endif
" If column completion was specified stop at the "." if
@ -171,8 +222,8 @@ function! sqlcomplete#Complete(findstart, base)
endif
" If omni_sql_include_owner = 0, do not include the table
" name as part of the substitution, so break here
if lastword == -1 &&
\ compl_type =~ 'table\|view\|procedure\column_csv' &&
if lastword == -1 &&
\ compl_type =~ '\<\(table\|view\|procedure\|column\|column_csv\)\>' &&
\ g:omni_sql_include_owner == 0
let lastword = start
break
@ -202,7 +253,7 @@ function! sqlcomplete#Complete(findstart, base)
let compl_list = []
" Default to table name completion
let compl_type = 'table'
let compl_type = g:omni_sql_default_compl_type
" Allow maps to specify what type of object completion they want
if exists('b:sql_compl_type')
let compl_type = b:sql_compl_type
@ -216,7 +267,7 @@ function! sqlcomplete#Complete(findstart, base)
if compl_type == 'table' ||
\ compl_type == 'procedure' ||
\ compl_type == 'view'
\ compl_type == 'view'
" This type of completion relies upon the dbext.vim plugin
if s:SQLCCheck4dbext() == -1
@ -254,7 +305,7 @@ function! sqlcomplete#Complete(findstart, base)
if base == ""
" The last time we displayed a column list we stored
" the table name. If the user selects a column list
" the table name. If the user selects a column list
" without a table name of alias present, assume they want
" the previous column list displayed.
let base = s:save_prev_table
@ -269,20 +320,26 @@ function! sqlcomplete#Complete(findstart, base)
let table = matchstr( base, '^\(.*\.\)\?\zs.*\ze\..*' )
let column = matchstr( base, '.*\.\zs.*' )
if g:omni_sql_include_owner == 1 && owner == '' && table != '' && column != ''
let owner = table
let table = column
let column = ''
endif
" It is pretty well impossible to determine if the user
" has entered:
" owner.table
" table.column_prefix
" So there are a couple of things we can do to mitigate
" So there are a couple of things we can do to mitigate
" this issue.
" 1. Check if the dbext plugin has the option turned
" on to even allow owners
" 2. Based on 1, if the user is showing a table list
" and the DrillIntoTable (using <Right>) then
" and the DrillIntoTable (using <Right>) then
" this will be owner.table. In this case, we can
" check to see the table.column exists in the
" check to see the table.column exists in the
" cached table list. If it does, then we have
" determined the user has actually chosen
" determined the user has actually chosen
" owner.table, not table.column_prefix.
let found = -1
if g:omni_sql_include_owner == 1 && owner == ''
@ -297,17 +354,46 @@ function! sqlcomplete#Complete(findstart, base)
" If the user has indicated not to use table owners at all and
" the base ends in a '.' we know they are not providing a column
" name, so we can shift the items appropriately.
if found != -1 || (g:omni_sql_include_owner == 0 && base !~ '\.$')
let owner = table
let table = column
let column = ''
endif
" if found != -1 || (g:omni_sql_include_owner == 0 && base !~ '\.$')
" let owner = table
" let table = column
" let column = ''
" endif
else
" If no "." was provided and the user asked for
" column level completion, first attempt the match
" on any previous column lists. If the user asked
" for a list of columns comma separated, continue as usual.
if compl_type == 'column' && s:save_prev_table != ''
" The last time we displayed a column list we stored
" the table name. If the user selects a column list
" without a table name of alias present, assume they want
" the previous column list displayed.
let table = s:save_prev_table
let list_type = ''
let compl_list = s:SQLCGetColumns(table, list_type)
if ! empty(compl_list)
" If no column prefix has been provided and the table
" name was provided, append it to each of the items
" returned.
let compl_list = filter(deepcopy(compl_list), 'v:val=~"^'.base.'"' )
" If not empty, we have a match on columns
" return the list
if ! empty(compl_list)
return compl_list
endif
endif
endif
" Since no columns were found to match the base supplied
" assume the user is trying to complete the column list
" for a table (and or an alias to a table).
let table = base
endif
" Get anything after the . and consider this the table name
" If an owner has been specified, then we must consider the
" If an owner has been specified, then we must consider the
" base to be a partial column name
" let base = matchstr( base, '^\(.*\.\)\?\zs.*' )
@ -322,16 +408,25 @@ function! sqlcomplete#Complete(findstart, base)
let list_type = 'csv'
endif
let compl_list = s:SQLCGetColumns(table, list_type)
" If we are including the OWNER for the objects, then for
" table completion, if we have it, it should be included
" as there can be the same table names in a database yet
" with different owner names.
if g:omni_sql_include_owner == 1 && owner != '' && table != ''
let compl_list = s:SQLCGetColumns(owner.'.'.table, list_type)
else
let compl_list = s:SQLCGetColumns(table, list_type)
endif
if column != ''
" If no column prefix has been provided and the table
" name was provided, append it to each of the items
" returned.
let compl_list = map(compl_list, "table.'.'.v:val")
let compl_list = map(compl_list, 'table.".".v:val')
if owner != ''
" If an owner has been provided append it to each of the
" items returned.
let compl_list = map(compl_list, "owner.'.'.v:val")
let compl_list = map(compl_list, 'owner.".".v:val')
endif
else
let base = ''
@ -345,11 +440,14 @@ function! sqlcomplete#Complete(findstart, base)
endif
elseif compl_type == 'resetCache'
" Reset all cached items
let s:tbl_name = []
let s:tbl_alias = []
let s:tbl_cols = []
let s:syn_list = []
let s:syn_value = []
let s:tbl_name = []
let s:tbl_alias = []
let s:tbl_cols = []
let s:syn_list = []
let s:syn_value = []
let s:sql_file_table = ""
let s:sql_file_procedure = ""
let s:sql_file_view = ""
let msg = "All SQL cached items have been removed."
call s:SQLCWarningMsg(msg)
@ -361,22 +459,41 @@ function! sqlcomplete#Complete(findstart, base)
if base != ''
" Filter the list based on the first few characters the user entered.
" Check if the text matches at the beginning
" or
" Check if the text matches at the beginning
" \\(^.base.'\\)
" or
" Match to a owner.table or alias.column type match
" ^\\(\\w\\+\\.\\)\\?'.base.'\\)
" or
" Handle names with spaces "my table name"
" "\\(^'.base.'\\|^\\(\\w\\+\\.\\)\\?'.base.'\\)"'
"
let expr = 'v:val '.(g:omni_sql_ignorecase==1?'=~?':'=~#').' "\\(^'.base.'\\|^\\(\\w\\+\\.\\)\\?'.base.'\\)"'
" let expr = 'v:val '.(g:omni_sql_ignorecase==1?'=~?':'=~#').' "\\(^'.base.'\\)"'
" let expr = 'v:val '.(g:omni_sql_ignorecase==1?'=~?':'=~#').' "\\(^'.base.'\\|\\(\\.\\)\\?'.base.'\\)"'
" let expr = 'v:val '.(g:omni_sql_ignorecase==1?'=~?':'=~#').' "\\(^'.base.'\\|\\([^.]*\\)\\?'.base.'\\)"'
let compl_list = filter(deepcopy(compl_list), expr)
if empty(compl_list) && compl_type == 'table' && base =~ '\.$'
" It is possible we could be looking for column name completion
" and the user simply hit C-X C-O to lets try it as well
" since we had no hits with the tables.
" If the base ends with a . it is hard to know if we are
" completing table names or column names.
let list_type = ''
let compl_list = s:SQLCGetColumns(base, list_type)
endif
endif
if exists('b:sql_compl_savefunc') && b:sql_compl_savefunc != ""
let &omnifunc = b:sql_compl_savefunc
endif
if empty(compl_list)
call s:SQLCWarningMsg( 'Could not find type['.compl_type.'] using prepend[.'.s:prepended.'] base['.a:base.']' )
endif
return compl_list
endfunc
@ -384,7 +501,7 @@ function! sqlcomplete#PreCacheSyntax(...)
let syn_group_arr = []
let syn_items = []
if a:0 > 0
if a:0 > 0
if type(a:1) != 3
call s:SQLCWarningMsg("Parameter is not a list. Example:['syntaxGroup1', 'syntaxGroup2']")
return ''
@ -407,7 +524,7 @@ endfunction
function! sqlcomplete#ResetCacheSyntax(...)
let syn_group_arr = []
if a:0 > 0
if a:0 > 0
if type(a:1) != 3
call s:SQLCWarningMsg("Parameter is not a list. Example:['syntaxGroup1', 'syntaxGroup2']")
return ''
@ -458,7 +575,7 @@ function! sqlcomplete#DrillIntoTable()
" If the popup is not visible, simple perform the normal
" key behaviour.
" Must use exec since they key must be preceeded by "\"
" or feedkeys will simply push each character of the string
" or feedkeys will simply push each character of the string
" rather than the "key press".
exec 'call feedkeys("\'.g:ftplugin_sql_omni_key_right.'", "n")'
endif
@ -475,7 +592,7 @@ function! sqlcomplete#DrillOutOfColumns()
" If the popup is not visible, simple perform the normal
" key behaviour.
" Must use exec since they key must be preceeded by "\"
" or feedkeys will simply push each character of the string
" or feedkeys will simply push each character of the string
" rather than the "key press".
exec 'call feedkeys("\'.g:ftplugin_sql_omni_key_left.'", "n")'
endif
@ -484,16 +601,16 @@ endfunction
function! s:SQLCWarningMsg(msg)
echohl WarningMsg
echomsg 'SQLComplete:'.a:msg
echomsg 'SQLComplete:'.a:msg
echohl None
endfunction
function! s:SQLCErrorMsg(msg)
echohl ErrorMsg
echomsg 'SQLComplete:'.a:msg
echomsg 'SQLComplete:'.a:msg
echohl None
endfunction
function! s:SQLCGetSyntaxList(syn_group)
let syn_group = a:syn_group
let compl_list = []
@ -504,7 +621,7 @@ function! s:SQLCGetSyntaxList(syn_group)
" Return previously cached value
let compl_list = s:syn_value[list_idx]
else
" Request the syntax list items from the
" Request the syntax list items from the
" syntax completion plugin
if syn_group == 'syntax'
" Handle this special case. This allows the user
@ -552,7 +669,7 @@ function! s:SQLCAddAlias(table_name, table_alias, cols)
let table_alias = a:table_alias
let cols = a:cols
if g:omni_sql_use_tbl_alias != 'n'
if g:omni_sql_use_tbl_alias != 'n'
if table_alias == ''
if 'da' =~? g:omni_sql_use_tbl_alias
if table_name =~ '_'
@ -562,13 +679,13 @@ function! s:SQLCAddAlias(table_name, table_alias, cols)
setlocal iskeyword-=_
" Get the first letter of each word
" [[:alpha:]] is used instead of \w
" [[:alpha:]] is used instead of \w
" to catch extended accented characters
"
let table_alias = substitute(
\ table_name,
\ '\<[[:alpha:]]\+\>_\?',
\ '\=strpart(submatch(0), 0, 1)',
let table_alias = substitute(
\ table_name,
\ '\<[[:alpha:]]\+\>_\?',
\ '\=strpart(submatch(0), 0, 1)',
\ 'g'
\ )
" Restore original value
@ -596,7 +713,7 @@ function! s:SQLCAddAlias(table_name, table_alias, cols)
return cols
endfunction
function! s:SQLCGetObjectOwner(object)
function! s:SQLCGetObjectOwner(object)
" The owner regex matches a word at the start of the string which is
" followed by a dot, but doesn't include the dot in the result.
" ^ - from beginning of line
@ -609,11 +726,29 @@ function! s:SQLCGetObjectOwner(object)
" let owner = matchstr( a:object, '^\s*\zs.*\ze\.' )
let owner = matchstr( a:object, '^\("\|\[\)\?\zs\.\{-}\ze\("\|\]\)\?\.' )
return owner
endfunction
endfunction
function! s:SQLCGetColumns(table_name, list_type)
if a:table_name =~ '\.'
" Check if the owner/creator has been specified
let owner = matchstr( a:table_name, '^\zs.*\ze\..*\..*' )
let table = matchstr( a:table_name, '^\(.*\.\)\?\zs.*\ze\..*' )
let column = matchstr( a:table_name, '.*\.\zs.*' )
if g:omni_sql_include_owner == 1 && owner == '' && table != '' && column != ''
let owner = table
let table = column
let column = ''
endif
else
let owner = ''
let table = matchstr(a:table_name, '^["\[\]a-zA-Z0-9_ ]\+\ze\.\?')
let column = ''
endif
" Check if the table name was provided as part of the column name
let table_name = matchstr(a:table_name, '^["\[\]a-zA-Z0-9_ ]\+\ze\.\?')
" let table_name = matchstr(a:table_name, '^["\[\]a-zA-Z0-9_ ]\+\ze\.\?')
let table_name = table
let table_cols = []
let table_alias = ''
let move_to_top = 1
@ -636,7 +771,7 @@ function! s:SQLCGetColumns(table_name, list_type)
if list_idx > -1
let table_cols = split(s:tbl_cols[list_idx], '\n')
else
" Check if we have already cached the column list for this table
" Check if we have already cached the column list for this table
" by its alias, assuming the table_name provided was actually
" the alias for the table instead
" select *
@ -654,7 +789,7 @@ function! s:SQLCGetColumns(table_name, list_type)
" And the table ends in a "." or we are looking for a column list
" if list_idx == -1 && (a:table_name =~ '\.' || b:sql_compl_type =~ 'column')
" if list_idx == -1 && (a:table_name =~ '\.' || a:list_type =~ 'csv')
if list_idx == -1
if list_idx == -1
let saveY = @y
let saveSearch = @/
let saveWScan = &wrapscan
@ -665,7 +800,7 @@ function! s:SQLCGetColumns(table_name, list_type)
setlocal nowrapscan
" If . was entered, look at the word just before the .
" We are looking for something like this:
" select *
" select *
" from customer c
" where c.
" So when . is pressed, we need to find 'c'
@ -692,15 +827,15 @@ function! s:SQLCGetColumns(table_name, list_type)
" if query =~? '^\c\(select\)'
if query =~? '^\(select\|update\|delete\)'
let found = 1
" \(\(\<\w\+\>\)\.\)\? -
" \(\(\<\w\+\>\)\.\)\? -
" '\c\(from\|join\|,\).\{-}' - Starting at the from clause (case insensitive)
" '\zs\(\(\<\w\+\>\)\.\)\?' - Get the owner name (optional)
" '\<\w\+\>\ze' - Get the table name
" '\<\w\+\>\ze' - Get the table name
" '\s\+\<'.table_name.'\>' - Followed by the alias
" '\s*\.\@!.*' - Cannot be followed by a .
" '\(\<where\>\|$\)' - Must be followed by a WHERE clause
" '.*' - Exclude the rest of the line in the match
" let table_name_new = matchstr(@y,
" let table_name_new = matchstr(@y,
" \ '\c\(from\|join\|,\).\{-}'.
" \ '\zs\(\("\|\[\)\?.\{-}\("\|\]\)\.\)\?'.
" \ '\("\|\[\)\?.\{-}\("\|\]\)\?\ze'.
@ -711,7 +846,16 @@ function! s:SQLCGetColumns(table_name, list_type)
" \ '\(\<where\>\|$\)'.
" \ '.*'
" \ )
let table_name_new = matchstr(@y,
"
"
" ''\c\(\<from\>\|\<join\>\|,\)\s*' - Starting at the from clause (case insensitive)
" '\zs\(\("\|\[\)\?\w\+\("\|\]\)\?\.\)\?' - Get the owner name (optional)
" '\("\|\[\)\?\w\+\("\|\]\)\?\ze' - Get the table name
" '\s\+\%(as\s\+\)\?\<'.matchstr(table_name, '.\{-}\ze\.\?$').'\>' - Followed by the alias
" '\s*\.\@!.*' - Cannot be followed by a .
" '\(\<where\>\|$\)' - Must be followed by a WHERE clause
" '.*' - Exclude the rest of the line in the match
let table_name_new = matchstr(@y,
\ '\c\(\<from\>\|\<join\>\|,\)\s*'.
\ '\zs\(\("\|\[\)\?\w\+\("\|\]\)\?\.\)\?'.
\ '\("\|\[\)\?\w\+\("\|\]\)\?\ze'.
@ -725,7 +869,12 @@ function! s:SQLCGetColumns(table_name, list_type)
if table_name_new != ''
let table_alias = table_name
let table_name = matchstr( table_name_new, '^\(.*\.\)\?\zs.*\ze' )
if g:omni_sql_include_owner == 1
let table_name = matchstr( table_name_new, '^\zs\(.\{-}\.\)\?\(.\{-}\.\)\?.*\ze' )
else
" let table_name = matchstr( table_name_new, '^\(.*\.\)\?\zs.*\ze' )
let table_name = matchstr( table_name_new, '^\(.\{-}\.\)\?\zs\(.\{-}\.\)\?.*\ze' )
endif
let list_idx = index(s:tbl_name, table_name, 0, &ignorecase)
if list_idx > -1
@ -753,7 +902,7 @@ function! s:SQLCGetColumns(table_name, list_type)
" Return to previous location
call cursor(curline, curcol)
if found == 0
if g:loaded_dbext > 300
exec 'DBSetOption use_tbl_alias='.saveSettingAlias
@ -762,12 +911,13 @@ function! s:SQLCGetColumns(table_name, list_type)
" Not a SQL statement, do not display a list
return []
endif
endif
endif
if empty(table_cols)
" Specify silent mode, no messages to the user (tbl, 1)
" Specify do not comma separate (tbl, 1, 1)
let table_cols_str = DB_getListColumn(table_name, 1, 1)
" let table_cols_str = DB_getListColumn(table_name, 1, 1)
let table_cols_str = DB_getListColumn((owner!=''?owner.'.':'').table_name, 1, 1)
if table_cols_str != ""
let s:tbl_name = add( s:tbl_name, table_name )
@ -793,3 +943,7 @@ function! s:SQLCGetColumns(table_name, list_type)
return table_cols
endfunction
" Restore:
let &cpo= s:keepcpo
unlet s:keepcpo
" vim: ts=4 fdm=marker

View File

@ -1,16 +1,42 @@
" Vim completion script
" Language: All languages, uses existing syntax highlighting rules
" Maintainer: David Fishburn <dfishburn dot vim at gmail dot com>
" Version: 7.0
" Last Change: 2010 Jul 29
" Usage: For detailed help, ":help ft-syntax-omni"
" Version: 11.0
" Last Change: 2012 Dec 04
" Usage: For detailed help, ":help ft-syntax-omni"
" History
"
" Version 11.0
" Corrected which characters required escaping during
" substitution calls.
"
" Version 10.0
" Cycle through all the character ranges specified in the
" iskeyword option and build a list of valid word separators.
" Prior to this change, only actual characters were used,
" where for example ASCII "45" == "-". If "45" were used
" in iskeyword the hyphen would not be picked up.
" This introduces a new option, since the character ranges
" specified could be multibyte:
" let g:omni_syntax_use_single_byte = 1
" This by default will only allow single byte ASCII
" characters to be added and an additional check to ensure
" the charater is printable (see documentation for isprint).
"
" Version 9.0
" Add the check for cpo.
"
" Version 8.0
" Updated SyntaxCSyntaxGroupItems()
" - Some additional syntax items were also allowed
" on nextgroup= lines which were ignored by default.
" Now these lines are processed independently.
"
" Version 7.0
" Updated syntaxcomplete#OmniSyntaxList()
" - Looking up the syntax groups defined from a syntax file
" looked for only 1 format of {filetype}GroupName, but some
" looked for only 1 format of {filetype}GroupName, but some
" syntax writers use this format as well:
" {b:current_syntax}GroupName
" OmniSyntaxList() will now check for both if the first
@ -18,11 +44,11 @@
"
" Version 6.0
" Added syntaxcomplete#OmniSyntaxList()
" - Allows other plugins to use this for their own
" - Allows other plugins to use this for their own
" purposes.
" - It will return a List of all syntax items for the
" syntax group name passed in.
" - XPTemplate for SQL will use this function via the
" syntax group name passed in.
" - XPTemplate for SQL will use this function via the
" sqlcomplete plugin to populate a Choose box.
"
" Version 5.0
@ -32,7 +58,7 @@
"
" Set completion with CTRL-X CTRL-O to autoloaded function.
" This check is in place in case this script is
" sourced directly instead of using the autoload feature.
" sourced directly instead of using the autoload feature.
if exists('+omnifunc')
" Do not set the option if already set since this
" results in an E117 warning.
@ -42,9 +68,13 @@ if exists('+omnifunc')
endif
if exists('g:loaded_syntax_completion')
finish
finish
endif
let g:loaded_syntax_completion = 70
let g:loaded_syntax_completion = 110
" Turn on support for line continuations when creating the script
let s:cpo_save = &cpo
set cpo&vim
" Set ignorecase to the ftplugin standard
" This is the default setting, but if you define a buffer local
@ -61,6 +91,18 @@ if !exists('g:omni_syntax_use_iskeyword')
let g:omni_syntax_use_iskeyword = 1
endif
" When using iskeyword, this setting controls whether the characters
" should be limited to single byte characters.
if !exists('g:omni_syntax_use_single_byte')
let g:omni_syntax_use_single_byte = 1
endif
" When using iskeyword, this setting controls whether the characters
" should be limited to single byte characters.
if !exists('g:omni_syntax_use_iskeyword_numeric')
let g:omni_syntax_use_iskeyword_numeric = 1
endif
" Only display items in the completion window that are at least
" this many characters in length.
" This is the default setting, but if you define a buffer local
@ -72,7 +114,8 @@ endif
" This script will build a completion list based on the syntax
" elements defined by the files in $VIMRUNTIME/syntax.
let s:syn_remove_words = 'match,matchgroup=,contains,'.
\ 'links to,start=,end=,nextgroup='
\ 'links to,start=,end='
" \ 'links to,start=,end=,nextgroup='
let s:cache_name = []
let s:cache_list = []
@ -151,7 +194,7 @@ endfunc
function! syntaxcomplete#OmniSyntaxList(...)
if a:0 > 0
let parms = []
if 3 == type(a:1)
if 3 == type(a:1)
let parms = a:1
elseif 1 == type(a:1)
let parms = split(a:1, ',')
@ -165,7 +208,7 @@ endfunc
function! OmniSyntaxList(...)
let list_parms = []
if a:0 > 0
if 3 == type(a:1)
if 3 == type(a:1)
let list_parms = a:1
elseif 1 == type(a:1)
let list_parms = split(a:1, ',')
@ -201,18 +244,18 @@ function! OmniSyntaxList(...)
let saveL = @l
let filetype = substitute(&filetype, '\.', '_', 'g')
if empty(list_parms)
" Default the include group to include the requested syntax group
let syntax_group_include_{filetype} = ''
" Check if there are any overrides specified for this filetype
if exists('g:omni_syntax_group_include_'.filetype)
let syntax_group_include_{filetype} =
\ substitute( g:omni_syntax_group_include_{filetype},'\s\+','','g')
\ substitute( g:omni_syntax_group_include_{filetype},'\s\+','','g')
let list_parms = split(g:omni_syntax_group_include_{filetype}, ',')
if syntax_group_include_{filetype} =~ '\w'
let syntax_group_include_{filetype} =
\ substitute( syntax_group_include_{filetype},
let syntax_group_include_{filetype} =
\ substitute( syntax_group_include_{filetype},
\ '\s*,\s*', '\\|', 'g'
\ )
endif
@ -222,11 +265,11 @@ function! OmniSyntaxList(...)
endif
" Loop through all the syntax groupnames, and build a
" syntax file which contains these names. This can
" syntax file which contains these names. This can
" work generically for any filetype that does not already
" have a plugin defined.
" This ASSUMES the syntax groupname BEGINS with the name
" of the filetype. From my casual viewing of the vim7\syntax
" of the filetype. From my casual viewing of the vim7\syntax
" directory this is true for almost all syntax definitions.
" As an example, the SQL syntax groups have this pattern:
" sqlType
@ -239,7 +282,7 @@ function! OmniSyntaxList(...)
let syntax_full = "\n".@l
let @l = saveL
if syntax_full =~ 'E28'
if syntax_full =~ 'E28'
\ || syntax_full =~ 'E411'
\ || syntax_full =~ 'E415'
\ || syntax_full =~ 'No Syntax items'
@ -249,7 +292,7 @@ function! OmniSyntaxList(...)
let filetype = substitute(&filetype, '\.', '_', 'g')
let list_exclude_groups = []
if a:0 > 0
if a:0 > 0
" Do nothing since we have specific a specific list of groups
else
" Default the exclude group to nothing
@ -257,11 +300,11 @@ function! OmniSyntaxList(...)
" Check if there are any overrides specified for this filetype
if exists('g:omni_syntax_group_exclude_'.filetype)
let syntax_group_exclude_{filetype} =
\ substitute( g:omni_syntax_group_exclude_{filetype},'\s\+','','g')
\ substitute( g:omni_syntax_group_exclude_{filetype},'\s\+','','g')
let list_exclude_groups = split(g:omni_syntax_group_exclude_{filetype}, ',')
if syntax_group_exclude_{filetype} =~ '\w'
let syntax_group_exclude_{filetype} =
\ substitute( syntax_group_exclude_{filetype},
if syntax_group_exclude_{filetype} =~ '\w'
let syntax_group_exclude_{filetype} =
\ substitute( syntax_group_exclude_{filetype},
\ '\s*,\s*', '\\|', 'g'
\ )
endif
@ -278,14 +321,14 @@ function! OmniSyntaxList(...)
while ftindex > -1
let ft_part_name = matchstr( &filetype, '\w\+', ftindex )
" Syntax rules can contain items for more than just the current
" Syntax rules can contain items for more than just the current
" filetype. They can contain additional items added by the user
" via autocmds or their vimrc.
" Some syntax files can be combined (html, php, jsp).
" We want only items that begin with the filetype we are interested in.
let next_group_regex = '\n' .
\ '\zs'.ft_part_name.'\w\+\ze'.
\ '\s\+xxx\s\+'
\ '\s\+xxx\s\+'
let index = 0
let index = match(syntax_full, next_group_regex, index)
@ -299,11 +342,11 @@ function! OmniSyntaxList(...)
" syn keyword {syntax_filename}Keyword values ...
" let b:current_syntax = "mysql"
" So, we will make the format of finding the syntax group names
" a bit more flexible and look for both if the first fails to
" a bit more flexible and look for both if the first fails to
" find a match.
let next_group_regex = '\n' .
\ '\zs'.b:current_syntax.'\w\+\ze'.
\ '\s\+xxx\s\+'
\ '\s\+xxx\s\+'
let index = 0
let index = match(syntax_full, next_group_regex, index)
endif
@ -317,9 +360,9 @@ function! OmniSyntaxList(...)
let get_syn_list = 0
endif
endfor
" This code is no longer needed in version 6.0 since we have
" augmented the syntax list command to only retrieve the syntax
" augmented the syntax list command to only retrieve the syntax
" groups we are interested in.
"
" if get_syn_list == 1
@ -331,7 +374,7 @@ function! OmniSyntaxList(...)
" endif
if get_syn_list == 1
" Pass in the full syntax listing, plus the group name we
" Pass in the full syntax listing, plus the group name we
" are interested in.
let extra_syn_list = s:SyntaxCSyntaxGroupItems(group_name, syntax_full)
let syn_list = syn_list . extra_syn_list . "\n"
@ -385,7 +428,7 @@ function! s:SyntaxCSyntaxGroupItems( group_name, syntax_full )
" \| - 2nd potential match
" \%$ - matches end of the file or string
" \) - end a group
let syntax_group = matchstr(a:syntax_full,
let syntax_group = matchstr(a:syntax_full,
\ "\n".a:group_name.'\s\+xxx\s\+\zs.\{-}\ze\(\n\w\|\%$\)'
\ )
@ -395,26 +438,42 @@ function! s:SyntaxCSyntaxGroupItems( group_name, syntax_full )
" We only want the words for the lines begining with
" containedin, but there could be other items.
" Tried to remove all lines that do not begin with contained
" but this does not work in all cases since you can have
" contained nextgroup=...
" So this will strip off the ending of lines with known
" keywords.
let syn_list = substitute(
let syn_list = substitute(
\ syntax_group, '\<\('.
\ substitute(
\ escape(s:syn_remove_words, '\\/.*$^~[]')
\ , ',', '\\|', 'g'
\ ).
\ '\).\{-}\%($\|'."\n".'\)'
\ , "\n", 'g'
\ , "\n", 'g'
\ )
" Now strip off the newline + blank space + contained
let syn_list = substitute(
\ syn_list, '\%(^\|\n\)\@<=\s*\<\(contained\)'
\ , "", 'g'
" Now strip off the newline + blank space + contained.
" Also include lines with nextgroup=@someName skip_key_words syntax_element
let syn_list = substitute(
\ syn_list, '\%(^\|\n\)\@<=\s*\<\(contained\|nextgroup=\)'
\ , "", 'g'
\ )
" This can leave lines like this
" =@vimMenuList skipwhite onoremenu
" Strip the special option keywords first
" :h :syn-skipwhite*
let syn_list = substitute(
\ syn_list, '\<\(skipwhite\|skipnl\|skipempty\)\>'
\ , "", 'g'
\ )
" Now remove the remainder of the nextgroup=@someName lines
let syn_list = substitute(
\ syn_list, '\%(^\|\n\)\@<=\s*\(@\w\+\)'
\ , "", 'g'
\ )
if b:omni_syntax_use_iskeyword == 0
@ -423,19 +482,74 @@ function! s:SyntaxCSyntaxGroupItems( group_name, syntax_full )
" This will replace non-word characters with spaces.
let syn_list = substitute( syn_list, '[^0-9A-Za-z_ ]', ' ', 'g' )
else
let accept_chars = ','.&iskeyword.','
" Remove all character ranges
" let accept_chars = substitute(accept_chars, ',[^,]\+-[^,]\+,', ',', 'g')
let accept_chars = substitute(accept_chars, ',\@<=[^,]\+-[^,]\+,', '', 'g')
" Remove all numeric specifications
" let accept_chars = substitute(accept_chars, ',\d\{-},', ',', 'g')
let accept_chars = substitute(accept_chars, ',\@<=\d\{-},', '', 'g')
" Remove all commas
let accept_chars = substitute(accept_chars, ',', '', 'g')
" Escape special regex characters
let accept_chars = escape(accept_chars, '\\/.*$^~[]' )
" Remove all characters that are not acceptable
let syn_list = substitute( syn_list, '[^0-9A-Za-z_ '.accept_chars.']', ' ', 'g' )
if g:omni_syntax_use_iskeyword_numeric == 1
" iskeyword can contain value like this
" 38,42,43,45,47-58,60-62,64-90,97-122,_,+,-,*,/,%,<,=,>,:,$,?,!,@-@,94
" Numeric values convert to their ASCII equivalent using the
" nr2char() function.
" & 38
" * 42
" + 43
" - 45
" ^ 94
" Iterate through all numeric specifications and convert those
" to their ascii equivalent ensuring the character is printable.
" If so, add it to the list.
let accepted_chars = ''
for item in split(&iskeyword, ',')
if item =~ '-'
" This is a character range (ie 47-58),
" cycle through each character within the range
let [b:start, b:end] = split(item, '-')
for range_item in range( b:start, b:end )
if range_item <= 127 || g:omni_syntax_use_single_byte == 0
if nr2char(range_item) =~ '\p'
let accepted_chars = accepted_chars . nr2char(range_item)
endif
endif
endfor
elseif item =~ '^\d\+$'
" Only numeric, translate to a character
if item < 127 || g:omni_syntax_use_single_byte == 0
if nr2char(item) =~ '\p'
let accepted_chars = accepted_chars . nr2char(item)
endif
endif
else
if char2nr(item) < 127 || g:omni_syntax_use_single_byte == 0
if item =~ '\p'
let accepted_chars = accepted_chars . item
endif
endif
endif
endfor
" Escape special regex characters
" Looks like the wrong chars are escaped. In a collection,
" :h /[]
" only `]', `\', `-' and `^' are special:
" let accepted_chars = escape(accepted_chars, '\\/.*$^~[]' )
let accepted_chars = escape(accepted_chars, ']\-^' )
" Remove all characters that are not acceptable
let syn_list = substitute( syn_list, '[^A-Za-z'.accepted_chars.']', ' ', 'g' )
else
let accept_chars = ','.&iskeyword.','
" Remove all character ranges
" let accept_chars = substitute(accept_chars, ',[^,]\+-[^,]\+,', ',', 'g')
let accept_chars = substitute(accept_chars, ',\@<=[^,]\+-[^,]\+,', '', 'g')
" Remove all numeric specifications
" let accept_chars = substitute(accept_chars, ',\d\{-},', ',', 'g')
let accept_chars = substitute(accept_chars, ',\@<=\d\{-},', '', 'g')
" Remove all commas
let accept_chars = substitute(accept_chars, ',', '', 'g')
" Escape special regex characters
" Looks like the wrong chars are escaped. In a collection,
" :h /[]
" only `]', `\', `-' and `^' are special:
" let accept_chars = escape(accept_chars, '\\/.*$^~[]' )
let accept_chars = escape(accept_chars, ']\-^' )
" Remove all characters that are not acceptable
let syn_list = substitute( syn_list, '[^0-9A-Za-z_'.accept_chars.']', ' ', 'g' )
endif
endif
if b:omni_syntax_minimum_length > 0
@ -448,3 +562,27 @@ function! s:SyntaxCSyntaxGroupItems( group_name, syntax_full )
return syn_list
endfunction
function! OmniSyntaxShowChars(spec)
let result = []
for item in split(a:spec, ',')
if len(item) > 1
if item == '@-@'
call add(result, char2nr(item))
else
call extend(result, call('range', split(item, '-')))
endif
else
if item == '@' " assume this is [A-Za-z]
for [c1, c2] in [['A', 'Z'], ['a', 'z']]
call extend(result, range(char2nr(c1), char2nr(c2)))
endfor
else
call add(result, char2nr(item))
endif
endif
endfor
return join(map(result, 'nr2char(v:val)'), ', ')
endfunction
let &cpo = s:cpo_save
unlet s:cpo_save

View File

@ -1,13 +1,13 @@
" tar.vim: Handles browsing tarfiles
" AUTOLOAD PORTION
" Date: Aug 09, 2010
" Version: 26
" Date: Jan 17, 2012
" Version: 28
" Maintainer: Charles E Campbell, Jr <NdrOchip@ScampbellPfamily.AbizM-NOSPAM>
" License: Vim License (see vim's :help license)
"
" Contains many ideas from Michael Toren's <tar.vim>
"
" Copyright: Copyright (C) 2005-2009 Charles E. Campbell, Jr. {{{1
" Copyright: Copyright (C) 2005-2011 Charles E. Campbell, Jr. {{{1
" Permission is hereby granted to use and distribute this code,
" with or without modifications, provided that this copyright
" notice is copied with it. Like anything else that's free,
@ -22,7 +22,7 @@
if &cp || exists("g:loaded_tar")
finish
endif
let g:loaded_tar= "v26"
let g:loaded_tar= "v28"
if v:version < 702
echohl WarningMsg
echo "***warning*** this version of tar needs vim 7.2"
@ -47,6 +47,17 @@ endif
if !exists("g:tar_writeoptions")
let g:tar_writeoptions= "uf"
endif
if !exists("g:netrw_cygwin")
if has("win32") || has("win95") || has("win64") || has("win16")
if &shell =~ '\%(\<bash\>\|\<zsh\>\)\%(\.exe\)\=$'
let g:netrw_cygwin= 1
else
let g:netrw_cygwin= 0
endif
else
let g:netrw_cygwin= 0
endif
endif
if !exists("g:tar_copycmd")
if !exists("g:netrw_localcopycmd")
if has("win32") || has("win95") || has("win64") || has("win16")
@ -63,17 +74,6 @@ if !exists("g:tar_copycmd")
endif
let g:tar_copycmd= g:netrw_localcopycmd
endif
if !exists("g:netrw_cygwin")
if has("win32") || has("win95") || has("win64") || has("win16")
if &shell =~ '\%(\<bash\>\|\<zsh\>\)\%(\.exe\)\=$'
let g:netrw_cygwin= 1
else
let g:netrw_cygwin= 0
endif
else
let g:netrw_cygwin= 0
endif
endif
if !exists("g:tar_extractcmd")
let g:tar_extractcmd= "tar -xf"
endif
@ -142,9 +142,9 @@ fun! tar#Browse(tarfile)
call setline(lastline+1,'" tar.vim version '.g:loaded_tar)
call setline(lastline+2,'" Browsing tarfile '.a:tarfile)
call setline(lastline+3,'" Select a file with cursor and press ENTER')
$put =''
0d
$
keepj $put =''
keepj sil! 0d
keepj $
let tarfile= a:tarfile
if has("win32") && executable("cygpath")
@ -154,26 +154,26 @@ fun! tar#Browse(tarfile)
let curlast= line("$")
if tarfile =~# '\.\(gz\|tgz\)$'
" call Decho("1: exe silent r! gzip -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - ")
exe "silent r! gzip -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
exe "sil! r! gzip -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
elseif tarfile =~# '\.lrp'
" call Decho("2: exe silent r! cat -- ".shellescape(tarfile,1)."|gzip -d -c -|".g:tar_cmd." -".g:tar_browseoptions." - ")
exe "silent r! cat -- ".shellescape(tarfile,1)."|gzip -d -c -|".g:tar_cmd." -".g:tar_browseoptions." - "
elseif tarfile =~# '\.bz2$'
exe "sil! r! cat -- ".shellescape(tarfile,1)."|gzip -d -c -|".g:tar_cmd." -".g:tar_browseoptions." - "
elseif tarfile =~# '\.\(bz2\|tbz\|tb2\)$'
" call Decho("3: exe silent r! bzip2 -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - ")
exe "silent r! bzip2 -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
elseif tarfile =~# '\.lzma$'
exe "sil! r! bzip2 -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
elseif tarfile =~# '\.\(lzma\|tlz\)$'
" call Decho("3: exe silent r! lzma -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - ")
exe "silent r! lzma -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
exe "sil! r! lzma -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
elseif tarfile =~# '\.\(xz\|txz\)$'
" call Decho("3: exe silent r! xz --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - ")
exe "silent r! xz --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
exe "sil! r! xz --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
else
if tarfile =~ '^\s*-'
" A file name starting with a dash is taken as an option. Prepend ./ to avoid that.
let tarfile = substitute(tarfile, '-', './-', '')
endif
" call Decho("4: exe silent r! ".g:tar_cmd." -".g:tar_browseoptions." ".shellescape(tarfile,0))
exe "silent r! ".g:tar_cmd." -".g:tar_browseoptions." ".shellescape(tarfile,1)
exe "sil! r! ".g:tar_cmd." -".g:tar_browseoptions." ".shellescape(tarfile,1)
endif
if v:shell_error != 0
redraw!
@ -184,12 +184,12 @@ fun! tar#Browse(tarfile)
if line("$") == curlast || ( line("$") == (curlast + 1) && getline("$") =~ '\c\%(warning\|error\|inappropriate\|unrecognized\)')
redraw!
echohl WarningMsg | echo "***warning*** (tar#Browse) ".a:tarfile." doesn't appear to be a tar file" | echohl None
silent %d
keepj sil! %d
let eikeep= &ei
set ei=BufReadCmd,FileReadCmd
exe "r ".fnameescape(a:tarfile)
let &ei= eikeep
1d
keepj sil! 1d
" call Dret("tar#Browse : a:tarfile<".a:tarfile.">")
return
endif
@ -286,19 +286,19 @@ fun! tar#Read(fname,mode)
endif
if tarfile =~# '\.bz2$'
" call Decho("7: exe silent r! bzip2 -d -c ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp)
exe "silent r! bzip2 -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
exe "sil! r! bzip2 -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
elseif tarfile =~# '\.\(gz\|tgz\)$'
" call Decho("5: exe silent r! gzip -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd.' -'.g:tar_readoptions.' - '.tar_secure.shellescape(fname,1))
exe "silent r! gzip -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
exe "sil! r! gzip -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
elseif tarfile =~# '\.lrp$'
" call Decho("6: exe silent r! cat ".shellescape(tarfile,1)." | gzip -d -c - | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp)
exe "silent r! cat -- ".shellescape(tarfile,1)." | gzip -d -c - | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
exe "sil! r! cat -- ".shellescape(tarfile,1)." | gzip -d -c - | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
elseif tarfile =~# '\.lzma$'
" call Decho("7: exe silent r! lzma -d -c ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp)
exe "silent r! lzma -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
exe "sil! r! lzma -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
elseif tarfile =~# '\.\(xz\|txz\)$'
" call Decho("3: exe silent r! xz --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp)
exe "silent r! xz --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
exe "sil! r! xz --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
else
if tarfile =~ '^\s*-'
" A file name starting with a dash is taken as an option. Prepend ./ to avoid that.
@ -317,7 +317,7 @@ fun! tar#Read(fname,mode)
exe "file tarfile::".fnameescape(fname)
" cleanup
0d
keepj sil! 0d
set nomod
let &report= repkeep

View File

@ -1,6 +1,6 @@
" Vim autoload file for the tohtml plugin.
" Maintainer: Ben Fritz <fritzophrenic@gmail.com>
" Last Change: 2011 Jan 05
" Last Change: 2012 Jun 30
"
" Additional contributors:
"
@ -11,12 +11,12 @@
" this file uses line continuations
let s:cpo_sav = &cpo
set cpo-=C
set cpo&vim
" Automatically find charsets from all encodings supported natively by Vim. With
" the 8bit- and 2byte- prefixes, Vim can actually support more encodings than
" this. Let the user specify these however since they won't be supported on
" every system. TODO: how? g:html_charsets and g:html_encodings?
" every system.
"
" Note, not all of Vim's supported encodings have a charset to use.
"
@ -312,8 +312,9 @@ func! tohtml#Convert2HTML(line1, line2) "{{{
" figure out whether current charset and encoding will work, if not
" default to UTF-8
if !exists('g:html_use_encoding') &&
\ (&l:fileencoding!='' && &l:fileencoding!=s:settings.vim_encoding ||
\ &l:fileencoding=='' && &encoding!=s:settings.vim_encoding)
\ (((&l:fileencoding=='' || (&l:buftype!='' && &l:buftype!=?'help'))
\ && &encoding!=?s:settings.vim_encoding)
\ || &l:fileencoding!='' && &l:fileencoding!=?s:settings.vim_encoding)
echohl WarningMsg
echomsg "TOhtml: mismatched file encodings in Diff buffers, using UTF-8"
echohl None
@ -390,12 +391,25 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
call add(html, '<meta name="plugin-version" content="'.g:loaded_2html_plugin.'"'.tag_close)
call add(html, '<meta name="settings" content="'.
\ join(filter(keys(s:settings),'s:settings[v:val]'),',').
\ ',prevent_copy='.s:settings.prevent_copy.
\ '"'.tag_close)
call add(html, '<meta name="colorscheme" content="'.
\ (exists('g:colors_name')
\ ? g:colors_name
\ : 'none'). '"'.tag_close)
call add(html, '</head>')
let body_line_num = len(html)
call add(html, '<body>')
call add(html, '<table border="1" width="100%">')
if !empty(s:settings.prevent_copy)
call add(html, "<body onload='FixCharWidth();'>")
call add(html, "<!-- hidden divs used by javascript to get the width of a char -->")
call add(html, "<div id='oneCharWidth'>0</div>")
call add(html, "<div id='oneInputWidth'><input size='1' value='0'".tag_close."</div>")
call add(html, "<div id='oneEmWidth' style='width: 1em;'></div>")
else
call add(html, '<body>')
endif
call add(html, "<table border='1' width='100%' id='vimCodeElement'>")
call add(html, '<tr>')
for buf in a:win_list
@ -453,16 +467,19 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
let insert_index = diff_style_start
endif
" Delete those parts that are not needed so
" we can include the rest into the resulting table
1,/^<body/d_
" Delete those parts that are not needed so we can include the rest into the
" resulting table.
1,/^<body.*\%(\n<!--.*-->\_s\+.*id='oneCharWidth'.*\_s\+.*id='oneInputWidth'.*\_s\+.*id='oneEmWidth'\)\?\zs/d_
$
?</body>?,$d_
let temp = getline(1,'$')
" clean out id on the main content container because we already set it on
" the table
let temp[0] = substitute(temp[0], " id='vimCodeElement'", "", "")
" undo deletion of start and end part
" so we can later save the file as valid html
" TODO: restore using grabbed lines if undolevel is 1?
normal 2u
normal! 2u
if s:settings.use_css
call add(html, '<td valign="top"><div>')
elseif s:settings.use_xhtml
@ -519,12 +536,47 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
1
let style_start = search('^</head>')-1
" add required javascript in reverse order so we can just call append again
" and again without adjusting {{{
" insert script closing tag if any javascript is needed
if s:settings.dynamic_folds || !empty(s:settings.prevent_copy)
call append(style_start, [
\ '',
\ s:settings.use_xhtml ? '//]]>' : '-->',
\ "</script>"
\ ])
endif
" insert script which corrects the size of small input elements in
" prevent_copy mode. See 2html.vim for details on why this is needed and how
" it works.
if !empty(s:settings.prevent_copy)
call append(style_start, [
\ '',
\ '/* simulate a "ch" unit by asking the browser how big a zero character is */',
\ 'function FixCharWidth() {',
\ ' /* get the hidden element which gives the width of a single character */',
\ ' var goodWidth = document.getElementById("oneCharWidth").clientWidth;',
\ ' /* get all input elements, we''ll filter on class later */',
\ ' var inputTags = document.getElementsByTagName("input");',
\ ' var ratio = 5;',
\ ' var inputWidth = document.getElementById("oneInputWidth").clientWidth;',
\ ' var emWidth = document.getElementById("oneEmWidth").clientWidth;',
\ ' if (inputWidth > goodWidth) {',
\ ' while (ratio < 100*goodWidth/emWidth && ratio < 100) {',
\ ' ratio += 5;',
\ ' }',
\ ' document.getElementById("vimCodeElement").className = "em"+ratio;',
\ ' }',
\ '}'
\ ])
endif
" Insert javascript to toggle matching folds open and closed in all windows,
" if dynamic folding is active. {{{
" if dynamic folding is active.
if s:settings.dynamic_folds
call append(style_start, [
\ "<script type='text/javascript'>",
\ s:settings.use_xhtml ? '//<![CDATA[' : " <!--",
\ " function toggleFold(objID)",
\ " {",
\ " for (win_num = 1; win_num <= ".len(a:buf_list)."; win_num++)",
@ -541,9 +593,14 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
\ " }",
\ " }",
\ " }",
\ s:settings.use_xhtml ? '//]]>' : " -->",
\ "</script>"
\ ])
endif
" insert script tag if any javascript is needed
if s:settings.dynamic_folds || s:settings.prevent_copy != ""
call append(style_start, [
\ "<script type='text/javascript'>",
\ s:settings.use_xhtml ? '//<![CDATA[' : "<!--"])
endif "}}}
" Insert styles from all the generated html documents and additional styles
@ -603,13 +660,15 @@ func! tohtml#GetUserSettings() "{{{
call tohtml#GetOption(user_settings, 'no_progress', !has("statusline") )
call tohtml#GetOption(user_settings, 'diff_one_file', 0 )
call tohtml#GetOption(user_settings, 'number_lines', &number )
call tohtml#GetOption(user_settings, 'pre_wrap', &wrap )
call tohtml#GetOption(user_settings, 'use_css', 1 )
call tohtml#GetOption(user_settings, 'ignore_conceal', 0 )
call tohtml#GetOption(user_settings, 'ignore_folding', 0 )
call tohtml#GetOption(user_settings, 'dynamic_folds', 0 )
call tohtml#GetOption(user_settings, 'no_foldcolumn', 0 )
call tohtml#GetOption(user_settings, 'no_foldcolumn', user_settings.ignore_folding)
call tohtml#GetOption(user_settings, 'hover_unfold', 0 )
call tohtml#GetOption(user_settings, 'no_pre', 0 )
call tohtml#GetOption(user_settings, 'no_invalid', 0 )
call tohtml#GetOption(user_settings, 'whole_filler', 0 )
call tohtml#GetOption(user_settings, 'use_xhtml', 0 )
" }}}
@ -635,13 +694,21 @@ func! tohtml#GetUserSettings() "{{{
" dynamic folding implies css
if user_settings.dynamic_folds
let user_settings.use_css = 1
else
let user_settings.no_foldcolumn = 1 " won't do anything but for consistency and for the test suite
endif
" if we're not using CSS we cannot use a pre section because <font> tags
" aren't allowed inside a <pre> block
if !user_settings.use_css
let user_settings.no_pre = 1
endif "}}}
endif
" pre_wrap doesn't do anything if not using pre or not using CSS
if user_settings.no_pre || !user_settings.use_css
let user_settings.pre_wrap=0
endif
"}}}
" set up expand_tabs option after all the overrides so we know the
" appropriate defaults {{{
@ -655,6 +722,7 @@ func! tohtml#GetUserSettings() "{{{
endif
" }}}
" textual options
if exists("g:html_use_encoding") "{{{
" user specified the desired MIME charset, figure out proper
" 'fileencoding' from it or warn the user if we cannot
@ -669,9 +737,16 @@ func! tohtml#GetUserSettings() "{{{
endif
else
" Figure out proper MIME charset from 'fileencoding' if possible
if &l:fileencoding != ''
let user_settings.vim_encoding = &l:fileencoding
call tohtml#CharsetFromEncoding(user_settings)
if &l:fileencoding != ''
" If the buffer is not a "normal" type, the 'fileencoding' value may not
" be trusted; since the buffer should not be written the fileencoding is
" not intended to be used.
if &l:buftype=='' || &l:buftype==?'help'
let user_settings.vim_encoding = &l:fileencoding
call tohtml#CharsetFromEncoding(user_settings)
else
let user_settings.encoding = '' " trigger detection using &encoding
endif
endif
" else from 'encoding' if possible
@ -690,6 +765,45 @@ func! tohtml#GetUserSettings() "{{{
endif
endif "}}}
" Default to making nothing uncopyable, because we default to
" not-standards way of doing things, and also because Microsoft Word and
" others paste the <input> elements anyway.
"
" html_prevent_copy only has an effect when using CSS.
"
" All options:
" f - fold column
" n - line numbers (also within fold text)
" t - fold text
" d - diff filler
" c - concealed text (reserved future)
" l - listchars (reserved possible future)
" s - signs (reserved possible future)
"
" Normal text is always selectable.
let user_settings.prevent_copy = ""
if user_settings.use_css
if exists("g:html_prevent_copy")
if user_settings.dynamic_folds && !user_settings.no_foldcolumn && g:html_prevent_copy =~# 'f'
let user_settings.prevent_copy .= 'f'
endif
if user_settings.number_lines && g:html_prevent_copy =~# 'n'
let user_settings.prevent_copy .= 'n'
endif
if &diff && g:html_prevent_copy =~# 'd'
let user_settings.prevent_copy .= 'd'
endif
if !user_settings.ignore_folding && g:html_prevent_copy =~# 't'
let user_settings.prevent_copy .= 't'
endif
else
let user_settings.prevent_copy = ""
endif
endif
if empty(user_settings.prevent_copy)
let user_settings.no_invalid = 0
endif
" TODO: font
return user_settings

View File

@ -1,9 +1,9 @@
" vimball.vim : construct a file containing both paths and files
" Author: Charles E. Campbell, Jr.
" Date: Apr 12, 2010
" Version: 31
" Date: Jan 17, 2012
" Version: 35
" GetLatestVimScripts: 1502 1 :AutoInstall: vimball.vim
" Copyright: (c) 2004-2009 by Charles E. Campbell, Jr.
" Copyright: (c) 2004-2011 by Charles E. Campbell, Jr.
" The VIM LICENSE applies to Vimball.vim, and Vimball.txt
" (see |copyright|) except use "Vimball" instead of "Vim".
" No warranty, express or implied.
@ -14,7 +14,7 @@
if &cp || exists("g:loaded_vimball")
finish
endif
let g:loaded_vimball = "v31"
let g:loaded_vimball = "v35"
if v:version < 702
echohl WarningMsg
echo "***warning*** this version of vimball needs vim 7.2"
@ -67,10 +67,10 @@ endif
" vimball#MkVimball: creates a vimball given a list of paths to files {{{2
" Input:
" line1,line2: a range of lines containing paths to files to be included in the vimball
" writelevel : if true, force a write to filename.vba, even if it exists
" writelevel : if true, force a write to filename.vmb, even if it exists
" (usually accomplished with :MkVimball! ...
" filename : base name of file to be created (ie. filename.vba)
" Output: a filename.vba using vimball format:
" filename : base name of file to be created (ie. filename.vmb)
" Output: a filename.vmb using vimball format:
" path
" filesize
" [file]
@ -80,12 +80,12 @@ endif
fun! vimball#MkVimball(line1,line2,writelevel,...) range
" call Dfunc("MkVimball(line1=".a:line1." line2=".a:line2." writelevel=".a:writelevel." vimballname<".a:1.">) a:0=".a:0)
if a:1 =~ '\.vim$' || a:1 =~ '\.txt$'
let vbname= substitute(a:1,'\.\a\{3}$','.vba','')
let vbname= substitute(a:1,'\.\a\{3}$','.vmb','')
else
let vbname= a:1
endif
if vbname !~ '\.vba$'
let vbname= vbname.'.vba'
if vbname !~ '\.vmb$'
let vbname= vbname.'.vmb'
endif
" call Decho("vbname<".vbname.">")
if !a:writelevel && a:1 =~ '[\/]'
@ -134,7 +134,7 @@ fun! vimball#MkVimball(line1,line2,writelevel,...) range
" create/switch to mkvimball tab
if !exists("vbtabnr")
tabnew
silent! file Vimball
sil! file Vimball
let vbtabnr= tabpagenr()
else
exe "tabn ".vbtabnr
@ -195,8 +195,8 @@ fun! vimball#Vimball(really,...)
" call Dfunc("vimball#Vimball(really=".a:really.") a:0=".a:0)
if v:version < 701 || (v:version == 701 && !exists('*fnameescape'))
echoerr "your vim is missing the fnameescape() function"
" call Dret("vimball#Vimball : needs 7.1 with patch 299")
echoerr "your vim is missing the fnameescape() function (pls upgrade to vim 7.2 or later)"
" call Dret("vimball#Vimball : needs 7.1 with patch 299 or later")
return
endif
@ -214,13 +214,22 @@ fun! vimball#Vimball(really,...)
" set up vimball tab
" call Decho("setting up vimball tab")
tabnew
silent! file Vimball
sil! file Vimball
let vbtabnr= tabpagenr()
let didhelp= ""
" go to vim plugin home
if a:0 > 0
" let user specify the directory where the vimball is to be unpacked.
" If, however, the user did not specify a full path, set the home to be below the current directory
let home= expand(a:1)
if has("win32") || has("win95") || has("win64") || has("win16")
if home !~ '^\a:[/\\]'
let home= getcwd().'/'.a:1
endif
elseif home !~ '^/'
let home= getcwd().'/'.a:1
endif
else
let home= vimball#VimballHome()
endif
@ -254,11 +263,10 @@ fun! vimball#Vimball(really,...)
while 1 < linenr && linenr < line("$")
let fname = substitute(getline(linenr),'\t\[\[\[1$','','')
let fname = substitute(fname,'\\','/','g')
" let fsize = getline(linenr+1)+0
let fsize = substitute(getline(linenr+1),'^\(\d\+\).\{-}$','\1','')+0
let fenc = substitute(getline(linenr+1),'^\d\+\s*\(\S\+\)$','\1','')
let fenc = substitute(getline(linenr+1),'^\d\+\s*\(\S\{-}\)$','\1','')
let filecnt = filecnt + 1
" call Decho("fname<".fname."> fsize=".fsize." filecnt=".filecnt)
" call Decho("fname<".fname."> fsize=".fsize." filecnt=".filecnt. " fenc=".fenc)
if a:really
echomsg "extracted <".fname.">: ".fsize." lines"
@ -283,11 +291,14 @@ fun! vimball#Vimball(really,...)
" call Decho("making directories if they don't exist yet (fname<".fname.">)")
let fnamebuf= substitute(fname,'\\','/','g')
let dirpath = substitute(home,'\\','/','g')
" call Decho("init: fnamebuf<".fnamebuf.">")
" call Decho("init: dirpath <".dirpath.">")
while fnamebuf =~ '/'
let dirname = dirpath."/".substitute(fnamebuf,'/.*$','','')
let dirpath = dirname
let fnamebuf = substitute(fnamebuf,'^.\{-}/\(.*\)$','\1','')
" call Decho("dirname<".dirname.">")
" call Decho("dirpath<".dirpath.">")
if !isdirectory(dirname)
" call Decho("making <".dirname.">")
if exists("g:vimball_mkdir")
@ -306,20 +317,22 @@ fun! vimball#Vimball(really,...)
let linenr = linenr + 2
let lastline = linenr + fsize - 1
" call Decho("exe ".linenr.",".lastline."yank a")
exe "silent ".linenr.",".lastline."yank a"
" no point in handling a zero-length file
if lastline >= linenr
exe "silent ".linenr.",".lastline."yank a"
" copy "a" buffer into tab
" copy "a" buffer into tab
" call Decho('copy "a buffer into tab#'.vbtabnr)
exe "tabn ".vbtabnr
setlocal ma
silent! %d
silent put a
1
silent d
exe "tabn ".vbtabnr
setlocal ma
sil! %d
silent put a
1
sil! d
" write tab to file
if a:really
let fnamepath= home."/".fname
" write tab to file
if a:really
let fnamepath= home."/".fname
" call Decho("exe w! ".fnameescape(fnamepath))
if fenc != ""
exe "silent w! ++enc=".fnameescape(fenc)." ".fnameescape(fnamepath)
@ -328,17 +341,18 @@ fun! vimball#Vimball(really,...)
endif
echo "wrote ".fnameescape(fnamepath)
call s:RecordInVar(home,"call delete('".fnamepath."')")
endif
endif
" return to tab with vimball
" return to tab with vimball
" call Decho("exe tabn ".curtabnr)
exe "tabn ".curtabnr
exe "tabn ".curtabnr
" set up help if its a doc/*.txt file
" set up help if its a doc/*.txt file
" call Decho("didhelp<".didhelp."> fname<".fname.">")
if a:really && didhelp == "" && fname =~ 'doc/[^/]\+\.\(txt\|..x\)$'
let didhelp= substitute(fname,'^\(.*\<doc\)[/\\][^.]*\.\(txt\|..x\)$','\1','')
if a:really && didhelp == "" && fname =~ 'doc/[^/]\+\.\(txt\|..x\)$'
let didhelp= substitute(fname,'^\(.*\<doc\)[/\\][^.]*\.\(txt\|..x\)$','\1','')
" call Decho("didhelp<".didhelp.">")
endif
endif
" update for next file
@ -400,7 +414,9 @@ fun! vimball#RmVimball(...)
let curfile= a:1
" call Decho("case a:0=".a:0.": curfile<".curfile.">")
endif
if curfile =~ '\.vba$'
if curfile =~ '\.vmb$'
let curfile= substitute(curfile,'\.vmb','','')
elseif curfile =~ '\.vba$'
let curfile= substitute(curfile,'\.vba','','')
endif
if a:0 >= 2
@ -418,13 +434,17 @@ fun! vimball#RmVimball(...)
" call Decho(".VimballRecord is readable")
" call Decho("curfile<".curfile.">")
keepalt keepjumps 1split
silent! keepalt keepjumps e .VimballRecord
sil! keepalt keepjumps e .VimballRecord
let keepsrch= @/
" call Decho('search for ^\M'.curfile.'.\m: ')
" call Decho('search for ^\M'.curfile.'.\mvba: ')
" call Decho('search for ^\M'.curfile.'\m[-0-9.]*\.vba: ')
" call Decho('search for ^\M'.curfile.'.\m{vba|vmb}: ')
" call Decho('search for ^\M'.curfile.'\m[-0-9.]*\.{vba|vmb}: ')
if search('^\M'.curfile."\m: ".'cw')
let foundit= 1
elseif search('^\M'.curfile.".\mvmb: ",'cw')
let foundit= 2
elseif search('^\M'.curfile.'\m[-0-9.]*\.vmb: ','cw')
let foundit= 2
elseif search('^\M'.curfile.".\mvba: ",'cw')
let foundit= 1
elseif search('^\M'.curfile.'\m[-0-9.]*\.vba: ','cw')
@ -433,25 +453,29 @@ fun! vimball#RmVimball(...)
let foundit = 0
endif
if foundit
let exestring = substitute(getline("."),'^\M'.curfile.'\m\S\{-}\.vba: ','','')
if foundit == 1
let exestring = substitute(getline("."),'^\M'.curfile.'\m\S\{-}\.vba: ','','')
else
let exestring = substitute(getline("."),'^\M'.curfile.'\m\S\{-}\.vmb: ','','')
endif
let s:VBRstring= substitute(exestring,'call delete(','','g')
let s:VBRstring= substitute(s:VBRstring,"[')]",'','g')
" call Decho("exe ".exestring)
silent! keepalt keepjumps exe exestring
silent! keepalt keepjumps d
sil! keepalt keepjumps exe exestring
sil! keepalt keepjumps d
let exestring= strlen(substitute(exestring,'call delete(.\{-})|\=',"D","g"))
" call Decho("exestring<".exestring.">")
echomsg "removed ".exestring." files"
else
let s:VBRstring= ''
let curfile = substitute(curfile,'\.vba','','')
let curfile = substitute(curfile,'\.vmb','','')
" call Decho("unable to find <".curfile."> in .VimballRecord")
if !exists("s:ok_unablefind")
call vimball#ShowMesg(s:WARNING,"(RmVimball) unable to find <".curfile."> in .VimballRecord")
endif
endif
silent! keepalt keepjumps g/^\s*$/d
silent! keepalt keepjumps wq!
sil! keepalt keepjumps g/^\s*$/d
sil! keepalt keepjumps wq!
let @/= keepsrch
endif
call s:ChgDir(curdir)
@ -557,9 +581,19 @@ endfun
fun! s:ChgDir(newdir)
" call Dfunc("ChgDir(newdir<".a:newdir.">)")
if (has("win32") || has("win95") || has("win64") || has("win16"))
exe 'silent cd '.fnameescape(substitute(a:newdir,'/','\\','g'))
try
exe 'silent cd '.fnameescape(substitute(a:newdir,'/','\\','g'))
catch /^Vim\%((\a\+)\)\=:E/
call mkdir(fnameescape(substitute(a:newdir,'/','\\','g')))
exe 'silent cd '.fnameescape(substitute(a:newdir,'/','\\','g'))
endtry
else
exe 'silent cd '.fnameescape(a:newdir)
try
exe 'silent cd '.fnameescape(a:newdir)
catch /^Vim\%((\a\+)\)\=:E/
call mkdir(fnameescape(a:newdir))
exe 'silent cd '.fnameescape(a:newdir)
endtry
endif
" call Dret("ChgDir : curdir<".getcwd().">")
endfun
@ -599,7 +633,7 @@ fun! s:RecordInFile(home)
let cmd= expand("%:tr").": "
" call Decho("cmd<".cmd.">")
silent! keepalt keepjumps e .VimballRecord
sil! keepalt keepjumps e .VimballRecord
setlocal ma
$
if exists("s:recordfile") && exists("s:recorddir")
@ -616,8 +650,8 @@ fun! s:RecordInFile(home)
" put command into buffer, write .VimballRecord `file
keepalt keepjumps put=cmd
silent! keepalt keepjumps g/^\s*$/d
silent! keepalt keepjumps wq!
sil! keepalt keepjumps g/^\s*$/d
sil! keepalt keepjumps wq!
call s:ChgDir(curdir)
if exists("s:recorddir")
@ -693,10 +727,11 @@ fun! vimball#SaveSettings()
let s:repkeep = &report
let s:vekeep = &ve
let s:ffkeep = &l:ff
let s:swfkeep = &l:swf
if exists("&acd")
setlocal ei=all ve=all noacd nofen noic report=999 nohid bt= ma lz pm= ff=unix
setlocal ei=all ve=all noacd nofen noic report=999 nohid bt= ma lz pm= ff=unix noswf
else
setlocal ei=all ve=all nofen noic report=999 nohid bt= ma lz pm= ff=unix
setlocal ei=all ve=all nofen noic report=999 nohid bt= ma lz pm= ff=unix noswf
endif
" vimballs should be in unix format
setlocal ff=unix
@ -732,6 +767,9 @@ fun! vimball#RestoreSettings()
" call Dret("RestoreSettings")
endfun
let &cpo = s:keepcpo
unlet s:keepcpo
" ---------------------------------------------------------------------
" Modelines: {{{1
" vim: fdm=marker

View File

@ -1,10 +1,10 @@
" zip.vim: Handles browsing zipfiles
" AUTOLOAD PORTION
" Date: Apr 12, 2010
" Version: 23
" Date: Jan 17, 2012
" Version: 25
" Maintainer: Charles E Campbell, Jr <NdrOchip@ScampbellPfamily.AbizM-NOSPAM>
" License: Vim License (see vim's :help license)
" Copyright: Copyright (C) 2005-2008 Charles E. Campbell, Jr. {{{1
" Copyright: Copyright (C) 2005-2012 Charles E. Campbell, Jr. {{{1
" Permission is hereby granted to use and distribute this code,
" with or without modifications, provided that this copyright
" notice is copied with it. Like anything else that's free,
@ -19,7 +19,7 @@
if &cp || exists("g:loaded_zip")
finish
endif
let g:loaded_zip= "v23"
let g:loaded_zip= "v25"
if v:version < 702
echohl WarningMsg
echo "***warning*** this version of zip needs vim 7.2"
@ -103,38 +103,26 @@ fun! zip#Browse(zipfile)
set ft=tar
" give header
let lastline= line("$")
call setline(lastline+1,'" zip.vim version '.g:loaded_zip)
call setline(lastline+2,'" Browsing zipfile '.a:zipfile)
call setline(lastline+3,'" Select a file with cursor and press ENTER')
$put =''
0d
$
call append(0, ['" zip.vim version '.g:loaded_zip,
\ '" Browsing zipfile '.a:zipfile,
\ '" Select a file with cursor and press ENTER'])
keepj $
" call Decho("exe silent r! ".g:zip_unzipcmd." -l -- ".s:Escape(a:zipfile,1))
exe "silent r! ".g:zip_unzipcmd." -l -- ".s:Escape(a:zipfile,1)
exe "keepj sil! r! ".g:zip_unzipcmd." -Z -1 -- ".s:Escape(a:zipfile,1)
if v:shell_error != 0
redraw!
echohl WarningMsg | echo "***warning*** (zip#Browse) ".fnameescape(a:zipfile)." is not a zip file" | echohl None
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
silent %d
keepj sil! %d
let eikeep= &ei
set ei=BufReadCmd,FileReadCmd
exe "r ".fnameescape(a:zipfile)
exe "keepj r ".fnameescape(a:zipfile)
let &ei= eikeep
1d
keepj 1d
" call Dret("zip#Browse")
return
endif
" call Decho("line 6: ".getline(6))
let namecol= stridx(getline(6),'Name') + 1
" call Decho("namecol=".namecol)
4,$g/^\s*----/d
4,$g/^\s*\a/d
$d
if namecol > 0
exe 'silent 4,$s/^.*\%'.namecol.'c//'
endif
setlocal noma nomod ro
noremap <silent> <buffer> <cr> :call <SID>ZipBrowseSelect()<cr>
@ -205,11 +193,12 @@ fun! zip#Read(fname,mode)
" call Decho("zipfile<".zipfile.">")
" call Decho("fname <".fname.">")
" call Decho("exe r! ".g:zip_unzipcmd." -p -- ".s:Escape(zipfile,1)." ".s:Escape(fname,1))
exe "silent r! ".g:zip_unzipcmd." -p -- ".s:Escape(zipfile,1)." ".s:Escape(fname,1)
" call Decho("exe r! ".g:zip_unzipcmd." -p -- ".s:Escape(zipfile,1)." ".s:Escape(fnameescape(fname),1))
exe "keepj sil! r! ".g:zip_unzipcmd." -p -- ".s:Escape(zipfile,1)." ".s:Escape(fnameescape(fname),1)
filetype detect
" cleanup
0d
keepj 0d
set nomod
let &report= repkeep

View File

@ -1,19 +1,26 @@
" Vim compiler file
" Compiler: ms C#
" Maintainer: Joseph H. Yao (hyao@sina.com)
" Last Change: 2004 Mar 27
" Compiler: Microsoft Visual Studio C#
" Maintainer: Zhou YiChao (broken.zhou@gmail.com)
" Previous Maintainer: Joseph H. Yao (hyao@sina.com)
" Last Change: 2012 Apr 30
if exists("current_compiler")
finish
endif
let current_compiler = "cs"
let s:keepcpo= &cpo
set cpo&vim
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
endif
" default errorformat
CompilerSet errorformat&
CompilerSet errorformat+=%f(%l\\,%v):\ %t%*[^:]:\ %m,
\%trror%*[^:]:\ %m,
\%tarning%*[^:]:\ %m
" default make
CompilerSet makeprg=csc\ %
let &cpo = s:keepcpo
unlet s:keepcpo

View File

@ -15,11 +15,11 @@
" Help Page: compiler-decada
"------------------------------------------------------------------------------
if (exists("current_compiler") &&
\ current_compiler == "decada") ||
\ version < 700
if (exists("current_compiler") && current_compiler == "decada") || version < 700
finish
endif
let s:keepcpo= &cpo
set cpo&vim
let current_compiler = "decada"
@ -44,6 +44,9 @@ endif
execute "CompilerSet makeprg=" . escape (g:decada.Make_Command, ' ')
execute "CompilerSet errorformat=" . escape (g:decada.Error_Format, ' ')
let &cpo = s:keepcpo
unlet s:keepcpo
finish " 1}}}
"------------------------------------------------------------------------------

View File

@ -0,0 +1,13 @@
" Vim compiler file
" Compiler: Erlang
" Maintainer: Dmitry Vasiliev <dima at hlabs dot org>
" Last Change: 2012-02-13
if exists("current_compiler")
finish
endif
let current_compiler = "erlang"
CompilerSet makeprg=erlc\ -Wall\ %
CompilerSet errorformat=%f:%l:\ %m

View File

@ -1,7 +1,7 @@
" Compiler: G95
" Maintainer: H Xu <xuhdev@gmail.com>
" Version: 0.1.3
" Last Change: 2011 Apr 01
" Last Change: 2012 Apr 30
" Homepage: http://www.vim.org/scripts/script.php?script_id=3492
" https://bitbucket.org/xuhdev/compiler-g95.vim
" License: Same as Vim
@ -10,6 +10,8 @@ if exists('current_compiler')
finish
endif
let current_compiler = 'g95'
let s:keepcpo= &cpo
set cpo&vim
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
@ -21,3 +23,6 @@ CompilerSet errorformat=
\%-Z%trror:\ %m,
\%-Z%tarning\ (%n):\ %m,
\%-C%.%#
let &cpo = s:keepcpo
unlet s:keepcpo

View File

@ -9,7 +9,7 @@ endif
let current_compiler = "gcc"
let s:cpo_save = &cpo
set cpo-=C
set cpo&vim
CompilerSet errorformat=
\%*[^\"]\"%f\"%*\\D%l:%c:\ %m,

View File

@ -1,7 +1,7 @@
" Compiler: GNU Fortran Compiler
" Maintainer: H Xu <xuhdev@gmail.com>
" Version: 0.1.3
" Last Change: 19 March 2011
" Last Change: 2012 Apr 30
" Homepage: http://www.vim.org/scripts/script.php?script_id=3496
" https://bitbucket.org/xuhdev/compiler-gfortran.vim
" License: Same as Vim
@ -10,6 +10,8 @@ if exists('current_compiler')
finish
endif
let current_compiler = 'gfortran'
let s:keepcpo= &cpo
set cpo&vim
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
@ -20,3 +22,6 @@ CompilerSet errorformat=
\%-Z%trror:\ %m,
\%-Z%tarning:\ %m,
\%-C%.%#
let &cpo = s:keepcpo
unlet s:keepcpo

View File

@ -17,11 +17,11 @@
" Help Page: compiler-gnat
"------------------------------------------------------------------------------
if (exists("current_compiler") &&
\ current_compiler == "gnat") ||
\ version < 700
if (exists("current_compiler")&& current_compiler == "gnat") || version < 700
finish
endif
let s:keepcpo= &cpo
set cpo&vim
let current_compiler = "gnat"
@ -62,6 +62,9 @@ endif
execute "CompilerSet makeprg=" . escape (g:gnat.Get_Command('Make'), ' ')
execute "CompilerSet errorformat=" . escape (g:gnat.Error_Format, ' ')
let &cpo = s:keepcpo
unlet s:keepcpo
finish " 1}}}
"------------------------------------------------------------------------------

View File

@ -2,7 +2,7 @@
" Compiler: HP aCC
" Maintainer: Matthias Ulrich <matthias-ulrich@web.de>
" URL: http://www.subhome.de/vim/hp_acc.vim
" Last Change: 2005 Nov 19
" Last Change: 2012 Apr 30
"
" aCC --version says: "HP ANSI C++ B3910B A.03.13"
" This compiler has been tested on:
@ -19,6 +19,8 @@ if exists("current_compiler")
finish
endif
let current_compiler = "hp_acc"
let s:keepcpo= &cpo
set cpo&vim
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
@ -30,4 +32,7 @@ CompilerSet errorformat=%A%trror\ %n\:\ \"%f\"\\,\ line\ %l\ \#\ %m,
\%Z\ \ \ \ %p^%.%#,
\%-C%.%#
let &cpo = s:keepcpo
unlet s:keepcpo
" vim:ts=8:sw=4:cindent

View File

@ -1,7 +1,7 @@
" Compiler: Intel Fortran Compiler
" Maintainer: H Xu <xuhdev@gmail.com>
" Version: 0.1.1
" Last Change: 19 March 2011
" Last Change: 2012 Apr 30
" Homepage: http://www.vim.org/scripts/script.php?script_id=3497
" https://bitbucket.org/xuhdev/compiler-ifort.vim
" License: Same as Vim
@ -10,6 +10,8 @@ if exists('current_compiler')
finish
endif
let current_compiler = 'ifort'
let s:keepcpo= &cpo
set cpo&vim
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
@ -20,3 +22,6 @@ CompilerSet errorformat=
\%A%f(%l):\ %tarning\ \#%n:\ %m,
\%-Z%p^,
\%-G%.%#
let &cpo = s:keepcpo
unlet s:keepcpo

View File

@ -1,12 +1,14 @@
" Vim compiler file
" Compiler: Intel C++ 7.1
" Maintainer: David Harrison <david_jr@users.sourceforge.net>
" Last Change: 2004 May 16
" Last Change: 2012 Apr 30
if exists("current_compiler")
finish
endif
let current_compiler = "intel"
let s:keepcpo= &cpo
set cpo&vim
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
@ -19,3 +21,6 @@ CompilerSet errorformat=%E%f(%l):\ error:\ %m,
\%-Z\ \ %p^,
\%-G\\s%#,
\%-G%.%#
let &cpo = s:keepcpo
unlet s:keepcpo

View File

@ -1,12 +1,14 @@
" Vim compiler file
" Compiler: SGI IRIX 5.3 cc
" Maintainer: David Harrison <david_jr@users.sourceforge.net>
" Last Change: 2004 Mar 27
" Last Change: 2012 Apr 30
if exists("current_compiler")
finish
endif
let current_compiler = "irix5_c"
let s:keepcpo= &cpo
set cpo&vim
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
@ -19,3 +21,6 @@ CompilerSet errorformat=\%Ecfe:\ Error:\ %f\\,\ line\ %l:\ %m,
\%-Z\ %p^,
\-G\\s%#,
\%-G%.%#
let &cpo = s:keepcpo
unlet s:keepcpo

View File

@ -1,12 +1,14 @@
" Vim compiler file
" Compiler: SGI IRIX 5.3 CC or NCC
" Maintainer: David Harrison <david_jr@users.sourceforge.net>
" Last Change: 2004 Mar 27
" Last Change: 2012 Apr 30
if exists("current_compiler")
finish
endif
let current_compiler = "irix5_cpp"
let s:keepcpo= &cpo
set cpo&vim
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
@ -19,3 +21,6 @@ CompilerSet errorformat=%E\"%f\"\\,\ line\ %l:\ error(%n):\ ,
\%-Z\ \ %p%^,
\%+C\ %\\{10}%.%#,
\%-G%.%#
let &cpo = s:keepcpo
unlet s:keepcpo

View File

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

View File

@ -1,12 +1,14 @@
" Vim compiler file
" Compiler: SGI IRIX 6.5 MIPS C (cc)
" Maintainer: David Harrison <david_jr@users.sourceforge.net>
" Last Change: 2004 Mar 27
" Last Change: 2012 Apr 30
if exists("current_compiler")
finish
endif
let current_compiler = "mips_c"
let s:keepcpo= &cpo
set cpo&vim
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
@ -19,3 +21,6 @@ CompilerSet errorformat=%Ecc\-%n\ %.%#:\ ERROR\ File\ =\ %f\%\\,\ Line\ =\ %l,
\%-Z\ \ %p^,
\%-G\\s%#,
\%-G%.%#
let &cpo = s:keepcpo
unlet s:keepcpo

View File

@ -1,12 +1,14 @@
" Vim compiler file
" Compiler: SGI IRIX 6.5 MIPSPro C (c89)
" Maintainer: David Harrison <david_jr@users.sourceforge.net>
" Last Change: 2004 Mar 27
" Last Change: 2012 Apr 30
if exists("current_compiler")
finish
endif
let current_compiler = "mipspro_c89"
let s:keepcpo= &cpo
set cpo&vim
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
@ -20,3 +22,6 @@ CompilerSet errorformat=%Ecc\-%n\ %.%#:\ ERROR\ File\ =\ %f\%\\,\ Line\ =\ %l,
\%+C\ \ %m,
\%-G\\s%#,
\%-G%.%#
let &cpo = s:keepcpo
unlet s:keepcpo

View File

@ -1,12 +1,14 @@
" Vim compiler file
" Compiler: SGI IRIX 6.5 MIPSPro C++ (CC)
" Maintainer: David Harrison <david_jr@users.sourceforge.net>
" Last Change: 2004 Mar 27
" Last Change: 2012 Apr 30
if exists("current_compiler")
finish
endif
let current_compiler = "mipspro_cpp"
let s:keepcpo= &cpo
set cpo&vim
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
@ -19,3 +21,6 @@ CompilerSet errorformat=%Ecc\-%n\ %.%#:\ ERROR\ File\ =\ %f\%\\,\ Line\ =\ %l,
\%-Z\ \ %p^,
\%-G\\s%#,
\%-G%.%#
let &cpo = s:keepcpo
unlet s:keepcpo

View File

@ -9,7 +9,7 @@ endif
let current_compiler = "rst"
let s:cpo_save = &cpo
set cpo-=C
set cpo&vim
setlocal errorformat=
\%f:%l:\ (%tEBUG/0)\ %m,

View File

@ -1,11 +1,13 @@
" Vim compiler file
" Compiler: TeX
" Maintainer: Artem Chuprina <ran@ran.pp.ru>
" Last Change: 2004 Mar 27
" Last Change: 2012 Apr 30
if exists("current_compiler")
finish
endif
let s:keepcpo= &cpo
set cpo&vim
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
@ -30,9 +32,6 @@ else
let current_compiler = 'make'
endif
let s:cpo_save = &cpo
set cpo-=C
" Value errorformat are taken from vim help, see :help errorformat-LaTeX, with
" addition from Srinath Avadhanula <srinath@fastmail.fm>
CompilerSet errorformat=%E!\ LaTeX\ %trror:\ %m,
@ -64,5 +63,5 @@ CompilerSet errorformat=%E!\ LaTeX\ %trror:\ %m,
\%+Q%*[^()])%r,
\%+Q[%\\d%*[^()])%r
let &cpo = s:cpo_save
unlet s:cpo_save
let &cpo = s:keepcpo
unlet s:keepcpo

View File

@ -1,4 +1,4 @@
*autocmd.txt* For Vim version 7.3. Last change: 2010 Jul 22
*autocmd.txt* For Vim version 7.3. Last change: 2012 Sep 05
VIM REFERENCE MANUAL by Bram Moolenaar
@ -33,7 +33,7 @@ files matching *.c. You can also use autocommands to implement advanced
features, such as editing compressed files (see |gzip-example|). The usual
place to put autocommands is in your .vimrc or .exrc file.
*E203* *E204* *E143*
*E203* *E204* *E143* *E855*
WARNING: Using autocommands is very powerful, and may lead to unexpected side
effects. Be careful not to destroy your text.
- It's a good idea to do some testing on an expendable copy of a file first.
@ -263,8 +263,10 @@ Name triggered by ~
Startup and exit
|VimEnter| after doing all the startup stuff
|GUIEnter| after starting the GUI successfully
|GUIFailed| after starting the GUI failed
|TermResponse| after the terminal response to |t_RV| is received
|QuitPre| when using `:quit`, before deciding whether to quit
|VimLeavePre| before exiting Vim, before writing the viminfo file
|VimLeave| before exiting Vim, after writing the viminfo file
@ -299,6 +301,8 @@ Name triggered by ~
|InsertEnter| starting Insert mode
|InsertChange| when typing <Insert> while in Insert or Replace mode
|InsertLeave| when leaving Insert mode
|InsertCharPre| when a character was typed in Insert mode, before
inserting it
|ColorScheme| after loading a color scheme
@ -310,6 +314,7 @@ Name triggered by ~
|SessionLoadPost| after loading a session file
|MenuPopup| just before showing the popup menu
|CompleteDone| after Insert mode completion is done
|User| to be used in combination with ":doautocmd"
@ -383,6 +388,10 @@ BufRead or BufReadPost When starting to edit a new buffer, after
This does NOT work for ":r file". Not used
when the file doesn't exist. Also used after
successfully recovering a file.
Also triggered for the filetypedetect group
when executing ":filetype detect" and when
writing an unnamed buffer in a way that the
buffer gets a name.
*BufReadCmd*
BufReadCmd Before starting to edit a new buffer. Should
read the file into the buffer. |Cmd-event|
@ -446,6 +455,9 @@ BufWriteCmd Before writing the whole buffer to a file.
'modified' if successful, unless '+' is in
'cpo' and writing to another file |cpo-+|.
The buffer contents should not be changed.
When the command resets 'modified' the undo
information is adjusted to mark older undo
states as 'modified', like |:write| does.
|Cmd-event|
*BufWritePost*
BufWritePost After writing the whole buffer to a file
@ -469,6 +481,11 @@ CmdwinLeave Before leaving the command-line window.
*ColorScheme*
ColorScheme After loading a color scheme. |:colorscheme|
*CompleteDone*
CompleteDone After Insert mode completion is done. Either
when something was completed or abandoning
completion. |ins-completion|
*CursorHold*
CursorHold When the user doesn't press a key for the time
specified with 'updatetime'. Not re-triggered
@ -506,6 +523,7 @@ CursorMoved After the cursor was moved in Normal mode.
not expect or that is slow.
*CursorMovedI*
CursorMovedI After the cursor was moved in Insert mode.
Not triggered when the popup menu is visible.
Otherwise the same as CursorMoved.
*EncodingChanged*
EncodingChanged Fires off after the 'encoding' option has been
@ -657,6 +675,17 @@ InsertChange When typing <Insert> while in Insert or
indicates the new mode.
Be careful not to move the cursor or do
anything else that the user does not expect.
*InsertCharPre*
InsertCharPre When a character is typed in Insert mode,
before inserting the char.
The |v:char| variable indicates the char typed
and can be changed during the event to insert
a different character. When |v:char| is set
to more than one character this text is
inserted literally.
It is not allowed to change the text |textlock|.
The event is not triggered when 'paste' is
set.
*InsertEnter*
InsertEnter Just before starting Insert mode. Also for
Replace mode and Virtual Replace mode. The
@ -682,7 +711,10 @@ MenuPopup Just before showing the popup menu (under the
QuickFixCmdPre Before a quickfix command is run (|:make|,
|:lmake|, |:grep|, |:lgrep|, |:grepadd|,
|:lgrepadd|, |:vimgrep|, |:lvimgrep|,
|:vimgrepadd|, |:lvimgrepadd|, |:cscope|).
|:vimgrepadd|, |:lvimgrepadd|, |:cscope|,
|:cfile|, |:cgetfile|, |:caddfile|, |:lfile|,
|:lgetfile|, |:laddfile|, |:helpgrep|,
|:lhelpgrep|).
The pattern is matched against the command
being run. When |:grep| is used but 'grepprg'
is set to "internal" it still matches "grep".
@ -693,7 +725,16 @@ QuickFixCmdPre Before a quickfix command is run (|:make|,
*QuickFixCmdPost*
QuickFixCmdPost Like QuickFixCmdPre, but after a quickfix
command is run, before jumping to the first
location. See |QuickFixCmdPost-example|.
location. For |:cfile| and |:lfile| commands
it is run after error file is read and before
moving to the first error.
See |QuickFixCmdPost-example|.
*QuitPre*
QuitPre When using `:quit`, before deciding whether it
closes the current window or quits Vim. Can
be used to close any non-essential window if
the current window is the last ordinary
window.
*RemoteReply*
RemoteReply When a reply from a Vim that functions as
server was received |server2client()|. The
@ -786,7 +827,10 @@ TermChanged After the value of 'term' has changed. Useful
TermResponse After the response to |t_RV| is received from
the terminal. The value of |v:termresponse|
can be used to do things depending on the
terminal version.
terminal version. Note that this event may be
triggered halfway executing another event,
especially if file I/O, a shell command or
anything else that takes time is involved.
*User*
User Never executed automatically. To be used for
autocommands that are only executed with
@ -1032,7 +1076,7 @@ Note that the 'eventignore' option applies here too. Events listed in this
option will not cause any commands to be executed.
*:do* *:doau* *:doautocmd* *E217*
:do[autocmd] [group] {event} [fname]
:do[autocmd] [<nomodeline>] [group] {event} [fname]
Apply the autocommands matching [fname] (default:
current file name) for {event} to the current buffer.
You can use this when the current file name does not
@ -1041,8 +1085,8 @@ option will not cause any commands to be executed.
It's possible to use this inside an autocommand too,
so you can base the autocommands for one extension on
another extension. Example: >
:au Bufenter *.cpp so ~/.vimrc_cpp
:au Bufenter *.cpp doau BufEnter x.c
:au BufEnter *.cpp so ~/.vimrc_cpp
:au BufEnter *.cpp doau BufEnter x.c
< Be careful to avoid endless loops. See
|autocmd-nested|.
@ -1051,14 +1095,17 @@ option will not cause any commands to be executed.
argument is included, Vim executes only the matching
autocommands for that group. Note: if you use an
undefined group name, Vim gives you an error message.
*<nomodeline>*
After applying the autocommands the modelines are
processed, so that their settings overrule the
settings from autocommands, like what happens when
editing a file.
editing a file. This is skipped when the <nomodeline>
argument is present. You probably want to use
<nomodeline> for events that are not used when loading
a buffer, such as |User|.
*:doautoa* *:doautoall*
:doautoa[ll] [group] {event} [fname]
:doautoa[ll] [<nomodeline>] [group] {event} [fname]
Like ":doautocmd", but apply the autocommands to each
loaded buffer. Note that [fname] is used to select
the autocommands, not the buffers to which they are

View File

@ -1,4 +1,4 @@
*change.txt* For Vim version 7.3. Last change: 2011 Feb 25
*change.txt* For Vim version 7.3. Last change: 2012 Nov 02
VIM REFERENCE MANUAL by Bram Moolenaar
@ -71,7 +71,7 @@ For inserting text see |insert.txt|.
"D" deletes the highlighted text plus all text until
the end of the line. {not in Vi}
*:d* *:de* *:del* *:delete*
*:d* *:de* *:del* *:delete* *:dl*
:[range]d[elete] [x] Delete [range] lines (default: current line) [into
register x].
@ -80,15 +80,16 @@ For inserting text see |insert.txt|.
(default: current line |cmdline-ranges|) [into
register x].
These commands delete text. You can repeat them with the "." command
(except ":d") and undo them. Use Visual mode to delete blocks of text. See
These commands delete text. You can repeat them with the `.` command
(except `:d`) and undo them. Use Visual mode to delete blocks of text. See
|registers| for an explanation of registers.
An exception for the d{motion} command: If the motion is not linewise, the
start and end of the motion are not in the same line, and there are only
blanks before the start and after the end of the motion, the delete becomes
linewise. This means that the delete also removes the line of blanks that you
might expect to remain.
might expect to remain. Use the |o_v| operator to force the motion to be
characterwise.
Trying to delete an empty region of text (e.g., "d0" in the first column)
is an error when 'cpoptions' includes the 'E' flag.
@ -131,7 +132,7 @@ gJ Join [count] lines, with a minimum of two lines.
See |ex-flags| for [flags].
These commands delete the <EOL> between lines. This has the effect of joining
multiple lines into one line. You can repeat these commands (except ":j") and
multiple lines into one line. You can repeat these commands (except `:j`) and
undo them.
These commands, except "gJ", insert one space in place of the <EOL> unless
@ -259,6 +260,12 @@ r{char} Replace the character under the cursor with {char}.
<CR>. CTRL-V <NL> replaces with a <Nul>.
{Vi: CTRL-V <CR> still replaces with a line break,
cannot replace something with a <CR>}
If {char} is CTRL-E or CTRL-Y the character from the
line below or above is used, just like with |i_CTRL-E|
and |i_CTRL-Y|. This also works with a count, thus
`10r<C-E>` copies 10 characters from the line below.
If you give a [count], Vim replaces [count] characters
with [count] {char}s. When {char} is a <CR> or <NL>,
however, Vim inserts only one <CR>: "5r<CR>" replaces
@ -464,9 +471,9 @@ much as possible to make the indent. You can use ">><<" to replace an indent
made out of spaces with the same indent made out of <Tab>s (and a few spaces
if necessary). If the 'expandtab' option is on, Vim uses only spaces. Then
you can use ">><<" to replace <Tab>s in the indent by spaces (or use
":retab!").
`:retab!`).
To move a line several 'shiftwidth's, use Visual mode or the ":" commands.
To move a line several 'shiftwidth's, use Visual mode or the `:` commands.
For example: >
Vjj4> move three lines 4 indents to the right
:<<< move current line 3 indents to the left
@ -486,7 +493,7 @@ Examples of filters are "sort", which sorts lines alphabetically, and
works like a filter; not all versions do). The 'shell' option specifies the
shell Vim uses to execute the filter command (See also the 'shelltype'
option). You can repeat filter commands with ".". Vim does not recognize a
comment (starting with '"') after the ":!" command.
comment (starting with '"') after the `:!` command.
*!*
!{motion}{filter} Filter {motion} text lines through the external
@ -522,11 +529,11 @@ comment (starting with '"') after the ":!" command.
={motion} Filter {motion} lines through the external program
given with the 'equalprg' option. When the 'equalprg'
option is empty (this is the default), use the
internal formatting function |C-indenting|. But when
'indentexpr' is not empty, it will be used instead
|indent-expression|. When Vim was compiled without
internal formatting then the "indent" program is used
as a last resort.
internal formatting function |C-indenting| and
|'lisp'|. But when 'indentexpr' is not empty, it will
be used instead |indent-expression|. When Vim was
compiled without internal formatting then the "indent"
program is used as a last resort.
*==*
== Filter [count] lines like with ={motion}.
@ -573,34 +580,37 @@ For other systems the tmpnam() library function is used.
Repeat last :substitute with same search pattern and
substitute string, but without the same flags. You
may add [flags], see |:s_flags|.
Note that after ":substitute" the '&' flag can't be
Note that after `:substitute` the '&' flag can't be
used, it's recognized as a pattern separator.
The space between ":substitute" and the 'c', 'g' and
The space between `:substitute` and the 'c', 'g' and
'r' flags isn't required, but in scripts it's a good
idea to keep it to avoid confusion.
:[range]~[&][flags] [count] *:~*
Repeat last substitute with same substitute string
but with last used search pattern. This is like
":&r". See |:s_flags| for [flags].
`:&r`. See |:s_flags| for [flags].
*&*
& Synonym for ":s" (repeat last substitute). Note
& Synonym for `:s` (repeat last substitute). Note
that the flags are not remembered, thus it might
actually work differently. You can use ":&&" to keep
actually work differently. You can use `:&&` to keep
the flags.
*g&*
g& Synonym for ":%s//~/&" (repeat last substitute on all
lines with the same flags).
g& Synonym for `:%s//~/&` (repeat last substitute with
last search pattern on all lines with the same flags).
For exaple, when you first do a substitution with
`:s/pattern/repl/flags` and then `/search` for
something else, `g&` will do `:%s/search/repl/flags`.
Mnemonic: global substitute. {not in Vi}
*:snomagic* *:sno*
:[range]sno[magic] ... Same as ":substitute", but always use 'nomagic'.
:[range]sno[magic] ... Same as `:substitute`, but always use 'nomagic'.
{not in Vi}
*:smagic* *:sm*
:[range]sm[agic] ... Same as ":substitute", but always use 'magic'.
:[range]sm[agic] ... Same as `:substitute`, but always use 'magic'.
{not in Vi}
*:s_flags*
@ -610,7 +620,7 @@ The flags that you can use for the substitute commands:
command. Examples: >
:&&
:s/this/that/&
< Note that ":s" and ":&" don't keep the flags.
< Note that `:s` and `:&` don't keep the flags.
{not in Vi}
[c] Confirm each substitution. Vim highlights the matching string (with
@ -659,6 +669,8 @@ The flags that you can use for the substitute commands:
[n] Report the number of matches, do not actually substitute. The [c]
flag is ignored. The matches are reported as if 'report' is zero.
Useful to |count-items|.
If \= |sub-replace-expression| is used, the expression will be
evaluated in the |sandbox| at every match.
[p] Print the line containing the last substitute.
@ -666,14 +678,14 @@ The flags that you can use for the substitute commands:
[l] Like [p] but print the text like |:list|.
[r] Only useful in combination with ":&" or ":s" without arguments. ":&r"
works the same way as ":~": When the search pattern is empty, use the
[r] Only useful in combination with `:&` or `:s` without arguments. `:&r`
works the same way as `:~`: When the search pattern is empty, use the
previously used search pattern instead of the search pattern from the
last substitute or ":global". If the last command that did a search
was a substitute or ":global", there is no effect. If the last
last substitute or `:global`. If the last command that did a search
was a substitute or `:global`, there is no effect. If the last
command was a search command such as "/", use the pattern from that
command.
For ":s" with an argument this already happens: >
For `:s` with an argument this already happens: >
:s/blue/red/
/green
:s//red/ or :~ or :&r
@ -690,9 +702,9 @@ reason is that the flags can only be found by skipping the pattern, and in
order to skip the pattern the "magicness" must be known. Catch 22!
If the {pattern} for the substitute command is empty, the command uses the
pattern from the last substitute or ":global" command. If there is none, but
pattern from the last substitute or `:global` command. If there is none, but
there is a previous search pattern, that one is used. With the [r] flag, the
command uses the pattern from the last substitute, ":global", or search
command uses the pattern from the last substitute, `:global`, or search
command.
If the {string} is omitted the substitute is done as if it's empty. Thus the
@ -717,11 +729,13 @@ Otherwise it works on whole lines anyway.
*sub-replace-special* *:s\=*
When the {string} starts with "\=" it is evaluated as an expression, see
|sub-replace-expression|. You can use that for any special characters.
|sub-replace-expression|. You can use that for complex replacement or special
characters.
Otherwise these characters in {string} have a special meaning:
*:s%*
When {string} is equal to "%" and '/' is included with the 'cpoptions' option,
then the {string} of the previous substitute command is used. |cpo-/|
then the {string} of the previous substitute command is used, see |cpo-/|
magic nomagic action ~
& \& replaced with the whole matched pattern *s/\&*
@ -756,6 +770,14 @@ magic nomagic action ~
\x where x is any character not mentioned above:
Reserved for future expansion
The special meaning is also used inside the third argument {sub} of
the |substitute()| function with the following exceptions:
- A % inserts a percent literally without regard to 'cpoptions'.
- magic is always set without regard to 'magic'.
- A ~ inserts a tilde literally.
- <CR> and \r inserts a carriage-return (CTRL-M).
- \<CR> does not have a special meaning. it's just one of \x.
Examples: >
:s/a\|b/xxx\0xxx/g modifies "a b" to "xxxaxxx xxxbxxx"
:s/\([abc]\)\([efg]\)/\2\1/g modifies "af fa bg" to "fa fa gb"
@ -787,17 +809,19 @@ either the first or second pattern in parentheses did not match, so either
Substitute with an expression *sub-replace-expression*
*sub-replace-\=*
When the substitute string starts with "\=" the remainder is interpreted as an
expression. This does not work recursively: a substitute() function inside
expression. This does not work recursively: a |substitute()| function inside
the expression cannot use "\=" for the substitute string.
The special meaning for characters as mentioned at |sub-replace-special| does
not apply except for "<CR>", "\<CR>" and "\\". Thus in the result of the
expression you need to use two backslashes to get one, put a backslash before a
<CR> you want to insert, and use a <CR> without a backslash where you want to
break the line.
not apply except for "<CR>". A <NL> character is used as a line break, you
can get one with a double-quote string: "\n". Prepend a backslash to get a
real <NL> character (which will be a NUL in the file).
For convenience a <NL> character is also used as a line break. Prepend a
backslash to get a real <NL> character (which will be a NUL in the file).
The "\=" notation can also be used inside the third argument {sub} of
|substitute()| function. In this case, the special meaning for characters as
mentioned at |sub-replace-special| does not apply at all. Especially, <CR> and
<NL> are interpreted not as a line break but as a carriage-return and a
new-line respectively.
When the result is a |List| then the items are joined with separating line
breaks. Thus each item becomes a line, except that they can contain line
@ -835,7 +859,7 @@ This replaces each 'E' character with a euro sign. Read more in |<Char->|.
4.4 Changing tabs *change-tabs*
*:ret* *:retab*
*:ret* *:retab* *:retab!*
:[range]ret[ab][!] [new_tabstop]
Replace all sequences of white-space containing a
<Tab> with new strings of white-space using the new
@ -854,7 +878,7 @@ This replaces each 'E' character with a euro sign. Read more in |<Char->|.
Careful: This command modifies any <Tab> characters
inside of strings in a C program. Use "\t" to avoid
this (that's a good habit anyway).
":retab!" may also change a sequence of spaces by
`:retab!` may also change a sequence of spaces by
<Tab> characters, which can mess up a printf().
{not in Vi}
Not available when |+ex_extra| feature was disabled at
@ -917,8 +941,10 @@ inside of strings can change! Also see 'softtabstop' option. >
{Visual}["x]Y Yank the highlighted lines [into register x] (for
{Visual} see |Visual-mode|). {not in Vi}
*:y* *:yank*
:[range]y[ank] [x] Yank [range] lines [into register x].
*:y* *:yank* *E850*
:[range]y[ank] [x] Yank [range] lines [into register x]. Yanking to the
"* or "+ registers is possible only when the
|+clipboard| feature is included.
:[range]y[ank] [x] {count}
Yank {count} lines, starting with last line number
@ -962,8 +988,12 @@ inside of strings can change! Also see 'softtabstop' option. >
current line). This always works |linewise|, thus
this command can be used to put a yanked block as new
lines.
The cursor is left on the first non-blank in the last
new line.
If no register is specified, it depends on the 'cb'
option: If 'cb' contains "unnamedplus", paste from the
+ register |quoteplus|. Otherwise, if 'cb' contains
"unnamed", paste from the * register |quotestar|.
Otherwise, paste from the unnamed register
|quote_quote|.
The register can also be '=' followed by an optional
expression. The expression continues until the end of
the command. You need to escape the '|' and '"'
@ -1168,7 +1198,7 @@ nothing is returned. {not in Vi}
9. Last search pattern register "/ *quote_/* *quote/*
Contains the most recent search-pattern. This is used for "n" and 'hlsearch'.
It is writable with ":let", you can change it to have 'hlsearch' highlight
It is writable with `:let`, you can change it to have 'hlsearch' highlight
other matches without actually searching. You can't yank or delete into this
register. The search direction is available in |v:searchforward|.
Note that the valued is restored when returning from a function
@ -1176,12 +1206,12 @@ Note that the valued is restored when returning from a function
{not in Vi}
*@/*
You can write to a register with a ":let" command |:let-@|. Example: >
You can write to a register with a `:let` command |:let-@|. Example: >
:let @/ = "the"
If you use a put command without specifying a register, Vim uses the register
that was last filled (this is also the contents of the unnamed register). If
you are confused, use the ":dis" command to find out what Vim will put (this
you are confused, use the `:dis` command to find out what Vim will put (this
command displays all named and numbered registers; the unnamed register is
labelled '"').
@ -1388,16 +1418,19 @@ before typing anything else on the new line. This will replace the
middle-comment leader with the end-comment leader and apply any specified
alignment, leaving just " */". There is no need to hit BackSpace first.
When there is a match with a middle part, but there also is a maching end part
which is longer, the end part is used. This makes a C style comment work
without requiring the middle part to end with a space.
Here is an example of alignment flags at work to make a comment stand out
(kind of looks like a 1 too). Consider comment string >
sr:/***,m:**,ex2:******/
/***
**<--right aligned from "r" flag
**
offset 2 spaces from the "2" flag--->**
******/
(kind of looks like a 1 too). Consider comment string: >
:set comments=sr:/***,m:**,ex-2:******/
<
/*** ~
**<--right aligned from "r" flag ~
** ~
offset 2 spaces for the "-2" flag--->** ~
******/ ~
In this case, the first comment was typed, then return was pressed 4 times,
then "/" was pressed to end the comment.
@ -1415,8 +1448,8 @@ Reindenting using a different method like |gq| or |=| will not consult
alignment flags either. The same behaviour can be defined in those other
formatting options. One consideration is that 'cindent' has additional options
for context based indenting of comments but cannot replicate many three piece
indent alignments. However, 'indentexpr' is has the ability to work better
with three piece comments.
indent alignments. However, 'indentexpr' has the ability to work better with
three piece comments.
Other examples: >
"b:*" Includes lines starting with "*", but not if the "*" is
@ -1474,6 +1507,7 @@ n When formatting text, recognize numbered lists. This actually uses
first line of a paragraph
second line of the same paragraph
third line.
< This also works inside comments, ignoring the comment leader.
v Vi-compatible auto-wrapping in insert mode: Only break a line at a
blank that you have entered during the current insert command. (Note:
this is not 100% Vi compatible. Vi has some "unexpected features" or
@ -1494,6 +1528,12 @@ B When joining lines, don't insert a space between two multi-byte
characters. Overruled by the 'M' flag.
1 Don't break a line after a one-letter word. It's broken before it
instead (if possible).
j Where it makes sense, remove a comment leader when joining lines. For
example, joining:
int i; // the index ~
// in the list ~
Becomes:
int i; // the index in the list ~
With 't' and 'c' you can specify when Vim performs auto-wrapping:
@ -1537,7 +1577,7 @@ Some examples:
:set fo=tcrq
<
Automatic formatting *auto-format*
Automatic formatting *auto-format* *autoformat*
When the 'a' flag is present in 'formatoptions' text is formatted
automatically when inserting text or deleting text. This works nice for
@ -1646,7 +1686,7 @@ found here: |sort()|.
last search pattern is used. This allows trying out
a pattern first.
Note that using ":sort" with ":global" doesn't sort the matching lines, it's
Note that using `:sort` with `:global` doesn't sort the matching lines, it's
quite useless.
The details about sorting depend on the library function used. There is no

View File

@ -1,4 +1,4 @@
*cmdline.txt* For Vim version 7.3. Last change: 2011 Mar 27
*cmdline.txt* For Vim version 7.3. Last change: 2013 Jan 17
VIM REFERENCE MANUAL by Bram Moolenaar
@ -217,7 +217,7 @@ CTRL-\ e {expr} *c_CTRL-\_e*
:return cmd
:endfunc
< This doesn't work recursively, thus not when already editing
an expression.
an expression. But it is possible to use in a mapping.
*c_CTRL-Y*
CTRL-Y When there is a modeless selection, copy the selection into
@ -330,12 +330,12 @@ terminals)
:his[tory] [{name}] [{first}][, [{last}]]
List the contents of history {name} which can be:
c[md] or : command-line history
s[earch] or / search string history
e[xpr] or = expression register history
i[nput] or @ input line history
d[ebug] or > debug command history
a[ll] all of the above
c[md] or : command-line history
s[earch] or / or ? search string history
e[xpr] or = expression register history
i[nput] or @ input line history
d[ebug] or > debug command history
a[ll] all of the above
{not in Vi}
If the numbers {first} and/or {last} are given, the respective
@ -426,6 +426,8 @@ a previous version <Esc> was used). In the pattern standard wildcards '*' and
'?' are accepted when matching file names. '*' matches any string, '?'
matches exactly one character.
The 'wildignorecase' option can be set to ignore case in filenames.
If you like tcsh's autolist completion, you can use this mapping:
:cnoremap X <C-L><C-D>
(Where X is the command key to use, <C-L> is CTRL-L and <C-D> is CTRL-D)
@ -712,10 +714,15 @@ three lines: >
Visual Mode and Range *v_:*
{Visual}: Starts a command-line with the Visual selected lines as a
range. The code ":'<,'>" is used for this range, which makes
range. The code `:'<,'>` is used for this range, which makes
it possible to select a similar line from the command-line
history for repeating a command on different Visually selected
lines.
When Visual mode was already ended, a short way to use the
Visual area for a range is `:*`. This requires that "*" does
not appear in 'cpo', see |cpo-star|. Otherwise you will have
to type `:'<,'>`
==============================================================================
5. Ex command-line flags *ex-flags*
@ -824,10 +831,11 @@ These modifiers can be given, in this order:
the home directory. If the name is a directory a path
separator is added at the end. For a file name that does not
exist and does not have an absolute path the result is
unpredictable.
unpredictable. On MS-Windows an 8.3 filename is expanded to
the long name.
:8 Converts the path to 8.3 short format (currently only on
win32). Will act on as much of a path that is an existing
path.
MS-Windows). Will act on as much of a path that is an
existing path.
:~ Reduce file name to be relative to the home directory, if
possible. File name is unmodified if it is not below the home
directory.

View File

@ -1,4 +1,4 @@
*debug.txt* For Vim version 7.3. Last change: 2010 Dec 22
*debug.txt* For Vim version 7.3. Last change: 2012 Feb 11
VIM REFERENCE MANUAL by Bram Moolenaar
@ -15,7 +15,7 @@ For debugging Vim scripts, functions, etc. see |debug-scripts|
==============================================================================
1. Location of a crash, using gcc and gdb *debug-gcc*
1. Location of a crash, using gcc and gdb *debug-gcc* *gdb*
When Vim crashes in one of the test files, and you are using gcc for
compilation, here is what you can do to find out exactly where Vim crashes.

View File

@ -1,4 +1,4 @@
*develop.txt* For Vim version 7.3. Last change: 2008 Dec 17
*develop.txt* For Vim version 7.3. Last change: 2012 Jan 10
VIM REFERENCE MANUAL by Bram Moolenaar
@ -232,6 +232,17 @@ time shadows global declaration
new C++ reserved keyword
try Borland C++ doesn't like it to be used as a variable.
clear Mac curses.h
echo Mac curses.h
instr Mac curses.h
meta Mac curses.h
newwin Mac curses.h
nl Mac curses.h
overwrite Mac curses.h
refresh Mac curses.h
scroll Mac curses.h
typeahead Mac curses.h
basename() GNU string function
dirname() GNU string function
get_env_value() Linux system function

View File

@ -1,4 +1,4 @@
*diff.txt* For Vim version 7.3. Last change: 2010 Dec 08
*diff.txt* For Vim version 7.3. Last change: 2012 Sep 05
VIM REFERENCE MANUAL by Bram Moolenaar
@ -86,16 +86,16 @@ diff mode. You could use a construct like this: >
While already in Vim you can start diff mode in three ways.
*E98*
:diffsplit {filename} *:diffs* *:diffsplit*
:diffs[plit] {filename} *:diffs* *:diffsplit*
Open a new window on the file {filename}. The options are set
as for "vimdiff" for the current and the newly opened window.
Also see 'diffexpr'.
*:difft* *:diffthis*
:diffthis Make the current window part of the diff windows. This sets
:difft[his] Make the current window part of the diff windows. This sets
the options like for "vimdiff".
:diffpatch {patchfile} *E816* *:diffp* *:diffpatch*
:diffp[atch] {patchfile} *E816* *:diffp* *:diffpatch*
Use the current buffer, patch it with the diff found in
{patchfile} and open a buffer on the result. The options are
set as for "vimdiff".
@ -123,9 +123,9 @@ Since the option values are remembered with the buffer, you can edit another
file for a moment and come back to the same file and be in diff mode again.
*:diffo* *:diffoff*
:diffoff Switch off diff mode for the current window.
:diffo[ff] Switch off diff mode for the current window.
:diffoff! Switch off diff mode for the current window and in all windows
:diffo[ff]! Switch off diff mode for the current window and in all windows
in the current tab page where 'diff' is set.
The ":diffoff" command resets the relevant options to their default value.
@ -167,8 +167,8 @@ in diff mode in one window and "normal" in another window. It is also
possible to view the changes you have made to a buffer since the file was
loaded. Since Vim doesn't allow having two buffers for the same file, you
need another buffer. This command is useful: >
command DiffOrig vert new | set bt=nofile | r # | 0d_ | diffthis
\ | wincmd p | diffthis
command DiffOrig vert new | set bt=nofile | r ++edit # | 0d_
\ | diffthis | wincmd p | diffthis
(this is in |vimrc_example.vim|). Use ":DiffOrig" to see the differences
between the current buffer and the file it was loaded from.
@ -178,7 +178,7 @@ buffer. If you don't want a buffer to remain used for the diff do ":set
nodiff" before hiding it.
*:diffu* *:diffupdate*
:diffu[pdate] Update the diff highlighting and folds.
:diffu[pdate][!] Update the diff highlighting and folds.
Vim attempts to keep the differences updated when you make changes to the
text. This mostly takes care of inserted and deleted lines. Changes within a
@ -187,6 +187,9 @@ To force the differences to be updated use: >
:diffupdate
If the ! is included Vim will check if the file was changed externally and
needs to be reloaded. It will prompt for each changed file, like `:checktime`
was used.
Vim will show filler lines for lines that are missing in one window but are
present in another. These lines were inserted in another file or deleted in
@ -217,7 +220,7 @@ The diffs are highlighted with these groups:
that parts in the middle that are still the
same are highlighted anyway. Only "iwhite" of
'diffopt' is used here.
|hl-DiffDelete| DiffDelete Deleted lines. Also called filler lines,
|hl-DiffDelete| DiffDelete Deleted lines. Also called filler lines,
because they don't really exist in this
buffer.
@ -330,7 +333,7 @@ diff. This example explains the format that Vim expects: >
The "1a2" item appends the line "bbb".
The "4d4" item deletes the line "111".
The '7c7" item replaces the line "GGG" with "ggg".
The "7c7" item replaces the line "GGG" with "ggg".
When 'diffexpr' is not empty, Vim evaluates it to obtain a diff file in the
format mentioned. These variables are set to the file names used:

View File

@ -1,4 +1,4 @@
*editing.txt* For Vim version 7.3. Last change: 2011 Feb 26
*editing.txt* For Vim version 7.3. Last change: 2012 Aug 08
VIM REFERENCE MANUAL by Bram Moolenaar
@ -377,8 +377,9 @@ command that accepts more than one file name (like ":next file1 file2")
embedded spaces must be escaped with a backslash.
*wildcard* *wildcards*
Wildcards in {file} are expanded. Which wildcards are supported depends on
the system. These are the common ones:
Wildcards in {file} are expanded, but as with file completion, 'wildignore'
and 'suffixes' apply. Which wildcards are supported depends on the system.
These are the common ones:
? matches one character
* matches anything, including nothing
** matches anything, including nothing, recurses into directories
@ -392,7 +393,7 @@ is to use "path\[[]abc]". Then the file "path[abc]" literally.
*starstar-wildcard*
Expanding "**" is possible on Unix, Win32, Mac OS/X and a few other systems.
This allows searching a directory tree. This goes up to 100 directories deep.
Note there are some commands where this works slightly different, see
Note there are some commands where this works slightly differently, see
|file-searching|.
Example: >
:n **/*.txt
@ -422,9 +423,11 @@ You can have the backticks expanded as a Vim expression, instead of an
external command, by using the syntax `={expr}` e.g.: >
:e `=tempname()`
The expression can contain just about anything, thus this can also be used to
avoid the special meaning of '"', '|', '%' and '#'. Names are to be separated
with line breaks. When the result is a |List| then each item is used as a
name. Line breaks also separate names.
avoid the special meaning of '"', '|', '%' and '#'. However, 'wildignore'
does apply like to other wildcars.
If the expression returns a string then names are to be separated with line
breaks. When the result is a |List| then each item is used as a name. Line
breaks also separate names.
*++opt* *[++opt]*
The [++opt] argument can be used to force the value of 'fileformat',
@ -1066,6 +1069,7 @@ The names can be in upper- or lowercase.
If there are other tab pages and quitting the last
window in the current tab page the current tab page is
closed |tab-page|.
Triggers the |QuitPre| autocommand event.
:conf[irm] q[uit] Quit, but give prompt when changes have been made, or
the last file in the argument list has not been
@ -1159,8 +1163,10 @@ MULTIPLE WINDOWS AND BUFFERS *window-exit*
*:confirm* *:conf*
:conf[irm] {command} Execute {command}, and use a dialog when an
operation has to be confirmed. Can be used on the
":q", ":qa" and ":w" commands (the latter to over-ride
a read-only setting).
|:q|, |:qa| and |:w| commands (the latter to override
a read-only setting), and any other command that can
fail in such a way, such as |:only|, |:buffer|,
|:bdelete|, etc.
Examples: >
:confirm w foo
@ -1213,13 +1219,13 @@ For versions of Vim where browsing is not supported, the command is executed
unmodified.
*browsefilter*
For MS Windows, you can modify the filters that are used in the browse dialog.
By setting the g:browsefilter or b:browsefilter variables, you can change the
filters globally or locally to the buffer. The variable is set to a string in
the format "{filter label}\t{pattern};{pattern}\n" where {filter label} is the
text that appears in the "Files of Type" comboBox, and {pattern} is the
pattern which filters the filenames. Several patterns can be given, separated
by ';'.
For MS Windows and GTK, you can modify the filters that are used in the browse
dialog. By setting the g:browsefilter or b:browsefilter variables, you can
change the filters globally or locally to the buffer. The variable is set to
a string in the format "{filter label}\t{pattern};{pattern}\n" where {filter
label} is the text that appears in the "Files of Type" comboBox, and {pattern}
is the pattern which filters the filenames. Several patterns can be given,
separated by ';'.
For Motif the same format is used, but only the very first pattern is actually
used (Motif only offers one pattern, but you can edit it).
@ -1227,7 +1233,7 @@ used (Motif only offers one pattern, but you can edit it).
For example, to have only Vim files in the dialog, you could use the following
command: >
let g:browsefilter="Vim Scripts\t*.vim\nVim Startup Files\t*vimrc\n"
let g:browsefilter = "Vim Scripts\t*.vim\nVim Startup Files\t*vimrc\n"
You can override the filter setting on a per-buffer basis by setting the
b:browsefilter variable. You would most likely set b:browsefilter in a
@ -1237,6 +1243,13 @@ difficult to start editing a file of a different type. To overcome this, you
may want to add "All Files\t*.*\n" as the final filter, so that the user can
still access any desired file.
To avoid setting browsefilter when Vim does not actually support it, you can
use has("browsefilter"): >
if has("browsefilter")
let g:browsefilter = "whatever"
endif
==============================================================================
7. The current directory *current-directory*
@ -1639,6 +1652,6 @@ There are three different types of searching:
Note that completion for ":find", ":sfind", and ":tabfind" commands do not
currently work with 'path' items that contain a url or use the double star
(/usr/**2) or upward search (;) notations. >
with depth limiter (/usr/**2) or upward search (;) notations.
vim:tw=78:ts=8:ft=help:norl:

View File

@ -1,4 +1,4 @@
*eval.txt* For Vim version 7.3. Last change: 2011 Mar 18
*eval.txt* For Vim version 7.3. Last change: 2013 Jan 23
VIM REFERENCE MANUAL by Bram Moolenaar
@ -39,7 +39,7 @@ done, the features in this document are not available. See |+eval| and
*E712*
There are six types of variables:
Number A 32 bit signed number. |expr-number| *Number*
Number A 32 or 64 bit signed number. |expr-number| *Number*
Examples: -123 0x10 0177
Float A floating point number. |floating-point-format| *Float*
@ -91,8 +91,8 @@ For boolean operators Numbers are used. Zero is FALSE, non-zero is TRUE.
Note that in the command >
:if "foo"
"foo" is converted to 0, which means FALSE. To test for a non-empty string,
use strlen(): >
:if strlen("foo")
use empty(): >
:if !empty("foo")
< *E745* *E728* *E703* *E729* *E730* *E731*
List, Dictionary and Funcref types are not automatically converted.
@ -615,7 +615,6 @@ Expression syntax summary, from least to most significant:
- expr7 unary minus
+ expr7 unary plus
|expr8| expr8[expr1] byte of a String or item of a |List|
expr8[expr1 : expr1] substring of a String or sublist of a |List|
expr8.name entry in a |Dictionary|
@ -721,7 +720,8 @@ if it evaluates to true.
*expr-<#* *expr-<=#* *expr-=~#* *expr-!~#*
*expr-==?* *expr-!=?* *expr->?* *expr->=?*
*expr-<?* *expr-<=?* *expr-=~?* *expr-!~?*
*expr-is*
*expr-is* *expr-isnot* *expr-is#* *expr-isnot#*
*expr-is?* *expr-isnot?*
use 'ignorecase' match case ignore case ~
equal == ==# ==?
not equal != !=# !=?
@ -731,8 +731,8 @@ smaller than < <# <?
smaller than or equal <= <=# <=?
regexp matches =~ =~# =~?
regexp doesn't match !~ !~# !~?
same instance is
different instance isnot
same instance is is# is?
different instance isnot isnot# isnot?
Examples:
"abc" ==# "Abc" evaluates to 0
@ -753,12 +753,14 @@ recursively. Ignoring case means case is ignored when comparing item values.
A |Funcref| can only be compared with a |Funcref| and only "equal" and "not
equal" can be used. Case is never ignored.
When using "is" or "isnot" with a |List| this checks if the expressions are
referring to the same |List| instance. A copy of a |List| is different from
the original |List|. When using "is" without a |List| it is equivalent to
using "equal", using "isnot" equivalent to using "not equal". Except that a
different type means the values are different. "4 == '4'" is true, "4 is '4'"
is false.
When using "is" or "isnot" with a |List| or a |Dictionary| this checks if the
expressions are referring to the same |List| or |Dictionary| instance. A copy
of a |List| is different from the original |List|. When using "is" without
a |List| or a |Dictionary| it is equivalent to using "equal", using "isnot"
equivalent to using "not equal". Except that a different type means the
values are different: "4 == '4'" is true, "4 is '4'" is false and "0 is []" is
false and not an error. "is#"/"isnot#" and "is?"/"isnot?" can be used to match
and ignore case.
When comparing a String with a Number, the String is converted to a Number,
and the comparison is done on Numbers. This means that "0 == 'x'" is TRUE,
@ -798,11 +800,12 @@ expr6 . expr6 .. String concatenation *expr-.*
For |Lists| only "+" is possible and then both expr6 must be a list. The
result is a new list with the two lists Concatenated.
expr7 * expr7 .. number multiplication *expr-star*
expr7 / expr7 .. number division *expr-/*
expr7 % expr7 .. number modulo *expr-%*
expr7 * expr7 .. Number multiplication *expr-star*
expr7 / expr7 .. Number division *expr-/*
expr7 % expr7 .. Number modulo *expr-%*
For all, except ".", Strings are converted to Numbers.
For bitwise operators see |and()|, |or()| and |xor()|.
Note the difference between "+" and ".":
"123" + "456" = 579
@ -942,7 +945,8 @@ When expr8 is a |Funcref| type variable, invoke the function it refers to.
*expr9*
number
------
number number constant *expr-number*
number number constant *expr-number*
*hex-number* *octal-number*
Decimal, Hexadecimal (starting with 0x or 0X), or Octal (starting with 0).
@ -1293,6 +1297,7 @@ v:beval_winnr The number of the window, over which the mouse pointer is. Only
*v:char* *char-variable*
v:char Argument for evaluating 'formatexpr' and used for the typed
character when using <expr> in an abbreviation |:map-<expr>|.
It is also used by the |InsertCharPre| event.
*v:charconvert_from* *charconvert_from-variable*
v:charconvert_from
@ -1539,13 +1544,18 @@ v:profiling Normally zero. Set to one after using ":profile start".
*v:progname* *progname-variable*
v:progname Contains the name (with path removed) with which Vim was
invoked. Allows you to do special initialisations for "view",
"evim" etc., or any other name you might symlink to Vim.
invoked. Allows you to do special initialisations for |view|,
|evim| etc., or any other name you might symlink to Vim.
Read-only.
*v:register* *register-variable*
v:register The name of the register in effect for the current normal mode
command. If none is supplied it is the default register.
command (regardless of whether that command actually used a
register). Or for the currently executing normal mode mapping
(use this in custom commands that take a register).
If none is supplied it is the default register '"', unless
'clipboard' contains "unnamed" or "unnamedplus", then it is
'*' or '+'.
Also see |getreg()| and |setreg()|
*v:scrollstart* *scrollstart-variable*
@ -1681,6 +1691,7 @@ USAGE RESULT DESCRIPTION ~
abs( {expr}) Float or Number absolute value of {expr}
acos( {expr}) Float arc cosine of {expr}
add( {list}, {item}) List append {item} to |List| {list}
and( {expr}, {expr}) Number bitwise AND
append( {lnum}, {string}) Number append {string} below line {lnum}
append( {lnum}, {list}) Number append lines {list} below line {lnum}
argc() Number number of files in the argument list
@ -1705,7 +1716,7 @@ call( {func}, {arglist} [, {dict}])
any call {func} with arguments {arglist}
ceil( {expr}) Float round {expr} up
changenr() Number current change number
char2nr( {expr}) Number ASCII value of first char in {expr}
char2nr( {expr}[, {utf8}]) Number ASCII/UTF8 value of first char in {expr}
cindent( {lnum}) Number C indent for line {lnum}
clearmatches() none clear all matches
col( {expr}) Number column nr of cursor or mark
@ -1738,7 +1749,8 @@ exists( {expr}) Number TRUE if {expr} exists
extend( {expr1}, {expr2} [, {expr3}])
List/Dict insert items of {expr2} into {expr1}
exp( {expr}) Float exponential of {expr}
expand( {expr} [, {flag}]) String expand special keywords in {expr}
expand( {expr} [, {nosuf} [, {list}]])
any expand special keywords in {expr}
feedkeys( {string} [, {mode}]) Number add key sequence to typeahead buffer
filereadable( {file}) Number TRUE if {file} is a readable file
filewritable( {file}) Number TRUE if {file} is a writable file
@ -1760,7 +1772,7 @@ foldtext( ) String line displayed for closed fold
foldtextresult( {lnum}) String text for closed fold at {lnum}
foreground( ) Number bring the Vim window to the foreground
function( {name}) Funcref reference to function {name}
garbagecollect( [at_exit]) none free memory, breaking cyclic references
garbagecollect( [{atexit}]) none free memory, breaking cyclic references
get( {list}, {idx} [, {def}]) any get item {idx} from {list} or {def}
get( {dict}, {key} [, {def}]) any get item {key} from {dict} or {def}
getbufline( {expr}, {lnum} [, {end}])
@ -1792,7 +1804,8 @@ gettabwinvar( {tabnr}, {winnr}, {name})
getwinposx() Number X coord in pixels of GUI Vim window
getwinposy() Number Y coord in pixels of GUI Vim window
getwinvar( {nr}, {varname}) any variable {varname} in window {nr}
glob( {expr} [, {flag}]) String expand file wildcards in {expr}
glob( {expr} [, {nosuf} [, {list}]])
any expand file wildcards in {expr}
globpath( {path}, {expr} [, {flag}])
String do glob({expr}) for all dirs in {path}
has( {feature}) Number TRUE if feature {feature} supported
@ -1819,6 +1832,7 @@ inputrestore() Number restore typeahead
inputsave() Number save and clear typeahead
inputsecret( {prompt} [, {text}]) String like input() but hiding the text
insert( {list}, {item} [, {idx}]) List insert {item} in {list} [before {idx}]
invert( {expr}) Number bitwise invert
isdirectory( {directory}) Number TRUE if {directory} is a directory
islocked( {expr}) Number TRUE if {expr} is locked
items( {dict}) List key-value pairs in {dict}
@ -1833,9 +1847,11 @@ lispindent( {lnum}) Number Lisp indent for line {lnum}
localtime() Number current time
log( {expr}) Float natural logarithm (base e) of {expr}
log10( {expr}) Float logarithm of Float {expr} to base 10
luaeval( {expr}[, {expr}]) any evaluate |Lua| expression
map( {expr}, {string}) List/Dict change each item in {expr} to {expr}
maparg( {name}[, {mode} [, {abbr} [, {dict}]]])
String rhs of mapping {name} in mode {mode}
String or Dict
rhs of mapping {name} in mode {mode}
mapcheck( {name}[, {mode} [, {abbr}]])
String check for mappings matching {name}
match( {expr}, {pat}[, {start}[, {count}]])
@ -1857,12 +1873,15 @@ mkdir( {name} [, {path} [, {prot}]])
mode( [expr]) String current editing mode
mzeval( {expr}) any evaluate |MzScheme| expression
nextnonblank( {lnum}) Number line nr of non-blank line >= {lnum}
nr2char( {expr}) String single char with ASCII value {expr}
nr2char( {expr}[, {utf8}]) String single char with ASCII/UTF8 value {expr}
or( {expr}, {expr}) Number bitwise OR
pathshorten( {expr}) String shorten directory names in a path
pow( {x}, {y}) Float {x} to the power of {y}
prevnonblank( {lnum}) Number line nr of non-blank line <= {lnum}
printf( {fmt}, {expr1}...) String format text
pumvisible() Number whether popup menu is visible
pyeval( {expr}) any evaluate |Python| expression
py3eval( {expr}) any evaluate |python3| expression
range( {expr} [, {max} [, {stride}]])
List items from {expr} to {max}
readfile( {fname} [, {binary} [, {max}]])
@ -1884,6 +1903,8 @@ repeat( {expr}, {count}) String repeat {expr} {count} times
resolve( {filename}) String get filename a shortcut points to
reverse( {list}) List reverse {list} in-place
round( {expr}) Float round off {expr}
screencol() Number current cursor column
screenrow() Number current cursor row
search( {pattern} [, {flags} [, {stopline} [, {timeout}]]])
Number search for {pattern}
searchdecl( {name} [, {global} [, {thisblock}]])
@ -1913,10 +1934,12 @@ setwinvar( {nr}, {varname}, {val}) set {varname} in window {nr} to {val}
shellescape( {string} [, {special}])
String escape {string} for use as shell
command argument
shiftwidth() Number effective value of 'shiftwidth'
simplify( {filename}) String simplify filename as much as possible
sin( {expr}) Float sine of {expr}
sinh( {expr}) Float hyperbolic sine of {expr}
sort( {list} [, {func}]) List sort {list}, using {func} to compare
sort( {list} [, {func} [, {dict}]])
List sort {list}, using {func} to compare
soundfold( {word}) String sound-fold {word}
spellbadword() String badly spelled word at cursor
spellsuggest( {word} [, {max} [, {capital}]])
@ -1939,7 +1962,7 @@ strridx( {haystack}, {needle} [, {start}])
Number last index of {needle} in {haystack}
strtrans( {expr}) String translate string to make it printable
strwidth( {expr}) Number display cell length of the String {expr}
submatch( {nr}) String specific match in ":substitute"
submatch( {nr}) String specific match in ":s" or substitute()
substitute( {expr}, {pat}, {sub}, {flags})
String all {pat} in {expr} replaced with {sub}
synID( {lnum}, {col}, {trans}) Number syntax ID at {lnum} and {col}
@ -1980,6 +2003,7 @@ winsaveview() Dict save view of current window
winwidth( {nr}) Number width of window {nr}
writefile( {list}, {fname} [, {binary}])
Number write list of lines to file {fname}
xor( {expr}, {expr}) Number bitwise XOR
abs({expr}) *abs()*
Return the absolute value of {expr}. When {expr} evaluates to
@ -2019,6 +2043,13 @@ add({list}, {expr}) *add()*
Use |insert()| to add an item at another position.
and({expr}, {expr}) *and()*
Bitwise AND on the two arguments. The arguments are converted
to a number. A List, Dict or Float argument causes an error.
Example: >
:let flag = and(bits, 0x80)
append({lnum}, {expr}) *append()*
When {expr} is a |List|: Append each item of the |List| as a
text line below line {lnum} in the current buffer.
@ -2263,14 +2294,17 @@ changenr() *changenr()*
redo it is the number of the redone change. After undo it is
one less than the number of the undone change.
char2nr({expr}) *char2nr()*
char2nr({expr}[, {utf8}]) *char2nr()*
Return number value of the first char in {expr}. Examples: >
char2nr(" ") returns 32
char2nr("ABC") returns 65
< The current 'encoding' is used. Example for "utf-8": >
< When {utf8} is omitted or zero, the current 'encoding' is used.
Example for "utf-8": >
char2nr("<22>") returns 225
char2nr("<22>"[0]) returns 195
< |nr2char()| does the opposite.
< With {utf8} set to 1, always treat as utf-8 characters.
A combining character is a separate character.
|nr2char()| does the opposite.
cindent({lnum}) *cindent()*
Get the amount of indent for line {lnum} according the C
@ -2290,7 +2324,7 @@ col({expr}) The result is a Number, which is the byte index of the column
position given with {expr}. The accepted positions are:
. the cursor position
$ the end of the cursor line (the result is the
number of characters in the cursor line plus one)
number of bytes in the cursor line plus one)
'x position of mark x (if the mark is not set, 0 is
returned)
Additionally {expr} can be [lnum, col]: a |List| with the line
@ -2721,13 +2755,15 @@ exp({expr}) *exp()*
{only available when compiled with the |+float| feature}
expand({expr} [, {flag}]) *expand()*
expand({expr} [, {nosuf} [, {list}]]) *expand()*
Expand wildcards and the following special keywords in {expr}.
The result is a String. 'wildignorecase' applies.
'wildignorecase' applies.
When there are several matches, they are separated by <NL>
characters. [Note: in version 5.0 a space was used, which
caused problems when a file name contains a space]
If {list} is given and it is non-zero, a List will be returned.
Otherwise the result is a String and when there are several
matches, they are separated by <NL> characters. [Note: in
version 5.0 a space was used, which caused problems when a
file name contains a space]
If the expansion fails, the result is an empty string. A name
for a non-existing file is not included.
@ -2781,10 +2817,10 @@ expand({expr} [, {flag}]) *expand()*
When {expr} does not start with '%', '#' or '<', it is
expanded like a file name is expanded on the command line.
'suffixes' and 'wildignore' are used, unless the optional
{flag} argument is given and it is non-zero. Names for
non-existing files are included. The "**" item can be used to
search in a directory tree. For example, to find all "README"
files in the current directory and below: >
{nosuf} argument is given and it is non-zero.
Names for non-existing files are included. The "**" item can
be used to search in a directory tree. For example, to find
all "README" files in the current directory and below: >
:echo expand("**/README")
<
Expand() can also be used to expand variables and environment
@ -3057,7 +3093,7 @@ function({name}) *function()* *E700*
{name} can be a user defined function or an internal function.
garbagecollect([at_exit]) *garbagecollect()*
garbagecollect([{atexit}]) *garbagecollect()*
Cleanup unused |Lists| and |Dictionaries| that have circular
references. There is hardly ever a need to invoke this
function, as it is automatically done when Vim runs out of
@ -3067,7 +3103,7 @@ garbagecollect([at_exit]) *garbagecollect()*
This is useful if you have deleted a very big |List| and/or
|Dictionary| with circular references in a script that runs
for a long time.
When the optional "at_exit" argument is one, garbage
When the optional {atexit} argument is one, garbage
collection will also be done when exiting Vim, if it wasn't
done before. This is useful when checking for memory leaks.
@ -3143,6 +3179,8 @@ getchar([expr]) *getchar()*
one-byte character it is the character itself as a number.
Use nr2char() to convert it to a String.
Use getcharmod() to obtain any additional modifiers.
When the user clicks a mouse button, the mouse event will be
returned. The position can then be found in |v:mouse_col|,
|v:mouse_lnum| and |v:mouse_win|. This example positions the
@ -3181,10 +3219,11 @@ getcharmod() *getcharmod()*
2 shift
4 control
8 alt (meta)
16 mouse double click
32 mouse triple click
64 mouse quadruple click
128 Macintosh only: command
16 meta (when it's different from ALT)
32 mouse double click
64 mouse triple click
96 mouse quadruple click (== 32 + 64)
128 command (Macintosh only)
Only the modifiers that have not been included in the
character itself are obtained. Thus Shift-a results in "A"
without a modifier.
@ -3201,7 +3240,8 @@ getcmdpos() *getcmdpos()*
Return the position of the cursor in the command line as a
byte count. The first column is 1.
Only works when editing the command line, thus requires use of
|c_CTRL-\_e| or |c_CTRL-R_=|. Returns 0 otherwise.
|c_CTRL-\_e| or |c_CTRL-R_=| or an expression mapping.
Returns 0 otherwise.
Also see |getcmdtype()|, |setcmdpos()| and |getcmdline()|.
getcmdtype() *getcmdtype()*
@ -3214,8 +3254,8 @@ getcmdtype() *getcmdtype()*
@ |input()| command
- |:insert| or |:append| command
Only works when editing the command line, thus requires use of
|c_CTRL-\_e| or |c_CTRL-R_=|. Returns an empty string
otherwise.
|c_CTRL-\_e| or |c_CTRL-R_=| or an expression mapping.
Returns an empty string otherwise.
Also see |getcmdpos()|, |setcmdpos()| and |getcmdline()|.
*getcwd()*
@ -3253,8 +3293,9 @@ getfperm({fname}) *getfperm()*
"rwx" flags represent, in turn, the permissions of the owner
of the file, the group the file belongs to, and other users.
If a user does not have a given permission the flag for this
is replaced with the string "-". Example: >
is replaced with the string "-". Examples: >
:echo getfperm("/etc/passwd")
:echo getfperm(expand("~/.vimrc"))
< This will hopefully (from a security point of view) display
the string "rw-r--r--" or even "rw-------".
@ -3428,19 +3469,25 @@ getwinvar({winnr}, {varname}) *getwinvar()*
:let list_is_on = getwinvar(2, '&list')
:echo "myvar = " . getwinvar(1, 'myvar')
<
glob({expr} [, {flag}]) *glob()*
glob({expr} [, {nosuf} [, {list}]]) *glob()*
Expand the file wildcards in {expr}. See |wildcards| for the
use of special characters.
The result is a String.
When there are several matches, they are separated by <NL>
characters.
Unless the optional {flag} argument is given and is non-zero,
Unless the optional {nosuf} argument is given and is non-zero,
the 'suffixes' and 'wildignore' options apply: Names matching
one of the patterns in 'wildignore' will be skipped and
'suffixes' affect the ordering of matches.
'wildignorecase' always applies.
If the expansion fails, the result is an empty string.
A name for a non-existing file is not included.
When {list} is present and it is non-zero the result is a List
with all matching files. The advantage of using a List is,
you also get filenames containing newlines correctly.
Otherwise the result is a String and when there are several
matches, they are separated by <NL> characters.
If the expansion fails, the result is an empty String or List.
A name for a non-existing file is not included. A symbolic
link is only included if it points to an existing file.
For most systems backticks can be used to get files names from
any external command. Example: >
@ -3526,6 +3573,9 @@ histadd({history}, {item}) *histadd()*
"search" or "/" search pattern history
"expr" or "=" typed expression history
"input" or "@" input line history
"debug" or ">" debug command history
The {history} string does not need to be the whole name, one
character is sufficient.
If {item} does already exist in the history, it will be
shifted to become the newest entry.
The result is a Number: 1 if the operation was successful,
@ -3709,10 +3759,10 @@ inputdialog({prompt} [, {text} [, {cancelreturn}]]) *inputdialog()*
Like |input()|, but when the GUI is running and text dialogs
are supported, a dialog window pops up to input the text.
Example: >
:let n = inputdialog("value for shiftwidth", &sw)
:if n != ""
: let &sw = n
:endif
:let n = inputdialog("value for shiftwidth", shiftwidth())
:if n != ""
: let &sw = n
:endif
< When the dialog is cancelled {cancelreturn} is returned. When
omitted an empty string is returned.
Hitting <Enter> works like pressing the OK button. Hitting
@ -3774,6 +3824,11 @@ insert({list}, {item} [, {idx}]) *insert()*
Note that when {item} is a |List| it is inserted as a single
item. Use |extend()| to concatenate |Lists|.
invert({expr}) *invert()*
Bitwise invert. The argument is converted to a number. A
List, Dict or Float argument causes an error. Example: >
:let bits = invert(bits)
isdirectory({directory}) *isdirectory()*
The result is a Number, which is non-zero when a directory
with the name {directory} exists. If {directory} doesn't
@ -3912,11 +3967,12 @@ line2byte({lnum}) *line2byte()*
Return the byte count from the start of the buffer for line
{lnum}. This includes the end-of-line character, depending on
the 'fileformat' option for the current buffer. The first
line returns 1.
line returns 1. 'encoding' matters, 'fileencoding' is ignored.
This can also be used to get the byte count for the line just
below the last line: >
line2byte(line("$") + 1)
< This is the file size plus one.
< This is the buffer size plus one. If 'fileencoding' is empty
it is the file size plus one.
When {lnum} is invalid, or the |+byte_offset| feature has been
disabled at compile time, -1 is returned.
Also see |byte2line()|, |go| and |:goto|.
@ -3956,6 +4012,20 @@ log10({expr}) *log10()*
< -2.0
{only available when compiled with the |+float| feature}
luaeval({expr}[, {expr}]) *luaeval()*
Evaluate Lua expression {expr} and return its result converted
to Vim data structures. Second {expr} may hold additional
argument accessible as _A inside first {expr}.
Strings are returned as they are.
Boolean objects are converted to numbers.
Numbers are converted to |Float| values if vim was compiled
with |+float| and to numbers otherwise.
Dictionaries and lists obtained by vim.eval() are returned
as-is.
Other objects are returned as zero without any errors.
See |lua-luaeval| for more details.
{only available when compiled with the |+lua| feature}
map({expr}, {string}) *map()*
{expr} must be a |List| or a |Dictionary|.
Replace each item in {expr} with the result of evaluating
@ -3974,7 +4044,7 @@ map({expr}, {string}) *map()*
The operation is done in-place. If you want a |List| or
|Dictionary| to remain unmodified make a copy first: >
:let tlist = map(copy(mylist), ' & . "\t"')
:let tlist = map(copy(mylist), ' v:val . "\t"')
< Returns {expr}, the |List| or |Dictionary| that was filtered.
When an error is encountered while evaluating {string} no
@ -4074,6 +4144,7 @@ match({expr}, {pat}[, {start}[, {count}]]) *match()*
{pat} matches.
A match at the first character or |List| item returns zero.
If there is no match -1 is returned.
For getting submatches see |matchlist()|.
Example: >
:echo match("testing", "ing") " results in 4
:echo match([1, 'x'], '\a') " results in 1
@ -4279,7 +4350,7 @@ mode([expr]) Return a string that indicates the current mode.
mzeval({expr}) *mzeval()*
Evaluate MzScheme expression {expr} and return its result
convert to Vim data structures.
converted to Vim data structures.
Numbers and strings are returned as they are.
Pairs (including lists and improper lists) and vectors are
returned as Vim |Lists|.
@ -4302,14 +4373,16 @@ nextnonblank({lnum}) *nextnonblank()*
below it, zero is returned.
See also |prevnonblank()|.
nr2char({expr}) *nr2char()*
nr2char({expr}[, {utf8}]) *nr2char()*
Return a string with a single character, which has the number
value {expr}. Examples: >
nr2char(64) returns "@"
nr2char(32) returns " "
< The current 'encoding' is used. Example for "utf-8": >
< When {utf8} is omitted or zero, the current 'encoding' is used.
Example for "utf-8": >
nr2char(300) returns I with bow character
< Note that a NUL character in the file is specified with
< With {utf8} set to 1, always return utf-8 characters.
Note that a NUL character in the file is specified with
nr2char(10), because NULs are represented with newline
characters. nr2char(0) is a real NUL and terminates the
string, thus results in an empty string.
@ -4338,6 +4411,13 @@ getpos({expr}) Get the position for {expr}. For possible values of {expr}
call setpos('.', save_cursor)
< Also see |setpos()|.
or({expr}, {expr}) *or()*
Bitwise OR on the two arguments. The arguments are converted
to a number. A List, Dict or Float argument causes an error.
Example: >
:let bits = or(bits, 0x80)
pathshorten({expr}) *pathshorten()*
Shorten directory names in the path {expr} and return the
result. The tail, the file name, is kept as-is. The other
@ -4377,6 +4457,7 @@ printf({fmt}, {expr1} ...) *printf()*
Often used items are:
%s string
%6S string right-aligned in 6 display cells
%6s string right-aligned in 6 bytes
%.9s string truncated to 9 bytes
%c single byte
@ -4491,6 +4572,10 @@ printf({fmt}, {expr1} ...) *printf()*
s The text of the String argument is used. If a
precision is specified, no more bytes than the number
specified are used.
S The text of the String argument is used. If a
precision is specified, no more display cells than the
number specified are used. Without the |+multi_byte|
feature works just like 's'.
*printf-f* *E807*
f The Float argument is converted into a string of the
@ -4543,6 +4628,29 @@ pumvisible() *pumvisible()*
This can be used to avoid some things that would remove the
popup menu.
*E860* *E861*
py3eval({expr}) *py3eval()*
Evaluate Python expression {expr} and return its result
converted to Vim data structures.
Numbers and strings are returned as they are (strings are
copied though, unicode strings are additionally converted to
'encoding').
Lists are represented as Vim |List| type.
Dictionaries are represented as Vim |Dictionary| type with
keys converted to strings.
{only available when compiled with the |+python3| feature}
*E858* *E859*
pyeval({expr}) *pyeval()*
Evaluate Python expression {expr} and return its result
converted to Vim data structures.
Numbers and strings are returned as they are (strings are
copied though).
Lists are represented as Vim |List| type.
Dictionaries are represented as Vim |Dictionary| type,
non-string keys result in error.
{only available when compiled with the |+python| feature}
*E726* *E727*
range({expr} [, {max} [, {stride}]]) *range()*
Returns a |List| with Numbers:
@ -4770,12 +4878,35 @@ round({expr}) *round()*
echo round(-4.5)
< -5.0
{only available when compiled with the |+float| feature}
screencol() *screencol()*
The result is a Number, which is the current screen column of
the cursor. The leftmost column has number 1.
This function is mainly used for testing.
Note: Always returns the current screen column, thus if used
in a command (e.g. ":echo screencol()") it will return the
column inside the command line, which is 1 when the command is
executed. To get the cursor position in the file use one of
the following mappings: >
nnoremap <expr> GG ":echom ".screencol()."\n"
nnoremap <silent> GG :echom screencol()<CR>
<
screenrow() *screenrow()*
The result is a Number, which is the current screen row of the
cursor. The top line has number one.
This function is mainly used for testing.
Note: Same restrictions as with |screencol()|.
search({pattern} [, {flags} [, {stopline} [, {timeout}]]]) *search()*
Search for regexp pattern {pattern}. The search starts at the
cursor position (you can use |cursor()| to set it).
When a match has been found its line number is returned.
If there is no match a 0 is returned and the cursor doesn't
move. No error message is given.
{flags} is a String, which can contain these character flags:
'b' search backward instead of forward
'c' accept a match at the cursor position
@ -4803,15 +4934,12 @@ search({pattern} [, {flags} [, {stopline} [, {timeout}]]]) *search()*
A zero value is equal to not giving the argument.
When the {timeout} argument is given the search stops when
more than this many milli seconds have passed. Thus when
more than this many milliseconds have passed. Thus when
{timeout} is 500 the search stops after half a second.
The value must not be negative. A zero value is like not
giving the argument.
{only available when compiled with the |+reltime| feature}
If there is no match a 0 is returned and the cursor doesn't
move. No error message is given.
When a match has been found its line number is returned.
*search()-sub-match*
With the 'p' flag the returned value is one more than the
first sub-match in \(\). One if none of them matched but the
@ -5030,7 +5158,8 @@ setcmdpos({pos}) *setcmdpos()*
line.
setline({lnum}, {text}) *setline()*
Set line {lnum} of the current buffer to {text}.
Set line {lnum} of the current buffer to {text}. To insert
lines use |append()|.
{lnum} is used like with |getline()|.
When {lnum} is just below the last line the {text} will be
added as a new line.
@ -5041,7 +5170,7 @@ setline({lnum}, {text}) *setline()*
will be set to the items in the list. Example: >
:call setline(5, ['aaa', 'bbb', 'ccc'])
< This is equivalent to: >
:for [n, l] in [[5, 6, 7], ['aaa', 'bbb', 'ccc']]
:for [n, l] in [[5, 'aaa'], [6, 'bbb'], [7, 'ccc']]
: call setline(n, l)
:endfor
< Note: The '[ and '] marks are not set.
@ -5155,8 +5284,9 @@ setreg({regname}, {value} [,{options}])
If {options} contains no register settings, then the default
is to use character mode unless {value} ends in a <NL>.
Setting the '=' register is not possible.
Returns zero for success, non-zero for failure.
Setting the '=' register is not possible, but you can use >
:let @= = var_expr
< Returns zero for success, non-zero for failure.
Examples: >
:call setreg(v:register, @*)
@ -5232,6 +5362,23 @@ shellescape({string} [, {special}]) *shellescape()*
:call system("chmod +w -- " . shellescape(expand("%")))
shiftwidth() *shiftwidth()*
Returns the effective value of 'shiftwidth'. This is the
'shiftwidth' value unless it is zero, in which case it is the
'tabstop' value. To be backwards compatible in indent
plugins, use this: >
if exists('*shiftwidth')
func s:sw()
return shiftwidth()
endfunc
else
func s:sw()
return &sw
endfunc
endif
< And then use s:sw() instead of &sw.
simplify({filename}) *simplify()*
Simplify the file name as much as possible without changing
the meaning. Shortcuts (on MS-Windows) or symbolic links (on
@ -5271,7 +5418,7 @@ sinh({expr}) *sinh()*
{only available when compiled with the |+float| feature}
sort({list} [, {func}]) *sort()* *E702*
sort({list} [, {func} [, {dict}]]) *sort()* *E702*
Sort the items in {list} in-place. Returns {list}. If you
want a list to remain unmodified make a copy first: >
:let sortedlist = sort(copy(mylist))
@ -5279,6 +5426,8 @@ sort({list} [, {func}]) *sort()* *E702*
Numbers sort after Strings, |Lists| after Numbers.
For sorting text in the current buffer use |:sort|.
When {func} is given and it is one then case is ignored.
{dict} is for functions with the "dict" attribute. It will be
used to set the local variable "self". |Dictionary-function|
When {func} is a |Funcref| or a function name, this function
is called to compare items. The function is invoked with two
items as argument and must return zero if they are equal, 1 or
@ -5359,7 +5508,8 @@ split({expr} [, {pattern} [, {keepempty}]]) *split()*
empty each white-separated sequence of characters becomes an
item.
Otherwise the string is split where {pattern} matches,
removing the matched characters.
removing the matched characters. 'ignorecase' is not used
here, add \c to ignore case. |/\c|
When the first or last item is empty it is omitted, unless the
{keepempty} argument is given and it's non-zero.
Other empty items are kept when {pattern} matches at least one
@ -5550,9 +5700,11 @@ strwidth({expr}) *strwidth()*
Also see |strlen()|, |strdisplaywidth()| and |strchars()|.
submatch({nr}) *submatch()*
Only for an expression in a |:substitute| command. Returns
the {nr}'th submatch of the matched text. When {nr} is 0
the whole matched text is returned.
Only for an expression in a |:substitute| command or
substitute() function.
Returns the {nr}'th submatch of the matched text. When {nr}
is 0 the whole matched text is returned.
Also see |sub-replace-expression|.
Example: >
:s/\d\+/\=submatch(0) + 1/
< This finds the first number in the line and adds one to it.
@ -5560,26 +5712,37 @@ submatch({nr}) *submatch()*
substitute({expr}, {pat}, {sub}, {flags}) *substitute()*
The result is a String, which is a copy of {expr}, in which
the first match of {pat} is replaced with {sub}. This works
like the ":substitute" command (without any flags). But the
matching with {pat} is always done like the 'magic' option is
set and 'cpoptions' is empty (to make scripts portable).
'ignorecase' is still relevant. 'smartcase' is not used.
See |string-match| for how {pat} is used.
And a "~" in {sub} is not replaced with the previous {sub}.
the first match of {pat} is replaced with {sub}.
When {flags} is "g", all matches of {pat} in {expr} are
replaced. Otherwise {flags} should be "".
This works like the ":substitute" command (without any flags).
But the matching with {pat} is always done like the 'magic'
option is set and 'cpoptions' is empty (to make scripts
portable). 'ignorecase' is still relevant, use |/\c| or |/\C|
if you want to ignore or match case and ignore 'ignorecase'.
'smartcase' is not used. See |string-match| for how {pat} is
used.
A "~" in {sub} is not replaced with the previous {sub}.
Note that some codes in {sub} have a special meaning
|sub-replace-special|. For example, to replace something with
"\n" (two characters), use "\\\\n" or '\\n'.
When {pat} does not match in {expr}, {expr} is returned
unmodified.
When {flags} is "g", all matches of {pat} in {expr} are
replaced. Otherwise {flags} should be "".
Example: >
:let &path = substitute(&path, ",\\=[^,]*$", "", "")
< This removes the last component of the 'path' option. >
:echo substitute("testing", ".*", "\\U\\0", "")
< results in "TESTING".
When {sub} starts with "\=", the remainder is interpreted as
an expression. See |sub-replace-expression|. Example: >
:echo substitute(s, '%\(\x\x\)',
\ '\=nr2char("0x" . submatch(1))', 'g')
synID({lnum}, {col}, {trans}) *synID()*
The result is a Number, which is the syntax ID at the position
{lnum} and {col} in the current window.
@ -5717,9 +5880,9 @@ tabpagebuflist([{arg}]) *tabpagebuflist()*
omitted the current tab page is used.
When {arg} is invalid the number zero is returned.
To get a list of all buffers in all tabs use this: >
tablist = []
let buflist = []
for i in range(tabpagenr('$'))
call extend(tablist, tabpagebuflist(i + 1))
call extend(buflist, tabpagebuflist(i + 1))
endfor
< Note that a buffer may appear in more than one window.
@ -5780,8 +5943,9 @@ taglist({expr}) *taglist()*
If there are no matching tags, then an empty list is returned.
To get an exact tag match, the anchors '^' and '$' should be
used in {expr}. Refer to |tag-regexp| for more information
about the tag search regular expression pattern.
used in {expr}. This also make the function work faster.
Refer to |tag-regexp| for more information about the tag
search regular expression pattern.
Refer to |'tags'| for information about how the tags file is
located by Vim. Refer to |tags-file-format| for the format of
@ -5882,6 +6046,8 @@ undofile({name}) *undofile()*
the undo file exists.
{name} is always expanded to the full path, since that is what
is used internally.
If {name} is empty undofile() returns an empty string, since a
buffer without a file name will not write an undo file.
Useful in combination with |:wundo| and |:rundo|.
When compiled without the +persistent_undo option this always
returns an empty string.
@ -5941,13 +6107,13 @@ virtcol({expr}) *virtcol()*
would be of unlimited width. When there is a <Tab> at the
position, the returned Number will be the column at the end of
the <Tab>. For example, for a <Tab> in column 1, with 'ts'
set to 8, it returns 8.
set to 8, it returns 8. |conceal| is ignored.
For the byte position use |col()|.
For the use of {expr} see |col()|.
When 'virtualedit' is used {expr} can be [lnum, col, off], where
"off" is the offset in screen columns from the start of the
character. E.g., a position within a <Tab> or after the last
character.
character. When "off" is omitted zero is used.
When Virtual editing is active in the current mode, a position
beyond the end of the line can be returned. |'virtualedit'|
The accepted positions are:
@ -6022,8 +6188,9 @@ winline() The result is a Number, which is the screen line of the cursor
winnr([{arg}]) The result is a Number, which is the number of the current
window. The top window has number 1.
When the optional argument is "$", the number of the
last window is returned (the window count).
When the optional argument is "#", the number of the last
last window is returned (the window count). >
let window_count = winnr('$')
< When the optional argument is "#", the number of the last
accessed window is returned (where |CTRL-W_p| goes to).
If there is no previous window or it is in another tab page 0
is returned.
@ -6099,8 +6266,16 @@ writefile({list}, {fname} [, {binary}])
To copy a file byte for byte: >
:let fl = readfile("foo", "b")
:call writefile(fl, "foocopy", "b")
xor({expr}, {expr}) *xor()*
Bitwise XOR on the two arguments. The arguments are converted
to a number. A List, Dict or Float argument causes an error.
Example: >
:let bits = xor(bits, 0x80)
<
*feature-list*
There are three types of features:
1. Features that are only supported when they have been enabled when Vim
@ -6127,6 +6302,7 @@ balloon_multiline GUI supports multiline balloons.
beos BeOS version of Vim.
browse Compiled with |:browse| support, and browse() will
work.
browsefilter Compiled with support for |browsefilter|.
builtin_terms Compiled with some builtin terminals.
byte_offset Compiled with support for 'o' in 'statusline'
cindent Compiled with 'cindent' support.
@ -6204,6 +6380,8 @@ mouse_gpm Compiled with support for gpm (Linux console mouse)
mouse_netterm Compiled with support for netterm mouse.
mouse_pterm Compiled with support for qnx pterm mouse.
mouse_sysmouse Compiled with support for sysmouse (*BSD console mouse)
mouse_sgr Compiled with support for sgr mouse.
mouse_urxvt Compiled with support for urxvt mouse.
mouse_xterm Compiled with support for xterm mouse.
mouseshape Compiled with support for 'mouseshape'.
multi_byte Compiled with support for 'encoding'
@ -6215,14 +6393,14 @@ netbeans_enabled Compiled with support for |netbeans| and connected.
netbeans_intg Compiled with support for |netbeans|.
ole Compiled with OLE automation support for Win32.
os2 OS/2 version of Vim.
osfiletype Compiled with support for osfiletypes |+osfiletype|
path_extra Compiled with up/downwards search in 'path' and 'tags'
perl Compiled with Perl interface.
persistent_undo Compiled with support for persistent undo history.
postscript Compiled with PostScript file printing.
printer Compiled with |:hardcopy| support.
profile Compiled with |:profile| support.
python Compiled with Python interface.
python Compiled with Python 2.x interface. |has-python|
python3 Compiled with Python 3.x interface. |has-python|
qnx QNX version of Vim.
quickfix Compiled with |quickfix| support.
reltime Compiled with |reltime()| support.
@ -6280,6 +6458,7 @@ windows Compiled with support for more than one window.
writebackup Compiled with 'writebackup' default on.
xfontset Compiled with X fontset support |xfontset|.
xim Compiled with X input method support |xim|.
xpm_w32 Compiled with pixmap support for Win32.
xsmp Compiled with X session management support.
xsmp_interact Compiled with interactive X session management support.
xterm_clipboard Compiled with support for xterm clipboard.
@ -6352,7 +6531,7 @@ last defined. Example: >
<
See |:verbose-cmd| for more information.
*E124* *E125*
*E124* *E125* *E853*
:fu[nction][!] {name}([arguments]) [range] [abort] [dict]
Define a new function by the name {name}. The name
must be made of alphanumeric characters and '_', and
@ -6382,6 +6561,8 @@ See |:verbose-cmd| for more information.
is excluded, ":{range}call" will call the function for
each line in the range, with the cursor on the start
of each line. See |function-range-example|.
The cursor is still moved to the first line of the
range, as is the case with all Ex commands.
When the [abort] argument is added, the function will
abort as soon as an error is detected.
@ -6613,9 +6794,9 @@ Hint: If you distribute a bunch of scripts you can pack them together with the
==============================================================================
6. Curly braces names *curly-braces-names*
Wherever you can use a variable, you can use a "curly braces name" variable.
This is a regular variable name with one or more expressions wrapped in braces
{} like this: >
In most places where you can use a variable, you can use a "curly braces name"
variable. This is a regular variable name with one or more expressions
wrapped in braces {} like this: >
my_{adjective}_variable
When Vim encounters this, it evaluates the expression inside the braces, puts
@ -6651,6 +6832,11 @@ Example: >
This would call the function "my_func_whizz(parameter)".
This does NOT work: >
:let i = 3
:let @{i} = '' " error
:echo @{i} " error
==============================================================================
7. Commands *expression-commands*

View File

@ -54,3 +54,4 @@ Voir le menu Aide/Remerciements ou ":help credits" dans
.SH TRADUCTION
Cette page de manuel a <20>t<EFBFBD> traduite David Blanchet.
<david.blanchet@free.fr> 2005-03-26.
Mise <20> jour 2012-05-06, Dominique Pell<6C> <dominique.pelle@gmail.com>

View File

@ -54,3 +54,4 @@ Voir le menu Aide/Remerciements ou ":help credits" dans
.SH TRADUCTION
Cette page de manuel a été traduite David Blanchet.
<david.blanchet@free.fr> 2005-03-26.
Mise à jour 2012-05-06, Dominique Pellé <dominique.pelle@gmail.com>

View File

@ -1,4 +1,4 @@
*filetype.txt* For Vim version 7.3. Last change: 2008 Jul 15
*filetype.txt* For Vim version 7.3. Last change: 2011 Jun 19
VIM REFERENCE MANUAL by Bram Moolenaar
@ -270,6 +270,9 @@ directories!
*autocmd-osfiletypes*
NOTE: this code is currently disabled, as the RISC OS implementation was
removed. In the future this will use the 'filetype' option.
On operating systems which support storing a file type with the file, you can
specify that an autocommand should only be executed if the file is of a
certain type.
@ -296,8 +299,6 @@ must both match): >
This will match files of type "&fff" whose names start with "diff".
Note that osfiletype checking is skipped if Vim is compiled without the
|+osfiletype| feature.
*plugin-details*
The "plugin" directory can be in any of the directories in the 'runtimepath'

View File

@ -60,7 +60,7 @@ level form a fold, with the lines with a higher level forming a nested fold.
The nesting of folds is limited with 'foldnestmax'.
Some lines are ignored and get the fold level of the line above or below it,
whatever is the lowest. These are empty or white lines and lines starting
whichever is lower. These are empty or white lines and lines starting
with a character in 'foldignore'. White space is skipped before checking for
characters in 'foldignore'. For C use "#" to ignore preprocessor lines.

View File

@ -1,4 +1,4 @@
*gui.txt* For Vim version 7.3. Last change: 2010 Nov 03
*gui.txt* For Vim version 7.3. Last change: 2011 Jul 22
VIM REFERENCE MANUAL by Bram Moolenaar
@ -147,6 +147,15 @@ task bar with the 'guiheadroom' option.
If you are running the X Window System, you can get information about the
window Vim is running in with this command: >
:!xwininfo -id $WINDOWID
<
*gui-IME* *iBus*
Input methods for international characters in X that rely on the XIM
framework, most notably iBus, have been known to produce undesirable results
in gVim. These may include an inability to enter spaces, or long delays
between typing a character and it being recognized by the application.
One workaround that has been successful, for unknown reasons, is to prevent
gvim from forking into the background by starting it with the |-f| argument.
==============================================================================
2. Scrollbars *gui-scrollbars*

View File

@ -16,7 +16,7 @@ Vim's Graphical User Interface *gui-w16* *win16-gui*
Other relevant documentation:
|gui.txt| For generic items of the GUI.
|os_msdos.txt| For items common to DOS and Windows.
|os_msdos.txt| For items common to DOS and Windows.
|gui_w32.txt| Some items here are also applicable to the Win16 version.
{Vi does not have a Windows GUI}

View File

@ -1,4 +1,4 @@
*gui_w32.txt* For Vim version 7.3. Last change: 2010 Dec 19
*gui_w32.txt* For Vim version 7.3. Last change: 2012 Aug 04
VIM REFERENCE MANUAL by Bram Moolenaar
@ -17,7 +17,7 @@ Vim's Win32 Graphical User Interface *gui-w32* *win32-gui*
Other relevant documentation:
|gui.txt| For generic items of the GUI.
|os_win32.txt| For Win32 specific items.
|os_win32.txt| For Win32 specific items.
{Vi does not have a Windows GUI}
@ -137,6 +137,9 @@ options:
And if there already is a gvim running:
"Edit with existing gvim" -- edit the file with the running gvim
The "edit with existing Vim" entries can be disabled by adding an entry in the
registry under HKLM\Software\Vim\Gvim, named DisableEditWithExisting, and with
any value.
*install-registry*
You can add the "Edit with Vim" menu entry in an easy way by using the
"install.exe" program. It will add several registry entries for you.
@ -486,4 +489,16 @@ to:
And add gvim to the list of applications. This problem only appears to happen
with the Intellimouse driver 2.2 and when "Universal Scrolling" is turned on.
XPM support *w32-xpm-support*
Gvim can be build on MS-Windows with support for XPM files. |+xpm_w32|
See the Make_mvc.mak file for instructions, search for XPM.
To try out if XPM support works do this: >
:help
:exe 'sign define vimxpm icon=' . $VIMRUNTIME . '\\vim16x16.xpm'
:exe 'sign place 1 line=1 name=vimxpm file=' . expand('%:p')
<
vim:tw=78:sw=4:ts=8:ft=help:norl:

View File

@ -1,4 +1,4 @@
*gui_x11.txt* For Vim version 7.3. Last change: 2010 Jul 20
*gui_x11.txt* For Vim version 7.3. Last change: 2011 Sep 14
VIM REFERENCE MANUAL by Bram Moolenaar
@ -53,6 +53,8 @@ When using "gvim -f" and then ":gui", Vim will run in the foreground. The
":gui -b".
"gvim --nofork" does the same as "gvim -f".
*E851* *E852*
When starting the GUI fails Vim will try to continue running in the terminal.
If you want the GUI to run in the foreground always, include the 'f'
flag in 'guioptions'. |-f|.

View File

@ -93,7 +93,7 @@ Details
This is also the keymap when 'keymap=hebrew' is set. The advantage of
'keymap' is that it works properly when using UTF8, e.g. it inserts the
correct characters; 'hkmap' does not. The 'keymap' keyboard can also
insert niqud and te`amim. To see what those mappings are,look at the
insert niqud and te`amim. To see what those mappings are, look at the
keymap file 'hebrew.vim' etc.

View File

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

View File

@ -1,4 +1,4 @@
*helphelp.txt* For Vim version 7.3. Last change: 2010 Sep 14
*helphelp.txt* For Vim version 7.3. Last change: 2012 Nov 28
VIM REFERENCE MANUAL by Bram Moolenaar
@ -194,11 +194,12 @@ command: >
*E154* *E150* *E151* *E152* *E153* *E670*
:helpt[ags] [++t] {dir}
Generate the help tags file(s) for directory {dir}.
All "*.txt" and "*.??x" files in the directory are
scanned for a help tag definition in between stars.
The "*.??x" files are for translated docs, they
generate the "tags-??" file, see |help-translated|.
The generated tags files are sorted.
All "*.txt" and "*.??x" files in the directory and
sub-directories are scanned for a help tag definition
in between stars. The "*.??x" files are for
translated docs, they generate the "tags-??" file, see
|help-translated|. The generated tags files are
sorted.
When there are duplicates an error message is given.
An existing tags file is silently overwritten.
The optional "++t" argument forces adding the
@ -218,11 +219,12 @@ files. Vim will search for all help in "doc" directories in 'runtimepath'.
This is only available when compiled with the |+multi_lang| feature.
At this moment translations are available for:
Chinese - multiple authors
French - translated by David Blanchet
Italian - translated by Antonio Colombo
Polish - translated by Mikolaj Machowski
Russian - translated by Vassily Ragosin
Chinese - multiple authors
French - translated by David Blanchet
Italian - translated by Antonio Colombo
Japanese - multiple authors
Polish - translated by Mikolaj Machowski
Russian - translated by Vassily Ragosin
See the Vim website to find them: http://www.vim.org/translations.php
A set of translated help files consists of these files:

View File

@ -1,4 +1,4 @@
*if_cscop.txt* For Vim version 7.3. Last change: 2010 Sep 29
*if_cscop.txt* For Vim version 7.3. Last change: 2011 Jun 12
VIM REFERENCE MANUAL by Andy Kahn
@ -264,12 +264,22 @@ seems to be useful: >
:set cscopequickfix=s-,c-,d-,i-,t-,e-
<
*cscopetag* *cst*
If 'cscopetag' set, the commands ":tag" and CTRL-] as well as "vim -t" will
always use |:cstag| instead of the default :tag behavior. Effectively, by
setting 'cst', you will always search your cscope databases as well as your
tag files. The default is off. Examples: >
If 'cscopetag' is set, the commands ":tag" and CTRL-] as well as "vim -t"
will always use |:cstag| instead of the default :tag behavior. Effectively,
by setting 'cst', you will always search your cscope databases as well as
your tag files. The default is off. Examples: >
:set cst
:set nocst
<
*cscoperelative* *csre*
If 'cscoperelative' is set, then in absence of a prefix given to cscope
(prefix is the argument of -P option of cscope), basename of cscope.out
location (usually the project root directory) will be used as the prefix
to construct an absolute path. The default is off. Note: This option is
only effective when cscope (cscopeprg) is initialized without a prefix
path (-P). Examples: >
:set csre
:set nocsre
<
*cscopetagorder* *csto*
The value of 'csto' determines the order in which |:cstag| performs a search.

View File

@ -1,4 +1,4 @@
*if_lua.txt* For Vim version 7.3. Last change: 2010 Jul 22
*if_lua.txt* For Vim version 7.3. Last change: 2012 Jun 29
VIM REFERENCE MANUAL by Luis Carvalho
@ -8,8 +8,11 @@ The Lua Interface to Vim *lua* *Lua*
1. Commands |lua-commands|
2. The vim module |lua-vim|
3. Buffer userdata |lua-buffer|
4. Window userdata |lua-window|
3. List userdata |lua-list|
4. Dict userdata |lua-dict|
5. Buffer userdata |lua-buffer|
6. Window userdata |lua-window|
7. The luaeval function |lua-luaeval|
{Vi does not have any of these commands}
@ -56,13 +59,14 @@ Example:
<
*:luado*
:[range]luado {body} Execute Lua function "function (line) {body} end" for
each line in the [range], with the function argument
being set to the text of each line in turn, without a
trailing <EOL>. If the value returned by the function
is a string it becomes the text of the line in the
current turn. The default for [range] is the whole
file: "1,$". {not in Vi}
:[range]luado {body} Execute Lua function "function (line, linenr) {body}
end" for each line in the [range], with the function
argument being set to the text of each line in turn,
without a trailing <EOL>, and the current line number.
If the value returned by the function is a string it
becomes the text of the line in the current turn. The
default for [range] is the whole file: "1,$".
{not in Vi}
Examples:
>
@ -88,11 +92,9 @@ Examples:
All these commands execute a Lua chunk from either the command line (:lua and
:luado) or a file (:luafile) with the given line [range]. Similarly to the Lua
interpreter, each chunk has its own scope and so only global variables are
shared between command calls. Lua default libraries "table", "string", "math",
and "package" are available, "io" and "debug" are not, and "os" is restricted
to functions "date", "clock", "time", "difftime", and "getenv". In addition,
Lua "print" function has its output redirected to the Vim message area, with
arguments separated by a white space instead of a tab.
shared between command calls. All Lua default libraries are available. In
addition, Lua "print" function has its output redirected to the Vim message
area, with arguments separated by a white space instead of a tab.
Lua uses the "vim" module (see |lua-vim|) to issue commands to Vim
and manage buffers (|lua-buffer|) and windows (|lua-window|). However,
@ -108,9 +110,9 @@ input range are stored in "vim.firstline" and "vim.lastline" respectively. The
module also includes routines for buffer, window, and current line queries,
Vim evaluation and command execution, and others.
vim.isbuffer(value) Returns 'true' (boolean, not string) if
"value" is a buffer userdata and 'false'
otherwise (see |lua-buffer|).
vim.list() Returns an empty list (see |List|).
vim.dict() Returns an empty dictionary (see |Dictionary|).
vim.buffer([arg]) If "arg" is a number, returns buffer with
number "arg" in the buffer list or, if "arg"
@ -121,16 +123,21 @@ Vim evaluation and command execution, and others.
'true' returns the first buffer in the buffer
list or else the current buffer.
vim.iswindow(value) Returns 'true' (boolean, not string) if
"value" is a window userdata and
'false' otherwise (see |lua-window|).
vim.window([arg]) If "arg" is a number, returns window with
number "arg" or 'nil' (nil value, not string)
if not found. Otherwise, if "toboolean(arg)"
is 'true' returns the first window or else the
current window.
vim.type({arg}) Returns the type of {arg}. It is equivalent to
Lua's "type" function, but returns "list",
"dict", "buffer", or "window" if {arg} is a
list, dictionary, buffer, or window,
respectively. Examples: >
:lua l = vim.list()
:lua print(type(l), vim.type(l))
:" userdata list
<
vim.command({cmd}) Executes the vim (ex-mode) command {cmd}.
Examples: >
:lua vim.command"set tw=60"
@ -141,7 +148,7 @@ Vim evaluation and command execution, and others.
Vim strings and numbers are directly converted
to Lua strings and numbers respectively. Vim
lists and dictionaries are converted to Lua
tables (lists become integer-keyed tables).
userdata (see |lua-list| and |lua-dict|).
Examples: >
:lua tw = vim.eval"&tw"
:lua print(vim.eval"{'a': 'one'}".a)
@ -157,7 +164,72 @@ Vim evaluation and command execution, and others.
==============================================================================
3. Buffer userdata *lua-buffer*
3. List userdata *lua-list*
List userdata represent vim lists, and the interface tries to follow closely
Vim's syntax for lists. Since lists are objects, changes in list references in
Lua are reflected in Vim and vice-versa. A list "l" has the following
properties and methods:
Properties
----------
o "#l" is the number of items in list "l", equivalent to "len(l)"
in Vim.
o "l[k]" returns the k-th item in "l"; "l" is zero-indexed, as in Vim.
To modify the k-th item, simply do "l[k] = newitem"; in
particular, "l[k] = nil" removes the k-th item from "l".
o "l()" returns an iterator for "l".
Methods
-------
o "l:add(item)" appends "item" to the end of "l".
o "l:insert(item[, pos])" inserts "item" at (optional)
position "pos" in the list. The default value for "pos" is 0.
Examples:
>
:let l = [1, 'item']
:lua l = vim.eval('l') -- same 'l'
:lua l:add(vim.list())
:lua l[0] = math.pi
:echo l[0] " 3.141593
:lua l[0] = nil -- remove first item
:lua l:insert(true, 1)
:lua print(l, #l, l[0], l[1], l[-1])
:lua for item in l() do print(item) end
<
==============================================================================
4. Dict userdata *lua-dict*
Similarly to list userdata, dict userdata represent vim dictionaries; since
dictionaries are also objects, references are kept between Lua and Vim. A dict
"d" has the following properties:
Properties
----------
o "#d" is the number of items in dict "d", equivalent to "len(d)"
in Vim.
o "d.key" or "d['key']" returns the value at entry "key" in "d".
To modify the entry at this key, simply do "d.key = newvalue"; in
particular, "d.key = nil" removes the entry from "d".
o "d()" returns an iterator for "d" and is equivalent to "items(d)" in
Vim.
Examples:
>
:let d = {'n':10}
:lua d = vim.eval('d') -- same 'd'
:lua print(d, d.n, #d)
:let d.self = d
:lua for k, v in d() do print(d, k, v) end
:lua d.x = math.pi
:lua d.self = nil -- remove entry
:echo d
<
==============================================================================
5. Buffer userdata *lua-buffer*
Buffer userdata represent vim buffers. A buffer userdata "b" has the following
properties and methods:
@ -209,7 +281,7 @@ Examples:
<
==============================================================================
4. Window userdata *lua-window*
6. Window userdata *lua-window*
Window objects represent vim windows. A window userdata "w" has the following
properties and methods:
@ -241,4 +313,29 @@ Examples:
<
==============================================================================
vim:tw=78:ts=8:ft=help:norl:
7. The luaeval function *lua-luaeval* *lua-eval*
The (dual) equivalent of "vim.eval" for passing Lua values to Vim is
"luaeval". "luaeval" takes an expression string and an optional argument and
returns the result of the expression. It is semantically equivalent in Lua to:
>
local chunkheader = "local _A = select(1, ...) return "
function luaeval (expstr, arg)
local chunk = assert(loadstring(chunkheader .. expstr, "luaeval"))
return chunk(arg) -- return typval
end
<
Note that "_A" receives the argument to "luaeval". Examples: >
:echo luaeval('math.pi')
:lua a = vim.list():add('newlist')
:let a = luaeval('a')
:echo a[0] " 'newlist'
:function Rand(x,y) " random uniform between x and y
: return luaeval('(_A.y-_A.x)*math.random()+_A.x', {'x':a:x,'y':a:y})
: endfunction
:echo Rand(1,10)
==============================================================================
vim:tw=78:ts=8:noet:ft=help:norl:

View File

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

View File

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

View File

@ -1,4 +1,4 @@
*if_pyth.txt* For Vim version 7.3. Last change: 2010 Oct 20
*if_pyth.txt* For Vim version 7.3. Last change: 2013 Feb 03
VIM REFERENCE MANUAL by Paul Moore
@ -6,13 +6,14 @@
The Python Interface to Vim *python* *Python*
1. Commands |python-commands|
2. The vim module |python-vim|
3. Buffer objects |python-buffer|
4. Range objects |python-range|
5. Window objects |python-window|
6. Dynamic loading |python-dynamic|
7. Python 3 |python3|
1. Commands |python-commands|
2. The vim module |python-vim|
3. Buffer objects |python-buffer|
4. Range objects |python-range|
5. Window objects |python-window|
6. pyeval(), py3eval() Vim functions |python-pyeval|
7. Dynamic loading |python-dynamic|
8. Python 3 |python3|
{Vi does not have any of these commands}
@ -26,7 +27,9 @@ The Python 3 interface is available only when Vim was compiled with the
*:python* *:py* *E205* *E263* *E264*
:[range]py[thon] {stmt}
Execute Python statement {stmt}.
Execute Python statement {stmt}. A simple check if
the `:python` command is working: >
:python print "Hello"
:[range]py[thon] << {endmarker}
{script}
@ -51,8 +54,8 @@ Example: >
EOF
endfunction
<
Note: Python is very sensitive to the indenting. Also make sure the "class"
line and "EOF" do not have any indent.
Note: Python is very sensitive to the indenting. Make sure the "class" line
and "EOF" do not have any indent.
*:pyfile* *:pyf*
:[range]pyf[ile] {file}
@ -150,6 +153,42 @@ vim.eval(str) *python-eval*
[{'cmd': '/^eval_expr(arg, nextcmd)$/', 'static': 0, 'name':
'eval_expr', 'kind': 'f', 'filename': './src/eval.c'}]
vim.bindeval(str) *python-bindeval*
Like |python-eval|, but
1. if expression evaluates to |List| or |Dictionary| it is returned as
vimlist or vimdictionary python type that are connected to original
list or dictionary. Thus modifications to these objects imply
modifications of the original.
Additionally, vimlist and vimdictionary type have read-write
`.locked` attribute that returns
Value Meaning ~
zero Variable is not locked
vim.VAR_LOCKED Variable is locked, but can be unlocked
vim.VAR_FIXED Variable is locked and can't be unlocked
integer constants. If variable is not fixed, you can do
`var.locked=True` to lock it and `var.locked=False` to unlock.
There is no recursive locking like |:lockvar|! does. There is also
no way to lock a specific key or check whether it is locked (in any
case these locks are ignored by anything except |:let|: |extend()|
does not care, neither does python interface).
Vimdictionary type also supports `.scope` attribute which is one of
Value Meaning ~
zero Dictionary is not a scope one
vim.VAR_DEF_SCOPE Function-local or global scope dictionary
vim.VAR_SCOPE Other scope dictionary
2. if expression evaluates to a function reference, then it returns
callable vimfunction object. Use self keyword argument to assign
|self| object for dictionary functions.
Note: this function has the same behavior as |lua-eval| (except that
lua does not support running vim functions), |python-eval| is
kept for backwards compatibility in order not to make scripts
relying on outputs of vim.eval() being a copy of original or
vim.eval("1") returning a string.
Error object of the "vim" module
@ -222,8 +261,9 @@ Buffer objects represent vim buffers. You can obtain them in a number of ways:
- from indexing vim.buffers (|python-buffers|)
- from the "buffer" attribute of a window (|python-window|)
Buffer objects have one read-only attribute - name - the full file name for
the buffer. They also have three methods (append, mark, and range; see below).
Buffer objects have two read-only attributes - name - the full file name for
the buffer, and number - the buffer number. They also have three methods
(append, mark, and range; see below).
You can also treat buffer objects as sequence objects. In this context, they
act as if they were lists (yes, they are mutable) of strings, with each
@ -318,7 +358,13 @@ The height attribute is writable only if the screen is split horizontally.
The width attribute is writable only if the screen is split vertically.
==============================================================================
6. Dynamic loading *python-dynamic*
6. pyeval() and py3eval() Vim functions *python-pyeval*
To facilitate bi-directional interface, you can use |pyeval()| and |py3eval()|
functions to evaluate Python expressions and pass their values to VimL.
==============================================================================
7. Dynamic loading *python-dynamic*
On MS-Windows the Python library can be loaded dynamically. The |:version|
output then includes |+python/dyn|.
@ -335,13 +381,16 @@ Currently the name is "python24.dll". That is for Python 2.4. To know for
sure edit "gvim.exe" and search for "python\d*.dll\c".
==============================================================================
7. Python 3 *python3*
8. Python 3 *python3*
*:py3* *:python3*
The |:py3| and |:python3| commands work similar to |:python|.
*:py3file*
The |:py3| and |:python3| commands work similar to |:python|. A simple check
if the `:py3` command is working: >
:py3 print("Hello")
< *:py3file*
The |:py3file| command works similar to |:pyfile|.
Vim can be built in four ways (:version output):
1. No Python support (-python, -python3)
2. Python 2 support only (+python or +python/dyn, -python3)
@ -377,6 +426,18 @@ To work around such problems there are these options:
3. You undefine PY_NO_RTLD_GLOBAL in auto/config.h after configuration. This
may crash Vim though.
*has-python*
You can test what Python version is available with: >
if has('python')
echo 'there is Python 2.x'
elseif has('python3')
echo 'there is Python 3.x'
endif
Note however, that when Python 2 and 3 are both available and loaded
dynamically, these has() calls will try to load them. If only one can be
loaded at a time, just checking if Python 2 or 3 are available will prevent
the other one from being available.
==============================================================================
vim:tw=78:ts=8:ft=help:norl:

View File

@ -1,4 +1,4 @@
*if_ruby.txt* For Vim version 7.3. Last change: 2010 Oct 27
*if_ruby.txt* For Vim version 7.3. Last change: 2012 Aug 02
VIM REFERENCE MANUAL by Shugo Maeda
@ -25,7 +25,8 @@ downloading Ruby there.
1. Commands *ruby-commands*
*:ruby* *:rub*
:rub[y] {cmd} Execute Ruby command {cmd}.
:rub[y] {cmd} Execute Ruby command {cmd}. A command to try it out: >
:ruby print "Hello"
:rub[y] << {endpattern}
{script}
@ -40,9 +41,6 @@ downloading Ruby there.
wasn't compiled in. To avoid errors, see
|script-here|.
Command to try it out: >
:ruby print "Hello" # this is a comment
Example Vim script: >
function! RedGem()
@ -211,6 +209,8 @@ for sure edit "gvim.exe" and search for "ruby\d*.dll\c".
If you want to build Vim with Ruby 1.9.1, you need to edit the config.h file
and comment-out the check for _MSC_VER.
You may also need to rename the include directory name to match the version,
strangely for Ruby 1.9.3 the directory is called 1.9.1.
==============================================================================
vim:tw=78:ts=8:ft=help:norl:

View File

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

View File

@ -1,4 +1,4 @@
*indent.txt* For Vim version 7.3. Last change: 2011 Mar 18
*indent.txt* For Vim version 7.3. Last change: 2012 Aug 30
VIM REFERENCE MANUAL by Bram Moolenaar
@ -128,13 +128,20 @@ have changed the indent by typing <BS>, <Tab>, or <Space> in the indent or
used CTRL-T or CTRL-D.
*cinoptions-values*
The 'cinoptions' option sets how Vim performs indentation. In the list below,
The 'cinoptions' option sets how Vim performs indentation. The value after
the option character can be one of these (N is any number):
N indent N spaces
-N indent N spaces to the left
Ns N times 'shiftwidth' spaces
-Ns N times 'shiftwidth' spaces to the left
In the list below,
"N" represents a number of your choice (the number can be negative). When
there is an 's' after the number, Vim multiplies the number by 'shiftwidth':
"1s" is 'shiftwidth', "2s" is two times 'shiftwidth', etc. You can use a
decimal point, too: "-0.5s" is minus half a 'shiftwidth'. The examples below
assume a 'shiftwidth' of 4.
decimal point, too: "-0.5s" is minus half a 'shiftwidth'.
The examples below assume a 'shiftwidth' of 4.
*cino->*
>N Amount added for "normal" indent. Used after a line that should
increase the indent (lines starting with "if", an opening brace,
etc.). (default 'shiftwidth').
@ -145,6 +152,7 @@ assume a 'shiftwidth' of 4.
foo; foo; foo;
} } }
<
*cino-e*
eN Add N to the prevailing indent inside a set of braces if the
opening brace at the End of the line (more precise: is not the
first character in a line). This is useful if you want a
@ -160,6 +168,7 @@ assume a 'shiftwidth' of 4.
bar; bar; bar;
} } }
<
*cino-n*
nN Add N to the prevailing indent for a statement after an "if",
"while", etc., if it is NOT inside a set of braces. This is
useful if you want a different indent when there is no '{'
@ -174,6 +183,7 @@ assume a 'shiftwidth' of 4.
bar; bar; bar;
} } }
<
*cino-f*
fN Place the first opening brace of a function or other block in
column N. This applies only for an opening brace that is not
inside other braces and is at the start of the line. What comes
@ -184,6 +194,7 @@ assume a 'shiftwidth' of 4.
{ { {
int foo; int foo; int foo;
<
*cino-{*
{N Place opening braces N characters from the prevailing indent.
This applies only for opening braces that are inside other
braces. (default 0).
@ -193,6 +204,7 @@ assume a 'shiftwidth' of 4.
{ { {
foo; foo; foo;
<
*cino-}*
}N Place closing braces N characters from the matching opening
brace. (default 0).
@ -202,6 +214,7 @@ assume a 'shiftwidth' of 4.
foo; foo; foo;
} } }
<
*cino-^*
^N Add N to the prevailing indent inside a set of braces if the
opening brace is in column 0. This can specify a different
indent for whole of a function (some may like to set it to a
@ -216,6 +229,7 @@ assume a 'shiftwidth' of 4.
} } }
} } }
<
*cino-L*
LN Controls placement of jump labels. If N is negative, the label
will be placed at column 1. If N is non-negative, the indent of
the label will be the prevailing indent minus N. (default -1).
@ -229,6 +243,7 @@ assume a 'shiftwidth' of 4.
} } }
} } }
<
*cino-:*
:N Place case labels N characters from the indent of the switch().
(default 'shiftwidth').
@ -240,6 +255,7 @@ assume a 'shiftwidth' of 4.
default: default:
} }
<
*cino-=*
=N Place statements occurring after a case label N characters from
the indent of the label. (default 'shiftwidth').
@ -247,6 +263,7 @@ assume a 'shiftwidth' of 4.
case 11: case 11: a = a + 1;
a = a + 1; b = b + 1;
<
*cino-l*
lN If N != 0 Vim will align with a case label instead of the
statement after it in the same line.
@ -256,6 +273,7 @@ assume a 'shiftwidth' of 4.
break; break;
} }
<
*cino-b*
bN If N != 0 Vim will align a final "break" with the case label,
so that case..break looks like a sort of block. (default: 0).
When using 1, consider adding "0=break" to 'cinkeys'.
@ -272,6 +290,7 @@ assume a 'shiftwidth' of 4.
break; break;
} }
<
*cino-g*
gN Place C++ scope declarations N characters from the indent of the
block they are in. (default 'shiftwidth'). A scope declaration
can be "public:", "protected:" or "private:".
@ -283,6 +302,7 @@ assume a 'shiftwidth' of 4.
private: private:
} }
<
*cino-h*
hN Place statements occurring after a C++ scope declaration N
characters from the indent of the label. (default
'shiftwidth').
@ -291,6 +311,21 @@ assume a 'shiftwidth' of 4.
public: public: a = a + 1;
a = a + 1; b = b + 1;
<
*cino-N*
NN Indent inside C++ namespace N characters extra compared to a
normal block. (default 0).
cino= cino=N-s >
namespace { namespace {
void function(); void function();
} }
namespace my namespace my
{ {
void function(); void function();
} }
<
*cino-p*
pN Parameter declarations for K&R-style function declarations will
be indented N characters from the margin. (default
'shiftwidth').
@ -300,6 +335,7 @@ assume a 'shiftwidth' of 4.
int a; int a; int a;
char b; char b; char b;
<
*cino-t*
tN Indent a function return type declaration N characters from the
margin. (default 'shiftwidth').
@ -307,6 +343,7 @@ assume a 'shiftwidth' of 4.
int int int
func() func() func()
<
*cino-i*
iN Indent C++ base class declarations and constructor
initializations, if they start in a new line (otherwise they
are aligned at the right side of the ':').
@ -320,6 +357,7 @@ assume a 'shiftwidth' of 4.
BaseClass(3) BaseClass(3)
{} {}
<
*cino-+*
+N Indent a continuation line (a line that spills onto the next)
inside a function N additional characters. (default
'shiftwidth').
@ -330,6 +368,7 @@ assume a 'shiftwidth' of 4.
a = b + 9 * a = b + 9 *
c; c;
<
*cino-c*
cN Indent comment lines after the comment opener, when there is no
other text with which to align, N characters from the comment
opener. (default 3). See also |format-comments|.
@ -339,6 +378,7 @@ assume a 'shiftwidth' of 4.
text. text.
*/ */
<
*cino-C*
CN When N is non-zero, indent comment lines by the amount specified
with the c flag above even if there is other text behind the
comment opener. (default 0).
@ -349,12 +389,14 @@ assume a 'shiftwidth' of 4.
********/ ********/
< (Example uses ":set comments& comments-=s1:/* comments^=s0:/*")
*cino-/*
/N Indent comment lines N characters extra. (default 0).
cino= cino=/4 >
a = b; a = b;
/* comment */ /* comment */
c = d; c = d;
<
*cino-(*
(N When in unclosed parentheses, indent N characters from the line
with the unclosed parentheses. Add a 'shiftwidth' for every
unclosed parentheses. When N is 0 or the unclosed parentheses
@ -370,6 +412,7 @@ assume a 'shiftwidth' of 4.
(c2 || c3)) (c2 || c3))
{ {
<
*cino-u*
uN Same as (N, but for one level deeper. (default 'shiftwidth').
cino= cino=u2 >
@ -377,6 +420,7 @@ assume a 'shiftwidth' of 4.
&& (c22345 && (c22345
|| c3)) || c3))
<
*cino-U*
UN When N is non-zero, do not ignore the indenting specified by
( or u in case that the unclosed parentheses is the first
non-white character in its line. (default 0).
@ -388,6 +432,7 @@ assume a 'shiftwidth' of 4.
c3 c3
) && c4; ) && c4;
<
*cino-w*
wN When in unclosed parentheses and N is non-zero and either
using "(0" or "u0", respectively, or using "U0" and the unclosed
parentheses is the first non-white character in its line, line
@ -400,6 +445,7 @@ assume a 'shiftwidth' of 4.
|| c3)) || c3))
foo; foo;
<
*cino-W*
WN When in unclosed parentheses and N is non-zero and either
using "(0" or "u0", respectively and the unclosed parentheses is
the last non-white character in its line and it is not the
@ -414,6 +460,23 @@ assume a 'shiftwidth' of 4.
a_short_line(argument, a_short_line(argument,
argument); argument);
<
*cino-k*
kN When in unclosed parentheses which follow "if", "for" or
"while" and N is non-zero, overrides the behaviour defined by
"(N": causes the indent to be N characters relative to the outer
context (i.e. the line where "if", "for" or "while" is). Has
no effect on deeper levels of nesting. Affects flags like "wN"
only for the "if", "for" and "while" conditions. If 0, defaults
to behaviour defined by the "(N" flag. (default: 0).
cino=(0 cino=(0,ks >
if (condition1 if (condition1
&& condition2) && condition2)
action(); action();
function(argument1 function(argument1
&& argument2); && argument2);
<
*cino-m*
mN When N is non-zero, line up a line starting with a closing
parentheses with the first character of the line with the
matching opening parentheses. (default 0).
@ -428,6 +491,7 @@ assume a 'shiftwidth' of 4.
) )
foo; foo;
<
*cino-M*
MN When N is non-zero, line up a line starting with a closing
parentheses with the first character of the previous line.
(default 0).
@ -437,10 +501,11 @@ assume a 'shiftwidth' of 4.
cond2 cond2
) )
<
*java-cinoptions* *java-indenting*
jN Indent java anonymous classes correctly. The value 'N' is
currently unused but must be non-zero (e.g. 'j1'). 'j1' will
indent for example the following code snippet correctly: >
*java-cinoptions* *java-indenting* *cino-j*
jN Indent Java anonymous classes correctly. Also works well for
Javascript. The value 'N' is currently unused but must be
non-zero (e.g. 'j1'). 'j1' will indent for example the
following code snippet correctly: >
object.add(new ChangeListener() {
public void stateChanged(ChangeEvent e) {
@ -448,10 +513,11 @@ assume a 'shiftwidth' of 4.
}
});
<
*javascript-cinoptions* *javascript-indenting*
*javascript-cinoptions* *javascript-indenting* *cino-J*
JN Indent JavaScript object declarations correctly by not confusing
them with labels. The value 'N' is currently unused but must be
non-zero (e.g. 'J1'). >
non-zero (e.g. 'J1'). If you enable this you probably also want
to set |cino-j|. >
var bar = {
foo: {
@ -466,23 +532,28 @@ assume a 'shiftwidth' of 4.
}
}
<
*cino-)*
)N Vim searches for unclosed parentheses at most N lines away.
This limits the time needed to search for parentheses. (default
20 lines).
*cino-star*
*N Vim searches for unclosed comments at most N lines away. This
limits the time needed to search for the start of a comment.
If your /* */ comments stop indenting after N lines this is the
value you will want to change.
(default 70 lines).
*cino-#*
#N When N is non-zero recognize shell/Perl comments, starting with
'#'. Default N is zero: don't recognizes '#' comments. Note
'#'. Default N is zero: don't recognize '#' comments. Note
that lines starting with # will still be seen as preprocessor
lines.
The defaults, spelled out in full, are:
cinoptions=>s,e0,n0,f0,{0,}0,^0,L-1,:s,=s,l0,b0,gs,hs,ps,ts,is,+s,
c3,C0,/0,(2s,us,U0,w0,W0,m0,j0,J0,)20,*70,#0
cinoptions=>s,e0,n0,f0,{0,}0,^0,L-1,:s,=s,l0,b0,gs,hs,N0,ps,ts,is,+s,
c3,C0,/0,(2s,us,U0,w0,W0,k0,m0,j0,J0,)20,*70,#0
Vim puts a line in column 1 if:
- It starts with '#' (preprocessor directives), if 'cinkeys' contains '#'.
@ -506,15 +577,117 @@ $VIMRUNTIME/indent directory for examples.
REMARKS ABOUT SPECIFIC INDENT FILES ~
CLOJURE *ft-clojure-indent* *clojure-indent*
Clojure indentation differs somewhat from traditional Lisps, due in part to
the use of square and curly brackets, and otherwise by community convention.
These conventions are not always universally followed, so the Clojure indent
script offers a few configurable options, listed below.
If the current vim does not include searchpairpos(), the indent script falls
back to normal 'lisp' indenting, and the following options are ignored.
*g:clojure_maxlines*
Set maximum scan distance of searchpairpos(). Larger values trade performance
for correctness when dealing with very long forms. A value of 0 will scan
without limits.
>
" Default
let g:clojure_maxlines = 100
<
*g:clojure_fuzzy_indent*
*g:clojure_fuzzy_indent_patterns*
*g:clojure_fuzzy_indent_blacklist*
The 'lispwords' option is a list of comma-separated words that mark special
forms whose subforms must be indented with two spaces.
For example:
>
(defn bad []
"Incorrect indentation")
(defn good []
"Correct indentation")
<
If you would like to specify 'lispwords' with a |pattern| instead, you can use
the fuzzy indent feature:
>
" Default
let g:clojure_fuzzy_indent = 1
let g:clojure_fuzzy_indent_patterns = ['^with', '^def', '^let']
let g:clojure_fuzzy_indent_blacklist =
\ ['-fn$', '\v^with-%(meta|out-str|loading-context)$']
" Legacy comma-delimited string version; the list format above is
" recommended. Note that patterns are implicitly anchored with ^ and $
let g:clojure_fuzzy_indent_patterns = 'with.*,def.*,let.*'
<
|g:clojure_fuzzy_indent_patterns| and |g:clojure_fuzzy_indent_blacklist| are
|Lists| of patterns that will be matched against the unquoted, unqualified
symbol at the head of a list. This means that a pattern like "^foo" will match
all these candidates: "foobar", "my.ns/foobar", and "#'foobar".
Each candidate word is tested for special treatment in this order:
1. Return true if word is literally in 'lispwords'
2. Return false if word matches a pattern in
|g:clojure_fuzzy_indent_blacklist|
3. Return true if word matches a pattern in
|g:clojure_fuzzy_indent_patterns|
4. Return false and indent normally otherwise
*g:clojure_special_indent_words*
Some forms in Clojure are indented so that every subform is indented only two
spaces, regardless of 'lispwords'. If you have a custom construct that should
be indented in this idiosyncratic fashion, you can add your symbols to the
default list below.
>
" Default
let g:clojure_special_indent_words =
\ 'deftype,defrecord,reify,proxy,extend-type,extend-protocol,letfn'
<
*g:clojure_align_multiline_strings*
Align subsequent lines in multiline strings to the column after the opening
quote, instead of the same column.
For example:
>
(def default
"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut
enim ad minim veniam, quis nostrud exercitation ullamco laboris
nisi ut aliquip ex ea commodo consequat.")
(def aligned
"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut
enim ad minim veniam, quis nostrud exercitation ullamco laboris
nisi ut aliquip ex ea commodo consequat.")
<
This option is off by default.
>
" Default
let g:clojure_align_multiline_strings = 0
<
FORTRAN *ft-fortran-indent*
Block if, select case, and where constructs are indented. Comments, labelled
statements and continuation lines are indented if the Fortran is in free
source form, whereas they are not indented if the Fortran is in fixed source
form because of the left margin requirements. Hence manual indent corrections
will be necessary for labelled statements and continuation lines when fixed
source form is being used. For further discussion of the method used for the
detection of source format see |ft-fortran-syntax|.
Block if, select case, where, and forall constructs are indented. So are
type, interface, associate, block, and enum constructs. The indenting of
subroutines, functions, modules, and program blocks is optional. Comments,
labelled statements and continuation lines are indented if the Fortran is in
free source form, whereas they are not indented if the Fortran is in fixed
source form because of the left margin requirements. Hence manual indent
corrections will be necessary for labelled statements and continuation lines
when fixed source form is being used. For further discussion of the method
used for the detection of source format see |ft-fortran-syntax|.
Do loops ~
All do loops are left unindented by default. Do loops can be unstructured in
@ -541,6 +714,20 @@ autocommand such as >
to get do loops indented in .f90 files and left alone in Fortran files with
other extensions such as .for.
Program units ~
The indenting of program units (subroutines, functions, modules, and program
blocks) is enabled by default but can be suppressed if a lighter, screen-width
preserving indent style is desired. To suppress the indenting of program
units for all fortran files set the global fortran_indent_less variable in
your .vimrc as follows >
let fortran_indent_less=1
A finer level of suppression can be achieved by setting the corresponding
buffer-local variable as follows >
let b:fortran_indent_less=1
PHP *ft-php-indent* *php-indent* *php-indenting*
@ -635,6 +822,43 @@ Indent for a continuation line: >
let g:pyindent_continue = '&sw * 2'
R *ft-r-indent*
Function arguments are aligned if they span for multiple lines. If you prefer
do not have the arguments of functions aligned, put in your |vimrc|:
>
let r_indent_align_args = 0
<
All lines beginning with a comment character, #, get the same indentation
level of the normal R code. Users of Emacs/ESS may be used to have lines
beginning with a single # indented in the 40th column, ## indented as R code,
and ### not indented. If you prefer that lines beginning with comment
characters are aligned as they are by Emacs/ESS, put in your |vimrc|:
>
let r_indent_ess_comments = 1
<
If you prefer that lines beginning with a single # are aligned at a column
different from the 40th one, you should set a new value to the variable
r_indent_comment_column, as in the example below:
>
let r_indent_comment_column = 30
<
Any code after a line that ends with "<-" is indented. Emacs/ESS does not
indent the code if it is a top level function. If you prefer that the
Vim-R-plugin behaves like Emacs/ESS in this regard, put in your |vimrc|:
>
let r_indent_ess_compatible = 1
<
Below is an example of indentation with and without this option enabled:
>
### r_indent_ess_compatible = 1 ### r_indent_ess_compatible = 0
foo <- foo <-
function(x) function(x)
{ {
paste(x) paste(x)
} }
<
SHELL *ft-sh-indent*
The amount of indent applied under various circumstances in a shell file can

View File

@ -1,4 +1,4 @@
*index.txt* For Vim version 7.3. Last change: 2011 Jan 04
*index.txt* For Vim version 7.3. Last change: 2012 Jul 25
VIM REFERENCE MANUAL by Bram Moolenaar
@ -94,8 +94,8 @@ tag char action in Insert mode ~
|i_CTRL-Z| CTRL-Z when 'insertmode' set: suspend Vim
|i_<Esc>| <Esc> end insert mode (unless 'insertmode' set)
|i_CTRL-[| CTRL-[ same as <Esc>
|i_CTRL-\_CTRL-N| CTRL-\ CTRL-N go to Normal mode
|i_CTRL-\_CTRL-G| CTRL-\ CTRL-G go to mode specified with 'insertmode'
|i_CTRL-\_CTRL-N| CTRL-\ CTRL-N go to Normal mode
|i_CTRL-\_CTRL-G| CTRL-\ CTRL-G go to mode specified with 'insertmode'
CTRL-\ a - z reserved for extensions
CTRL-\ others not used
|i_CTRL-]| CTRL-] trigger abbreviation
@ -141,7 +141,7 @@ tag char action in Insert mode ~
|i_<ScrollWheelUp>| <ScrollWheelUp> move window three lines up
|i_<S-ScrollWheelUp>| <S-ScrollWheelUp> move window one page up
|i_<ScrollWheelLeft>| <ScrollWheelLeft> move window six columns left
|i_<S-ScrollWheelLeft>| <S-ScrollWheelLeft> move window one page left
|i_<S-ScrollWheelLeft>| <S-ScrollWheelLeft> move window one page left
|i_<ScrollWheelRight>| <ScrollWheelRight> move window six columns right
|i_<S-ScrollWheelRight>| <S-ScrollWheelRight> move window one page right
@ -212,8 +212,8 @@ tag char note action in Normal mode ~
|CTRL-Y| CTRL-Y scroll N lines downwards
|CTRL-Z| CTRL-Z suspend program (or start new shell)
CTRL-[ <Esc> not used
|CTRL-\_CTRL-N| CTRL-\ CTRL-N go to Normal mode (no-op)
|CTRL-\_CTRL-G| CTRL-\ CTRL-G go to mode specified with 'insertmode'
|CTRL-\_CTRL-N| CTRL-\ CTRL-N go to Normal mode (no-op)
|CTRL-\_CTRL-G| CTRL-\ CTRL-G go to mode specified with 'insertmode'
CTRL-\ a - z reserved for extensions
CTRL-\ others not used
|CTRL-]| CTRL-] :ta to ident under cursor
@ -431,7 +431,7 @@ tag char note action in Normal mode ~
|<Insert>| <Insert> 2 same as "i"
|<Left>| <Left> 1 same as "h"
|<LeftMouse>| <LeftMouse> 1 move cursor to the mouse click position
|<MiddleMouse>| <MiddleMouse> 2 same as "gP" at the mouse click position
|<MiddleMouse>| <MiddleMouse> 2 same as "gP" at the mouse click position
|<PageDown>| <PageDown> same as CTRL-F
|<PageUp>| <PageUp> same as CTRL-B
|<Right>| <Right> 1 same as "l"
@ -640,7 +640,7 @@ tag char note action in Normal mode ~
|[s| [s 1 move to the previous misspelled word
|[z| [z 1 move to start of open fold
|[{| [{ 1 cursor N times back to unmatched '{'
|[<MiddleMouse> [<MiddleMouse> 2 same as "[p"
|[<MiddleMouse>| [<MiddleMouse> 2 same as "[p"
|]_CTRL-D| ] CTRL-D jump to first #define found in current and
included files matching the word under the
@ -680,7 +680,7 @@ tag char note action in Normal mode ~
|]s| ]s 1 move to next misspelled word
|]z| ]z 1 move to end of open fold
|]}| ]} 1 cursor N times forward to unmatched '}'
|]<MiddleMouse> ]<MiddleMouse> 2 same as "]p"
|]<MiddleMouse>| ]<MiddleMouse> 2 same as "]p"
==============================================================================
2.4 Commands starting with 'g' *g*
@ -719,6 +719,8 @@ tag char note action in Normal mode ~
|gH| gH start Select line mode
|gI| gI 2 like "I", but always start in column 1
|gJ| gJ 2 join lines without inserting space
|gN| gN 1,2 find the previous match with the last used
search pattern and Visually select it
|gP| ["x]gP 2 put the text [from register x] before the
cursor N times, leave the cursor after it
|gQ| gQ switch to "Ex" mode with Vim editing
@ -751,6 +753,8 @@ tag char note action in Normal mode ~
lines down
|gk| gk 1 like "k", but when 'wrap' on go N screen
lines up
|gn| gn 1,2 find the next match with the last used
search pattern and Visually select it
|gm| gm 1 go to character at middle of the screenline
|go| go 1 cursor to byte N in the buffer
|gp| ["x]gp 2 put the text [from register x] after the
@ -1007,8 +1011,8 @@ tag command action in Command-line editing mode ~
CTRL-Z not used (reserved for suspend)
|c_<Esc>| <Esc> abandon command-line without executing it
|c_<Esc>| CTRL-[ same as <Esc>
|c_CTRL-\_CTRL-N| CTRL-\ CTRL-N go to Normal mode, abandon command-line
|c_CTRL-\_CTRL-G| CTRL-\ CTRL-G go to mode specified with 'insertmode',
|c_CTRL-\_CTRL-N| CTRL-\ CTRL-N go to Normal mode, abandon command-line
|c_CTRL-\_CTRL-G| CTRL-\ CTRL-G go to mode specified with 'insertmode',
abandon command-line
CTRL-\ a - d reserved for extensions
|c_CTRL-\_e| CTRL-\ e {expr} replace the command line with the result of
@ -1261,7 +1265,7 @@ tag command action ~
|:k| :k set a mark
|:keepalt| :keepa[lt] following command keeps the alternate file
|:keepmarks| :kee[pmarks] following command keeps marks where they are
|:keepjumps| :keepj[jumps] following command keeps jumplist and marks
|:keepjumps| :keepj[umps] following command keeps jumplist and marks
|: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

@ -1,4 +1,4 @@
*insert.txt* For Vim version 7.3. Last change: 2010 Nov 10
*insert.txt* For Vim version 7.3. Last change: 2013 Jan 09
VIM REFERENCE MANUAL by Bram Moolenaar
@ -380,11 +380,16 @@ The CTRL-O command sometimes has a side effect: If the cursor was beyond the
end of the line, it will be put on the last character in the line. In
mappings it's often better to use <Esc> (first put an "x" in the text, <Esc>
will then always put the cursor on it). Or use CTRL-\ CTRL-O, but then
beware of the cursor possibly being beyond the end of the line.
beware of the cursor possibly being beyond the end of the line. Note that the
command following CTRL-\ CTRL-O can still move the cursor, it is not restored
to its original position.
The CTRL-O command takes you to Normal mode. If you then use a command enter
Insert mode again it doesn't nest. Thus when typing "a<C-O>a" and then <Esc>
takes you back to Normal mode, you do not need to type <Esc> twice.
Insert mode again it normally doesn't nest. Thus when typing "a<C-O>a" and
then <Esc> takes you back to Normal mode, you do not need to type <Esc> twice.
An exception is when not typing the command, e.g. when executing a mapping or
sourcing a script. This makes mappings work that briefly switch to Insert
mode.
The shifted cursor keys are not available on all terminals.
@ -398,7 +403,12 @@ An example for using CTRL-G u: >
This redefines the backspace key to start a new undo sequence. You can now
undo the effect of the backspace key, without changing what you typed before
that, with CTRL-O u.
that, with CTRL-O u. Another example: >
:inoremap <CR> <C-]><C-G>u<CR>
This breaks undo at each line break. It also expands abbreviations before
this.
Using CTRL-O splits undo: the text typed before and after it is undone
separately. If you want to avoid this (e.g., in a mapping) you might be able
@ -483,7 +493,7 @@ option}
*ins-smarttab*
When the 'smarttab' option is on, a <Tab> inserts 'shiftwidth' positions at
the beginning of a line and 'tabstop' positions in other places. This means
that often spaces instead of a <Tab> character are inserted. When 'smarttab
that often spaces instead of a <Tab> character are inserted. When 'smarttab'
is off, a <Tab> always inserts 'tabstop' positions, and 'shiftwidth' is only
used for ">>" and the like. {not in Vi}
@ -1009,8 +1019,13 @@ The function must return the column where the completion starts. It must be a
number between zero and the cursor column "col('.')". This involves looking
at the characters just before the cursor and including those characters that
could be part of the completed item. The text between this column and the
cursor column will be replaced with the matches. Return -1 if no completion
can be done.
cursor column will be replaced with the matches.
Special return values:
-1 If no completion can be done, the completion will be cancelled with an
error message.
-2 To cancel silently and stay in completion mode.
-3 To cancel silently and leave completion mode.
On the second invocation the arguments are:
a:findstart 0
@ -1020,6 +1035,23 @@ On the second invocation the arguments are:
The function must return a List with the matching words. These matches
usually include the "a:base" text. When there are no matches return an empty
List.
In order to return more information than the matching words, return a Dict
that contains the List. The Dict can have these items:
words The List of matching words (mandatory).
refresh A string to control re-invocation of the function
(optional).
The only value currently recognized is "always", the
effect is that the function is called whenever the
leading text is changed.
Other items are ignored.
For acting upon end of completion, see the |CompleteDone| autocommand event.
For example, the function can contain this: >
let matches = ... list of words ...
return {'words': matches, 'refresh': 'always'}
<
*complete-items*
Each list item can either be a string or a Dictionary. When it is a string it
is used as the completion. When it is a Dictionary it can contain these
@ -1040,9 +1072,10 @@ items:
empty when non-zero this match will be added even when it is
an empty string
All of these except 'icase' must be a string. If an item does not meet these
requirements then an error message is given and further items in the list are
not used. You can mix string and Dictionary items in the returned list.
All of these except 'icase', 'dup' and 'empty' must be a string. If an item
does not meet these requirements then an error message is given and further
items in the list are not used. You can mix string and Dictionary items in
the returned list.
The "menu" item is used in the popup menu and may be truncated, thus it should
be relatively short. The "info" item can be longer, it will be displayed in

View File

@ -1,4 +1,4 @@
*intro.txt* For Vim version 7.3. Last change: 2010 Dec 08
*intro.txt* For Vim version 7.3. Last change: 2012 Sep 05
VIM REFERENCE MANUAL by Bram Moolenaar
@ -135,8 +135,10 @@ http://www.vim.org/maillist.php
Bug reports: *bugs* *bug-reports* *bugreport.vim*
Send bug reports to: Vim bugs <bugs@vim.org>
This is not a maillist but the message is redirected to the Vim maintainer.
Send bug reports to: Vim Developers <vim_dev@vim.org>
This is a maillist, many people will see the message. If you don't want that,
e.g. because it is a security issue, send it to <bugs@vim.org>, this only goes
to the Vim maintainer (that's Bram).
Please be brief; all the time that is spent on answering mail is subtracted
from the time that is spent on improving Vim! Always give a reproducible
example and try to find out which settings or other things influence the
@ -392,6 +394,8 @@ CTRL-{char} {char} typed as a control character; that is, typing {char}
*quotecommandquote*
"command" A reference to a command that you can type is enclosed in
double quotes.
`command` New style command, this distinguishes it from other
quoted text and strings.
*key-notation* *key-codes* *keycodes*
These names for keys are used in the documentation. They can also be used

View File

@ -1,4 +1,4 @@
*map.txt* For Vim version 7.3. Last change: 2010 Nov 10
*map.txt* For Vim version 7.3. Last change: 2012 Apr 13
VIM REFERENCE MANUAL by Bram Moolenaar
@ -107,6 +107,8 @@ modes.
:cmapc[lear] |mapmode-c| *:cmapc* *:cmapclear*
Remove ALL mappings for the modes where the map
command applies. {not in Vi}
Use the <buffer> argument to remove buffer-local
mappings |:map-<buffer>|
Warning: This also removes the default mappings.
:map |mapmode-nvo|
@ -226,7 +228,7 @@ text before the cursor and start omni completion when some condition is met.
For abbreviations |v:char| is set to the character that was typed to trigger
the abbreviation. You can use this to decide how to expand the {lhs}. You
can't change v:char and you should not insert it.
should not either insert or change the v:char.
Be very careful about side effects! The expression is evaluated while
obtaining characters, you may very well make the command dysfunctional.
@ -235,11 +237,18 @@ For this reason the following is blocked:
- Editing another buffer.
- The |:normal| command.
- Moving the cursor is allowed, but it is restored afterwards.
- You can use getchar(), but the existing typeahead isn't seen and new
typeahead is discarded.
If you want the mapping to do any of these let the returned characters do
that.
You can use getchar(), it consumes typeahead if there is any. E.g., if you
have these mappings: >
inoremap <expr> <C-L> nr2char(getchar())
inoremap <expr> <C-L>x "foo"
If you now type CTRL-L nothing happens yet, Vim needs the next character to
decide what mapping to use. If you type 'x' the second mapping is used and
"foo" is inserted. If you type any other key the first mapping is used,
getchar() gets the typed key and returns it.
Here is an example that inserts a list number that increases: >
let counter = 0
inoremap <expr> <C-L> ListItem()
@ -480,9 +489,9 @@ You can create an empty {rhs} by typing nothing after a single CTRL-V (you
have to type CTRL-V two times). Unfortunately, you cannot do this in a vimrc
file.
*<Nop>*
A easier way to get a mapping that doesn't produce anything, is to use "<Nop>"
for the {rhs}. This only works when the |<>| notation is enabled. For
example, to make sure that function key 8 does nothing at all: >
An easier way to get a mapping that doesn't produce anything, is to use
"<Nop>" for the {rhs}. This only works when the |<>| notation is enabled.
For example, to make sure that function key 8 does nothing at all: >
:map <F8> <Nop>
:map! <F8> <Nop>
<
@ -495,7 +504,7 @@ scenario: >
:set encoding=utf-8
The mapping for <M-C> is defined with the latin1 encoding, resulting in a 0xc3
byte. If you type the character <20> (0xe1 <M-a>) in UTF-8 encoding this is the
two bytes 0xc3 0xa1. You don't want the 0xc3 byte to be mapped then,
two bytes 0xc3 0xa1. You don't want the 0xc3 byte to be mapped then or
otherwise it would be impossible to type the <20> character.
*<Leader>* *mapleader*
@ -518,7 +527,7 @@ mappings.
<LocalLeader> is just like <Leader>, except that it uses "maplocalleader"
instead of "mapleader". <LocalLeader> is to be used for mappings which are
local to a buffer. Example: >
:map <LocalLeader>q \DoItNow
:map <buffer> <LocalLeader>A oanother line<Esc>
<
In a global plugin <Leader> should be used and in a filetype plugin
<LocalLeader>. "mapleader" and "maplocalleader" can be equal. Although, if
@ -542,6 +551,7 @@ construct can be used:
<Char-123> character 123
<Char-033> character 27
<Char-0x7f> character 127
<S-Char-114> character 114 ('r') shifted ('R')
This is useful to specify a (multi-byte) character in a 'keymap' file.
Upper and lowercase differences are ignored.
@ -934,11 +944,12 @@ See |:verbose-cmd| for more information.
avoid that a typed {lhs} is expanded, since
command-line abbreviations apply here.
:ab[breviate] [<expr>] {lhs} {rhs}
:ab[breviate] [<expr>] [<buffer>] {lhs} {rhs}
add abbreviation for {lhs} to {rhs}. If {lhs} already
existed it is replaced with the new {rhs}. {rhs} may
contain spaces.
See |:map-<expr>| for the optional <expr> argument.
See |:map-<buffer>| for the optional <buffer> argument.
*:una* *:unabbreviate*
:una[bbreviate] {lhs} Remove abbreviation for {lhs} from the list. If none
@ -948,12 +959,12 @@ See |:verbose-cmd| for more information.
expansion insert a CTRL-V (type it twice).
*:norea* *:noreabbrev*
:norea[bbrev] [<expr>] [lhs] [rhs]
:norea[bbrev] [<expr>] [<buffer>] [lhs] [rhs]
same as ":ab", but no remapping for this {rhs} {not
in Vi}
*:ca* *:cabbrev*
:ca[bbrev] [<expr>] [lhs] [rhs]
:ca[bbrev] [<expr>] [<buffer>] [lhs] [rhs]
same as ":ab", but for Command-line mode only. {not
in Vi}
@ -962,12 +973,12 @@ See |:verbose-cmd| for more information.
in Vi}
*:cnorea* *:cnoreabbrev*
:cnorea[bbrev] [<expr>] [lhs] [rhs]
:cnorea[bbrev] [<expr>] [<buffer>] [lhs] [rhs]
same as ":ab", but for Command-line mode only and no
remapping for this {rhs} {not in Vi}
*:ia* *:iabbrev*
:ia[bbrev] [<expr>] [lhs] [rhs]
:ia[bbrev] [<expr>] [<buffer>] [lhs] [rhs]
same as ":ab", but for Insert mode only. {not in Vi}
*:iuna* *:iunabbrev*
@ -975,18 +986,18 @@ See |:verbose-cmd| for more information.
Vi}
*:inorea* *:inoreabbrev*
:inorea[bbrev] [<expr>] [lhs] [rhs]
:inorea[bbrev] [<expr>] [<buffer>] [lhs] [rhs]
same as ":ab", but for Insert mode only and no
remapping for this {rhs} {not in Vi}
*:abc* *:abclear*
:abc[lear] Remove all abbreviations. {not in Vi}
:abc[lear] [<buffer>] Remove all abbreviations. {not in Vi}
*:iabc* *:iabclear*
:iabc[lear] Remove all abbreviations for Insert mode. {not in Vi}
:iabc[lear] [<buffer>] Remove all abbreviations for Insert mode. {not in Vi}
*:cabc* *:cabclear*
:cabc[lear] Remove all abbreviations for Command-line mode. {not
:cabc[lear] [<buffer>] Remove all abbreviations for Command-line mode. {not
in Vi}
*using_CTRL-V*
@ -1177,13 +1188,15 @@ reported if any are supplied). However, it is possible to specify that the
command can take arguments, using the -nargs attribute. Valid cases are:
-nargs=0 No arguments are allowed (the default)
-nargs=1 Exactly one argument is required
-nargs=* Any number of arguments are allowed (0, 1, or many)
-nargs=1 Exactly one argument is required, it includes spaces
-nargs=* Any number of arguments are allowed (0, 1, or many),
separated by white space
-nargs=? 0 or 1 arguments are allowed
-nargs=+ Arguments must be supplied, but any number are allowed
Arguments are considered to be separated by (unescaped) spaces or tabs in this
context.
context, except when there is one argument, then the white space is part of
the argument.
Note that arguments are used as text, not as expressions. Specifically,
"s:var" will use the script-local variable in the script where the command was
@ -1206,17 +1219,23 @@ completion can be enabled:
-complete=augroup autocmd groups
-complete=buffer buffer names
-complete=behave :behave suboptions
-complete=color color schemes
-complete=command Ex command (and arguments)
-complete=compiler compilers
-complete=cscope |:cscope| suboptions
-complete=dir directory names
-complete=environment environment variable names
-complete=event autocommand events
-complete=expression Vim expression
-complete=file file and directory names
-complete=file_in_path file and directory names in |'path'|
-complete=filetype filetype names |'filetype'|
-complete=function function name
-complete=help help subjects
-complete=highlight highlight groups
-complete=history :history suboptions
-complete=locale locale names (as output of locale -a)
-complete=mapping mapping name
-complete=menu menus
-complete=option options
@ -1225,6 +1244,7 @@ completion can be enabled:
-complete=syntax syntax file names |'syntax'|
-complete=tag tags
-complete=tag_listfiles tags, file names are shown when CTRL-D is hit
-complete=user user names
-complete=var user variables
-complete=custom,{func} custom completion, defined via {func}
-complete=customlist,{func} custom completion, defined via {func}
@ -1291,7 +1311,8 @@ Possible attributes are:
-range Range allowed, default is current line
-range=% Range allowed, default is whole file (1,$)
-range=N A count (default N) which is specified in the line
number position (like |:split|)
number position (like |:split|); allows for zero line
number.
-count=N A count (default N) which is specified either in the line
number position, or as an initial argument (like |:Next|).
Specifying -count (without a default) acts like -count=0

View File

@ -1,4 +1,4 @@
*mbyte.txt* For Vim version 7.3. Last change: 2011 Feb 01
*mbyte.txt* For Vim version 7.3. Last change: 2012 Oct 06
VIM REFERENCE MANUAL by Bram Moolenaar et al.
@ -475,7 +475,7 @@ Useful utilities for converting the charset:
|charset| converter. Supported |charset|: ISO-2022-CN, ISO-2022-JP,
ISO-2022-KR, EUC-CN, EUC-JP, EUC-KR, EUC-TW, UTF-7, UTF-8, ISO-8859
series, Shift_JIS, Big5 and HZ. Lv can be found at:
http://www.ff.iij4u.or.jp/~nrt/freeware/lv4495.tar.gz
http://www.ff.iij4u.or.jp/~nrt/lv/index.html
*mbyte-conversion*
@ -615,7 +615,7 @@ Each field means:
charsets, such as JIS X 0208, if this field is 0, code points has
the same value as GL, and GR if 1.
For example, in case of a 14 dots font corresponding to JIS X 0208, it is
For example, in case of a 16 dots font corresponding to JIS X 0208, it is
written like:
-misc-fixed-medium-r-normal--16-110-100-100-c-160-jisx0208.1990-0
@ -797,8 +797,8 @@ is suitable for complex input, such as CJK.
number of Hira-gana characters are 76. So, first, we pre-input text as
pronounced in Hira-gana, second, we convert Hira-gana to Kanji or Kata-Kana,
if needed. There are some Kana-Kanji conversion server: jserver
(distributed with Wnn, see below) and canna. Canna could be found at:
ftp://ftp.nec.co.jp/pub/Canna/ (no longer works).
(distributed with Wnn, see below) and canna. Canna can be found at:
http://canna.sourceforge.jp/
There is a good input system: Wnn4.2. Wnn 4.2 contains,
xwnmo (|IM-server|)
@ -857,7 +857,7 @@ Use the RPM or port for your system.
USING XIM *multibyte-input* *E284* *E286* *E287* *E288*
*E285* *E291* *E292* *E290* *E289*
*E285* *E289*
Note that Display and Input are independent. It is possible to see your
language even though you have no input method for it. But when your Display
@ -1085,6 +1085,13 @@ Since the mapping is defined with |:lnoremap| the resulting quote will not be
used for the start of another character.
The "accents" keymap uses this. *keymap-accents*
The first column can also be in |<>| form:
<C-c> Ctrl-C
<A-c> Alt-c
<A-C> Alt-C
Note that the Alt mappings may not work, depending on your keyboard and
terminal.
Although it's possible to have more than one character in the second column,
this is unusual. But you can use various ways to specify the character: >
A a literal character
@ -1306,8 +1313,8 @@ character. However, search patterns may not match on an overlong sequence.
character.) An exception is NUL (zero) which is displayed as "<00>".
In the file and buffer the full range of Unicode characters can be used (31
bits). However, displaying only works for 16 bit characters, and only for the
characters present in the selected font.
bits). However, displaying only works for the characters present in the
selected font.
Useful commands:
- "ga" shows the decimal, hexadecimal and octal value of the character under

View File

@ -1,4 +1,4 @@
*message.txt* For Vim version 7.3. Last change: 2011 Jan 30
*message.txt* For Vim version 7.3. Last change: 2011 May 10
VIM REFERENCE MANUAL by Bram Moolenaar
@ -27,8 +27,8 @@ The "g<" command can be used to see the last page of previous command output.
This is especially useful if you accidentally typed <Space> at the hit-enter
prompt. You are then back at the hit-enter prompt and can then scroll further
back.
Note: when you stopped the output with "q" at the more prompt only up to that
point will be displayed.
Note: If the output has been stopped with "q" at the more prompt, it will only
be displayed up to this point.
The previous command output is cleared when another command produces output.
If you are using translated messages, the first printed line tells who

View File

@ -1,4 +1,4 @@
*mlang.txt* For Vim version 7.3. Last change: 2010 Dec 11
*mlang.txt* For Vim version 7.3. Last change: 2012 Jan 15
VIM REFERENCE MANUAL by Bram Moolenaar
@ -59,7 +59,7 @@ use of "-" and "_".
system. Some systems accept aliases like "en" or
"en_US", but some only accept the full specification
like "en_US.ISO_8859-1". On Unix systems you can use
the this command to see what locales are supported: >
this command to see what locales are supported: >
:!locale -a
< With the "messages" argument the language used for
messages is set. This can be different when you want,

View File

@ -1,4 +1,4 @@
*motion.txt* For Vim version 7.3. Last change: 2010 May 14
*motion.txt* For Vim version 7.3. Last change: 2012 Aug 04
VIM REFERENCE MANUAL by Bram Moolenaar
@ -57,7 +57,7 @@ or change text. The following operators are available:
|>| > shift right
|<| < shift left
|zf| zf define a fold
|g@| g@ call function set with the 'operatorfunc' option
|g@| g@ call function set with the 'operatorfunc' option
If the motion includes a count and the operator also had a count before it,
the two counts are multiplied. For example: "2d3w" deletes six words.
@ -269,11 +269,11 @@ T{char} Till after [count]'th occurrence of {char} to the
{char} can be entered like with the |f| command.
*;*
; Repeat latest f, t, F or T [count] times.
; Repeat latest f, t, F or T [count] times. See |cpo-;|
*,*
, Repeat latest f, t, F or T in opposite direction
[count] times.
[count] times. See also |cpo-;|
==============================================================================
3. Up-down motions *up-down-motions*
@ -326,6 +326,7 @@ gg Goto line [count], default first line, on the first
non-blank character |linewise|. If 'startofline' not
set, keep the same column.
*:[range]*
:[range] Set the cursor on the last line number in [range].
[range] can also be just one line number, e.g., ":1"
or ":'m".
@ -344,6 +345,8 @@ gg Goto line [count], default first line, on the first
last number in it used as the byte count. End-of-line
characters are counted depending on the current
'fileformat' setting.
Also see the |line2byte()| function, and the 'o'
option in 'statusline'.
{not in Vi}
{not available when compiled without the
|+byte_offset| feature}
@ -511,6 +514,8 @@ always select less text than the "a" commands.
These commands are {not in Vi}.
These commands are not available when the |+textobjects| feature has been
disabled at compile time.
Also see `gn` and `gN`, operating on the last search pattern.
*v_aw* *aw*
aw "a word", select [count] words (see |word|).
Leading or trailing white space is included, but not
@ -687,6 +692,7 @@ movement commands are used.
"daw" delete a word *daw*
"diW" delete inner WORD (see |WORD|) *diW*
"daW" delete a WORD (see |WORD|) *daW*
"dgn" delete the next search pattern match *dgn*
"dd" delete one line |dd|
"dis" delete inner sentence *dis*
"das" delete a sentence *das*
@ -748,6 +754,13 @@ m[ or m] Set the |'[| or |']| mark. Useful when an operator is
to be simulated by multiple commands. (does not move
the cursor, this is not a motion command).
*m<* *m>*
m< or m> Set the |'<| or |'>| mark. Useful to change what the
`gv` command selects. (does not move the cursor, this
is not a motion command).
Note that the Visual mode cannot be set, only the
start and end position.
*:ma* *:mark* *E191*
:[range]ma[rk] {a-zA-Z'}
Set mark {a-zA-Z'} at last line number in [range],
@ -1015,8 +1028,6 @@ CTRL-O Go to [count] Older cursor position in jump list
<Tab> or *CTRL-I* *<Tab>*
CTRL-I Go to [count] newer cursor position in jump list
(not a motion command).
In a |quickfix-window| it takes you to the position of
the error under the cursor.
{not in Vi}
{not available without the |+jumplist| feature}

View File

@ -1,4 +1,4 @@
*netbeans.txt* For Vim version 7.3. Last change: 2010 Sep 29
*netbeans.txt* For Vim version 7.3. Last change: 2012 Jan 26
VIM REFERENCE MANUAL by Gordon Prieur et al.
@ -263,6 +263,12 @@ The messages are currently sent over a socket. Since the messages are in
plain UTF-8 text this protocol could also be used with any other communication
mechanism.
Netbeans messages are processed when Vim is idle, waiting for user input.
When Vim is run in non-interactive mode, for example when running an automated
test case that sources a Vim script, the idle loop may not be called often
enough. In that case, insert |:sleep| commands in the Vim script. The |:sleep|
command does invoke Netbeans messages processing.
6.1 Kinds of messages |nb-messages|
6.2 Terms |nb-terms|
6.3 Commands |nb-commands|
@ -833,11 +839,16 @@ These errors occur when a message violates the protocol:
signs.
*:nbkey*
:nb[key] {key} Pass the {key} to the Vim Controller for processing
When a hot-key has been installed with the specialKeys command, this command
can be used to generate a hotkey messages to the Vim Controller. The events
newDotAndMark, keyCommand and keyAtPos are generated (in this order).
:nb[key] {key} Pass the {key} to the Vim Controller for processing.
When a hot-key has been installed with the specialKeys
command, this command can be used to generate a hotkey
message to the Vim Controller.
This command can also be used to pass any text to the
Vim Controller. It is used by Pyclewn, for example,
to build the complete set of gdb commands as Vim user
commands.
The events newDotAndMark, keyCommand and keyAtPos are
generated (in this order).
==============================================================================

View File

@ -1,4 +1,4 @@
*options.txt* For Vim version 7.3. Last change: 2011 Mar 22
*options.txt* For Vim version 7.3. Last change: 2013 Jan 30
VIM REFERENCE MANUAL by Bram Moolenaar
@ -301,9 +301,8 @@ You will not get back the 'list' value as it was the last time you edited
copying the value.
{not in Vi}
:se[t] {option}< Set the local value of {option} to its global value by
making it empty. Only makes sense for |global-local|
options.
:se[t] {option}< For |global-local| options: Remove the local value of
{option}, so that the global value will be used.
{not in Vi}
*:setg* *:setglobal*
@ -401,6 +400,9 @@ On Unix systems the form "${HOME}" can be used too. The name between {} can
contain non-id characters then. Note that if you want to use this for the
"gf" command, you need to add the '{' and '}' characters to 'isfname'.
On MS-Windows, if $HOME is not defined as an environment variable, then
at runtime Vim will set it to the expansion of $HOMEDRIVE$HOMEPATH.
NOTE: expanding environment variables and "~/" is only done with the ":set"
command, not when assigning a value to an option with ":let".
@ -742,7 +744,7 @@ A jump table for the options with a short description can be found at |Q_op|.
- Reset the 'rightleft' option.
- Disable the use of 'keymap' (without changing its value).
Note that 'arabicshape' and 'delcombine' are not reset (it is a global
option.
option).
Also see |arabic.txt|.
*'arabicshape'* *'arshape'*
@ -754,7 +756,7 @@ A jump table for the options with a short description can be found at |Q_op|.
feature}
When on and 'termbidi' is off, the required visual character
corrections that need to take place for displaying the Arabic language
take affect. Shaping, in essence, gets enabled; the term is a broad
take effect. Shaping, in essence, gets enabled; the term is a broad
one which encompasses:
a) the changing/morphing of characters based on their location
within a word (initial, medial, final and stand-alone).
@ -815,7 +817,7 @@ A jump table for the options with a short description can be found at |Q_op|.
been set.
*'background'* *'bg'*
'background' 'bg' string (default "dark" or "light")
'background' 'bg' string (default "dark" or "light", see below)
global
{not in Vi}
When set to "dark", Vim will try to use colors that look good on a
@ -849,6 +851,12 @@ A jump table for the options with a short description can be found at |Q_op|.
color). To get around this, force the GUI window to be opened by
putting a ":gui" command in the .gvimrc file, before where the value
of 'background' is used (e.g., before ":syntax on").
For MS-DOS, Windows and OS/2 the default is "dark".
For other systems "dark" is used when 'term' is "linux",
"screen.linux", "cygwin" or "putty", or $COLORFGBG suggests a dark
background. Otherwise the default is "light".
Normally this option would be set in the .vimrc file. Possibly
depending on the terminal name. Example: >
:if &term == "pcterm"
@ -1039,6 +1047,11 @@ A jump table for the options with a short description can be found at |Q_op|.
When $TMPDIR, $TMP or $TEMP is not defined, it is not used for the
default value. "/tmp/*" is only used for Unix.
WARNING: Not having a backup file means that when Vim fails to write
your buffer correctly and then, for whatever reason, Vim exits, you
lose both the original file and what you were writing. Only disable
backups if you don't care about losing the file.
Note that environment variables are not expanded. If you want to use
$HOME you must expand it explicitly, e.g.: >
:let backupskip = escape(expand('$HOME'), '\') . '/tmp/*'
@ -1094,8 +1107,8 @@ A jump table for the options with a short description can be found at |Q_op|.
Vim does not try to send a message to an external debugger (Netbeans
or Sun Workshop).
The expression may be evaluated in the |sandbox|, see
|sandbox-option|.
The expression will be evaluated in the |sandbox| when set from a
modeline, see |sandbox-option|.
It is not allowed to change text or jump to another window while
evaluating 'balloonexpr' |textlock|.
@ -1211,7 +1224,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|:bwipeout|
CAREFUL: when "unload", "delete" or "wipe" is used changes in a buffer
are lost without a warning.
are lost without a warning. Also, these values may break autocommands
that switch between buffers temporarily.
This option is used together with 'buftype' and 'swapfile' to specify
special kinds of buffers. See |special-buffers|.
@ -1438,6 +1452,7 @@ A jump table for the options with a short description can be found at |Q_op|.
This option is a list of comma separated names.
These names are recognized:
*clipboard-unnamed*
unnamed When included, Vim will use the clipboard register '*'
for all yank, delete, change and put operations which
would normally go to the unnamed register. When a
@ -1447,6 +1462,7 @@ A jump table for the options with a short description can be found at |Q_op|.
explicitly accessed using the "* notation. Also see
|gui-clipboard|.
*clipboard-unnamedplus*
unnamedplus A variant of "unnamed" flag which uses the clipboard
register '+' (|quoteplus|) instead of register '*' for
all operations except yank. Yank shall copy the text
@ -1456,6 +1472,7 @@ A jump table for the options with a short description can be found at |Q_op|.
Availability can be checked with: >
if has('unnamedplus')
<
*clipboard-autoselect*
autoselect Works like the 'a' flag in 'guioptions': If present,
then whenever Visual mode is started, or the Visual
area extended, Vim tries to become the owner of the
@ -1467,9 +1484,16 @@ A jump table for the options with a short description can be found at |Q_op|.
"autoselect" flag is used.
Also applies to the modeless selection.
*clipboard-autoselectplus*
autoselectplus Like "autoselect" but using the + register instead of
the * register. Compare to the 'P' flag in
'guioptions'.
*clipboard-autoselectml*
autoselectml Like "autoselect", but for the modeless selection
only. Compare to the 'A' flag in 'guioptions'.
*clipboard-html*
html When the clipboard contains HTML, use this when
pasting. When putting text on the clipboard, mark it
as HTML. This works to copy rendered HTML from
@ -1480,6 +1504,7 @@ A jump table for the options with a short description can be found at |Q_op|.
Only supported for GTK version 2 and later.
Only available with the |+multi_byte| feature.
*clipboard-exclude*
exclude:{pattern}
Defines a pattern that is matched against the name of
the terminal 'term'. If there is a match, no
@ -2111,6 +2136,12 @@ A jump table for the options with a short description can be found at |Q_op|.
*cpo->*
> When appending to a register, put a line break before
the appended text.
*cpo-;*
; When using |,| or |;| to repeat the last |t| search
and the cursor is right in front of the searched
character, the cursor won't move. When not included,
the cursor would skip over it and jump to the
following occurrence.
POSIX flags. These are not included in the Vi default value, except
when $VIM_POSIX was set on startup. |posix|
@ -2203,6 +2234,16 @@ A jump table for the options with a short description can be found at |Q_op|.
Specifies whether to use quickfix window to show cscope results.
See |cscopequickfix|.
*'cscoperelative'* *'csre'*
'cscoperelative' 'csre' boolean (default off)
global
{not available when compiled without the |+cscope|
feature}
{not in Vi}
In the absence of a prefix (-P) for cscope. setting this option enables
to use the basename of cscope.out path as the prefix.
See |cscoperelative|.
*'cscopetag'* *'cst'* *'nocscopetag'* *'nocst'*
'cscopetag' 'cst' boolean (default off)
global
@ -2917,8 +2958,6 @@ A jump table for the options with a short description can be found at |Q_op|.
This will use the "c" filetype first, then the "doxygen" filetype.
This works both for filetype plugins and for syntax files. More than
one dot may appear.
Do not confuse this option with 'osfiletype', which is for the file
type that is actually stored with the file.
This option is not copied to another buffer, independent of the 's' or
'S' flag in 'cpoptions'.
Only normal file name characters can be used, "/\*?[|<>" are illegal.
@ -3012,8 +3051,8 @@ A jump table for the options with a short description can be found at |Q_op|.
The expression used for when 'foldmethod' is "expr". It is evaluated
for each line to obtain its fold level. See |fold-expr|.
The expression may be evaluated in the |sandbox|, see
|sandbox-option|.
The expression will be evaluated in the |sandbox| if set from a
modeline, see |sandbox-option|.
This option can't be set from a |modeline| when the 'diff' option is
on.
@ -3094,7 +3133,7 @@ A jump table for the options with a short description can be found at |Q_op|.
closed. Also for manually closed folds. With the default value of
one a fold can only be closed if it takes up two or more screen lines.
Set to zero to be able to close folds of just one screen line.
Note that this only has an effect of what is displayed. After using
Note that this only has an effect on what is displayed. After using
"zc" to close a fold, which is displayed open because it's smaller
than 'foldminlines', a following "zc" may close a containing fold.
@ -3155,8 +3194,8 @@ A jump table for the options with a short description can be found at |Q_op|.
An expression which is used to specify the text displayed for a closed
fold. See |fold-foldtext|.
The expression may be evaluated in the |sandbox|, see
|sandbox-option|.
The expression will be evaluated in the |sandbox| if set from a
modeline, see |sandbox-option|.
It is not allowed to change text or jump to another window while
evaluating 'foldtext' |textlock|.
@ -3201,8 +3240,8 @@ A jump table for the options with a short description can be found at |Q_op|.
format function will be used |C-indenting|.
Environment variables are expanded |:set_env|. See |option-backslash|
about including spaces and backslashes.
The expression may be evaluated in the |sandbox|, see
|sandbox-option|.
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
*'formatexpr'* *'fex'*
'formatexpr' 'fex' string (default "")
@ -3235,9 +3274,9 @@ A jump table for the options with a short description can be found at |Q_op|.
When the expression evaluates to non-zero Vim will fall back to using
the internal format mechanism.
The expression may be evaluated in the |sandbox|, see
|sandbox-option|. That stops the option from working, since changing
the buffer text is not allowed.
The expression will be evaluated in the |sandbox| when set from a
modeline, see |sandbox-option|. That stops the option from working,
since changing the buffer text is not allowed.
*'fsync'* *'fs'*
'fsync' 'fs' boolean (default on)
@ -3389,7 +3428,7 @@ A jump table for the options with a short description can be found at |Q_op|.
:highlight Cursor gui=NONE guifg=bg guibg=fg
<
*'guifont'* *'gfn'*
*E235* *E596* *E610* *E611*
*E235* *E596*
'guifont' 'gfn' string (default "")
global
{not in Vi}
@ -3521,6 +3560,10 @@ A jump table for the options with a short description can be found at |Q_op|.
to set 'guifontwide' at all unless you want to override the choice
made by Pango/Xft.
Windows +multibyte only: *guifontwide_win_mbyte*
If set and valid, 'guifontwide' is used for IME instead of 'guifont'.
*'guiheadroom'* *'ghr'*
'guiheadroom' 'ghr' number (default 50)
global
@ -3534,8 +3577,8 @@ A jump table for the options with a short description can be found at |Q_op|.
screen.
*'guioptions'* *'go'*
'guioptions' 'go' string (default "gmrLtT" (MS-Windows),
"agimrLtT" (GTK, Motif and Athena))
'guioptions' 'go' string (default "egmrLtT" (MS-Windows),
"aegimrLtT" (GTK, Motif and Athena))
global
{not in Vi}
{only available when compiled with GUI enabled}
@ -3561,6 +3604,9 @@ A jump table for the options with a short description can be found at |Q_op|.
windowing system's global selection unless explicitly told to
by a yank or delete operation for the "* register.
The same applies to the modeless selection.
*'go-P'*
'P' Like autoselect but using the "+ register instead of the "*
register.
*'go-A'*
'A' Autoselect for the modeless selection. Like 'a', but only
applies to the modeless selection.
@ -3749,9 +3795,10 @@ A jump table for the options with a short description can be found at |Q_op|.
'highlight' 'hl' string (default (as a single string):
"8:SpecialKey,@:NonText,d:Directory,
e:ErrorMsg,i:IncSearch,l:Search,m:MoreMsg,
M:ModeMsg,n:LineNr,r:Question,
s:StatusLine,S:StatusLineNC,c:VertSplit,
t:Title,v:Visual,w:WarningMsg,W:WildMenu,
M:ModeMsg,n:LineNr,N:CursorLineNr,
r:Question,s:StatusLine,S:StatusLineNC,
c:VertSplit, t:Title,v:Visual,
w:WarningMsg,W:WildMenu,
f:Folded,F:FoldColumn,A:DiffAdd,
C:DiffChange,D:DiffDelete,T:DiffText,
>:SignColumn,B:SpellBad,P:SpellCap,
@ -3777,6 +3824,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|hl-ModeMsg| M Mode (e.g., "-- INSERT --")
|hl-LineNr| n line number for ":number" and ":#" commands, and
when 'number' or 'relativenumber' option is set.
|hl-CursorLineNr| N like n for when 'cursorline' or 'relativenumber' is
set.
|hl-Question| r |hit-enter| prompt and yes/no questions
|hl-StatusLine| s status line of current window |status-line|
|hl-StatusLineNC| S status lines of not-current windows
@ -3838,14 +3887,16 @@ A jump table for the options with a short description can be found at |Q_op|.
are not applied.
See also: 'incsearch' and |:match|.
When you get bored looking at the highlighted matches, you can turn it
off with |:nohlsearch|. As soon as you use a search command, the
highlighting comes back.
off with |:nohlsearch|. This does not change the option value, as
soon as you use a search command, the highlighting comes back.
'redrawtime' specifies the maximum time spent on finding matches.
When the search pattern can match an end-of-line, Vim will try to
highlight all of the matched text. However, this depends on where the
search starts. This will be the first line in the window or the first
line below a closed fold. A match in a previous line which is not
drawn may not continue in a newly drawn line.
You can specify whether the highlight status is restored on startup
with the 'h' flag in 'viminfo' |viminfo-h|.
NOTE: This option is reset when 'compatible' is set.
*'history'* *'hi'*
@ -4054,8 +4105,8 @@ A jump table for the options with a short description can be found at |Q_op|.
found. Allows doing "gf" on the name after an 'include' statement.
Also used for |<cfile>|.
The expression may be evaluated in the |sandbox|, see
|sandbox-option|.
The expression will be evaluated in the |sandbox| when set from a
modeline, see |sandbox-option|.
It is not allowed to change text or jump to another window while
evaluating 'includeexpr' |textlock|.
@ -4098,7 +4149,8 @@ A jump table for the options with a short description can be found at |Q_op|.
It is used when a new line is created, for the |=| operator and
in Insert mode as specified with the 'indentkeys' option.
When this option is not empty, it overrules the 'cindent' and
'smartindent' indenting.
'smartindent' indenting. When 'lisp' is set, this option is
overridden by the Lisp indentation algorithm.
When 'paste' is set this option is not used for indenting.
The expression is evaluated with |v:lnum| set to the line number for
which the indent is to be computed. The cursor is also in this line
@ -4118,8 +4170,8 @@ A jump table for the options with a short description can be found at |Q_op|.
See |indent-expression|.
NOTE: This option is made empty when 'compatible' is set.
The expression may be evaluated in the |sandbox|, see
|sandbox-option|.
The expression will be evaluated in the |sandbox| when set from a
modeline, see |sandbox-option|.
It is not allowed to change text or jump to another window while
evaluating 'indentexpr' |textlock|.
@ -4548,24 +4600,31 @@ A jump table for the options with a short description can be found at |Q_op|.
{not in Vi}
Strings to use in 'list' mode and for the |:list| command. It is a
comma separated list of string settings.
*lcs-eol*
eol:c Character to show at the end of each line. When
omitted, there is no extra character at the end of the
line.
*lcs-tab*
tab:xy Two characters to be used to show a tab. The first
char is used once. The second char is repeated to
fill the space that the tab normally occupies.
"tab:>-" will show a tab that takes four spaces as
">---". When omitted, a tab is show as ^I.
*lcs-trail*
trail:c Character to show for trailing spaces. When omitted,
trailing spaces are blank.
*lcs-extends*
extends:c Character to show in the last column, when 'wrap' is
off and the line continues beyond the right of the
screen.
*lcs-precedes*
precedes:c Character to show in the first column, when 'wrap'
is off and there is text preceding the character
visible in the first column.
*lcs-conceal*
conceal:c Character to show in place of concealed text, when
'conceallevel' is set to 1.
*lcs-nbsp*
nbsp:c Character to show for a non-breakable space (character
0xA0, 160). Left blank when omitted.
@ -4659,8 +4718,10 @@ A jump table for the options with a short description can be found at |Q_op|.
local to buffer
{not in Vi}
Characters that form pairs. The |%| command jumps from one to the
other. Currently only single byte character pairs are allowed, and
they must be different. The characters must be separated by a colon.
other.
Only character pairs are allowed that are different, thus you cannot
jump between two double quotes.
The characters must be separated by a colon.
The pairs must be separated by a comma. Example for including '<' and
'>' (HTML): >
:set mps+=<:>
@ -4840,6 +4901,10 @@ A jump table for the options with a short description can be found at |Q_op|.
written. A ":set nomodified" command also resets the original
values to the current values and the 'modified' option will be
reset.
This option is not set when a change is made to the buffer as the
result of a BufNewFile, BufRead/BufReadPost, BufWritePost,
FileAppendPost or VimLeave autocommand event. See |gzip-example| for
an explanation.
When 'buftype' is "nowrite" or "nofile" this option may be set, but
will be ignored.
@ -5028,7 +5093,7 @@ A jump table for the options with a short description can be found at |Q_op|.
respectively; see |CTRL-A| for more info on these commands.
alpha If included, single alphabetical characters will be
incremented or decremented. This is useful for a list with a
letter index a), b), etc. *octal-number*
letter index a), b), etc. *octal-nrformats*
octal If included, numbers that start with a zero will be considered
to be octal. Example: Using CTRL-A on "007" results in "010".
hex If included, numbers starting with "0x" or "0X" will be
@ -5048,7 +5113,8 @@ A jump table for the options with a short description can be found at |Q_op|.
number.
When a long, wrapped line doesn't start with the first character, '-'
characters are put before the number.
See |hl-LineNr| for the highlighting used for the number.
See |hl-LineNr| and |hl-CursorLineNr| for the highlighting used for
the number.
When setting this option, 'relativenumber' is reset.
*'numberwidth'* *'nuw'*
@ -5081,6 +5147,8 @@ A jump table for the options with a short description can be found at |Q_op|.
invoked and what it should return.
This option is usually set by a filetype plugin:
|:filetype-plugin-on|
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
*'opendevice'* *'odev'* *'noopendevice'* *'noodev'*
@ -5106,20 +5174,12 @@ A jump table for the options with a short description can be found at |Q_op|.
security reasons.
*'osfiletype'* *'oft'* *E366*
'osfiletype' 'oft' string (RISC-OS default: "Text",
others default: "")
*'osfiletype'* *'oft'*
'osfiletype' 'oft' string (default: "")
local to buffer
{not in Vi}
{only available when compiled with the |+osfiletype|
feature}
Some operating systems store extra information about files besides
name, datestamp and permissions. This option contains the extra
information, the nature of which will vary between systems.
The value of this option is usually set when the file is loaded, and
is used to set the operating system file type when file is written.
It can affect the pattern matching of the automatic commands.
|autocmd-osfiletypes|
This option was supported on RISC OS, which has been removed.
*'paragraphs'* *'para'*
'paragraphs' 'para' string (default "IPLPPPQPP TPHPLIPpLpItpplpipbp")
@ -5224,7 +5284,7 @@ A jump table for the options with a short description can be found at |Q_op|.
recognized as a compressed file.
Only normal file name characters can be used, "/\*?[|<>" are illegal.
*'path'* *'pa'* *E343* *E345* *E347*
*'path'* *'pa'* *E343* *E345* *E347* *E854*
'path' 'pa' string (default on Unix: ".,/usr/include,,"
on OS/2: ".,/emx/include,,"
other systems: ".,,")
@ -5455,7 +5515,8 @@ A jump table for the options with a short description can be found at |Q_op|.
number.
When a long, wrapped line doesn't start with the first character, '-'
characters are put before the number.
See |hl-LineNr| for the highlighting used for the number.
See |hl-LineNr| and |hl-CursorLineNr| for the highlighting used for
the number.
When setting this option, 'number' is reset.
*'remap'* *'noremap'*
@ -5877,16 +5938,20 @@ A jump table for the options with a short description can be found at |Q_op|.
security reasons.
*'shellcmdflag'* *'shcf'*
'shellcmdflag' 'shcf' string (default: "-c", MS-DOS and Win32, when 'shell'
does not contain "sh" somewhere: "/c")
'shellcmdflag' 'shcf' string (default: "-c";
MS-DOS and Win32, when 'shell' does not
contain "sh" somewhere: "/c")
global
{not in Vi}
Flag passed to the shell to execute "!" and ":!" commands; e.g.,
"bash.exe -c ls" or "command.com /c dir". For the MS-DOS-like
systems, the default is set according to the value of 'shell', to
reduce the need to set this option by the user. It's not used for
OS/2 (EMX figures this out itself). See |option-backslash| about
including spaces and backslashes. See |dos-shell|.
OS/2 (EMX figures this out itself).
On Unix it can have more than one flag. Each white space separated
part is passed as an argument to the shell command.
See |option-backslash| about including spaces and backslashes.
Also see |dos-shell| for MS-DOS and MS-Windows.
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
@ -5907,9 +5972,10 @@ A jump table for the options with a short description can be found at |Q_op|.
For Unix the default it "| tee". The stdout of the compiler is saved
in a file and echoed to the screen. If the 'shell' option is "csh" or
"tcsh" after initializations, the default becomes "|& tee". If the
'shell' option is "sh", "ksh", "zsh" or "bash" the default becomes
"2>&1| tee". This means that stderr is also included. Before using
the 'shell' option a path is removed, thus "/bin/sh" uses "sh".
'shell' option is "sh", "ksh", "mksh", "pdksh", "zsh" or "bash" the
default becomes "2>&1| tee". This means that stderr is also included.
Before using the 'shell' option a path is removed, thus "/bin/sh" uses
"sh".
The initialization of this option is done after reading the ".vimrc"
and the other initializations, so that when the 'shell' option is set
there, the 'shellpipe' option changes automatically, unless it was
@ -5988,7 +6054,8 @@ A jump table for the options with a short description can be found at |Q_op|.
{not in Vi}
When on, use temp files for shell commands. When off use a pipe.
When using a pipe is not possible temp files are used anyway.
Currently a pipe is only supported on Unix. You can check it with: >
Currently a pipe is only supported on Unix and MS-Windows 2K and
later. You can check it with: >
:if has("filterpipe")
< The advantage of using a pipe is that nobody can read the temp file
and the 'shell' command does not need to support redirection.
@ -6012,8 +6079,18 @@ A jump table for the options with a short description can be found at |Q_op|.
0 and 2: use "shell 'shellcmdflag' cmd" to start external commands
1 and 3: use "shell cmd" to start external commands
*'shellxescape'* *'sxe'*
'shellxescape' 'sxe' string (default: "";
for MS-DOS and MS-Windows: "\"&|<>()@^")
global
{not in Vi}
When 'shellxquote' is set to "(" then the characters listed in this
option will be escaped with a '^' character. This makes it possible
to execute most external commands with cmd.exe.
*'shellxquote'* *'sxq'*
'shellxquote' 'sxq' string (default: "";
for Win32, when 'shell' is cmd.exe: "("
for Win32, when 'shell' contains "sh"
somewhere: "\""
for Unix, when using system(): "\"")
@ -6023,11 +6100,15 @@ A jump table for the options with a short description can be found at |Q_op|.
the "!" and ":!" commands. Includes the redirection. See
'shellquote' to exclude the redirection. It's probably not useful
to set both options.
This is an empty string by default. Known to be useful for
third-party shells when using the Win32 version, such as the MKS Korn
Shell or bash, where it should be "\"". The default is adjusted
according the value of 'shell', to reduce the need to set this option
by the user. See |dos-shell|.
When the value is '(' then ')' is appended. When the value is '"('
then ')"' is appended.
When the value is '(' then also see 'shellxescape'.
This is an empty string by default on most systems, but is known to be
useful for on Win32 version, either for cmd.exe which automatically
strips off the first and last quote on a command, or 3rd-party shells
such as the MKS Korn Shell or bash, where it should be "\"". The
default is adjusted according the value of 'shell', to reduce the need
to set this option by the user. See |dos-shell|.
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
@ -6045,6 +6126,8 @@ A jump table for the options with a short description can be found at |Q_op|.
local to buffer
Number of spaces to use for each step of (auto)indent. Used for
|'cindent'|, |>>|, |<<|, etc.
When zero the 'ts' value will be used. Use the |shiftwidth()|
function to get the effective shiftwidth value.
*'shortmess'* *'shm'*
'shortmess' 'shm' string (Vim default "filnxtToO", Vi default: "",
@ -6248,7 +6331,7 @@ A jump table for the options with a short description can be found at |Q_op|.
Override the 'ignorecase' option if the search pattern contains upper
case characters. Only used when the search pattern is typed and
'ignorecase' option is on. Used for the commands "/", "?", "n", "N",
":g" and ":s". Not used for "*", "#", "gd", tag search, etc.. After
":g" and ":s". Not used for "*", "#", "gd", tag search, etc. After
"*" and "#" you can make 'smartcase' used by doing a "/" command,
recalling the search pattern from history and hitting <Enter>.
NOTE: This option is reset when 'compatible' is set.
@ -6308,6 +6391,7 @@ A jump table for the options with a short description can be found at |Q_op|.
of 8, while being able to edit like it is set to 'sts'. However,
commands like "x" still work on the actual characters.
When 'sts' is zero, this feature is off.
When 'sts' is negative, the value of 'shiftwidth' is used.
'softtabstop' is set to 0 when the 'paste' option is set.
See also |ins-expandtab|. When 'expandtab' is not set, the number of
spaces is minimized by using <Tab>s.
@ -6521,6 +6605,9 @@ A jump table for the options with a short description can be found at |Q_op|.
evaluated and the result is used as the option value. Example: >
:set statusline=%!MyStatusLine()
< The result can contain %{} items that will be evaluated too.
Note that the "%!" expression is evaluated in the context of the
current window and buffer, while %{} items are evaluated in the
context of the window that the statusline belongs to.
When there is error while evaluating the option then it will be made
empty to avoid further errors. Otherwise screen updating would loop.
@ -6626,8 +6713,8 @@ A jump table for the options with a short description can be found at |Q_op|.
The variable "actual_curbuf" is set to the 'bufnr()' number of the
real current buffer.
The 'statusline' option may be evaluated in the |sandbox|, see
|sandbox-option|.
The 'statusline' option will be evaluated in the |sandbox| if set from
a modeline, see |sandbox-option|.
It is not allowed to change text or jump to another window while
evaluating 'statusline' |textlock|.
@ -6740,8 +6827,8 @@ A jump table for the options with a short description can be found at |Q_op|.
usetab Like "useopen", but also consider windows in other tab
pages.
split If included, split the current window before loading
a buffer. Otherwise: do not split, use current window.
Supported in |quickfix| commands that display errors.
a buffer for a |quickfix| command that display errors.
Otherwise: do not split, use current window.
newtab Like "split", but open a new tab page. Overrules
"split" when both are present.
@ -7070,8 +7157,8 @@ A jump table for the options with a short description can be found at |Q_op|.
the file should contain words with similar meaning, separated by
non-keyword characters (white space is preferred). Maximum line
length is 510 bytes.
To obtain a file to be used here, check out the wordlist FAQ at
http://www.hyphenologist.co.uk .
To obtain a file to be used here, check out this ftp site:
ftp://ftp.ox.ac.uk/pub/wordlists/ First get the README file.
To include a comma in a file name precede it with a backslash. Spaces
after a comma are ignored, otherwise spaces are included in the file
name. See |option-backslash| about using backslashes.
@ -7346,6 +7433,12 @@ A jump table for the options with a short description can be found at |Q_op|.
jsbterm JSB term mouse handling.
*pterm-mouse*
pterm QNX pterm mouse handling.
*urxvt-mouse*
urxvt Mouse handling for the urxvt (rxvt-unicode) terminal.
*sgr-mouse*
sgr Mouse handling for the terminal that emits SGR-styled
mouse reporting. Works with xterm version 277 or
later.
The mouse handling must be enabled at compile time |+mouse_xterm|
|+mouse_dec| |+mouse_netterm|.
@ -7358,6 +7451,7 @@ A jump table for the options with a short description can be found at |Q_op|.
or "xterm2" already. The main use of this option is to set it to
"xterm", when the terminal name doesn't start with "xterm", but it can
handle xterm mouse codes.
The "sgr" value will be set if the xterm version is 277 or later.
The "xterm2" value will be set if the xterm version is reported to be
95 or higher. This only works when compiled with the |+termresponse|
feature and if |t_RV| is set to the escape sequence to request the
@ -7409,7 +7503,7 @@ A jump table for the options with a short description can be found at |Q_op|.
For more information about this feature see |undo-persistence|.
The undo file is not read when 'undoreload' causes the buffer from
before a reload to be saved for undo.
WARNING: this is a very new feature. Use at your own risk!
When 'undofile' is turned off the undo file is NOT deleted.
*'undolevels'* *'ul'*
'undolevels' 'ul' number (default 100, 1000 for Unix, VMS,
@ -7562,15 +7656,18 @@ A jump table for the options with a short description can be found at |Q_op|.
parameter. The following is a list of the identifying characters and
the effect of their value.
CHAR VALUE ~
*viminfo-!*
! When included, save and restore global variables that start
with an uppercase letter, and don't contain a lowercase
letter. Thus "KEEPTHIS and "K_L_M" are stored, but "KeepThis"
and "_K_L_M" are not. Nested List and Dict items may not be
read back correctly, you end up with an empty item.
*viminfo-quote*
" Maximum number of lines saved for each register. Old name of
the '<' item, with the disadvantage that you need to put a
backslash before the ", otherwise it will be recognized as the
start of a comment!
*viminfo-%*
% When included, save and restore the buffer list. If Vim is
started with a file name argument, the buffer list is not
restored. If Vim is started without a file name argument, the
@ -7580,38 +7677,48 @@ A jump table for the options with a short description can be found at |Q_op|.
When followed by a number, the number specifies the maximum
number of buffers that are stored. Without a number all
buffers are stored.
*viminfo-'*
' Maximum number of previously edited files for which the marks
are remembered. This parameter must always be included when
'viminfo' is non-empty.
Including this item also means that the |jumplist| and the
|changelist| are stored in the viminfo file.
*viminfo-/*
/ Maximum number of items in the search pattern history to be
saved. If non-zero, then the previous search and substitute
patterns are also saved. When not included, the value of
'history' is used.
*viminfo-:*
: Maximum number of items in the command-line history to be
saved. When not included, the value of 'history' is used.
*viminfo-<*
< Maximum number of lines saved for each register. If zero then
registers are not saved. When not included, all lines are
saved. '"' is the old name for this item.
Also see the 's' item below: limit specified in Kbyte.
*viminfo-@*
@ Maximum number of items in the input-line history to be
saved. When not included, the value of 'history' is used.
*viminfo-c*
c When included, convert the text in the viminfo file from the
'encoding' used when writing the file to the current
'encoding'. See |viminfo-encoding|.
*viminfo-f*
f Whether file marks need to be stored. If zero, file marks ('0
to '9, 'A to 'Z) are not stored. When not present or when
non-zero, they are all stored. '0 is used for the current
cursor position (when exiting or when doing ":wviminfo").
*viminfo-h*
h Disable the effect of 'hlsearch' when loading the viminfo
file. When not included, it depends on whether ":nohlsearch"
has been used since the last search command.
*viminfo-n*
n Name of the viminfo file. The name must immediately follow
the 'n'. Must be the last one! If the "-i" argument was
given when starting Vim, that file name overrides the one
given here with 'viminfo'. Environment variables are expanded
when opening the file, not when setting the option.
*viminfo-r*
r Removable media. The argument is a string (up to the next
','). This parameter can be given several times. Each
specifies the start of a path for which no marks will be
@ -7620,6 +7727,7 @@ A jump table for the options with a short description can be found at |Q_op|.
also use it for temp files, e.g., for Unix: "r/tmp". Case is
ignored. Maximum length of each 'r' argument is 50
characters.
*viminfo-s*
s Maximum size of an item in Kbyte. If zero then registers are
not saved. Currently only applies to registers. The default
"s10" will exclude registers with more than 10 Kbyte of text.
@ -7771,9 +7879,9 @@ A jump table for the options with a short description can be found at |Q_op|.
{not available when compiled without the |+wildignore|
feature}
A list of file patterns. A file that matches with one of these
patterns is ignored when completing file or directory names, and
influences the result of |expand()|, |glob()| and |globpath()| unless
a flag is passed to disable this.
patterns is ignored when expanding |wildcards|, completing file or
directory names, and influences the result of |expand()|, |glob()| and
|globpath()| unless a flag is passed to disable this.
The pattern is used like with |:autocmd|, see |autocmd-patterns|.
Also see 'suffixes'.
Example: >
@ -8075,8 +8183,13 @@ A jump table for the options with a short description can be found at |Q_op|.
{not in Vi}
Make a backup before overwriting a file. The backup is removed after
the file was successfully written, unless the 'backup' option is
also on. Reset this option if your file system is almost full. See
|backup-table| for another explanation.
also on.
WARNING: Switching this option off means that when Vim fails to write
your buffer correctly and then, for whatever reason, Vim exits, you
lose both the original file and what you were writing. Only reset
this option if your file system is almost full and it makes the write
fail (and make sure not to exit Vim until the write was successful).
See |backup-table| for another explanation.
When the 'backupskip' pattern matches, a backup is not made anyway.
NOTE: This option is set to the default value when 'compatible' is
set.

View File

@ -1,322 +1,12 @@
*os_risc.txt* For Vim version 7.3. Last change: 2010 Aug 07
*os_risc.txt* For Vim version 7.3. Last change: 2011 May 10
VIM REFERENCE MANUAL by Thomas Leonard
*riscos* *RISCOS* *RISC-OS*
This file contains the particularities for the RISC OS version of Vim.
The RISC OS support has been removed from Vim with patch 7.3.187.
If you would like to use Vim on RISC OS get the files from before that patch.
The RISC OS port is a completely new port and is not based on the old "archi"
port.
1. File locations |riscos-locations|
2. Filename munging |riscos-munging|
3. Command-line use |riscos-commandline|
4. Desktop (GUI) use |riscos-gui|
5. Remote use (telnet) |riscos-remote|
6. Temporary files |riscos-temp-files|
7. Interrupting |riscos-interrupt|
8. Memory usage |riscos-memory|
9. Filetypes |riscos-filetypes|
10. The shell |riscos-shell|
11. Porting new releases |riscos-porting|
If I've missed anything, email me and I'll try to fix it. In fact, even if I
haven't missed anything then email me anyway to give me some confidence that it
actually works!
Thomas Leonard <tal197@ecs.soton.ac.uk>
[these URLs no longer work...]
Port homepage: http://www.ecs.soton.ac.uk/~tal197/
or try: http://www.soton.ac.uk/~tal197/
==============================================================================
*riscos-locations*
1. File locations
The Vim executable and shared resource files are all stored inside the !Vim
application directory.
When !Vim is first seen by the filer, it aliases the *vi and *ex commands to
run the command-line versions of Vim (see |riscos-commandline|).
!Vim.Resources and !Vim.Resources2 contain the files from the standard Vim
distribution, but modified slightly to work within the limits of ADFS, plus
some extra files such as the window templates.
User choices are read from "Choices:*" and are saved to "<Choices$Write>.*".
If you have the new !Boot structure then these should be set up already. If
not, set Choices$Path to a list of directories to search when looking for
user configuration files. Set Choices$Write to the directory you want files
to be saved into (so your search patterns and marks can be remembered between
sessions).
==============================================================================
*riscos-munging*
2. Filename munging
All pathname munging is disabled by default, so Vim should behave like a
normal RISC OS application now. So, if you want to edit "doc/html" then you
actually type "*vi doc/html".
The only times munging is done is when:
- Searching included files from C programs, since these are always munged.
See |[I|.
Note: make sure you are in the right directory when you use this
command (i.e. the one with subdirectories "c" and "h").
- Sourcing files using |:so|.
Paths starting "$VIM/" are munged like this:
$VIM/syntax/help.vim -> Vim:syntax.help
Also, files ending in ".vim" have their extensions removed, and slashes
replaced with dots.
Some tag files and script files may have to be edited to work under this port.
==============================================================================
*riscos-commandline*
3. Command-line use
To use Vim from the command-line use the "*vi" command (or "*ex" for
|Ex-mode|).
Type "*vi -h" for a list of options.
Running the command-line version of Vim in a large high-color mode may cause
the scrolling to be very slow. Either change to a mode with fewer colors or
use the GUI version.
Also, holding down Ctrl will slow it down even more, and Ctrl-Shift will
freeze it, as usual for text programs.
==============================================================================
*riscos-gui*
4. Desktop use
Limitations:
- Left scrollbars don't work properly (right and bottom are fine).
- Doesn't increase scroll speed if it gets behind.
You can resize the window by dragging the lower-right corner, even though
there is no icon shown there.
You can use the --rows and --columns arguments to specify the initial size of
the Vim window, like this: >
*Vi -g --rows 20 --columns 80
The global clipboard is supported, so you can select some text and then
paste it directly into another application (provided it supports the
clipboard too).
Clicking Menu now opens a menu like a normal RISC OS program. Hold down Shift
when clicking Menu to paste (from the global clipboard).
Dragging a file to the window replaces the CURRENT buffer (the one with the
cursor, NOT the one you dragged to) with the file.
Dragging with Ctrl held down causes a new Vim window to be opened for the
file (see |:sp|).
Dragging a file in with Shift held down in insert mode inserts the pathname of
the file.
:browse :w opens a standard RISC OS save box.
:browse :e opens a directory viewer.
For fonts, you have the choice of the system font, an outline font, the system
font via ZapRedraw and any of the Zap fonts via ZapRedraw: >
:set guifont=
< To use the system font via the VDU drivers. Supports
bold and underline.
>
:set guifont=Corpus.Medium
< Use the named outline font. You can use any font, but
only monospaced ones like Corpus look right.
>
:set guifont=Corpus.Medium:w8:h12:b:i
< As before, but with size of 8 point by 12 point, and
in bold italic.
If only one of width and height is given then that
value is used for both. If neither is given then 10
point is used.
Thanks to John Kortink, Vim can use the ZapRedraw module. Start the font name
with "!" (or "!!" for double height), like this: >
:set guifont=!!
< Use the system font, but via ZapRedraw. This gives a
faster redraw on StrongARM processors, but you can't
get bold or italic text. Double height.
>
:set guifont=!script
< Uses the named Zap font (a directory in VimFont$Path).
The redraw is the same speed as for "!!", but you get
a nicer looking font.
Only the "man+" and "script" fonts are supplied
currently, but you can use any of the Zap fonts if
they are in VimFont$Path.
Vim will try to load font files "0", "B", "I" and "IB"
from the named directory. Only "0" (normal style) MUST
be present. Link files are not currently supported.
Note that when using ZapRedraw the edit bar is drawn in front of the character
you are on rather than behind it. Also redraw is incorrect for screen modes
with eigen values of 0. If the font includes control characters then you can
get Vim to display them by changing the 'isprint' option.
If you find the scrolling is too slow on your machine, try experimenting
with the 'scrolljump' and 'ttyscroll' options.
In particular, StrongARM users may find that: >
:set ttyscroll=0
makes scrolling faster in high-color modes.
=============================================================================
*riscos-remote*
5. Remote use (telnet)
I have included a built-in termcap entry, but you can edit the termcap file to
allow other codes to be used if you want to use Vim from a remote terminal.
Although I do not have an internet connection to my Acorn, I have managed to
run Vim in a FreeTerm window using the loopback connection.
It seems to work pretty well now, using "*vi -T ansi".
==============================================================================
*riscos-temp-files*
6. Temporary files
If Vim crashes then the swap and backup files (if any) will be in the
directories set with the 'directory' and 'bdir' options. By default the swap
files are in <Wimp$ScrapDir> (i.e. inside !Scrap) and backups are in the
directory you were saving to. Vim will allow you to try and recover the file
when you next try to edit it.
To see a list of swap files, press <F12> and type "*vi -r".
Vim no longer brings up ATTENTION warnings if you try to edit two files with
the same name in different directories.
However, it also no longer warns if you try to edit the same file twice (with
two copies of Vim), though you will still be warned when you save that the
datestamp has changed.
==============================================================================
*riscos-interrupt*
7. Interrupting
To break out of a looping macro, or similar, hold down Escape in the
command-line version, or press CTRL-C in the GUI version.
==============================================================================
*riscos-memory*
8. Memory usage
Vim will use dynamic areas on RISC OS 3.5 or later. If you can use them on
older machines then edit the !RunTxt and GVim files. I don't know what UnixLib
does by default on these machines so I'm playing safe.
It doesn't work at all well without dynamic areas, since it can't change its
memory allocation once running. Hence you should edit "!Vim.GVim" and
"!Vim.!RunTxt" to choose the best size for you. You probably need at least
about 1400K.
==============================================================================
*riscos-filetypes*
9. Filetypes
You can now specify that autocommands are only executed for files of certain
types. The filetype is given in the form &xxx, when xxx is the filetype.
Filetypes must be specified by number (e.g. &fff for Text).
The system has changed from version 5.3. The new sequence of events is:
- A file is loaded. |'osfiletype'| is set to the RISC OS filetype.
- Based on the filetype and pathname, Vim will try to set |'filetype'| to the
Vim-type of the file.
- Setting this option may load syntax files and perform other actions.
- Saving the file will give it a filetype of |'osfiletype'|.
Some examples may make this clearer:
Kind of file loaded osfiletype filetype ~
C code "c.hellow" Text (&fff) C
LaTeX document LaTeX (&2a8) TeX
Draw document DrawFile (&aff) (not changed)
==============================================================================
*riscos-shell*
10. The shell
- Bangs (!s) are only replaced if they are followed by a space or end-of-line,
since many pathnames contain them.
- You can prefix the command with "~", which stops any output from being
displayed. This also means that you don't have to press <Enter> afterwards,
and stops the screen from being redrawn. {only in the GUI version}
==============================================================================
*riscos-porting*
11. Porting new releases to RISC OS
Downloading everything you need:
- Get the latest source distribution (see www.vim.org)
- Get the runtime environment files (e.g. these help files)
- Get the RISC OS binary distribution (if possible)
Unarchiving:
- Create a raFS disk and put the archives on it
- Un-gzip them
- Un-tar them (*tar xELf 50 archive/tar)
Recompiling the sources:
- Create c, s, and h directories.
- Put all the header files in "h". \
- Put all the C files in "c". | And lose the extensions
- Put the assembler file ("swis/s") in "s". /
- Rename all the files in "proto" to "h", like this:
raFS::VimSrc.source.proto.file/pro
becomes
raFS::VimSrc.source.h.file_pro
- In the files "h.proto" and "c.termlib", search and replace
.pro"
with
_pro.h"
- Create a simple Makefile if desired and do "*make -k".
Use "CC = gcc -DRISCOS -DUSE_GUI -O2 -x c" in the Makefile.
- Save the binary as !Vim.Vim in the binary distribution.
Updating the run-time environment:
- Replace old or missing files inside !Vim.Resources with the
new files.
- Remove files in "doc" not ending in "/txt", except for "tags".
- Lose the extensions from the files in "doc".
- Edit the "doc.tags" file. Remove extensions from the second column: >
:%s/^\(.[^\t]*\t.*\)\.txt\t/\1\t/
- Remove extensions from the syntax files. Split them into two directories
to avoid the 77 entry limit on old ADFS filesystems.
- Edit "Vim:FileType" to match "*.c.*" as well as "*/c" and so on.
Add filetype checking too.
- Edit "Vim:Menu" and remove all the keys from the menus: >
:%s/<Tab>[^ \t]*//
<
vim:tw=78:ts=8:ft=help:norl:

View File

@ -1,4 +1,4 @@
*os_vms.txt* For Vim version 7.3. Last change: 2010 Aug 16
*os_vms.txt* For Vim version 7.3. Last change: 2011 Aug 14
VIM REFERENCE MANUAL
@ -38,9 +38,6 @@ You can download the Vim source code by ftp from the official Vim site:
Or use one of the mirrors:
ftp://ftp.vim.org/pub/vim/MIRRORS
You will need both the Unix and Extra archives to build vim.exe for VMS.
For using Vim's full power you will need the runtime files as well.
You can download precompiled executables from:
http://www.polarhome.com/vim/
ftp://ftp.polarhome.com/pub/vim/
@ -75,7 +72,7 @@ See the file [.SRC]INSTALLVMS.TXT.
4. Problems *vms-problems*
The code has been tested under Open VMS 6.2 - 8.2 on Alpha, VAX and IA64
platforms with the DEC C compiler. It should work without bigger problems.
platforms with the DEC C compiler. It should work without big problems.
If your system does not have some include libraries you can tune up in
OS_VMS_CONF.H file.
@ -88,11 +85,11 @@ Also GTK, XPM library paths should be configured in MAKE_VMS.MMS
Note: Under VAX it should work with the DEC C compiler without problems. The
VAX C compiler is not fully ANSI C compatible in pre-processor directives
semantics, therefore you have to use a converter program what will do the lion
semantics, therefore you have to use a converter program that will do the lion
part of the job. For detailed instructions read file INSTALLvms.txt
MMS_VIM.EXE is build together with VIM.EXE, but for XD.EXE you should
change to subdirectory and build it separately.
MMS_VIM.EXE is build together with VIM.EXE, but for XXD.EXE you should
change to a subdirectory and build it separately.
CTAGS is not part of the Vim source distribution anymore, however the OpenVMS
specific source might contain CTAGS source files as described above.
@ -184,9 +181,9 @@ You may want to create .vimrc and .gvimrc files in your home directory
The easiest way is just rename example files. You may leave the menu file
(MENU.VIM) and files vimrc and gvimrc in the original $VIM directory. It will
be default setup for all users, and for users it is enough just to have their
own additions or resetting in their home directory in files .vimrc and .gvimrc.
It should work without problems.
be the default setup for all users, and for users it is enough to just have
their own additions or resetting in their home directory in files .vimrc and
.gvimrc. It should work without problems.
Note: Remember, system rc files (default for all users) don't have a leading
".". So, system rc files are: >
@ -200,7 +197,7 @@ and user customized rc files are: >
sys$login:.vimrc
sys$login:.gvimrc
You can check that everything is on the right place with the :version command.
You can check that everything is at the right place with the :version command.
Example LOGIN.COM: >
@ -209,15 +206,15 @@ Example LOGIN.COM: >
$ gv*im:== spawn/nowait/input=NLA0 mcr VIM:VIM.EXE -g -GEOMETRY 80x40
$ set disp/create/node=192.168.5.223/trans=tcpip
Note: This set-up should be enough, if you are working on standalone server or
clustered environment, but if you want to use Vim as internode editor in
Note: This set-up should be enough, if you are working on a standalone server or
clustered environment, but if you want to use Vim as an internode editor in
DECNET environment, it will satisfy as well.
You just have to define the "whole" path: >
$ define VIM "<server_name>[""user password""]::device:<path>"
$ vi*m :== "mcr VIM:VIM.EXE"
As for example: >
For example: >
$ define VIM "PLUTO::RF10:[UTIL.VIM]"
$ define VIM "PLUTO""ZAY mypass""::RF10:[UTIL.VIM]" ! if passwd required
@ -300,12 +297,12 @@ For more information type $help set disp in VMS prompt.
4) If you are working on MS-Windows or some other non X/Window environment
you need to set up one X server and run Vim as in point 2.
For MS-Windows there are available free X servers as MIX , Omni X etc.,
For MS-Windows there are available free X servers as MIX, Omni X etc.,
as well as excellent commercial products as eXcursion or ReflectionX with
built-in DEC support.
Please note, that executables without GUI are slightly faster during startup
then with enabled GUI in character mode. Therefore, if you do not use GUI
than with enabled GUI in character mode. Therefore, if you do not use GUI
features, it is worth to choose non GUI executables.
==============================================================================
@ -326,8 +323,8 @@ features, it is worth to choose non GUI executables.
8.12 diff-mode
8.13 Allow '$' in C keywords
8.14 VIMTUTOR for beginners
8.15 Slow start in console mode issue
8.16 Common VIM directory - different architectures
8.15 Slow start in console mode issue
8.16 Common VIM directory - different architectures
8.1 Backspace/delete
@ -360,7 +357,7 @@ number, try these settings. >
:set nowritebackup " does not have any purpose on VMS. It's the
" default.
Recovery is working perfect as well from the default swap file.
Recovery is working perfectly as well from the default swap file.
Read more with :help swapfile
(Claude Marinier <ClaudeMarinier@xwavesolutions.com> Vim 5.5, Zoltan Arpadffy
@ -386,7 +383,7 @@ Note: You may use <,> brackets as well (device:<path>file.ext;version) as
rf10:<user.zay.work>test.c;1
(David Elins <delins@foliage.com>, Jerome Lauret
<JLAURET@mail.chem.sunysb.edu> Vim 5.6 )
<JLAURET@mail.chem.sunysb.edu> Vim 5.6)
8.5 Remote host invocation
@ -445,14 +442,14 @@ Terminal entry not found in termcap
builtin_dumb
defaulting to 'vt320'
---
The solution is to define default terminal name: >
The solution is to define the default terminal name: >
$ ! unknown terminal name. Let us use vt320 or ansi instead.
$ ! Note: it's case sensitive
$ define term "vt320"
Terminals from VT100 to VT320 (as V300, VT220, VT200 ) do not need any extra
keyboard mappings. They should work perfect as they are, including arrows,
Terminals from VT100 to VT320 (as V300, VT220, VT200) do not need any extra
keyboard mappings. They should work perfectly as they are, including arrows,
Ins, Del buttons etc., except Backspace in GUI mode. To solve it, add to
.gvimrc: >
@ -465,8 +462,8 @@ your .vimrc file: >
set ttyfast " set fast terminal
Note: if you're using Vim on remote host or through very slow connection, it's
recommended to avoid fast terminal option with: >
Note: if you're using Vim on remote host or through a very slow connection, it's
recommended to avoid the fast terminal option with: >
set nottyfast " set terminal to slow mode
@ -483,8 +480,8 @@ special commands to execute executables: >
OpenVMS users always have to be aware that the Vim command :! "just" drop them
to DCL prompt. This feature is possible to use without any problem with all
DCL commands, but if we want to execute some program as XXD, CTAGS, JTAGS etc.
we're running into trouble if we follow the Vim documentation (see: help
DCL commands, but if we want to execute some programs such as XXD, CTAGS, JTAGS,
etc. we're running into trouble if we follow the Vim documentation (see: help
xxd).
Solution: Execute with the MC command and add the full path to the executable.
@ -534,7 +531,7 @@ Example: >
$define SYS$PRINT HP5ANSI
You can print out whole buffer or just the marked area.
You can print out the whole buffer or just the marked area.
More info under :help hardcopy
(Zoltan Arpadffy, Vim 6.0c)
@ -561,16 +558,16 @@ will be confused after a window-resize.
From 6.0 diff functionality has been implemented, but OpenVMS does not use
GNU/Unix like diff therefore built in diff does not work.
There is a simple solution to solve this anomaly. Install a Unix like diff
and Vim will work perfect in diff mode too. You just have to redefine your
and Vim will work perfectly in diff mode too. You just have to redefine your
diff program as: >
define /nolog diff <GNU_PATH>diff.exe
Another, more sophisticated solution is described below (8.12 diff-mode)
There are some other programs as patch, make etc that may cause same problems.
At www.polarhome.com is possible to download an GNU package for Alpha and VAX
boxes that is meant to solve GNU problems on OpenVMS.
( Zoltan Arpadffy, Vim 6.1)
There are other programs such as patch, make etc that may cause the same
problems. At www.polarhome.com is possible to download an GNU package for
Alpha and VAX boxes that is meant to solve GNU problems on OpenVMS.
(Zoltan Arpadffy, Vim 6.1)
8.12 diff-mode
@ -632,7 +629,7 @@ You can now compare files in 4 ways: >
3. VIM diff: $ VIMDIFF <FILE1> <FILE2>
4. GVIM diff: $ GVIMDIFF <FILE1> <FILE2>
( Coen Engelbarts, Vim 6.1)
(Coen Engelbarts, Vim 6.1)
8.13 Allow '$' in C keywords
@ -653,35 +650,36 @@ Now word-based commands, e.g. the '*'-search-command and the CTRL-]
tag-lookup, work on the whole identifier. (Ctags on VMS also supports '$' in
C keywords since ctags version 5.1.)
( Coen Engelbarts, Vim 6.1)
(Coen Engelbarts, Vim 6.1)
8.14 VIMTUTOR for beginners
It exits VIMTUTOR.COM DCL script that can help Vim beginners to learn/make
first steps with Vim on OpenVMS. Depending of binary distribution you may
start it with: >
The VIMTUTOR.COM DCL script can help Vim beginners to learn/make their first
steps with Vim on OpenVMS. Depending of binary distribution you may start it
with: >
@vim:vimtutor
(Thomas.R.Wyant III, Vim 6.1)
8.14 Slow start in console mode issue
8.16 Slow start in console mode issue
As GUI/GTK Vim works equally well in console mode, many administrators
deploy those executables system wide.
Unfortunately, on a remote slow connections GUI/GTK executables behave rather
slow when user wants to run Vim just in the console mode - because of X environment detection timeout.
slow when user wants to run Vim just in the console mode - because of X
environment detection timeout.
Luckily, there is a simple solution for that. Administrators need to deploy
both GUI/GTK build and just console build executables, like below: >
|- vim73
|----- doc
|----- syntax
|----- syntax
vimrc (system rc files)
gvimrc
gvim.exe (the renamed GUI or GTK built vim.exe)
vim.exe (the console only executable)
gvim.exe (the renamed GUI or GTK built vim.exe)
vim.exe (the console only executable)
Define system symbols like below in for ex in LOGIN.COM or SYLOGIN.COM: >
@ -692,7 +690,7 @@ Define system symbols like below in for ex in LOGIN.COM or SYLOGIN.COM: >
$ gv*im :== spawn/nowait/input=NLA0 mcr VIM:GVIM.EXE -g -GEOMETRY 80x40
Like this, users that do not have X environment and want to use Vim just in
Like this, users that do not have X environment and want to use Vim just in
console mode can avoid performance problems.
(Zoltan Arpadffy, Vim 7.2)
@ -714,8 +712,8 @@ View of Cluster from system ID 11655 node: TOR
+---------------------------------+
It is convenient to have a common VIM directory but execute different
executables.
There are more solutions for this problem:
executables.
There are several solutions for this problem:
Solution 1. All executables in the same directory with different names
This is easily done with the following script that can be added
@ -769,7 +767,7 @@ GNU_TOOLS.ZIP package downloadable from http://www.polarhome.com/vim/
Version 7.3
- CTAGS 5.8 included
- VMS compile warnings fixed - floating-point overflow warning corrected on VAX
- filepath completition corrected - too many chars were escaped in filename
- filepath completion corrected - too many chars were escaped in filename
and shell commands
- the following plugins are included into VMS runtime:
genutils 2.4, multiselect 2.2, multvals 3.1, selectbuf 4.3,
@ -784,10 +782,10 @@ Version 7.3
Version 7.2 (2008 Aug 9)
- VCF files write corrected
- CTAGS 5.7 included
- corrected make_vms.mms (on VAX gave syntax error)
- corrected make_vms.mms (on VAX gave syntax error)
Version 7.1 (2007 Jun 15)
- create TAGS file from menu
- create TAGS file from menu
Version 7 (2006 May 8)
- Improved low level char input (affects just console mode)

View File

@ -1,4 +1,4 @@
*os_win32.txt* For Vim version 7.3. Last change: 2010 Dec 19
*os_win32.txt* For Vim version 7.3. Last change: 2012 May 18
VIM REFERENCE MANUAL by George Reilly
@ -313,7 +313,37 @@ A. When using :! to run an external command, you can run it with "start": >
with :!start do not get passed Vim's open file handles, which means they do
not have to be closed before Vim.
To avoid this special treatment, use ":! start".
The optional "/min" argument causes the window to be minimized.
There are two optional arguments (see the next Q):
/min the window will be minimized
/b no console window will be opened
You can use only one of these flags at a time. A second one will be
treated as the start of the command.
Q. How do I avoid getting a window for programs that I run asynchronously?
A. You have two possible solutions depending on what you want:
1) You may use the /min flag in order to run program in a minimized state
with no other changes. It will work equally for console and GUI
applications.
2) You can use the /b flag to run console applications without creating a
console window for them (GUI applications are not affected). But you
should use this flag only if the application you run doesn't require any
input. Otherwise it will get an EOF error because its input stream
(stdin) would be redirected to \\.\NUL (stdout and stderr too).
Example for a console application, run Exuberant ctags: >
:!start /min ctags -R .
< When it has finished you should see file named "tags" in your current
directory. You should notice the window title blinking on your taskbar.
This is more noticable for commands that take longer.
Now delete the "tags" file and run this command: >
:!start /b ctags -R .
< You should have the same "tags" file, but this time there will be no
blinking on the taskbar.
Example for a GUI application: >
:!start /min notepad
:!start /b notepad
< The first command runs notepad minimized and the second one runs it
normally.
Q. I'm using Win32s, and when I try to run an external command like "make",
Vim doesn't wait for it to finish! Help!

View File

@ -1,4 +1,4 @@
*pattern.txt* For Vim version 7.3. Last change: 2011 Feb 25
*pattern.txt* For Vim version 7.3. Last change: 2013 Jan 25
VIM REFERENCE MANUAL by Bram Moolenaar
@ -21,7 +21,7 @@ explanations are in chapter 27 |usr_27.txt|.
10. Highlighting matches |match-highlight|
==============================================================================
1. Search commands *search-commands* *E486*
1. Search commands *search-commands*
*/*
/{pattern}[/]<CR> Search forward for the [count]'th occurrence of
@ -150,6 +150,11 @@ use <Esc> to abandon the search.
All matches for the last used search pattern will be highlighted if you set
the 'hlsearch' option. This can be suspended with the |:nohlsearch| command.
When no match is found you get the error: *E486* Pattern not found
Note that for the |:global| command this behaves like a normal message, for Vi
compatibility. For the |:s| command the "e" flag can be used to avoid the
error message |:s_flags|.
*search-offset* *{offset}*
These commands search for the specified pattern. With "/" and "?" an
additional offset may be given. There are two types of offsets: line offsets
@ -632,17 +637,18 @@ overview.
*/\@!*
\@! Matches with zero width if the preceding atom does NOT match at the
current position. |/zero-width| {not in Vi}
Like '(?!pattern)" in Perl.
Like "(?!pattern)" in Perl.
Example matches ~
foo\(bar\)\@! any "foo" not followed by "bar"
a.\{-}p\@! "a", "ap", "app", etc. not followed by a "p"
a.\{-}p\@! "a", "ap", "app", "appp", etc. not immediately
followed by a "p"
if \(\(then\)\@!.\)*$ "if " not followed by "then"
Using "\@!" is tricky, because there are many places where a pattern
does not match. "a.*p\@!" will match from an "a" to the end of the
line, because ".*" can match all characters in the line and the "p"
doesn't match at the end of the line. "a.\{-}p\@!" will match any
"a", "ap", "aap", etc. that isn't followed by a "p", because the "."
"a", "ap", "app", etc. that isn't followed by a "p", because the "."
can match a "p" and "p\@!" doesn't match after that.
You can't use "\@!" to look for a non-match before the matching
@ -651,10 +657,17 @@ overview.
"foobar" you could use "\(foo\)\@!...bar", but that doesn't match a
bar at the start of a line. Use "\(foo\)\@<!bar".
Useful example: to find "foo" in a line that does not contain "bar": >
/^\%(.*bar\)\@!.*\zsfoo
< This pattern first checks that there is not a single position in the
line where "bar" matches. If ".*bar" matches somewhere the \@! will
reject the pattern. When there is no match any "foo" will be found.
The "\zs" is to have the match start just before "foo".
*/\@<=*
\@<= Matches with zero width if the preceding atom matches just before what
follows. |/zero-width| {not in Vi}
Like '(?<=pattern)" in Perl, but Vim allows non-fixed-width patterns.
Like "(?<=pattern)" in Perl, but Vim allows non-fixed-width patterns.
Example matches ~
\(an\_s\+\)\@<=file "file" after "an" and white space or an
end-of-line
@ -678,7 +691,7 @@ overview.
before what follows. Thus this matches if there is no position in the
current or previous line where the atom matches such that it ends just
before what follows. |/zero-width| {not in Vi}
Like '(?<!pattern)" in Perl, but Vim allows non-fixed-width patterns.
Like "(?<!pattern)" in Perl, but Vim allows non-fixed-width patterns.
The match with the preceding atom is made to end just before the match
with what follows, thus an atom that ends in ".*" will work.
Warning: This can be slow (because many positions need to be checked
@ -924,7 +937,7 @@ match ASCII characters, as indicated by the range.
\l lowercase character: [a-z] */\l*
\L non-lowercase character: [^a-z] */\L*
\u uppercase character: [A-Z] */\u*
\U non-uppercase character [^A-Z] */\U*
\U non-uppercase character: [^A-Z] */\U*
NOTE: Using the atom is faster than the [] form.
@ -980,6 +993,8 @@ x A single character, with no special meaning, matches itself
[xyz] any 'x', 'y' or 'z'
[a-zA-Z]$ any alphabetic character at the end of a line
\c[a-z]$ same
[А-яЁё] Russian alphabet (with utf-8 and cp1251)
*/[\n]*
With "\_" prepended the collection also includes the end-of-line.
The same can be done by including "\n" in the collection. The
@ -1028,11 +1043,9 @@ x A single character, with no special meaning, matches itself
These items only work for 8-bit characters.
*/[[=* *[==]*
- An equivalence class. This means that characters are matched that
have almost the same meaning, e.g., when ignoring accents. The form
is:
have almost the same meaning, e.g., when ignoring accents. This
only works for Unicode, latin1 and latin9. The form is:
[=a=]
Currently this is only implemented for latin1. Also works for the
latin1 characters in utf-8 and latin9.
*/[[.* *[..]*
- A collation element. This currently simply accepts a single
character in the form:

View File

@ -1,15 +1,21 @@
*pi_getscript.txt* For Vim version 7.3. Last change: 2009 Oct 14
*pi_getscript.txt* For Vim version 7.0. Last change: 2011 Jun 23
>
GETSCRIPT REFERENCE MANUAL by Charles E. Campbell, Jr.
<
Authors: Charles E. Campbell, Jr. <NdrOchip@ScampbellPfamilyA.Mbiz>
(remove NOSPAM from the email address)
*GetLatestVimScripts-copyright*
Copyright: (c) 2004-2009 by Charles E. Campbell, Jr. *glvs-copyright*
The VIM LICENSE applies to getscript.vim and
pi_getscript.txt (see |copyright|) except use
"getscript" instead of "Vim". No warranty, express or implied.
Use At-Your-Own-Risk.
Copyright: (c) 2004-2012 by Charles E. Campbell, Jr. *glvs-copyright*
The VIM LICENSE (see |copyright|) applies to the files in this
package, including getscriptPlugin.vim, getscript.vim,
GetLatestVimScripts.dist, and pi_getscript.txt, except use "getscript"
instead of "VIM". Like anything else that's free, getscript and its
associated files are provided *as is* and comes with no warranty of
any kind, either expressed or implied. No guarantees of
merchantability. No guarantees of suitability for any purpose. 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. Use at your own risk!
Getscript is a plugin that simplifies retrieval of the latest versions of the
scripts that you yourself use! Typing |:GLVS| will invoke getscript; it will
@ -77,7 +83,9 @@ Your computer needs to have wget or curl for GetLatestVimScripts to do its work.
3. GetLatestVimScripts Usage *glvs-usage* *:GLVS*
Unless it has been defined elsewhere, >
:GLVS
will invoke GetLatestVimScripts(). If some other plugin has defined that
command, then you may type
>
@ -127,7 +135,8 @@ click on the script's link, you'll see a line resembling
http://vim.sourceforge.net/scripts/script.php?script_id=40
The "40" happens to be a ScriptID that GetLatestVimScripts needs to
download the associated page.
download the associated page, and is assigned by vim.sf.net itself
during initial uploading of the plugin.
The second number on each line gives the script's SourceID. The SourceID
records the count of uploaded scripts as determined by vim.sf.net; hence it
@ -151,19 +160,39 @@ This comment line tells getscript.vim to check vimscript #884 and that the
script is automatically installable. Getscript will also use this line to
help build the GetLatestVimScripts.dat file, by including a line such as: >
884 1 AutoAlign.vim
884 1 :AutoInstall: AutoAlign.vim
<
in it an AutoAlign.vim line isn't already in GetLatestVimScripts.dat file.
assuming that such a line isn't already in GetLatestVimScripts.dat file.
See |glvs-plugins| for more. Thus, GetLatestVimScripts thus provides a
comprehensive ability to keep your plugins up-to-date!
In summary:
* Optionally tell getscript that it is allowed to build/append a
GetLatestVimScripts.dat file based upon already installed plugins: >
let g:GetLatestVimScripts_allowautoinstall=1
<
* A line such as >
" GetLatestVimScripts: 884 1 :AutoInstall: AutoAlign.vim
< in an already-downloaded plugin constitutes the concurrence of the
plugin author that getscript may do AutoInstall. Not all plugins
may be AutoInstall-able, and the plugin's author is best situated
to know whether or not his/her plugin will AutoInstall properly.
* A line such as >
884 1 :AutoInstall: AutoAlign.vim
< in your GetLatestVimScripts.dat file constitutes your permission
to getscript to do AutoInstall. AutoInstall requires both your
and the plugin author's permission. See |GetLatestVimScripts_dat|.
*GetLatestVimScripts_dat*
As an example of a <GetLatestVimScripts.dat> file:
>
ScriptID SourceID Filename
--------------------------
294 1 Align.vim
120 2 decho.vim
294 1 :AutoInstall: Align.vim
120 2 Decho.vim
40 3 DrawIt.tar.gz
451 4 EasyAccents.vim
195 5 engspchk.vim
@ -201,8 +230,8 @@ are, then you may include :AutoInstall: just before "yourscriptname":
^
scriptid
<
NOTE: :AutoInstall: is a plugin-author option, not a GetLatestVimScripts.dat~
entry!~
NOTE: The :AutoInstall: feature requires both the plugin author's and~
the user's permission to operate!~
GetLatestVimScripts commands for those scripts are then appended, if not
already present, to the user's GetLatest/GetLatestVimScripts.dat file. It is
@ -210,7 +239,7 @@ a relatively painless way to automate the acquisition of any scripts your
plugins depend upon.
Now, as an author, you probably don't want GetLatestVimScripts to download
your own scripts for you yourself, thereby overwriting your not-yet-released
your own scripts atop your own copy, thereby overwriting your not-yet-released
hard work. GetLatestVimScripts provides a solution for this: put
>
0 0 yourscriptname
@ -351,6 +380,11 @@ The AutoInstall process will:
==============================================================================
9. GetLatestVimScripts History *getscript-history* *glvs-hist* {{{1
v44 Jun 23, 2011 : * handles additional decompression options for tarballs
(tgz taz tbz txz)
v33 May 31, 2011 : * using fnameescape() instead of escape()
* *.xz support
v32 Jun 19, 2010 : * (Jan Steffens) added support for xz compression
v31 Jun 29, 2008 : * (Bill McCarthy) fixed having hls enabled with getscript
* (David Schaefer) the acd option interferes with vimballs
Solution: bypass the acd option

View File

@ -1,4 +1,4 @@
*pi_gzip.txt* For Vim version 7.3. Last change: 2002 Oct 29
*pi_gzip.txt* For Vim version 7.3. Last change: 2012 Jul 19
VIM REFERENCE MANUAL by Bram Moolenaar
@ -25,6 +25,8 @@ with these extensions:
*.Z compress (Lempel-Ziv)
*.gz gzip
*.bz2 bzip2
*.lzma lzma
*.xz xz
That's actually the only thing you need to know. There are no options.

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
*pi_tar.txt* For Vim version 7.3. Last change: 2010 Nov 03
*pi_tar.txt* For Vim version 7.3. Last change: 2012 Jan 17
+====================+
| Tar File Interface |
@ -6,9 +6,16 @@
Author: Charles E. Campbell, Jr. <NdrOchip@ScampbellPfamily.AbizM>
(remove NOSPAM from Campbell's email first)
Copyright 2005-2010: The GPL (gnu public license) applies to *tar-copyright*
tar.vim, tarPlugin.vim, and pi_tar.txt.
No warranty, express or implied. Use At-Your-Own-Risk.
Copyright 2005-2012: *tar-copyright*
The VIM LICENSE (see |copyright|) applies to the files in this
package, including tarPlugin.vim, tar.vim, and pi_tar.txt. Like
anything else that's except use "tar.vim" instead of "VIM". Like
anything else that's free, tar.vim and its associated files are
provided *as is* and comes with no warranty of any kind, either
expressed or implied. No guarantees of merchantability. No
guarantees of suitability for any purpose. 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. Use at your own risk!
==============================================================================
1. Contents *tar* *tar-contents*
@ -60,11 +67,11 @@ Copyright 2005-2010: The GPL (gnu public license) applies to *tar-copyright*
<.vimrc> file.
Default
Variable Value Explanation
*g:tar_browseoptions* "Ptf" used to get a list of contents
*g:tar_readoptions* "OPxf" used to extract a file from a tarball
*g:tar_cmd* "tar" the name of the tar program
*g:tar_nomax* 0 if true, file window will not be maximized
*g:tar_secure* undef if exists:
*g:tar_browseoptions* "Ptf" used to get a list of contents
*g:tar_readoptions* "OPxf" used to extract a file from a tarball
*g:tar_cmd* "tar" the name of the tar program
*g:tar_nomax* 0 if true, file window will not be maximized
*g:tar_secure* undef if exists:
"--"s will be used to prevent unwanted
option expansion in tar commands.
Please be sure that your tar command
@ -76,15 +83,20 @@ Copyright 2005-2010: The GPL (gnu public license) applies to *tar-copyright*
"-"
Not all tar's support the "--" which is why
it isn't default.
*g:tar_writeoptions* "uf" used to update/replace a file
*g:tar_writeoptions* "uf" used to update/replace a file
==============================================================================
4. History *tar-history*
v28 Jun 23, 2011 * a few more decompression options (tbz tb2 txz)
v27 May 31, 2011 * moved cygwin detection before g:tar_copycmd handling
* inserted additional |:keepj| modifiers
* changed silent to sil! (|:silent|)
v26 Aug 09, 2010 * uses buffer-local instead of window variables to hold
tarfile name
* inserted keepj before 0d to protect jump list
v25 Jun 19, 2010 * (Jan Steffens) added support for xz compression
v24 Apr 07, 2009 * :Untarvim command implemented
Sep 28, 2009 * Added lzma support

View File

@ -1,4 +1,4 @@
*pi_vimball.txt* For Vim version 7.3. Last change: 2010 Apr 12
*pi_vimball.txt* For Vim version 7.3. Last change: 2012 Jan 17
----------------
Vimball Archiver
@ -6,16 +6,22 @@
Author: Charles E. Campbell, Jr. <NdrOchip@ScampbellPfamily.AbizM>
(remove NOSPAM from Campbell's email first)
Copyright: (c) 2004-2009 by Charles E. Campbell, Jr. *Vimball-copyright*
The VIM LICENSE applies to Vimball.vim, and Vimball.txt
(see |copyright|) except use "Vimball" instead of "Vim".
No warranty, express or implied.
Use At-Your-Own-Risk!
Copyright: (c) 2004-2012 by Charles E. Campbell, Jr. *Vimball-copyright*
The VIM LICENSE (see |copyright|) applies to the files in this
package, including vimballPlugin.vim, vimball.vim, and pi_vimball.txt.
except use "vimball" instead of "VIM". Like anything else that's free,
vimball.vim and its associated files are provided *as is* and comes with
no warranty of any kind, either expressed or implied. No guarantees
of merchantability. No guarantees of suitability for any purpose. 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. Use at your own risk!
==============================================================================
1. Contents *vba* *vimball* *vimball-contents*
1. Contents......................................: |vimball-contents|
2. Vimball Introduction..........................: |vimball-intro|
3. Vimball Manual................................: |vimball-manual|
MkVimball.....................................: |:MkVimball|
UseVimball....................................: |:UseVimball|
@ -176,6 +182,24 @@ WINDOWS *vimball-windows*
==============================================================================
4. Vimball History *vimball-history* {{{1
34 : Sep 22, 2011 * "UseVimball path" now supports a non-full path by
prepending the current directory to it.
33 : Apr 02, 2011 * Gave priority to *.vmb over *.vba
* Changed silent! to sil! (shorter)
* Safed |'swf'| setting (during vimball extraction,
its now turned off)
32 : May 19, 2010 * (Christian Brabrandt) :so someplugin.vba and
:so someplugin.vba.gz (and the other supported
compression types) now works
* (Jan Steffens) added support for xz compression
* fenc extraction was erroneously picking up the
end of the line number when no file encoding
was present. Fixed.
* By request, beginning the switchover from the vba
extension to vmb. Currently both are supported;
MkVimball, however, now will create *.vmb files.
Feb 11, 2011 * motoyakurotsu reported an error with vimball's
handling of zero-length files
30 : Dec 08, 2008 * fnameescape() inserted to protect error
messaging using corrupted filenames from
causing problems
@ -199,6 +223,8 @@ WINDOWS *vimball-windows*
causing problems as reported by Zhang Shuhan
24 : Nov 15, 2007 * g:vimball_path_escape used by s:Path() to
prevent certain characters from causing trouble
(defunct: |fnameescape()| and |shellescape()|
now used instead)
22 : Mar 21, 2007 * uses setlocal instead of set during BufEnter
21 : Nov 27, 2006 * (tnx to Bill McCarthy) vimball had a header
handling problem and it now changes \s to /s

View File

@ -1,4 +1,4 @@
*pi_zip.txt* For Vim version 7.3. Last change: 2010 Sep 14
*pi_zip.txt* For Vim version 7.3. Last change: 2012 Jan 17
+====================+
| Zip File Interface |
@ -6,25 +6,26 @@
Author: Charles E. Campbell, Jr. <NdrOchip@ScampbellPfamily.AbizM>
(remove NOSPAM from Campbell's email first)
Copyright: Copyright (C) 2005-2009 Charles E Campbell, Jr *zip-copyright*
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,
zip.vim, zipPlugin.vim, and pi_zip.txt are provided *as is*
and it 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.
Copyright: Copyright (C) 2005-2011 Charles E Campbell, Jr *zip-copyright*
The VIM LICENSE (see |copyright|) applies to the files in this
package, including zipPlugin.vim, zip.vim, and pi_zip.vim. except use
"zip.vim" instead of "VIM". Like anything else that's free, zip.vim
and its associated files are provided *as is* and comes with no
warranty of any kind, either expressed or implied. No guarantees of
merchantability. No guarantees of suitability for any purpose. 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. Use at your own risk!
==============================================================================
1. Contents *zip* *zip-contents*
1. Contents *zip* *zip-contents*
1. Contents................................................|zip-contents|
2. Usage...................................................|zip-usage|
3. Additional Extensions...................................|zip-extension|
4. History.................................................|zip-history|
==============================================================================
2. Usage *zip-usage* *zip-manual*
2. Usage *zip-usage* *zip-manual*
When one edits a *.zip file, this plugin will handle displaying a
contents page. Select a file to edit by moving the cursor atop
@ -73,7 +74,7 @@ Copyright: Copyright (C) 2005-2009 Charles E Campbell, Jr *zip-copyright*
==============================================================================
3. Additional Extensions *zip-extension*
Apparently there are a number of archivers who generate zip files that
Apparently there are a number of archivers which generate zip files that
don't use the .zip extension (.jar, .xpi, etc). To handle such files,
place a line in your <.vimrc> file: >
@ -83,7 +84,13 @@ Copyright: Copyright (C) 2005-2009 Charles E Campbell, Jr *zip-copyright*
should be treated as zip files.
==============================================================================
4. History *zip-history* {{{1
4. History *zip-history* {{{1
v25 Jun 27, 2011 * using keepj with unzip -Z
(consistent with the -p variant)
v24 Jun 21, 2010 * (Cédric Bosdonnat) unzip seems to need its filenames
fnameescape'd as well as shellquote'd
* (Motoya Kurotsu) inserted keepj before 0d to protect
jump list
v17 May 09, 2008 * arno caught a security bug
v15 Sep 07, 2007 * &shq now used if not the empty string for g:zip_shq
v14 May 07, 2007 * using b:zipfile instead of w:zipfile to avoid problem

View File

@ -1,4 +1,4 @@
*quickfix.txt* For Vim version 7.3. Last change: 2011 Feb 01
*quickfix.txt* For Vim version 7.3. Last change: 2011 May 10
VIM REFERENCE MANUAL by Bram Moolenaar
@ -215,28 +215,29 @@ command with 'l'.
*:cex* *:cexpr* *E777*
:cex[pr][!] {expr} Create a quickfix list using the result of {expr} and
jump to the first error. If {expr} is a String, then
each new-line terminated line in the String is
processed using 'errorformat' and the result is added
to the quickfix list. If {expr} is a List, then each
String item in the list is processed and added to the
quickfix list. Non String items in the List are
ignored. See |:cc|
for [!].
jump to the first error.
If {expr} is a String, then each new-line terminated
line in the String is processed using the global value
of 'errorformat' and the result is added to the
quickfix list.
If {expr} is a List, then each String item in the list
is processed and added to the quickfix list. Non
String items in the List are ignored.
See |:cc| for [!].
Examples: >
:cexpr system('grep -n xyz *')
:cexpr getline(1, '$')
<
*:lex* *:lexpr*
:lex[pr][!] {expr} Same as ":cexpr", except the location list for the
:lex[pr][!] {expr} Same as |:cexpr|, except the location list for the
current window is used instead of the quickfix list.
*:cgete* *:cgetexpr*
:cgete[xpr] {expr} Create a quickfix list using the result of {expr}.
Just like ":cexpr", but don't jump to the first error.
Just like |:cexpr|, but don't jump to the first error.
*:lgete* *:lgetexpr*
:lgete[xpr] {expr} Same as ":cgetexpr", except the location list for the
:lgete[xpr] {expr} Same as |:cgetexpr|, except the location list for the
current window is used instead of the quickfix list.
*:cad* *:caddexpr*
@ -560,7 +561,9 @@ commands can be combined to create a NewGrep command: >
*:vim* *:vimgrep* *E682* *E683*
:vim[grep][!] /{pattern}/[g][j] {file} ...
Search for {pattern} in the files {file} ... and set
the error list to the matches.
the error list to the matches. Files matching
'wildignore' are ignored; files in 'suffixes' are
searched last.
Without the 'g' flag each line is added only once.
With 'g' every match is added.
@ -912,8 +915,8 @@ Basic items
%n error number (finds a number)
%m error message (finds a string)
%r matches the "rest" of a single-line file message %O/P/Q
%p pointer line (finds a sequence of '-', '.' or ' ' and
uses the length for the column number)
%p pointer line (finds a sequence of '-', '.', ' ' or
tabs and uses the length for the column number)
%*{conv} any scanf non-assignable conversion
%% the single '%' character
%s search text (finds a string)

View File

@ -1,4 +1,4 @@
*quickref.txt* For Vim version 7.3. Last change: 2010 Dec 02
*quickref.txt* For Vim version 7.3. Last change: 2012 Feb 22
VIM REFERENCE MANUAL by Bram Moolenaar
@ -657,6 +657,7 @@ Short explanation of each option: *option-list*
'cscopepathcomp' 'cspc' how many components of the path to show
'cscopeprg' 'csprg' command to execute cscope
'cscopequickfix' 'csqf' use quickfix window for cscope results
'cscoperelative' 'csre' Use cscope.out path basename as prefix
'cscopetag' 'cst' use cscope for tag commands
'cscopetagorder' 'csto' determines ":cstag" search order
'cscopeverbose' 'csverb' give messages when adding a cscope database
@ -800,7 +801,7 @@ Short explanation of each option: *option-list*
'omnifunc' 'ofu' function for filetype-specific completion
'opendevice' 'odev' allow reading/writing devices on MS-Windows
'operatorfunc' 'opfunc' function to be called for |g@| operator
'osfiletype' 'oft' operating system-specific filetype information
'osfiletype' 'oft' no longer supported
'paragraphs' 'para' nroff macros that separate paragraphs
'paste' allow pasting text
'pastetoggle' 'pt' key code that causes 'paste' to toggle
@ -850,6 +851,7 @@ Short explanation of each option: *option-list*
'shellslash' 'ssl' use forward slash for shell file names
'shelltemp' 'stmp' whether to use a temp file for shell commands
'shelltype' 'st' Amiga: influences how to use a shell
'shellxescape' 'sxe' characters to escape when 'shellxquote' is (
'shellxquote' 'sxq' like 'shellquote', but include redirection
'shiftround' 'sr' round indent to multiple of shiftwidth
'shiftwidth' 'sw' number of spaces to use for (auto)indent step

View File

@ -1,4 +1,4 @@
*repeat.txt* For Vim version 7.3. Last change: 2011 Jan 06
*repeat.txt* For Vim version 7.3. Last change: 2012 Mar 23
VIM REFERENCE MANUAL by Bram Moolenaar
@ -109,7 +109,7 @@ q Stops recording. (Implementation note: The 'q' that
it was the result of a mapping) {Vi: no recording}
*@*
@{0-9a-z".=*} Execute the contents of register {0-9a-z".=*} [count]
@{0-9a-z".=*+} Execute the contents of register {0-9a-z".=*+} [count]
times. Note that register '%' (name of the current
file) and '#' (name of the alternate file) cannot be
used.
@ -123,8 +123,8 @@ q Stops recording. (Implementation note: The 'q' that
*@@* *E748*
@@ Repeat the previous @{0-9a-z":*} [count] times.
:[addr]*{0-9a-z".=} *:@* *:star*
:[addr]@{0-9a-z".=*} Execute the contents of register {0-9a-z".=*} as an Ex
:[addr]*{0-9a-z".=+} *:@* *:star*
:[addr]@{0-9a-z".=*+} Execute the contents of register {0-9a-z".=*+} as an Ex
command. First set cursor at line [addr] (default is
current line). When the last line in the register does
not have a <CR> it will be added automatically when

View File

@ -1,4 +1,4 @@
*sign.txt* For Vim version 7.3. Last change: 2010 Oct 14
*sign.txt* For Vim version 7.3. Last change: 2012 Jul 10
VIM REFERENCE MANUAL by Gordon Prieur
@ -76,7 +76,7 @@ DEFINING A SIGN. *:sign-define* *E255* *E160* *E612*
Accepted arguments:
icon={pixmap}
icon={bitmap}
Define the file name where the bitmap can be found. Should be
a full path. The bitmap should fit in the place of two
characters. This is not checked. If the bitmap is too big it
@ -86,6 +86,8 @@ DEFINING A SIGN. *:sign-define* *E255* *E160* *E612*
GTK 1 pixmap (.xpm)
GTK 2 many
Motif pixmap (.xpm)
Win32 .bmp, .ico, .cur
pixmap (.xpm) |+xpm_w32|
linehl={group}
Highlighting group used for the whole line the sign is placed
@ -151,8 +153,14 @@ REMOVING SIGNS *:sign-unplace* *E159*
Remove the previously placed sign {id} from file {fname}.
See remark above about {fname} |:sign-fname|.
:sign unplace * file={fname}
Remove all placed signs in file {fname}.
:sign unplace {id} buffer={nr}
Same, but use buffer {nr}.
Remove the previously placed sign {id} from buffer {nr}.
:sign unplace * buffer={nr}
Remove all placed signs in buffer {nr}.
:sign unplace {id}
Remove the previously placed sign {id} from all files it

View File

@ -1,4 +1,4 @@
*spell.txt* For Vim version 7.3. Last change: 2011 Feb 01
*spell.txt* For Vim version 7.3. Last change: 2011 May 25
VIM REFERENCE MANUAL by Bram Moolenaar
@ -1244,6 +1244,7 @@ one or more groups, where each group can be:
Optionally this may be followed by:
* the group appears zero or more times, e.g., sm*e
+ the group appears one or more times, e.g., c+
? the group appears zero times or once, e.g., x?
This is similar to the regexp pattern syntax (but not the same!). A few
examples with the sequence of word flags they require:
@ -1251,6 +1252,7 @@ examples with the sequence of word flags they require:
COMPOUNDRULE yz yz
COMPOUNDRULE x+z xz xxz xxxz etc.
COMPOUNDRULE yx+ yx yxx yxxx etc.
COMPOUNDRULE xy?z xz xyz
COMPOUNDRULE [abc]z az bz cz
COMPOUNDRULE [abc]+z az aaz abaz bz baz bcbz cz caz cbaz etc.

View File

@ -1,4 +1,4 @@
*starting.txt* For Vim version 7.3. Last change: 2010 Sep 18
*starting.txt* For Vim version 7.3. Last change: 2012 Mar 16
VIM REFERENCE MANUAL by Bram Moolenaar
@ -248,7 +248,8 @@ a slash. Thus "-R" means recovery and "-/R" readonly.
{not in Vi}
*-g*
-g Start Vim in GUI mode. See |gui|. {not in Vi}
-g Start Vim in GUI mode. See |gui|. For the opposite see |-v|.
{not in Vi}
*-v*
-v Start Ex in Vi mode. Only makes a difference when the
@ -424,12 +425,7 @@ a slash. Thus "-R" means recovery and "-/R" readonly.
"-d con:30/10/600/150". But you can also use it to start
editing on another device, e.g., AUX:. {not in Vi}
*-f*
-f Amiga: Do not restart Vim to open a new window. This
option should be used when Vim is started by a program that
will wait for the edit session to finish (e.g., mail or
readnews). See |amiga-window|.
GUI: Do not disconnect from the program that started Vim.
-f GUI: Do not disconnect from the program that started Vim.
'f' stands for "foreground". If omitted, the GUI forks a new
process and exits the current one. "-f" should be used when
gvim is started by a program that will wait for the edit
@ -437,8 +433,14 @@ a slash. Thus "-R" means recovery and "-/R" readonly.
never to fork, include 'f' in 'guioptions' in your |gvimrc|.
Careful: You can use "-gf" to start the GUI in the foreground,
but "-fg" is used to specify the foreground color. |gui-fork|
Amiga: Do not restart Vim to open a new window. This
option should be used when Vim is started by a program that
will wait for the edit session to finish (e.g., mail or
readnews). See |amiga-window|.
{not in Vi}
*--nofork*
--nofork GUI: Do not fork. Same as |-f|.
*-u* *E282*

View File

@ -1,4 +1,4 @@
*syntax.txt* For Vim version 7.3. Last change: 2011 Apr 01
*syntax.txt* For Vim version 7.3. Last change: 2013 Jan 30
VIM REFERENCE MANUAL by Bram Moolenaar
@ -199,7 +199,8 @@ REPLACING AN EXISTING SYNTAX FILE *mysyntaxfile-replace*
If you don't like a distributed syntax file, or you have downloaded a new
version, follow the same steps as for |mysyntaxfile| above. Just make sure
that you write the syntax file in a directory that is early in 'runtimepath'.
Vim will only load the first syntax file found.
Vim will only load the first syntax file found, assuming that it sets
b:current_syntax.
NAMING CONVENTIONS *group-name* *{group-name}* *E669* *W18*
@ -379,183 +380,23 @@ settings, depending on which syntax is active. Example: >
This is not a syntax file itself, but a script that converts the current
window into HTML. Vim opens a new window in which it builds the HTML file.
After you save the resulting file, you can view it with any browser. The
colors should be exactly the same as you see them in Vim.
You are not supposed to set the 'filetype' or 'syntax' option to "2html"!
Source the script to convert the current file: >
:runtime! syntax/2html.vim
<
*:TOhtml*
Or use the ":TOhtml" user command. It is defined in a standard plugin.
":TOhtml" also works with a range and in a Visual area: >
:10,40TOhtml
Warning: This can be slow! The script must process every character of every
line. Because it can take a long time, by default a progress bar is displayed
in the statusline for each major step in the conversion process. If you don't
like seeing this progress bar, you can disable it and get a very minor speed
improvement with: >
let g:html_no_progress = 1
":TOhtml" has another special feature: if the window is in diff mode, it will
generate HTML that shows all the related windows. This can be disabled by
setting the g:html_diff_one_file variable: >
let g:html_diff_one_file = 1
After you save the resulting file, you can view it with any browser. The
colors should be exactly the same as you see them in Vim.
To restrict the conversion to a range of lines, use a range with the |:TOhtml|
command, or set "g:html_start_line" and "g:html_end_line" to the first and
last line to be converted. Example, using the last set Visual area: >
:let g:html_start_line = line("'<")
:let g:html_end_line = line("'>")
The lines are numbered according to 'number' option and the Number
highlighting. You can force lines to be numbered in the HTML output by
setting "html_number_lines" to non-zero value: >
:let g:html_number_lines = 1
Force to omit the line numbers by using a zero value: >
:let g:html_number_lines = 0
Go back to the default to use 'number' by deleting the variable: >
:unlet g:html_number_lines
By default, valid HTML 4.01 using cascading style sheets (CSS1) is generated.
If you need to generate markup for really old browsers or some other user
agent that lacks basic CSS support, use: >
:let g:html_use_css = 0
Concealed text is removed from the HTML and replaced with the appropriate
character from |:syn-cchar| or 'listchars' depending on the current value of
'conceallevel'. If you always want to display all text in your document,
either set 'conceallevel' to zero before invoking 2html, or use: >
:let g:html_ignore_conceal = 1
Similarly, closed folds are put in the HTML as they are displayed. If you
don't want this, use the |zR| command before invoking 2html, or use: >
:let g:html_ignore_folding = 1
You may want to generate HTML that includes all the data within the folds, and
allow the user to view the folded data similar to how they would in Vim. To
generate this dynamic fold information, use: >
:let g:html_dynamic_folds = 1
Using html_dynamic_folds will imply html_use_css, because it would be far too
difficult to do it for old browsers. However, html_ignore_folding overrides
html_dynamic_folds.
Using html_dynamic_folds will default to generating a foldcolumn in the html
similar to Vim's foldcolumn, that will use javascript to open and close the
folds in the HTML document. The width of this foldcolumn starts at the current
setting of |'foldcolumn'| but grows to fit the greatest foldlevel in your
document. If you do not want to show a foldcolumn at all, use: >
:let g:html_no_foldcolumn = 1
Using this option, there will be no foldcolumn available to open the folds in
the HTML. For this reason, another option is provided: html_hover_unfold.
Enabling this option will use CSS 2.0 to allow a user to open a fold by
hovering the mouse pointer over it. Note that old browsers (notably Internet
Explorer 6) will not support this feature. Browser-specific markup for IE6 is
included to fall back to the normal CSS1 code so that the folds show up
correctly for this browser, but they will not be openable without a
foldcolumn. Note that using html_hover_unfold will allow modern browsers with
disabled javascript to view closed folds. To use this option, use: >
:let g:html_hover_unfold = 1
Setting html_no_foldcolumn with html_dynamic_folds will automatically set
html_hover_unfold, because otherwise the folds wouldn't be dynamic.
By default "<pre>" and "</pre>" is used around the text. This makes it show
up as you see it in Vim, but without wrapping. If you prefer wrapping, at the
risk of making some things look a bit different, use: >
:let g:html_no_pre = 1
This will use <br> at the end of each line and use "&nbsp;" for repeated
spaces.
If you do use the "<pre>" tags, <Tab> characters in the text are included in
the generated output if they will have no effect on the appearance of the
text and it looks like they are in the document intentionally. This allows for
the HTML output to be copied and pasted from a browser without losing the
actual whitespace used in the document.
Specifically, <Tab> characters will be included if the 'tabstop' option is set
to the default of 8, 'expandtab' is not set, and if neither the foldcolumn nor
the line numbers are included in the HTML output (see options above). When any
of these conditions are not met, any <Tab> characters in the text are expanded
to the appropriate number of spaces in the HTML output.
When "<pre>" is included, you can force |:TOhtml| to keep the tabs even if the
other conditions are not met with: >
:let g:html_expand_tabs = 0
Note that this can easily break text alignment and indentation in the HTML.
Force tabs to be expanded even when they would be kept using: >
:let g:html_expand_tabs = 1
For diff mode on a single file (with g:html_diff_one_file) a sequence of more
than 3 filler lines is displayed as three lines with the middle line
mentioning the total number of inserted lines. If you prefer to see all the
inserted lines as with the side-by-side diff, use: >
:let g:html_whole_filler = 1
And to go back to displaying up to three lines again: >
:unlet g:html_whole_filler
<
TOhtml uses the current value of 'fileencoding' if set, or 'encoding' if not,
to determine the charset and 'fileencoding' of the HTML file. In general, this
works for the encodings mentioned specifically by name in |encoding-names|, but
TOhtml will only automatically use those encodings which are widely supported.
However, you can override this to support specific encodings that may not be
automatically detected by default.
To overrule all automatic charset detection, set g:html_use_encoding to the
name of the charset to be used. TOhtml will try to determine the appropriate
'fileencoding' setting from the charset, but you may need to set it manually
if TOhtml cannot determine the encoding. It is recommended to set this
variable to something widely supported, like UTF-8, for anything you will be
hosting on a webserver: >
:let g:html_use_encoding = "UTF-8"
You can also use this option to omit the line that specifies the charset
entirely, by setting g:html_use_encoding to an empty string: >
:let g:html_use_encoding = ""
To go back to the automatic mechanism, delete the g:html_use_encoding
variable: >
:unlet g:html_use_encoding
If you specify a charset with g:html_use_encoding for which TOhtml cannot
automatically detect the corresponding 'fileencoding' setting, you can use
g:html_encoding_override to allow TOhtml to detect the correct encoding.
This is a dictionary of charset-encoding pairs that will replace existing
pairs automatically detected by TOhtml, or supplement with new pairs. For
example, to allow TOhtml to detect the HTML charset "windows-1252" properly as
the encoding "8bit-cp1252", use: >
:let g:html_encoding_override = {'windows-1252': '8bit-cp1252'}
<
The g:html_charset_override is similar, it allows TOhtml to detect the HTML
charset for any 'fileencoding' or 'encoding' which is not detected
automatically. You can also use it to override specific existing
encoding-charset pairs. For example, TOhtml will by default use UTF-8 for all
Unicode/UCS encodings. To use UTF-16 and UTF-32 instead, use: >
:let g:html_charset_override = {'ucs-4': 'UTF-32', 'utf-16': 'UTF-16'}
Note that documents encoded in either UTF-32 or UTF-16 have known
compatibility problems with at least one major browser.
*convert-to-XML* *convert-to-XHTML*
If you do not like plain HTML, an alternative is to have the script generate
XHTML (XML compliant HTML). To do this set the "html_use_xhtml" variable: >
:let g:html_use_xhtml = 1
Any of the on/off options listed above can be enabled or disabled by setting
them explicitly to the desired value, or restored to their default by removing
the variable using |:unlet|.
Many variables affect the output of 2html.vim; see below. Any of the on/off
options listed below can be enabled or disabled by setting them explicitly to
the desired value, or restored to their default by removing the variable using
|:unlet|.
Remarks:
- Some truly ancient browsers may not show the background colors.
- From most browsers you can also print the file (in color)!
- This version of TOhtml may work with older versions of Vim, but some
- The latest TOhtml may actually work with older versions of Vim, but some
features such as conceal support will not function, and the colors may be
incorrect for an old Vim without GUI support compiled in.
@ -563,6 +404,311 @@ Here is an example how to run the script over all .c and .h files from a
Unix shell: >
for f in *.[ch]; do gvim -f +"syn on" +"run! syntax/2html.vim" +"wq" +"q" $f; done
<
*g:html_start_line* *g:html_end_line*
To restrict the conversion to a range of lines, use a range with the |:TOhtml|
command below, or set "g:html_start_line" and "g:html_end_line" to the first
and last line to be converted. Example, using the last set Visual area: >
:let g:html_start_line = line("'<")
:let g:html_end_line = line("'>")
:runtime! syntax/2html.vim
<
*:TOhtml*
:[range]TOhtml The ":TOhtml" command is defined in a standard plugin.
This command will source |2html.vim| for you. When a
range is given, set |g:html_start_line| and
|g:html_end_line| to the start and end of the range,
respectively. Default range is the entire buffer.
If the current window is part of a |diff|, unless
|g:html_diff_one_file| is set, :TOhtml will convert
all windows which are part of the diff in the current
tab and place them side-by-side in a <table> element
in the generated HTML.
Examples: >
:10,40TOhtml " convert lines 10-40 to html
:'<,'>TOhtml " convert current/last visual selection
:TOhtml " convert entire buffer
<
*g:html_diff_one_file*
Default: 0.
When 0, all windows involved in a |diff| in the current tab page are converted
to HTML and placed side-by-side in a <table> element.
When 1, only the current buffer is converted.
Example: >
let g:html_diff_one_file = 1
<
*g:html_whole_filler*
Default: 0.
When 0, if |g:html_diff_one_file| is 1, a sequence of more than 3 filler lines
is displayed as three lines with the middle line mentioning the total number
of inserted lines.
When 1, always display all inserted lines as if |g:html_diff_one_file| were
not set.
>
:let g:html_whole_filler = 1
<
*TOhtml-performance* *g:html_no_progress*
Default: 0.
When 0, display a progress bar in the statusline for each major step in the
2html.vim conversion process.
When 1, do not display the progress bar. This offers a minor speed improvement
but you won't have any idea how much longer the conversion might take; for big
files it can take a long time!
Example: >
let g:html_no_progress = 1
<
You can obtain better performance improvements by also instructing Vim to not
run interactively, so that too much time is not taken to redraw as the script
moves through the buffer, switches windows, and the like: >
vim -E -s -c "let g:html_no_progress=1" -c "syntax on" -c "set ft=c" -c "runtime syntax/2html.vim" -cwqa myfile.c
<
Note that the -s flag prevents loading your .vimrc and any plugins, so you
need to explicitly source/enable anything that will affect the HTML
conversion. See |-E| and |-s-ex| for details. It is probably best to create a
script to replace all the -c commands and use it with the -u flag instead of
specifying each command separately.
*g:html_number_lines*
Default: current 'number' setting.
When 0, buffer text is displayed in the generated HTML without line numbering.
When 1, a column of line numbers is added to the generated HTML with the same
highlighting as the line number column in Vim (|hl-LineNr|).
Force line numbers even if 'number' is not set: >
:let g:html_number_lines = 1
Force to omit the line numbers: >
:let g:html_number_lines = 0
Go back to the default to use 'number' by deleting the variable: >
:unlet g:html_number_lines
<
*g:html_use_css*
Default: 1.
When 1, generate valid HTML 4.01 markup with CSS1 styling, supported in all
modern browsers and most old browsers.
When 0, generate <font> tags and similar outdated markup. This is not
recommended but it may work better in really old browsers, email clients,
forum posts, and similar situations where basic CSS support is unavailable.
Example: >
:let g:html_use_css = 0
<
*g:html_ignore_conceal*
Default: 0.
When 0, concealed text is removed from the HTML and replaced with a character
from |:syn-cchar| or 'listchars' as appropriate, depending on the current
value of 'conceallevel'.
When 1, include all text from the buffer in the generated HTML, even if it is
|conceal|ed.
Either of the following commands will ensure that all text in the buffer is
included in the generated HTML (unless it is folded): >
:let g:html_ignore_conceal = 1
:setl conceallevel=0
<
*g:html_ignore_folding*
Default: 0.
When 0, text in a closed fold is replaced by the text shown for the fold in
Vim (|fold-foldtext|). See |g:html_dynamic_folds| if you also want to allow
the user to expand the fold as in Vim to see the text inside.
When 1, include all text from the buffer in the generated HTML; whether the
text is in a fold has no impact at all. |g:html_dynamic_folds| has no effect.
Either of these commands will ensure that all text in the buffer is included
in the generated HTML (unless it is concealed): >
zR
:let g:html_ignore_folding = 1
<
*g:html_dynamic_folds*
Default: 0.
When 0, text in a closed fold is not included at all in the generated HTML.
When 1, generate javascript to open a fold and show the text within, just like
in Vim.
Setting this variable to 1 causes 2html.vim to always use CSS for styling,
regardless of what |g:html_use_css| is set to.
This variable is ignored when |g:html_ignore_folding| is set.
>
:let g:html_dynamic_folds = 1
<
*g:html_no_foldcolumn*
Default: 0.
When 0, if |g:html_dynamic_folds| is 1, generate a column of text similar to
Vim's foldcolumn (|fold-foldcolumn|) the user can click on to toggle folds
open or closed. The minimum width of the generated text column is the current
'foldcolumn' setting.
When 1, do not generate this column; instead, hovering the mouse cursor over
folded text will open the fold as if |g:html_hover_unfold| were set.
>
:let g:html_no_foldcolumn = 1
<
*TOhtml-uncopyable-text* *g:html_prevent_copy*
Default: empty string.
This option prevents certain regions of the generated HTML from being copied,
when you select all text in document rendered in a browser and copy it. Useful
for allowing users to copy-paste only the source text even if a fold column or
line numbers are shown in the generated content. Specify regions to be
affected in this way as follows:
f: fold column
n: line numbers (also within fold text)
t: fold text
d: diff filler
Example, to make the fold column and line numbers uncopyable: >
:let g:html_prevent_copy = "fn"
<
This feature is currently implemented by inserting read-only <input> elements
into the markup to contain the uncopyable areas. This does not work well in
all cases. When pasting to some applications which understand HTML, the
<input> elements also get pasted. But plain-text paste destinations should
always work.
*g:html_no_invalid*
Default: 0.
When 0, if |g:html_prevent_copy| is non-empty, an invalid attribute is
intentionally inserted into the <input> element for the uncopyable areas. This
increases the number of applications you can paste to without also pasting the
<input> elements. Specifically, Microsoft Word will not paste the <input>
elements if they contain this invalid attribute.
When 1, no invalid markup is ever intentionally inserted, and the generated
page should validate. However, be careful pasting into Microsoft Word when
|g:html_prevent_copy| is non-empty; it can be hard to get rid of the <input>
elements which get pasted.
*g:html_hover_unfold*
Default: 0.
When 0, the only way to open a fold generated by 2html.vim with
|g:html_dynamic_folds| set, is to click on the generated fold column.
When 1, use CSS 2.0 to allow the user to open a fold by moving the mouse
cursor over the displayed fold text. This is useful to allow users with
disabled javascript to view the folded text.
Note that old browsers (notably Internet Explorer 6) will not support this
feature. Browser-specific markup for IE6 is included to fall back to the
normal CSS1 styling so that the folds show up correctly for this browser, but
they will not be openable without a foldcolumn.
>
:let g:html_hover_unfold = 1
<
*TOhtml-wrap-text* *g:html_pre_wrap*
Default: current 'wrap' setting.
When 0, if |g:html_no_pre| is 0 or unset, the text in the generated HTML does
not wrap at the edge of the browser window.
When 1, if |g:html_use_css| is 1, the CSS 2.0 "white-space:pre-wrap" value is
used, causing the text to wrap at whitespace at the edge of the browser
window.
Explicitly enable text wrapping: >
:let g:html_pre_wrap = 1
Explicitly disable wrapping: >
:let g:html_pre_wrap = 0
Go back to default, determine wrapping from 'wrap' setting: >
:unlet g:html_pre_wrap
<
*g:html_no_pre*
Default: 0.
When 0, buffer text in the generated HTML is surrounded by <pre>...</pre>
tags. Series of whitespace is shown as in Vim without special markup, and tab
characters can be included literally (see |g:html_expand_tabs|).
When 1 (not recommended), the <pre> tags are omitted, and a plain <div> is
used instead. Whitespace is replaced by a series of &nbsp; character
references, and <br> is used to end each line. This is another way to allow
text in the generated HTML is wrap (see |g:html_pre_wrap|) which also works in
old browsers, but may cause noticeable differences between Vim's display and
the rendered page generated by 2html.vim.
>
:let g:html_no_pre = 1
<
*g:html_expand_tabs*
Default: 1 if 'tabstop' is 8, 'expandtab' is 0, and no fold column or line
numbers occur in the generated HTML;
0 otherwise.
When 0, <Tab> characters in the buffer text are replaced with an appropriate
number of space characters, or &nbsp; references if |g:html_no_pre| is 1.
When 1, if |g:html_no_pre| is 0 or unset, <Tab> characters in the buffer text
are included as-is in the generated HTML. This is useful for when you want to
allow copy and paste from a browser without losing the actual whitespace in
the source document. Note that this can easily break text alignment and
indentation in the HTML, unless set by default.
Force |2html.vim| to keep <Tab> characters: >
:let g:html_expand_tabs = 0
<
Force tabs to be expanded: >
:let g:html_expand_tabs = 1
<
*TOhtml-encoding-detect* *TOhtml-encoding*
It is highly recommended to set your desired encoding with
|g:html_use_encoding| for any content which will be placed on a web server.
If you do not specify an encoding, |2html.vim| uses the preferred IANA name
for the current value of 'fileencoding' if set, or 'encoding' if not.
'encoding' is always used for certain 'buftype' values. 'fileencoding' will be
set to match the chosen document encoding.
Automatic detection works for the encodings mentioned specifically by name in
|encoding-names|, but TOhtml will only automatically use those encodings with
wide browser support. However, you can override this to support specific
encodings that may not be automatically detected by default (see options
below). See http://www.iana.org/assignments/character-sets for the IANA names.
Note, by default all Unicode encodings are converted to UTF-8 with no BOM in
the generated HTML, as recommended by W3C:
http://www.w3.org/International/questions/qa-choosing-encodings
http://www.w3.org/International/questions/qa-byte-order-mark
*g:html_use_encoding*
Default: none, uses IANA name for current 'fileencoding' as above.
To overrule all automatic charset detection, set g:html_use_encoding to the
name of the charset to be used. It is recommended to set this variable to
something widely supported, like UTF-8, for anything you will be hosting on a
webserver: >
:let g:html_use_encoding = "UTF-8"
You can also use this option to omit the line that specifies the charset
entirely, by setting g:html_use_encoding to an empty string (NOT recommended): >
:let g:html_use_encoding = ""
To go back to the automatic mechanism, delete the |g:html_use_encoding|
variable: >
:unlet g:html_use_encoding
<
*g:html_encoding_override*
Default: none, autoload/tohtml.vim contains default conversions for encodings
mentioned by name at |encoding-names|.
This option allows |2html.vim| to detect the correct 'fileencoding' when you
specify an encoding with |g:html_use_encoding| which is not in the default
list of conversions.
This is a dictionary of charset-encoding pairs that will replace existing
pairs automatically detected by TOhtml, or supplement with new pairs.
Detect the HTML charset "windows-1252" as the encoding "8bit-cp1252": >
:let g:html_encoding_override = {'windows-1252': '8bit-cp1252'}
<
*g:html_charset_override*
Default: none, autoload/tohtml.vim contains default conversions for encodings
mentioned by name at |encoding-names| and which have wide
browser support.
This option allows |2html.vim| to detect the HTML charset for any
'fileencoding' or 'encoding' which is not detected automatically. You can also
use it to override specific existing encoding-charset pairs. For example,
TOhtml will by default use UTF-8 for all Unicode/UCS encodings. To use UTF-16
and UTF-32 instead, use: >
:let g:html_charset_override = {'ucs-4': 'UTF-32', 'utf-16': 'UTF-16'}
Note that documents encoded in either UTF-32 or UTF-16 have known
compatibility problems with some major browsers.
*convert-to-XML* *convert-to-XHTML* *g:html_use_xhtml*
Default: 0.
When 0, generate standard HTML 4.01 (strict when possible).
When 1, generate XHTML 1.0 instead (XML compliant HTML).
>
:let g:html_use_xhtml = 1
<
ABEL *abel.vim* *ft-abel-syntax*
@ -638,7 +784,11 @@ The most flexible is to add a line in your assembly file containing: >
asmsyntax=nasm
Replace "nasm" with the name of the real assembly syntax. This line must be
one of the first five lines in the file. No non-white text must be
immediately before or after this text.
immediately before or after this text. Note that specifying asmsyntax=foo is
equivalent to setting ft=foo in a |modeline|, and that in case of a conflict
between the two settings the one from the modeline will take precedence (in
particular, if you have ft=asm in the modeline, you will get the GNU syntax
highlighting regardless of what is specified as asmsyntax).
The syntax type can always be overruled for a specific buffer by setting the
b:asmsyntax variable: >
@ -743,10 +893,12 @@ c_no_ansi don't do standard ANSI types and constants
c_ansi_typedefs ... but do standard ANSI types
c_ansi_constants ... but do standard ANSI constants
c_no_utf don't highlight \u and \U in strings
c_syntax_for_h use C syntax for *.h files, instead of C++
c_syntax_for_h for *.h files use C syntax instead of C++ and use objc
syntax instead of objcpp
c_no_if0 don't highlight "#if 0" blocks as comments
c_no_cformat don't highlight %-formats in strings
c_no_c99 don't highlight C99 standard items
c_no_c11 don't highlight C11 standard items
When 'foldmethod' is set to "syntax" then /* */ comments and { } blocks will
become a fold. If you don't want comments to become a fold use: >
@ -855,13 +1007,13 @@ used.
Detecting whether a file is csh or tcsh is notoriously hard. Some systems
symlink /bin/csh to /bin/tcsh, making it almost impossible to distinguish
between csh and tcsh. In case VIM guesses wrong you can set the
"filetype_csh" variable. For using csh: >
:let filetype_csh = "csh"
"filetype_csh" variable. For using csh: *g:filetype_csh*
>
:let g:filetype_csh = "csh"
For using tcsh: >
:let filetype_csh = "tcsh"
:let g:filetype_csh = "tcsh"
Any script with a tcsh extension or a standard tcsh filename (.tcshrc,
tcsh.tcshrc, tcsh.login) will have filetype tcsh. All other tcsh/csh scripts
@ -938,6 +1090,10 @@ Simpler is setting the filetype to "docbkxml" or "docbksgml": >
or: >
:set filetype=docbkxml
You can specify the DocBook version: >
:let docbk_ver = 3
When not set 4 is used.
DOSBATCH *dosbatch.vim* *ft-dosbatch-syntax*
@ -974,9 +1130,9 @@ Example: >
or >
// vim:syntax=c.doxygen
It can also be done automatically for C, C++, C# and IDL files by setting the
global or buffer-local variable load_doxygen_syntax. This is done by adding
the following to your .vimrc. >
It can also be done automatically for C, C++, C#, IDL and PHP files by setting
the global or buffer-local variable load_doxygen_syntax. This is done by
adding the following to your .vimrc. >
:let g:load_doxygen_syntax=1
There are a couple of variables that have an effect on syntax highlighting, and
@ -1091,6 +1247,8 @@ your .vimrc: >
FLEXWIKI *flexwiki.vim* *ft-flexwiki-syntax*
FlexWiki is an ASP.NET-based wiki package available at http://www.flexwiki.com
NOTE: this site currently doesn't work, on Wikipedia is mentioned that
development stopped in 2009.
Syntax highlighting is available for the most common elements of FlexWiki
syntax. The associated ftplugin script sets some buffer-local options to make
@ -1142,14 +1300,12 @@ conditionals are LightBlue for better distinction.
FORTRAN *fortran.vim* *ft-fortran-syntax*
Default highlighting and dialect ~
Highlighting appropriate for f95 (Fortran 95) is used by default. This choice
should be appropriate for most users most of the time because Fortran 95 is a
superset of Fortran 90 and almost a superset of Fortran 77. Support for
Fortran 2003 and Fortran 2008 features has been introduced and is
automatically available in the default (f95) highlighting.
Highlighting appropriate for Fortran 2008 is used by default. This choice
should be appropriate for most users most of the time because Fortran 2008 is
almost a superset of previous versions (Fortran 2003, 95, 90, and 77).
Fortran source code form ~
Fortran 9x code can be in either fixed or free source form. Note that the
Fortran code can be in either fixed or free source form. Note that the
syntax highlighting will not be correct if the form is incorrectly set.
When you create a new fortran file, the syntax script assumes fixed source
@ -1230,52 +1386,54 @@ recognized, as will construct names at the end of a do, if, select or forall
construct.
Non-default fortran dialects ~
The syntax script supports five Fortran dialects: f95, f90, f77, the Lahey
subset elf90, and the Imagine1 subset F.
The syntax script supports two Fortran dialects: f08 and F. You will probably
find the default highlighting (f08) satisfactory. A few legacy constructs
deleted or declared obsolescent in the 2008 standard are highlighted as todo
items.
If you use f77 with extensions, even common ones like do/enddo loops, do/while
loops and free source form that are supported by most f77 compilers including
g77 (GNU Fortran), then you will probably find the default highlighting
satisfactory. However, if you use strict f77 with no extensions, not even free
source form or the MIL STD 1753 extensions, then the advantages of setting the
dialect to f77 are that names such as SUM are recognized as user variable
names and not highlighted as f9x intrinsic functions, that obsolete constructs
such as ASSIGN statements are not highlighted as todo items, and that fixed
source form will be assumed.
If you use F, the advantage of setting the dialect appropriately is that
other legacy features excluded from F will be highlighted as todo items and
that free source form will be assumed.
If you use elf90 or F, the advantage of setting the dialect appropriately is
that f90 features excluded from these dialects will be highlighted as todo
items and that free source form will be assumed as required for these
dialects.
The dialect can be selected in various ways. If all your fortran files use
the same dialect, set the global variable fortran_dialect in your .vimrc prior
to your syntax on statement. The case-sensitive, permissible values of
fortran_dialect are "f08" or "F". Invalid values of fortran_dialect are
ignored.
The dialect can be selected by setting the variable fortran_dialect. The
permissible values of fortran_dialect are case-sensitive and must be "f95",
"f90", "f77", "elf" or "F". Invalid values of fortran_dialect are ignored.
If all your fortran files use the same dialect, set fortran_dialect in your
.vimrc prior to your syntax on statement. If the dialect depends upon the file
extension, then it is most convenient to set it in a ftplugin file. For more
information on ftplugin files, see |ftplugin|. For example, if all your
fortran files with an .f90 extension are written in the elf subset, your
ftplugin file should contain the code >
If the dialect depends upon the file extension, then it is most convenient to
set a buffer-local variable in a ftplugin file. For more information on
ftplugin files, see |ftplugin|. For example, if all your fortran files with
an .f90 extension are written in the F subset, your ftplugin file should
contain the code >
let s:extfname = expand("%:e")
if s:extfname ==? "f90"
let fortran_dialect="elf"
let b:fortran_dialect="F"
else
unlet! fortran_dialect
unlet! b:fortran_dialect
endif
Note that this will work only if the "filetype plugin indent on" command
precedes the "syntax on" command in your .vimrc file.
Finer control is necessary if the file extension does not uniquely identify
the dialect. You can override the default dialect, on a file-by-file basis, by
including a comment with the directive "fortran_dialect=xx" (where xx=f77 or
elf or F or f90 or f95) in one of the first three lines in your file. For
example, your older .f files may be written in extended f77 but your newer
ones may be F codes, and you would identify the latter by including in the
first three lines of those files a Fortran comment of the form >
the dialect. You can override the default dialect, on a file-by-file basis,
by including a comment with the directive "fortran_dialect=xx" (where xx=F or
f08) in one of the first three lines in your file. For example, your older .f
files may be legacy code but your newer ones may be F codes, and you would
identify the latter by including in the first three lines of those files a
Fortran comment of the form >
! fortran_dialect=F
F overrides elf if both directives are present.
For previous versions of the syntax, you may have set fortran_dialect to the
now-obsolete values "f77", "f90", "f95", or "elf". Such settings will be
silently handled as "f08". Users of "elf" may wish to experiment with "F"
instead.
The syntax/fortran.vim script contains embedded comments that tell you how to
comment and/or uncomment some lines to (a) activate recognition of some
non-standard, vendor-supplied intrinsics and (b) to prevent features deleted
or declared obsolescent in the 2008 standard from being highlighted as todo
items.
Limitations ~
Parenthesis checking does not catch too few closing parentheses. Hollerith
@ -1590,11 +1748,6 @@ which are used for the statement itself, special characters used in debug
strings, strings, boolean constants and types (this, super) respectively. I
have opted to chose another background for those statements.
In order to help you write code that can be easily ported between Java and
C++, all C++ keywords can be marked as an error in a Java program. To
have this add this line in your .vimrc file: >
:let java_allow_cpp_keywords = 0
Javadoc is a program that takes special comments out of Java program files and
creates HTML pages. The standard configuration will highlight this HTML code
similarly to HTML files (see |html.vim|). You can even add Javascript
@ -1733,19 +1886,10 @@ instead, and the name of your source file should be *.pike
LUA *lua.vim* *ft-lua-syntax*
This syntax file may be used for Lua 4.0, Lua 5.0 or Lua 5.1 (the latter is
The Lua syntax file can be used for versions 4.0, 5.0, 5.1 and 5.2 (5.2 is
the default). You can select one of these versions using the global variables
lua_version and lua_subversion. For example, to activate Lua
4.0 syntax highlighting, use this command: >
:let lua_version = 4
If you are using Lua 5.0, use these commands: >
:let lua_version = 5
:let lua_subversion = 0
To restore highlighting for Lua 5.1: >
5.1 syntax highlighting, set the variables like this:
:let lua_version = 5
:let lua_subversion = 1
@ -2349,6 +2493,12 @@ This will add highlighting for the commands that BASH (version 2.05a and
later, and part earlier) adds.
RESTRUCTURED TEXT *rst.vim* *ft-rst-syntax*
You may set what syntax definitions should be used for code blocks via
let rst_syntax_code_list = ['vim', 'lisp', ...]
REXX *rexx.vim* *ft-rexx-syntax*
If you notice highlighting errors while scrolling backwards, which are fixed
@ -2359,6 +2509,12 @@ This will make the syntax synchronization start 50 lines before the first
displayed line. The default value is 10. The disadvantage of using a larger
number is that redrawing can become slow.
Vim tries to guess what type a ".r" file is. If it can't be detected (from
comment lines), the default is "r". To make the default rexx add this line to
your .vimrc: *g:filetype_r*
>
:let g:filetype_r = "r"
RUBY *ruby.vim* *ft-ruby-syntax*
@ -2586,8 +2742,41 @@ reduce this, the "sh_maxlines" internal variable can be set. Example: >
The default is to use the twice sh_minlines. Set it to a smaller number to
speed up displaying. The disadvantage is that highlight errors may appear.
*g:sh_isk* *g:sh_noisk*
The shell languages appear to let "." be part of words, commands, etc;
consequently it should be in the isk for sh.vim. As of v116 of syntax/sh.vim,
syntax/sh.vim will append the "." to |'iskeyword'| by default; you may control
this behavior with: >
let g:sh_isk = '..whatever characters you want as part of iskeyword'
let g:sh_noisk= 1 " otherwise, if this exists, the isk will NOT chg
<
*sh-embed* *sh-awk*
Sh: EMBEDDING LANGUAGES~
SPEEDUP (AspenTech plant simulator) *spup.vim* *ft-spup-syntax*
You may wish to embed languages into sh. I'll give an example courtesy of
Lorance Stinson on how to do this with awk as an example. Put the following
file into $HOME/.vim/after/syntax/sh/awkembed.vim: >
" AWK Embedding: {{{1
" ==============
" Shamelessly ripped from aspperl.vim by Aaron Hope.
if exists("b:current_syntax")
unlet b:current_syntax
endif
syn include @AWKScript syntax/awk.vim
syn region AWKScriptCode matchgroup=AWKCommand start=+[=\\]\@<!'+ skip=+\\'+ end=+'+ contains=@AWKScript contained
syn region AWKScriptEmbedded matchgroup=AWKCommand start=+\<awk\>+ skip=+\\$+ end=+[=\\]\@<!'+me=e-1 contains=@shIdList,@shExprList2 nextgroup=AWKScriptCode
syn cluster shCommandSubList add=AWKScriptEmbedded
hi def link AWKCommand Type
<
This code will then let the awk code in the single quotes: >
awk '...awk code here...'
be highlighted using the awk highlighting syntax. Clearly this may be
extended to other languages.
SPEEDUP *spup.vim* *ft-spup-syntax*
(AspenTech plant simulator)
The Speedup syntax file has some options:
@ -2670,6 +2859,8 @@ sections, subsections, etc are supported. Put >
in your <.vimrc>, and :set fdm=syntax. I suggest doing the latter via a
modeline at the end of your LaTeX file: >
% vim: fdm=syntax
If your system becomes too slow, then you might wish to look into >
http://vim.wikia.com/wiki/Keep_folds_closed_while_inserting_text
<
*tex-nospell*
Tex: Don't Want Spell Checking In Comments? ~
@ -2678,7 +2869,14 @@ Some folks like to include things like source code in comments and so would
prefer that spell checking be disabled in comments in LaTeX files. To do
this, put the following in your <.vimrc>: >
let g:tex_comment_nospell= 1
<
The comment lines >
% nospell{
...
% nospell}
will suppress spell checking between them. These comment lines spelling
control are known to be fragile; for example, don't include any of the section
commands (\part, \chapter, \section, \paragraph, etc) inside nospell blocks
or interleave environments (such as math) across nospell blocks.
*tex-verb*
Tex: Want Spell Checking in Verbatim Zones?~
@ -2710,6 +2908,9 @@ If you have a slow computer, you may wish to reduce the values for >
increase them. This primarily affects synchronizing (i.e. just what group,
if any, is the text at the top of the screen supposed to be in?).
Another cause of slow highlighting is due to syntax-driven folding; see
|tex-folding| for a way around this.
*tex-morecommands* *tex-package*
Tex: Want To Highlight More Commands? ~
@ -2718,7 +2919,9 @@ of specialized LaTeX commands, syntax, and fonts. If you're using such a
package you'll often wish that the distributed syntax/tex.vim would support
it. However, clearly this is impractical. So please consider using the
techniques in |mysyntaxfile-add| to extend or modify the highlighting provided
by syntax/tex.vim.
by syntax/tex.vim. Please consider uploading any extensions that you write,
which typically would go in $HOME/after/syntax/tex/[pkgname].vim, to
http://vim.sf.net/.
*tex-error*
Tex: Excessive Error Highlighting? ~
@ -2780,6 +2983,7 @@ You may selectively use conceal mode by setting g:tex_conceal in your
following sets of characters: >
a = accents/ligatures
b = bold and italic
d = delimiters
m = math symbols
g = Greek
@ -2788,6 +2992,18 @@ following sets of characters: >
By leaving one or more of these out, the associated conceal-character
substitution will not be made.
*g:tex_isk*
Tex: Controlling What's In A Keyword~
(La)Tex keywords normally use the characters 0-9,a-z,A-Z,192-255 only
but the "_" is the only one that causes problems. So, by default,
syntax/tex.vim overrides the usual |'iskeyword'| setting (using |:setlocal|)
with one that works for LaTeX.
However, one may override this iskeyword re-setting by setting the
variable, g:tex_isk, in one's .vimrc to whatever one wishes and
it will be used instead.
TF *tf.vim* *ft-tf-syntax*
@ -2841,7 +3057,7 @@ Some folding is now supported with syntax/vim.vim: >
g:vimsyn_folding =~ 'P' : fold python script
g:vimsyn_folding =~ 'r' : fold ruby script
g:vimsyn_folding =~ 't' : fold tcl script
<
*g:vimsyn_noerror*
Not all error highlighting that syntax/vim.vim does may be correct; VimL is a
difficult language to highlight correctly. A way to suppress error
@ -3687,9 +3903,9 @@ External matches *:syn-ext-match*
These extra regular expression items are available in region patterns:
*/\z(* */\z(\)* *E50* *E52*
\z(\) Marks the sub-expression as "external", meaning that it is can
be accessed from another pattern match. Currently only usable
in defining a syntax region start pattern.
\z(\) Marks the sub-expression as "external", meaning that it can be
accessed from another pattern match. Currently only usable in
defining a syntax region start pattern.
*/\z1* */\z2* */\z3* */\z4* */\z5*
\z1 ... \z9 */\z6* */\z7* */\z8* */\z9* *E66* *E67*
@ -3862,7 +4078,7 @@ First syncing method: *:syn-sync-first*
The file will be parsed from the start. This makes syntax highlighting
accurate, but can be slow for long files. Vim caches previously parsed text,
so that it's only slow when parsing the text for the first time. However,
when making changes some part of the next needs to be parsed again (worst
when making changes some part of the text needs to be parsed again (worst
case: to the end of the file).
Using "fromstart" is equivalent to using "minlines" with a very large number.
@ -4375,6 +4591,9 @@ IncSearch 'incsearch' highlighting; also used for the text replaced with
*hl-LineNr*
LineNr Line number for ":number" and ":#" commands, and when 'number'
or 'relativenumber' option is set.
*hl-CursorLineNr*
CursorLineNr Like LineNr when 'cursorline' or 'relativenumber' is set for
the cursor line.
*hl-MatchParen*
MatchParen The character under the cursor or just before it, if it
is a paired bracket, and its match. |pi_paren.txt|

View File

@ -1,4 +1,4 @@
*tabpage.txt* For Vim version 7.3. Last change: 2010 Jul 31
*tabpage.txt* For Vim version 7.3. Last change: 2012 Aug 08
VIM REFERENCE MANUAL by Bram Moolenaar
@ -113,7 +113,7 @@ something else.
this is a "safe" command.
:tabc[lose][!] {count}
Close tab page {count}. Fails in the same way as ':tabclose"
Close tab page {count}. Fails in the same way as `:tabclose`
above.
*:tabo* *:tabonly*
@ -173,10 +173,20 @@ Other commands:
REORDERING TAB PAGES:
:tabm[ove] [N] *:tabm* *:tabmove*
:[N]tabm[ove]
Move the current tab page to after tab page N. Use zero to
make the current tab page the first one. Without N the tab
page is made the last one.
:tabm[ove] +[N]
:tabm[ove] -[N]
Move the current tab page N places to the right (with +) or to
the left (with -).
Note that although it is possible to move a tab behind the N-th one by using
:Ntabmove, it is impossible to move it by N places by using :+Ntabmove. For
clarification what +N means in this context see |[range]|.
LOOPING OVER TAB PAGES:

View File

@ -154,12 +154,14 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
'cscopepathcomp' options.txt /*'cscopepathcomp'*
'cscopeprg' options.txt /*'cscopeprg'*
'cscopequickfix' options.txt /*'cscopequickfix'*
'cscoperelative' options.txt /*'cscoperelative'*
'cscopetag' options.txt /*'cscopetag'*
'cscopetagorder' options.txt /*'cscopetagorder'*
'cscopeverbose' options.txt /*'cscopeverbose'*
'cspc' options.txt /*'cspc'*
'csprg' options.txt /*'csprg'*
'csqf' options.txt /*'csqf'*
'csre' options.txt /*'csre'*
'cst' options.txt /*'cst'*
'csto' options.txt /*'csto'*
'csverb' options.txt /*'csverb'*
@ -279,6 +281,7 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
'go-F' options.txt /*'go-F'*
'go-L' options.txt /*'go-L'*
'go-M' options.txt /*'go-M'*
'go-P' options.txt /*'go-P'*
'go-R' options.txt /*'go-R'*
'go-T' options.txt /*'go-T'*
'go-a' options.txt /*'go-a'*
@ -781,6 +784,7 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
'shellslash' options.txt /*'shellslash'*
'shelltemp' options.txt /*'shelltemp'*
'shelltype' options.txt /*'shelltype'*
'shellxescape' options.txt /*'shellxescape'*
'shellxquote' options.txt /*'shellxquote'*
'shiftround' options.txt /*'shiftround'*
'shiftwidth' options.txt /*'shiftwidth'*
@ -850,6 +854,7 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
'swf' options.txt /*'swf'*
'switchbuf' options.txt /*'switchbuf'*
'sws' options.txt /*'sws'*
'sxe' options.txt /*'sxe'*
'sxq' options.txt /*'sxq'*
'syn' options.txt /*'syn'*
'synmaxcol' options.txt /*'synmaxcol'*
@ -1181,7 +1186,9 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
+mouse_gpm various.txt /*+mouse_gpm*
+mouse_netterm various.txt /*+mouse_netterm*
+mouse_pterm various.txt /*+mouse_pterm*
+mouse_sgr various.txt /*+mouse_sgr*
+mouse_sysmouse various.txt /*+mouse_sysmouse*
+mouse_urxvt various.txt /*+mouse_urxvt*
+mouse_xterm various.txt /*+mouse_xterm*
+mouseshape various.txt /*+mouseshape*
+multi_byte various.txt /*+multi_byte*
@ -1191,7 +1198,6 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
+mzscheme/dyn various.txt /*+mzscheme\/dyn*
+netbeans_intg various.txt /*+netbeans_intg*
+ole various.txt /*+ole*
+osfiletype various.txt /*+osfiletype*
+path_extra various.txt /*+path_extra*
+perl various.txt /*+perl*
+perl/dyn various.txt /*+perl\/dyn*
@ -1241,6 +1247,7 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
+writebackup various.txt /*+writebackup*
+xfontset various.txt /*+xfontset*
+xim various.txt /*+xim*
+xpm_w32 various.txt /*+xpm_w32*
+xsmp various.txt /*+xsmp*
+xsmp_interact various.txt /*+xsmp_interact*
+xterm_clipboard various.txt /*+xterm_clipboard*
@ -1830,6 +1837,7 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
:X editing.txt /*:X*
:XMLent insert.txt /*:XMLent*
:XMLns insert.txt /*:XMLns*
:[range] motion.txt /*:[range]*
:\bar cmdline.txt /*:\\bar*
:_! cmdline.txt /*:_!*
:_# cmdline.txt /*:_#*
@ -2091,6 +2099,7 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
:display change.txt /*:display*
:dj tagsrch.txt /*:dj*
:djump tagsrch.txt /*:djump*
:dl change.txt /*:dl*
:dli tagsrch.txt /*:dli*
:dlist tagsrch.txt /*:dlist*
:do autocmd.txt /*:do*
@ -2611,6 +2620,7 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
:resize windows.txt /*:resize*
:ret change.txt /*:ret*
:retab change.txt /*:retab*
:retab! change.txt /*:retab!*
:retu eval.txt /*:retu*
:return eval.txt /*:return*
:rew editing.txt /*:rew*
@ -3202,6 +3212,7 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
<line1> map.txt /*<line1>*
<line2> map.txt /*<line2>*
<lt> intro.txt /*<lt>*
<nomodeline> autocmd.txt /*<nomodeline>*
<q-args> map.txt /*<q-args>*
<reg> map.txt /*<reg>*
<register> map.txt /*<register>*
@ -3400,6 +3411,7 @@ CmdwinLeave autocmd.txt /*CmdwinLeave*
ColorScheme autocmd.txt /*ColorScheme*
Command-line cmdline.txt /*Command-line*
Command-line-mode cmdline.txt /*Command-line-mode*
CompleteDone autocmd.txt /*CompleteDone*
Contents quickref.txt /*Contents*
Cscope if_cscop.txt /*Cscope*
CursorHold autocmd.txt /*CursorHold*
@ -3623,9 +3635,6 @@ E287 mbyte.txt /*E287*
E288 mbyte.txt /*E288*
E289 mbyte.txt /*E289*
E29 change.txt /*E29*
E290 mbyte.txt /*E290*
E291 mbyte.txt /*E291*
E292 mbyte.txt /*E292*
E293 message.txt /*E293*
E294 message.txt /*E294*
E295 message.txt /*E295*
@ -3705,7 +3714,6 @@ E362 term.txt /*E362*
E363 options.txt /*E363*
E364 eval.txt /*E364*
E365 print.txt /*E365*
E366 options.txt /*E366*
E367 autocmd.txt /*E367*
E368 eval.txt /*E368*
E369 pattern.txt /*E369*
@ -3970,8 +3978,6 @@ E607 eval.txt /*E607*
E608 eval.txt /*E608*
E609 if_cscop.txt /*E609*
E61 pattern.txt /*E61*
E610 options.txt /*E610*
E611 options.txt /*E611*
E612 sign.txt /*E612*
E613 print.txt /*E613*
E614 editing.txt /*E614*
@ -4234,7 +4240,17 @@ E847 syntax.txt /*E847*
E848 syntax.txt /*E848*
E849 syntax.txt /*E849*
E85 options.txt /*E85*
E850 change.txt /*E850*
E851 gui_x11.txt /*E851*
E852 gui_x11.txt /*E852*
E853 eval.txt /*E853*
E854 options.txt /*E854*
E855 autocmd.txt /*E855*
E858 eval.txt /*E858*
E859 eval.txt /*E859*
E86 windows.txt /*E86*
E860 eval.txt /*E860*
E861 eval.txt /*E861*
E87 windows.txt /*E87*
E88 windows.txt /*E88*
E89 message.txt /*E89*
@ -4303,6 +4319,7 @@ IME mbyte.txt /*IME*
Insert insert.txt /*Insert*
Insert-mode insert.txt /*Insert-mode*
InsertChange autocmd.txt /*InsertChange*
InsertCharPre autocmd.txt /*InsertCharPre*
InsertEnter autocmd.txt /*InsertEnter*
InsertLeave autocmd.txt /*InsertLeave*
J change.txt /*J*
@ -4416,6 +4433,7 @@ QuickFixCmdPost autocmd.txt /*QuickFixCmdPost*
QuickFixCmdPost-example quickfix.txt /*QuickFixCmdPost-example*
QuickFixCmdPre autocmd.txt /*QuickFixCmdPre*
Quickfix quickfix.txt /*Quickfix*
QuitPre autocmd.txt /*QuitPre*
R change.txt /*R*
RISC-OS os_risc.txt /*RISC-OS*
RISCOS os_risc.txt /*RISCOS*
@ -4447,6 +4465,11 @@ Syntax autocmd.txt /*Syntax*
T motion.txt /*T*
TCL if_tcl.txt /*TCL*
TERM starting.txt /*TERM*
TOhtml-encoding syntax.txt /*TOhtml-encoding*
TOhtml-encoding-detect syntax.txt /*TOhtml-encoding-detect*
TOhtml-performance syntax.txt /*TOhtml-performance*
TOhtml-uncopyable-text syntax.txt /*TOhtml-uncopyable-text*
TOhtml-wrap-text syntax.txt /*TOhtml-wrap-text*
TSQL ft_sql.txt /*TSQL*
TTpro-telnet syntax.txt /*TTpro-telnet*
Tab intro.txt /*Tab*
@ -4682,6 +4705,7 @@ alt intro.txt /*alt*
alt-input debugger.txt /*alt-input*
alternate-file editing.txt /*alternate-file*
amiga-window starting.txt /*amiga-window*
and() eval.txt /*and()*
anonymous-function eval.txt /*anonymous-function*
ant.vim syntax.txt /*ant.vim*
ap motion.txt /*ap*
@ -4736,6 +4760,7 @@ autocmds-kept version5.txt /*autocmds-kept*
autocommand autocmd.txt /*autocommand*
autocommand-events autocmd.txt /*autocommand-events*
autocommand-pattern autocmd.txt /*autocommand-pattern*
autoformat change.txt /*autoformat*
autoload eval.txt /*autoload*
autoload-functions eval.txt /*autoload-functions*
avoid-hit-enter version5.txt /*avoid-hit-enter*
@ -4784,6 +4809,7 @@ beval_col-variable eval.txt /*beval_col-variable*
beval_lnum-variable eval.txt /*beval_lnum-variable*
beval_text-variable eval.txt /*beval_text-variable*
beval_winnr-variable eval.txt /*beval_winnr-variable*
bitwise-function usr_41.txt /*bitwise-function*
blockwise-examples visual.txt /*blockwise-examples*
blockwise-operators visual.txt /*blockwise-operators*
blockwise-register change.txt /*blockwise-register*
@ -4958,12 +4984,55 @@ charset-conversion mbyte.txt /*charset-conversion*
chill.vim syntax.txt /*chill.vim*
cindent() eval.txt /*cindent()*
cinkeys-format indent.txt /*cinkeys-format*
cino-# indent.txt /*cino-#*
cino-( indent.txt /*cino-(*
cino-) indent.txt /*cino-)*
cino-+ indent.txt /*cino-+*
cino-/ indent.txt /*cino-\/*
cino-: indent.txt /*cino-:*
cino-= indent.txt /*cino-=*
cino-> indent.txt /*cino->*
cino-C indent.txt /*cino-C*
cino-J indent.txt /*cino-J*
cino-L indent.txt /*cino-L*
cino-M indent.txt /*cino-M*
cino-N indent.txt /*cino-N*
cino-U indent.txt /*cino-U*
cino-W indent.txt /*cino-W*
cino-^ indent.txt /*cino-^*
cino-b indent.txt /*cino-b*
cino-c indent.txt /*cino-c*
cino-e indent.txt /*cino-e*
cino-f indent.txt /*cino-f*
cino-g indent.txt /*cino-g*
cino-h indent.txt /*cino-h*
cino-i indent.txt /*cino-i*
cino-j indent.txt /*cino-j*
cino-k indent.txt /*cino-k*
cino-l indent.txt /*cino-l*
cino-m indent.txt /*cino-m*
cino-n indent.txt /*cino-n*
cino-p indent.txt /*cino-p*
cino-star indent.txt /*cino-star*
cino-t indent.txt /*cino-t*
cino-u indent.txt /*cino-u*
cino-w indent.txt /*cino-w*
cino-{ indent.txt /*cino-{*
cino-} indent.txt /*cino-}*
cinoptions-values indent.txt /*cinoptions-values*
clear-undo undo.txt /*clear-undo*
clearmatches() eval.txt /*clearmatches()*
client-server remote.txt /*client-server*
clientserver remote.txt /*clientserver*
clipboard gui.txt /*clipboard*
clipboard-autoselect options.txt /*clipboard-autoselect*
clipboard-autoselectml options.txt /*clipboard-autoselectml*
clipboard-autoselectplus options.txt /*clipboard-autoselectplus*
clipboard-exclude options.txt /*clipboard-exclude*
clipboard-html options.txt /*clipboard-html*
clipboard-unnamed options.txt /*clipboard-unnamed*
clipboard-unnamedplus options.txt /*clipboard-unnamedplus*
clojure-indent indent.txt /*clojure-indent*
cmdarg-variable eval.txt /*cmdarg-variable*
cmdbang-variable eval.txt /*cmdbang-variable*
cmdline-arguments vi_diff.txt /*cmdline-arguments*
@ -5062,6 +5131,7 @@ cpo-+ options.txt /*cpo-+*
cpo-- options.txt /*cpo--*
cpo-. options.txt /*cpo-.*
cpo-/ options.txt /*cpo-\/*
cpo-; options.txt /*cpo-;*
cpo-< options.txt /*cpo-<*
cpo-> options.txt /*cpo->*
cpo-A options.txt /*cpo-A*
@ -5131,6 +5201,7 @@ cscope_connection() eval.txt /*cscope_connection()*
cscopepathcomp if_cscop.txt /*cscopepathcomp*
cscopeprg if_cscop.txt /*cscopeprg*
cscopequickfix if_cscop.txt /*cscopequickfix*
cscoperelative if_cscop.txt /*cscoperelative*
cscopetag if_cscop.txt /*cscopetag*
cscopetagorder if_cscop.txt /*cscopetagorder*
cscopeverbose if_cscop.txt /*cscopeverbose*
@ -5138,6 +5209,7 @@ csh.vim syntax.txt /*csh.vim*
cspc if_cscop.txt /*cspc*
csprg if_cscop.txt /*csprg*
csqf if_cscop.txt /*csqf*
csre if_cscop.txt /*csre*
cst if_cscop.txt /*cst*
csto if_cscop.txt /*csto*
csverb if_cscop.txt /*csverb*
@ -5221,6 +5293,7 @@ develop-spell develop.txt /*develop-spell*
develop-spell-suggestions develop.txt /*develop-spell-suggestions*
develop.txt develop.txt /*develop.txt*
development develop.txt /*development*
dgn motion.txt /*dgn*
dh change.txt /*dh*
diB motion.txt /*diB*
diW motion.txt /*diW*
@ -5415,6 +5488,11 @@ expr-env eval.txt /*expr-env*
expr-env-expand eval.txt /*expr-env-expand*
expr-function eval.txt /*expr-function*
expr-is eval.txt /*expr-is*
expr-is# eval.txt /*expr-is#*
expr-is? eval.txt /*expr-is?*
expr-isnot eval.txt /*expr-isnot*
expr-isnot# eval.txt /*expr-isnot#*
expr-isnot? eval.txt /*expr-isnot?*
expr-nesting eval.txt /*expr-nesting*
expr-number eval.txt /*expr-number*
expr-option eval.txt /*expr-option*
@ -5576,6 +5654,7 @@ ft-ch-syntax syntax.txt /*ft-ch-syntax*
ft-changelog-plugin filetype.txt /*ft-changelog-plugin*
ft-changelog-syntax syntax.txt /*ft-changelog-syntax*
ft-chill-syntax syntax.txt /*ft-chill-syntax*
ft-clojure-indent indent.txt /*ft-clojure-indent*
ft-cobol-syntax syntax.txt /*ft-cobol-syntax*
ft-coldfusion-syntax syntax.txt /*ft-coldfusion-syntax*
ft-csh-syntax syntax.txt /*ft-csh-syntax*
@ -5648,8 +5727,10 @@ ft-ptcap-syntax syntax.txt /*ft-ptcap-syntax*
ft-python-indent indent.txt /*ft-python-indent*
ft-python-syntax syntax.txt /*ft-python-syntax*
ft-quake-syntax syntax.txt /*ft-quake-syntax*
ft-r-indent indent.txt /*ft-r-indent*
ft-readline-syntax syntax.txt /*ft-readline-syntax*
ft-rexx-syntax syntax.txt /*ft-rexx-syntax*
ft-rst-syntax syntax.txt /*ft-rst-syntax*
ft-ruby-omni insert.txt /*ft-ruby-omni*
ft-ruby-syntax syntax.txt /*ft-ruby-syntax*
ft-scheme-syntax syntax.txt /*ft-scheme-syntax*
@ -5714,6 +5795,7 @@ g- undo.txt /*g-*
g0 motion.txt /*g0*
g8 various.txt /*g8*
g:NetrwTopLvlMenu pi_netrw.txt /*g:NetrwTopLvlMenu*
g:Netrw_corehandler pi_netrw.txt /*g:Netrw_corehandler*
g:Netrw_funcref pi_netrw.txt /*g:Netrw_funcref*
g:ada#Comment ft_ada.txt /*g:ada#Comment*
g:ada#Ctags_Kinds ft_ada.txt /*g:ada#Ctags_Kinds*
@ -5737,12 +5819,20 @@ g:ada_space_errors ft_ada.txt /*g:ada_space_errors*
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_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*
g:clojure_maxlines indent.txt /*g:clojure_maxlines*
g:clojure_special_indent_words indent.txt /*g:clojure_special_indent_words*
g:colors_name options.txt /*g:colors_name*
g:decada ft_ada.txt /*g:decada*
g:decada.Error_Format ft_ada.txt /*g:decada.Error_Format*
g:decada.Make() ft_ada.txt /*g:decada.Make()*
g:decada.Make_Command ft_ada.txt /*g:decada.Make_Command*
g:decada.Unit_Name() ft_ada.txt /*g:decada.Unit_Name()*
g:filetype_csh syntax.txt /*g:filetype_csh*
g:filetype_r syntax.txt /*g:filetype_r*
g:gnat ft_ada.txt /*g:gnat*
g:gnat.Error_Format ft_ada.txt /*g:gnat.Error_Format*
g:gnat.Find() ft_ada.txt /*g:gnat.Find()*
@ -5755,6 +5845,27 @@ g:gnat.Project_File ft_ada.txt /*g:gnat.Project_File*
g:gnat.Set_Project_File() ft_ada.txt /*g:gnat.Set_Project_File()*
g:gnat.Tags() ft_ada.txt /*g:gnat.Tags()*
g:gnat.Tags_Command ft_ada.txt /*g:gnat.Tags_Command*
g:html_charset_override syntax.txt /*g:html_charset_override*
g:html_diff_one_file syntax.txt /*g:html_diff_one_file*
g:html_dynamic_folds syntax.txt /*g:html_dynamic_folds*
g:html_encoding_override syntax.txt /*g:html_encoding_override*
g:html_end_line syntax.txt /*g:html_end_line*
g:html_expand_tabs syntax.txt /*g:html_expand_tabs*
g:html_hover_unfold syntax.txt /*g:html_hover_unfold*
g:html_ignore_conceal syntax.txt /*g:html_ignore_conceal*
g:html_ignore_folding syntax.txt /*g:html_ignore_folding*
g:html_no_foldcolumn syntax.txt /*g:html_no_foldcolumn*
g:html_no_invalid syntax.txt /*g:html_no_invalid*
g:html_no_pre syntax.txt /*g:html_no_pre*
g:html_no_progress syntax.txt /*g:html_no_progress*
g:html_number_lines syntax.txt /*g:html_number_lines*
g:html_pre_wrap syntax.txt /*g:html_pre_wrap*
g:html_prevent_copy syntax.txt /*g:html_prevent_copy*
g:html_start_line syntax.txt /*g:html_start_line*
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_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*
@ -5770,6 +5881,8 @@ g:netrw_cygwin pi_netrw.txt /*g:netrw_cygwin*
g:netrw_dav_cmd pi_netrw.txt /*g:netrw_dav_cmd*
g:netrw_decompress pi_netrw.txt /*g:netrw_decompress*
g:netrw_dirhistmax pi_netrw.txt /*g:netrw_dirhistmax*
g:netrw_dynamic_maxfilenamelen pi_netrw.txt /*g:netrw_dynamic_maxfilenamelen*
g:netrw_errorlvl pi_netrw.txt /*g:netrw_errorlvl*
g:netrw_fastbrowse pi_netrw.txt /*g:netrw_fastbrowse*
g:netrw_fetch_cmd pi_netrw.txt /*g:netrw_fetch_cmd*
g:netrw_fname_escape pi_netrw.txt /*g:netrw_fname_escape*
@ -5777,6 +5890,7 @@ g:netrw_ftp pi_netrw.txt /*g:netrw_ftp*
g:netrw_ftp_browse_reject pi_netrw.txt /*g:netrw_ftp_browse_reject*
g:netrw_ftp_cmd pi_netrw.txt /*g:netrw_ftp_cmd*
g:netrw_ftp_list_cmd pi_netrw.txt /*g:netrw_ftp_list_cmd*
g:netrw_ftp_options pi_netrw.txt /*g:netrw_ftp_options*
g:netrw_ftp_sizelist_cmd pi_netrw.txt /*g:netrw_ftp_sizelist_cmd*
g:netrw_ftp_timelist_cmd pi_netrw.txt /*g:netrw_ftp_timelist_cmd*
g:netrw_ftpextracmd pi_netrw.txt /*g:netrw_ftpextracmd*
@ -5791,17 +5905,19 @@ g:netrw_keepdir pi_netrw.txt /*g:netrw_keepdir*
g:netrw_list_cmd pi_netrw.txt /*g:netrw_list_cmd*
g:netrw_list_hide pi_netrw.txt /*g:netrw_list_hide*
g:netrw_liststyle pi_netrw.txt /*g:netrw_liststyle*
g:netrw_local_mkdir pi_netrw.txt /*g:netrw_local_mkdir*
g:netrw_local_rmdir pi_netrw.txt /*g:netrw_local_rmdir*
g:netrw_localcopycmd pi_netrw.txt /*g:netrw_localcopycmd*
g:netrw_localmkdir pi_netrw.txt /*g:netrw_localmkdir*
g:netrw_localmovecmd pi_netrw.txt /*g:netrw_localmovecmd*
g:netrw_localrmdir pi_netrw.txt /*g:netrw_localrmdir*
g:netrw_maxfilenamelen pi_netrw.txt /*g:netrw_maxfilenamelen*
g:netrw_menu pi_netrw.txt /*g:netrw_menu*
g:netrw_mkdir_cmd pi_netrw.txt /*g:netrw_mkdir_cmd*
g:netrw_mousemaps pi_netrw.txt /*g:netrw_mousemaps*
g:netrw_nobeval pi_netrw.txt /*g:netrw_nobeval*
g:netrw_nogx pi_netrw.txt /*g:netrw_nogx*
g:netrw_preview pi_netrw.txt /*g:netrw_preview*
g:netrw_rcp_cmd pi_netrw.txt /*g:netrw_rcp_cmd*
g:netrw_remote_mkdir pi_netrw.txt /*g:netrw_remote_mkdir*
g:netrw_retmap pi_netrw.txt /*g:netrw_retmap*
g:netrw_rm_cmd pi_netrw.txt /*g:netrw_rm_cmd*
g:netrw_rmdir_cmd pi_netrw.txt /*g:netrw_rmdir_cmd*
@ -5829,6 +5945,8 @@ g:netrw_use_nt_rcp pi_netrw.txt /*g:netrw_use_nt_rcp*
g:netrw_win95ftp pi_netrw.txt /*g:netrw_win95ftp*
g:netrw_winsize pi_netrw.txt /*g:netrw_winsize*
g:netrw_xstrlen pi_netrw.txt /*g:netrw_xstrlen*
g:sh_isk syntax.txt /*g:sh_isk*
g:sh_noisk syntax.txt /*g:sh_noisk*
g:syntax_on syntax.txt /*g:syntax_on*
g:tar_browseoptions pi_tar.txt /*g:tar_browseoptions*
g:tar_cmd pi_tar.txt /*g:tar_cmd*
@ -5839,6 +5957,7 @@ g:tar_readoptions pi_tar.txt /*g:tar_readoptions*
g:tar_secure pi_tar.txt /*g:tar_secure*
g:tar_writeoptions pi_tar.txt /*g:tar_writeoptions*
g:tex_conceal syntax.txt /*g:tex_conceal*
g:tex_isk syntax.txt /*g:tex_isk*
g:var eval.txt /*g:var*
g:vimball_home pi_vimball.txt /*g:vimball_home*
g:vimball_mkdir pi_vimball.txt /*g:vimball_mkdir*
@ -5869,6 +5988,7 @@ gF editing.txt /*gF*
gH visual.txt /*gH*
gI insert.txt /*gI*
gJ change.txt /*gJ*
gN visual.txt /*gN*
gP change.txt /*gP*
gQ intro.txt /*gQ*
gR change.txt /*gR*
@ -5889,6 +6009,7 @@ g`a motion.txt /*g`a*
ga various.txt /*ga*
garbagecollect() eval.txt /*garbagecollect()*
gd pattern.txt /*gd*
gdb debug.txt /*gdb*
ge motion.txt /*ge*
get() eval.txt /*get()*
get-ms-debuggers debug.txt /*get-ms-debuggers*
@ -5952,6 +6073,7 @@ glvs-options pi_getscript.txt /*glvs-options*
glvs-plugins pi_getscript.txt /*glvs-plugins*
glvs-usage pi_getscript.txt /*glvs-usage*
gm motion.txt /*gm*
gn visual.txt /*gn*
gnat#Insert_Tags_Header() ft_ada.txt /*gnat#Insert_Tags_Header()*
gnat#New() ft_ada.txt /*gnat#New()*
gnat-xref ft_ada.txt /*gnat-xref*
@ -5978,6 +6100,7 @@ gtk-tooltip-colors gui_x11.txt /*gtk-tooltip-colors*
gu change.txt /*gu*
gugu change.txt /*gugu*
gui gui.txt /*gui*
gui-IME gui.txt /*gui-IME*
gui-clipboard gui_w32.txt /*gui-clipboard*
gui-colors syntax.txt /*gui-colors*
gui-extras gui.txt /*gui-extras*
@ -6035,6 +6158,7 @@ gui_w16.txt gui_w16.txt /*gui_w16.txt*
gui_w32.txt gui_w32.txt /*gui_w32.txt*
gui_x11.txt gui_x11.txt /*gui_x11.txt*
guifontwide_gtk2 options.txt /*guifontwide_gtk2*
guifontwide_win_mbyte options.txt /*guifontwide_win_mbyte*
guioptions_a options.txt /*guioptions_a*
guu change.txt /*guu*
gv visual.txt /*gv*
@ -6057,6 +6181,7 @@ hangul hangulin.txt /*hangul*
hangulin.txt hangulin.txt /*hangulin.txt*
has() eval.txt /*has()*
has-patch eval.txt /*has-patch*
has-python if_pyth.txt /*has-python*
has_key() eval.txt /*has_key()*
haskell.vim syntax.txt /*haskell.vim*
haslocaldir() eval.txt /*haslocaldir()*
@ -6075,6 +6200,7 @@ helpfile_name.txt helphelp.txt /*helpfile_name.txt*
helphelp helphelp.txt /*helphelp*
helphelp.txt helphelp.txt /*helphelp.txt*
hex-editing tips.txt /*hex-editing*
hex-number eval.txt /*hex-number*
hidden-buffer windows.txt /*hidden-buffer*
hidden-changed version5.txt /*hidden-changed*
hidden-menus gui.txt /*hidden-menus*
@ -6116,6 +6242,7 @@ hl-Cursor syntax.txt /*hl-Cursor*
hl-CursorColumn syntax.txt /*hl-CursorColumn*
hl-CursorIM syntax.txt /*hl-CursorIM*
hl-CursorLine syntax.txt /*hl-CursorLine*
hl-CursorLineNr syntax.txt /*hl-CursorLineNr*
hl-DiffAdd syntax.txt /*hl-DiffAdd*
hl-DiffChange syntax.txt /*hl-DiffChange*
hl-DiffDelete syntax.txt /*hl-DiffDelete*
@ -6185,6 +6312,7 @@ i) motion.txt /*i)*
i< motion.txt /*i<*
i> motion.txt /*i>*
iB motion.txt /*iB*
iBus gui.txt /*iBus*
iW motion.txt /*iW*
i[ motion.txt /*i[*
i] motion.txt /*i]*
@ -6380,6 +6508,7 @@ internet intro.txt /*internet*
intro intro.txt /*intro*
intro.txt intro.txt /*intro.txt*
inverse syntax.txt /*inverse*
invert() eval.txt /*invert()*
ip motion.txt /*ip*
iquote motion.txt /*iquote*
is motion.txt /*is*
@ -6440,6 +6569,13 @@ last-pattern pattern.txt /*last-pattern*
last-position-jump eval.txt /*last-position-jump*
last_buffer_nr() eval.txt /*last_buffer_nr()*
lc_time-variable eval.txt /*lc_time-variable*
lcs-conceal options.txt /*lcs-conceal*
lcs-eol options.txt /*lcs-eol*
lcs-extends options.txt /*lcs-extends*
lcs-nbsp options.txt /*lcs-nbsp*
lcs-precedes options.txt /*lcs-precedes*
lcs-tab options.txt /*lcs-tab*
lcs-trail options.txt /*lcs-trail*
left-right-motions motion.txt /*left-right-motions*
len() eval.txt /*len()*
less various.txt /*less*
@ -6490,11 +6626,18 @@ lpc.vim syntax.txt /*lpc.vim*
lua if_lua.txt /*lua*
lua-buffer if_lua.txt /*lua-buffer*
lua-commands if_lua.txt /*lua-commands*
lua-dict if_lua.txt /*lua-dict*
lua-eval if_lua.txt /*lua-eval*
lua-list if_lua.txt /*lua-list*
lua-luaeval if_lua.txt /*lua-luaeval*
lua-vim if_lua.txt /*lua-vim*
lua-window if_lua.txt /*lua-window*
lua.vim syntax.txt /*lua.vim*
luaeval() eval.txt /*luaeval()*
m motion.txt /*m*
m' motion.txt /*m'*
m< motion.txt /*m<*
m> motion.txt /*m>*
m[ motion.txt /*m[*
m] motion.txt /*m]*
m` motion.txt /*m`*
@ -6662,6 +6805,7 @@ mzscheme-buffer if_mzsch.txt /*mzscheme-buffer*
mzscheme-commands if_mzsch.txt /*mzscheme-commands*
mzscheme-dynamic if_mzsch.txt /*mzscheme-dynamic*
mzscheme-examples if_mzsch.txt /*mzscheme-examples*
mzscheme-funcref if_mzsch.txt /*mzscheme-funcref*
mzscheme-mzeval if_mzsch.txt /*mzscheme-mzeval*
mzscheme-sandbox if_mzsch.txt /*mzscheme-sandbox*
mzscheme-threads if_mzsch.txt /*mzscheme-threads*
@ -6708,6 +6852,7 @@ netrw-R pi_netrw.txt /*netrw-R*
netrw-S pi_netrw.txt /*netrw-S*
netrw-T pi_netrw.txt /*netrw-T*
netrw-U pi_netrw.txt /*netrw-U*
netrw-X pi_netrw.txt /*netrw-X*
netrw-a pi_netrw.txt /*netrw-a*
netrw-activate pi_netrw.txt /*netrw-activate*
netrw-bookmark pi_netrw.txt /*netrw-bookmark*
@ -6717,6 +6862,7 @@ netrw-browse-cmds pi_netrw.txt /*netrw-browse-cmds*
netrw-browse-maps pi_netrw.txt /*netrw-browse-maps*
netrw-browser pi_netrw.txt /*netrw-browser*
netrw-browser-options pi_netrw.txt /*netrw-browser-options*
netrw-browser-settings pi_netrw.txt /*netrw-browser-settings*
netrw-browser-var pi_netrw.txt /*netrw-browser-var*
netrw-browsing pi_netrw.txt /*netrw-browsing*
netrw-c pi_netrw.txt /*netrw-c*
@ -6765,6 +6911,7 @@ netrw-history pi_netrw.txt /*netrw-history*
netrw-horiz pi_netrw.txt /*netrw-horiz*
netrw-i pi_netrw.txt /*netrw-i*
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-list pi_netrw.txt /*netrw-list*
@ -6805,6 +6952,8 @@ netrw-p10 pi_netrw.txt /*netrw-p10*
netrw-p11 pi_netrw.txt /*netrw-p11*
netrw-p12 pi_netrw.txt /*netrw-p12*
netrw-p13 pi_netrw.txt /*netrw-p13*
netrw-p14 pi_netrw.txt /*netrw-p14*
netrw-p15 pi_netrw.txt /*netrw-p15*
netrw-p2 pi_netrw.txt /*netrw-p2*
netrw-p3 pi_netrw.txt /*netrw-p3*
netrw-p4 pi_netrw.txt /*netrw-p4*
@ -6840,8 +6989,10 @@ netrw-rexplore pi_netrw.txt /*netrw-rexplore*
netrw-rightmouse pi_netrw.txt /*netrw-rightmouse*
netrw-s pi_netrw.txt /*netrw-s*
netrw-settings pi_netrw.txt /*netrw-settings*
netrw-settings-window pi_netrw.txt /*netrw-settings-window*
netrw-sexplore pi_netrw.txt /*netrw-sexplore*
netrw-sort pi_netrw.txt /*netrw-sort*
netrw-sort-sequence pi_netrw.txt /*netrw-sort-sequence*
netrw-sortsequence pi_netrw.txt /*netrw-sortsequence*
netrw-source pi_netrw.txt /*netrw-source*
netrw-ssh-hack pi_netrw.txt /*netrw-ssh-hack*
@ -6853,6 +7004,7 @@ netrw-start pi_netrw.txt /*netrw-start*
netrw-t pi_netrw.txt /*netrw-t*
netrw-texplore pi_netrw.txt /*netrw-texplore*
netrw-todo pi_netrw.txt /*netrw-todo*
netrw-trailingslash pi_netrw.txt /*netrw-trailingslash*
netrw-transparent pi_netrw.txt /*netrw-transparent*
netrw-u pi_netrw.txt /*netrw-u*
netrw-updir pi_netrw.txt /*netrw-updir*
@ -6862,6 +7014,8 @@ netrw-v pi_netrw.txt /*netrw-v*
netrw-var pi_netrw.txt /*netrw-var*
netrw-variables pi_netrw.txt /*netrw-variables*
netrw-vexplore pi_netrw.txt /*netrw-vexplore*
netrw-windows-netrc pi_netrw.txt /*netrw-windows-netrc*
netrw-windows-s pi_netrw.txt /*netrw-windows-s*
netrw-write pi_netrw.txt /*netrw-write*
netrw-x pi_netrw.txt /*netrw-x*
netrw-xfer pi_netrw.txt /*netrw-xfer*
@ -6973,7 +7127,8 @@ objects index.txt /*objects*
obtaining-exted netbeans.txt /*obtaining-exted*
ocaml.vim syntax.txt /*ocaml.vim*
octal eval.txt /*octal*
octal-number options.txt /*octal-number*
octal-nrformats options.txt /*octal-nrformats*
octal-number eval.txt /*octal-number*
oldfiles-variable eval.txt /*oldfiles-variable*
ole-activation if_ole.txt /*ole-activation*
ole-eval if_ole.txt /*ole-eval*
@ -6998,6 +7153,7 @@ options options.txt /*options*
options-changed version5.txt /*options-changed*
options.txt options.txt /*options.txt*
optwin options.txt /*optwin*
or() eval.txt /*or()*
oracle ft_sql.txt /*oracle*
os2 os_os2.txt /*os2*
os2ansi os_os2.txt /*os2ansi*
@ -7143,7 +7299,10 @@ pterm-mouse options.txt /*pterm-mouse*
pumvisible() eval.txt /*pumvisible()*
put change.txt /*put*
put-Visual-mode change.txt /*put-Visual-mode*
py3eval() eval.txt /*py3eval()*
pyeval() eval.txt /*pyeval()*
python if_pyth.txt /*python*
python-bindeval if_pyth.txt /*python-bindeval*
python-buffer if_pyth.txt /*python-buffer*
python-buffers if_pyth.txt /*python-buffers*
python-command if_pyth.txt /*python-command*
@ -7155,6 +7314,7 @@ python-eval if_pyth.txt /*python-eval*
python-examples if_pyth.txt /*python-examples*
python-input if_pyth.txt /*python-input*
python-output if_pyth.txt /*python-output*
python-pyeval if_pyth.txt /*python-pyeval*
python-range if_pyth.txt /*python-range*
python-vim if_pyth.txt /*python-vim*
python-window if_pyth.txt /*python-window*
@ -7277,19 +7437,9 @@ right-justify change.txt /*right-justify*
rileft rileft.txt /*rileft*
rileft.txt rileft.txt /*rileft.txt*
riscos os_risc.txt /*riscos*
riscos-commandline os_risc.txt /*riscos-commandline*
riscos-filetypes os_risc.txt /*riscos-filetypes*
riscos-gui os_risc.txt /*riscos-gui*
riscos-interrupt os_risc.txt /*riscos-interrupt*
riscos-locations os_risc.txt /*riscos-locations*
riscos-memory os_risc.txt /*riscos-memory*
riscos-munging os_risc.txt /*riscos-munging*
riscos-porting os_risc.txt /*riscos-porting*
riscos-remote os_risc.txt /*riscos-remote*
riscos-shell os_risc.txt /*riscos-shell*
riscos-temp-files os_risc.txt /*riscos-temp-files*
rot13 change.txt /*rot13*
round() eval.txt /*round()*
rst.vim syntax.txt /*rst.vim*
rsync pi_netrw.txt /*rsync*
ruby if_ruby.txt /*ruby*
ruby-buffer if_ruby.txt /*ruby-buffer*
@ -7341,6 +7491,8 @@ save-file editing.txt /*save-file*
save-settings starting.txt /*save-settings*
scheme.vim syntax.txt /*scheme.vim*
scp pi_netrw.txt /*scp*
screencol() eval.txt /*screencol()*
screenrow() eval.txt /*screenrow()*
script usr_41.txt /*script*
script-here if_perl.txt /*script-here*
script-local map.txt /*script-local*
@ -7405,12 +7557,16 @@ setuid change.txt /*setuid*
setwinvar() eval.txt /*setwinvar()*
sftp pi_netrw.txt /*sftp*
sgml.vim syntax.txt /*sgml.vim*
sgr-mouse options.txt /*sgr-mouse*
sh-awk syntax.txt /*sh-awk*
sh-embed syntax.txt /*sh-embed*
sh.vim syntax.txt /*sh.vim*
shell-window tips.txt /*shell-window*
shell_error-variable eval.txt /*shell_error-variable*
shellescape() eval.txt /*shellescape()*
shift intro.txt /*shift*
shift-left-right change.txt /*shift-left-right*
shiftwidth() eval.txt /*shiftwidth()*
short-name-changed version4.txt /*short-name-changed*
showing-menus gui.txt /*showing-menus*
sign-commands sign.txt /*sign-commands*
@ -8013,6 +8169,7 @@ unix os_unix.txt /*unix*
unlisted-buffer windows.txt /*unlisted-buffer*
up-down-motions motion.txt /*up-down-motions*
uppercase change.txt /*uppercase*
urxvt-mouse options.txt /*urxvt-mouse*
use-cpo-save usr_41.txt /*use-cpo-save*
use-visual-cmds version4.txt /*use-visual-cmds*
useful-mappings tips.txt /*useful-mappings*
@ -8188,11 +8345,13 @@ v_d change.txt /*v_d*
v_g? change.txt /*v_g?*
v_gF editing.txt /*v_gF*
v_gJ change.txt /*v_gJ*
v_gN visual.txt /*v_gN*
v_gV visual.txt /*v_gV*
v_g] tagsrch.txt /*v_g]*
v_g_CTRL-G editing.txt /*v_g_CTRL-G*
v_g_CTRL-] tagsrch.txt /*v_g_CTRL-]*
v_gf editing.txt /*v_gf*
v_gn visual.txt /*v_gn*
v_gq change.txt /*v_gq*
v_gv visual.txt /*v_gv*
v_gw change.txt /*v_gw*
@ -8295,13 +8454,27 @@ vimdev intro.txt /*vimdev*
vimdiff diff.txt /*vimdiff*
vimfiles options.txt /*vimfiles*
viminfo starting.txt /*viminfo*
viminfo-! options.txt /*viminfo-!*
viminfo-% options.txt /*viminfo-%*
viminfo-' options.txt /*viminfo-'*
viminfo-/ options.txt /*viminfo-\/*
viminfo-: options.txt /*viminfo-:*
viminfo-< options.txt /*viminfo-<*
viminfo-@ options.txt /*viminfo-@*
viminfo-c options.txt /*viminfo-c*
viminfo-encoding starting.txt /*viminfo-encoding*
viminfo-errors starting.txt /*viminfo-errors*
viminfo-f options.txt /*viminfo-f*
viminfo-file starting.txt /*viminfo-file*
viminfo-file-marks starting.txt /*viminfo-file-marks*
viminfo-file-name starting.txt /*viminfo-file-name*
viminfo-h options.txt /*viminfo-h*
viminfo-n options.txt /*viminfo-n*
viminfo-quote options.txt /*viminfo-quote*
viminfo-r options.txt /*viminfo-r*
viminfo-read starting.txt /*viminfo-read*
viminfo-read-write starting.txt /*viminfo-read-write*
viminfo-s options.txt /*viminfo-s*
viminfo-write starting.txt /*viminfo-write*
vimrc starting.txt /*vimrc*
vimrc-filetype usr_05.txt /*vimrc-filetype*
@ -8341,6 +8514,7 @@ vt100-cursor-keys term.txt /*vt100-cursor-keys*
vt100-function-keys term.txt /*vt100-function-keys*
w motion.txt /*w*
w32-clientserver remote.txt /*w32-clientserver*
w32-xpm-support gui_w32.txt /*w32-xpm-support*
w:current_syntax syntax.txt /*w:current_syntax*
w:quickfix_title quickfix.txt /*w:quickfix_title*
w:var eval.txt /*w:var*
@ -8451,6 +8625,7 @@ xiterm syntax.txt /*xiterm*
xml-folding syntax.txt /*xml-folding*
xml-omni-datafile insert.txt /*xml-omni-datafile*
xml.vim syntax.txt /*xml.vim*
xor() eval.txt /*xor()*
xpm.vim syntax.txt /*xpm.vim*
xterm-8-bit term.txt /*xterm-8-bit*
xterm-8bit term.txt /*xterm-8bit*

View File

@ -1,4 +1,4 @@
*tagsrch.txt* For Vim version 7.3. Last change: 2009 Feb 18
*tagsrch.txt* For Vim version 7.3. Last change: 2011 Oct 28
VIM REFERENCE MANUAL by Bram Moolenaar
@ -770,12 +770,12 @@ CTRL-W i Open a new window, with the cursor on the first line
{not in Vi}
*:dli* *:dlist*
:[range]dl[ist][!] [/]string[/]
:[range]dli[st][!] [/]string[/]
Like "[D" and "]D", but search in [range] lines
(default: whole file).
See |:search-args| for [/] and [!]. {not in Vi}
Note that ":dl" works like ":delete" with the "l"
flag.
register.
*[_CTRL-D*
[ CTRL-D Jump to the first macro definition that contains the

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
*uganda.txt* For Vim version 7.3. Last change: 2010 Aug 07
*uganda.txt* For Vim version 7.3. Last change: 2012 Dec 02
VIM REFERENCE MANUAL by Bram Moolenaar
@ -238,6 +238,7 @@ Canada: Contact Kibaale Children's Fund (KCF) in Surrey, Canada. They
Holland: Transfer to the account of "Stichting ICCF Holland" in Lisse.
This will allow for tax deduction if you live in Holland.
Postbank, nr. 4548774
IBAN: NL95 INGB 0004 5487 74
Germany: It is possible to make donations that allow for a tax return.
Check the ICCF web site for the latest information:
@ -266,7 +267,7 @@ Credit Card: You can use PayPal to send money with a Credit card. This is
Others: Transfer to one of these accounts if possible:
Postbank, account 4548774
Swift code: INGB NL 2A
IBAN: NL47 PSTB 0004 5487 74
IBAN: NL95 INGB 0004 5487 74
under the name "stichting ICCF Holland", Lisse
If that doesn't work:
Rabobank Lisse, account 3765.05.117

View File

@ -1,4 +1,4 @@
*undo.txt* For Vim version 7.3. Last change: 2010 Dec 19
*undo.txt* For Vim version 7.3. Last change: 2012 Mar 04
VIM REFERENCE MANUAL by Bram Moolenaar
@ -35,8 +35,10 @@ CTRL-R Redo [count] changes which were undone. {Vi: redraw
:red[o] Redo one change which was undone. {Vi: no redo}
*U*
U Undo all latest changes on one line. {Vi: while not
moved off of it}
U Undo all latest changes on one line, the line where
the latest change was made. |U| itself also counts as
a change, and thus |U| undoes a previous |U|.
{Vi: while not moved off of the last modified line}
The last changes are remembered. You can use the undo and redo commands above
to revert the text to how it was before each change. You can also apply the
@ -248,7 +250,7 @@ detect if an undo file is no longer synchronized with the file it was written
for (with a hash of the file contents) and ignore it when the file was changed
after the undo file was written, to prevent corruption. An undo file is also
ignored if its owner differs from the owner of the edited file. Set 'verbose'
to get a message about that.
to get a message about that when opening a file.
Undo files are normally saved in the same directory as the file. This can be
changed with the 'undodir' option.
@ -265,7 +267,12 @@ respectively:
(the magic number at the start of the file is wrong), then
this fails, unless the ! was added.
If it exists and does look like an undo file it is
overwritten.
overwritten. If there is no undo-history, nothing will be
written.
Implementation detail: Overwriting happens by first deleting
the existing file and then creating a new file with the same
name. So it is not possible to overwrite an existing undofile
in a write-protected directory.
{not in Vi}
:rundo {file} Read undo history from {file}.

View File

@ -1,4 +1,4 @@
*usr_05.txt* For Vim version 7.3. Last change: 2009 Jun 04
*usr_05.txt* For Vim version 7.3. Last change: 2012 Nov 20
VIM USER MANUAL - by Bram Moolenaar
@ -49,8 +49,7 @@ For MS-DOS and MS-Windows you can use one of these:
The vimrc file can contain all the commands that you type after a colon. The
most simple ones are for setting options. For example, if you want Vim to
always start with the 'incsearch' option on, add this line you your vimrc
file: >
always start with the 'incsearch' option on, add this line your vimrc file: >
set incsearch

View File

@ -1,4 +1,4 @@
*usr_21.txt* For Vim version 7.3. Last change: 2008 Nov 09
*usr_21.txt* For Vim version 7.3. Last change: 2012 Nov 02
VIM USER MANUAL - by Bram Moolenaar
@ -282,7 +282,7 @@ example, use: >
SESSION HERE, SESSION THERE
The obvious way to use sessions is when working on different projects.
Suppose you store you session files in the directory "~/.vim". You are
Suppose you store your session files in the directory "~/.vim". You are
currently working on the "secret" project and have to switch to the "boring"
project: >
@ -295,7 +295,7 @@ is saved, using ":mksession!". This overwrites the previous session. The
next time you load the secret session you can continue where you were at this
point. And finally you load the new "boring" session.
If you open help windows, split and close various window, and generally mess
If you open help windows, split and close various windows, and generally mess
up the window layout, you can go back to the last saved session: >
:source ~/.vim/boring.vim
@ -423,10 +423,10 @@ and nine numbered 1 to 9.
A VIEW WITH A NAME
The second basic way to use views is by storing the view in a file with a name
you chose. This view can be loaded while editing another file. Vim will then
switch to editing the file specified in the view. Thus you can use this to
quickly switch to editing another file, with all its options set as you saved
them.
you choose. This view can be loaded while editing another file. Vim will
then switch to editing the file specified in the view. Thus you can use this
to quickly switch to editing another file, with all its options set as you
saved them.
For example, to save the view of the current file: >
:mkview ~/.vim/main.vim

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