Compare commits

...

817 Commits

Author SHA1 Message Date
Bjorn Winckler 66cee2b3d6 Snapshot 52 2010-03-05 17:13:08 +01:00
Bjorn Winckler 37bf40d260 Merge upstream
Conflicts:
	runtime/doc/options.txt
	src/auto/configure
	src/eval.c
	src/if_ruby.c
	src/vim.h
2010-02-24 17:23:00 +01:00
Bram Moolenaar d6319a9921 updated for version 7.2.376
Problem:    ml_get error when using SiSU syntax. (Nathan Thomas)
Solution:   If the match ends below the last line move it to the end of the
	    last line.
2010-02-24 17:22:20 +01:00
Bram Moolenaar b8aec556b3 updated for version 7.2.375
Problem:    ml_get errors when using ":bprevious" in a BufEnter autocmd.
	    (Dominique Pelle)
Solution:   Clear w_valid when entering another buffer.
2010-02-24 16:58:36 +01:00
Bram Moolenaar 63bad3a41b updated for version 7.2.374
Problem:    Ruby eval() doesn't understand Vim types.
Solution:   Add the vim_to_ruby() function.  (George Gensure)
2010-02-24 15:48:04 +01:00
Bram Moolenaar a578534635 updated for version 7.2.373
Problem:    Gcc 4.5 adds more error messages. (Chris Indy)
Solution:   Update default 'errorformat'.
2010-02-24 15:25:25 +01:00
Bram Moolenaar 06bd94bcd5 updated for version 7.2.372
Problem:    Cross-compiling GvimExt and xxd doesn't work.
Solution:   Change the build files. (Markus Heidelberg)
2010-02-24 15:08:27 +01:00
Bram Moolenaar 6f08d935f3 updated for version 7.2.371
Problem:    Build problems on Tandem NonStop.
Solution:   A few changes to #ifdefs (Joachim Schmitz)
2010-02-24 14:47:08 +01:00
Bram Moolenaar 6894f171d8 updated for version 7.2.370
Problem:    A redraw may cause folds to be closed.
Solution:   Revert part of the previous patch.  Add a test. (Lech Lorens)
2010-02-24 14:34:19 +01:00
Bram Moolenaar 9da6d40907 updated for version 7.2.369
Problem:    Error message is not easy to understand.
Solution:   Add quotes. (SungHyun Nam)
2010-02-24 14:01:28 +01:00
Bjorn Winckler c5c236f87d Add support for :winpos
Note that window coordinates are specified in a coordinate system where
X points to the right and Y points upwards.
2010-02-20 00:40:23 +01:00
Bjorn Winckler 9e30756b1f Output build results in $(PROJECT_DIR)/build
This overrides the global Xcode preference, which if set to a customized
location caused the build to fail.  (Patch by wezm)
2010-02-19 19:38:31 +01:00
Bram Moolenaar 44c8160d60 updated for version 7.2.368
Problem:    Ruby interface: Appending line doesn't work. (Michael Henry)
Solution:   Reverse check for NULL line. (James Vega)
2010-02-18 15:53:29 +01:00
Bram Moolenaar e8f2764176 updated for version 7.2.367
Problem:    "xxd -r -p" doesn't work as documented.
Solution:   Skip white space. (James Vega)
2010-02-17 18:28:41 +01:00
Bram Moolenaar 2a03b38e00 updated for version 7.2.366
Problem:    CTRL-B doesn't go back to the first line of the buffer.
Solution:   Avoid an overflow when adding MAXCOL.
2010-02-17 18:20:37 +01:00
Bram Moolenaar 87b90ea791 updated for version 7.2.365
Problem:    MS-Windows with MingW: "File->Save As" does not work. (John
	    Marriott)
Solution:   Correctly fill in structure size. (Andy Kittner)
2010-02-17 17:34:43 +01:00
Bram Moolenaar 5e1643ff95 updated for version 7.2.364
Problem:    Can't build gvimext.dll on Win 7 x64 using MinGW (John Marriott)
Solution:   Check if _MSC_VER is defined. (Andy Kittner)
2010-02-17 17:24:27 +01:00
Bram Moolenaar 37de107112 updated for version 7.2.363
Problem:    Can't dynamically load Perl 5.10.
Solution:   Add the function Perl_croak_xs_usage. (Sergey Khorev)
2010-02-17 16:40:58 +01:00
Bram Moolenaar fc5fcdd406 updated for version 7.2.362
Problem:    Win64: Vim doesn't work when cross-compiled with MingW libraries.
Solution:   Instead of handling WM_NCCREATE, create wide text area window
	    class if the parent window iw side. (Sergey Khorev)
2010-02-17 16:31:32 +01:00
Bram Moolenaar ff5306dd64 updated for version 7.2.361
Problem:    Ruby 1.9 is not supported.
Solution:   Add Ruby 1.9 support. (Msaki Suketa)
2010-02-17 16:23:09 +01:00
Bram Moolenaar 08275fe08b updated for version 7.2.360
Problem:    Ruby on MS-Windows: can't use sockets.
Solution:   Call NtInitialize() during initialization. (Ariya Mizutani)
2010-02-17 15:11:50 +01:00
Bjorn Winckler 2b3c216798 Set cwd before launching Vim process
This fixes a bug where the 'exrc' option did not work when opening files
from Finder.
2010-02-16 22:55:20 +01:00
Bjorn Winckler d975a6125f Do not open files in "unused windows"
A window is "unused" if it has just been opened with Cmd+n.  Previously
a file opened from Finder would be opened in an unused window if one was
available.  This leads to problems with some Vim options, e.g. trying to
open an encrypted file from Spotlight will fail.  The code that has been
removed also had some quite ugly hacks and it is not entirely clear
whether the reuse of unused windows was entirely intuitive.

(The "Open files from applications" option is not affected by this
change.)
2010-02-16 19:04:47 +01:00
Bjorn Winckler edefdc97f2 Pass arguments to Vim on command line
Do not pass arguments via DO since some options only work if the files
to open were passed on the command line (e.g. "%" flag in 'viminfo').
Also, if a file is encrypted and opened from Spotlight the Spotlight
search text is passed as input and it ends up being used as password for
the encryption key, so the file opens up encrypted.

The above problems still persist if Quickstart is enabled.
2010-02-15 21:43:08 +01:00
Bjorn Winckler 23cd926331 Update Services for Snow Leopard
Rename Services so that it is clearer what they do when they appear in
context menus:
    New MacVim Buffer With Selection
    New MacVim Buffer Here
The latter Service now works in Finder on Snow Leopard (it was broken
before).  The Service "Open Selected File" has been deprecated since it
does not seem very useful and it is rather confusing as to what it
really does.
2010-02-14 21:12:27 +01:00
Bjorn Winckler cb399da217 Abandon marked text when switching IM
This fixes a bug with Chinese IM where pressing "o" in normal mode would
cause Vim to start a new line and then insert "o" into the text.  With
this patch the "o" is no longer inserted.
2010-02-14 17:25:25 +01:00
Bjorn Winckler ffad6673de Resize view properly when showing toolbar
Fixes a bug where the view would not resize when the window covered the
height of the screen and the toolbar was shown.
2010-02-14 01:38:07 +01:00
Bjorn Winckler 99e33fc726 Fix memory leak in ATSUI renderer
The wide font was not released properly.
2010-02-14 01:24:20 +01:00
Bjorn Winckler c9a95e68f9 Add wide font support to Core Text renderer 2010-02-14 01:23:59 +01:00
Bjorn Winckler 3f6c885564 Alt+Space mappings in Keyboard Layouts now work
For example, French Dvorak assigns Underscore to Alt+Space.  Without
this patch Alt+Space would produce a Space, whereas with this patch it
will produce an Underscore.
2010-02-14 00:37:35 +01:00
Bjorn Winckler 3d5810fa54 Allow window resizing across multiple screens
It is now possible to drag to resize a window to be larger than one
screen.  However, if the window size changes programmatically (due to
scrollbars or toolbar hiding/showing, etc.) then the window will be
constrained to fit on the screen holding most of the window.  This is
perhaps annoying but at least it is consistent with the way Terminal.app
works (try opening a new tab when a Terminal window spans two screens).
2010-02-13 23:50:53 +01:00
Bjorn Winckler d6be8fd0ed Place scrollbars correctly for positive inset
Make sure that the scrollbar stretches to the top of the window even if
the text inset is > 0 (and similarly for the horizontal scrollbar).
This applies to the Core Text and ATSUI renderers only.
2010-02-13 15:11:41 +01:00
Bram Moolenaar e34979f5cf updated for version 7.2.359
Problem:    Crash when using the Netbeans join command.
Solution:   Make sure the ml_flush_line() function is not used recursively.
	    (Xavier de Gaye)
2010-02-11 18:54:43 +01:00
Bram Moolenaar c44bd69ee5 updated for version 7.2.358
Problem:    Compiler warnings on VMS. (Zoltan Arpadffy)
Solution:   Pass array itself instead its address.  Return a value.
2010-02-11 18:19:38 +01:00
Bram Moolenaar c52fb19a92 updated for version 7.2.357
Problem:    When changing 'fileformat' from/to "mac" and there is a CR in the
	    text the display is wrong.
Solution:   Redraw the text when 'fileformat' is changed. (Ben Schmidt)
2010-02-11 17:02:11 +01:00
Bram Moolenaar 074c3f75e4 Updated runtime files. 2010-02-11 14:19:15 +01:00
Bjorn Winckler b7bbbc85bf Backend initiates window zooming
Don't change the window size immediately upon pressing the zoom button.
Instead send the message to Vim and let it resize before the window
does.  This avoids flickering problem when zooming with the Core Text
renderer.

The zooming is also slightly smarter about which window size to restore
if the toolbar was hidden while the window was zoomed.
2010-02-08 18:18:34 +01:00
Bjorn Winckler c621846160 Avoid display corruption on :vsp and 'go' changes
Always redraw the screen when splitting vertically or when the 'go'
option is modified (it may e.g. cause scrollbars to hide/show).
2010-02-08 16:00:12 +01:00
Bjorn Winckler 698f70bccf Avoid window flashing white when zooming
This applies to the Core Text renderer only.

There is still a short annoying flash when clicking the zoom button to
make the window smaller.
2010-02-05 17:55:21 +01:00
Bjorn Winckler 21d222a1d7 Avoid window flashing white when first shown
This only applies to the Core Text renderer.
2010-02-03 23:07:13 +01:00
Bram Moolenaar 7a2df8113c updated for version 7.2.356
Problem:    When 'foldmethod' is changed not all folds are closed as expected.
Solution:   In foldUpdate() correct the start position and reset fd_flags when
	    w_foldinvalid is set. (Lech Lorens)
2010-02-03 18:14:49 +01:00
Bram Moolenaar 9940c308a5 updated for version 7.2.355
Problem:    Computing the cursor column in validate_cursor_col() is wrong when
	    line numbers are used and 'n' is not in 'cpoptions', causing the
	    popup menu to be positioned wrong.
Solution:   Correctly use the offset. (partly by Dominique Pelle)
2010-02-03 17:43:07 +01:00
Bram Moolenaar f376e9355d updated for version 7.2.354
Problem:    Japanese single-width double-byte characters not handled correctly.
Solution:   Put 0x8e in ScreenLines[] and the second byte in ScreenLines2[].
	    (partly by Kikuchan)
2010-02-03 15:48:04 +01:00
Bram Moolenaar 3456504b23 updated for version 7.2.353
Problem:    No command line completion for ":profile".
Solution:   Complete the subcommand and file name.
2010-02-03 15:14:22 +01:00
Bjorn Winckler 3c41769deb Fix vert split problems in Core Text renderer
The display is no longer corrupted on :vsp when using the Core Text
renderer.  Also fixes a problem where background would not be cleared
correctly when left scrollbar was visible.

Remove a hack in live resizing code when using CT.  This may cause the
window to flicker more during live resize (have to find a better fix).
2010-02-03 14:46:56 +01:00
Bram Moolenaar 264ac2cefd updated for version 7.2.352
Problem:    Win64: Vim doesn't work when cross-compiled with MingW libraries.
Solution:   Always return TRUE for the WM_NCCREATE message. (Andy Kittner)
2010-02-03 12:23:24 +01:00
Bjorn Winckler e6f1c6e2d8 Fill the square under the left scrollbar
This fixes a drawing issue that appeared on ":vsp".
2010-01-29 19:09:43 +01:00
Bram Moolenaar 43b89a3991 updated for version 7.2.351
Problem:    Can't build with some compilers.
Solution:   Move the #ifdef outside of a macro.  Cleanup the code.
2010-01-28 22:58:16 +01:00
Bram Moolenaar 48fb92df3d updated for version 7.2.350
Problem:    Win32: When changing font the window may jump from the secondary
	    to the primary screen. (Michael Wookey)
Solution:   When the screen position was negative don't correct it to zero.
2010-01-27 21:05:05 +01:00
Bram Moolenaar ced469c670 updated for version 7.2.349
Problem:    CTRL-W gf doesn't put the new tab in the same place as "tab split"
	    and "gf". (Tony Mechelynck)
Solution:   Store the tab number in cmdmod.tab.
2010-01-27 20:26:46 +01:00
Bram Moolenaar 4e68db907f updated for version 7.2.348
Problem:    Unicode double-width characters are not up-to date.
Solution:   Produce the double-width table like the others.
2010-01-27 18:29:26 +01:00
Bram Moolenaar 296238971c updated for version 7.2.347
Problem:    Crash when executing <expr> mapping redefines that same mapping.
Solution:   Save the values used before evaluating the expression.
2010-01-27 17:31:43 +01:00
Bram Moolenaar 5023c42275 updated for version 7.2.346
Problem:    Repeating a command with @: causes a mapping to be applied twice.
Solution:   Do not remap characters inserted in the typeahead buffer. (Kana
	    Natsuno)
2010-01-27 16:31:13 +01:00
Bram Moolenaar bc77ae5486 updated for version 7.2.345
Problem:    Tab line is not updated when the value of 'bt' is changed.
Solution:   Call redraw_titles(). (Lech Lorens)
2010-01-27 15:58:13 +01:00
Bjorn Winckler 1807edf411 Lower priority for exception logs 2010-01-24 15:14:19 +01:00
Bram Moolenaar 3bd66b1b26 Add more pathdef.c to .hgignore. 2010-01-20 21:56:50 +01:00
Bram Moolenaar 7d2bf1a67c updated for version 7.2.344
Problem:    Can't compile on some systems
Solution:   Move the #ifdef outside of the mch_open macro. (Patrick Texier)
2010-01-20 21:41:47 +01:00
Bram Moolenaar 3318bc7fd5 updated for version 7.2.343
Problem:    Can't compile on Win32.
Solution:   Insert the missing bar.
2010-01-19 23:30:41 +01:00
Bram Moolenaar ca8f58a600 updated for version 7.2.342
Problem:    Popup menu displayed wrong in 'rightleft' mode when there are
	    multi-byte characters.
Solution:   Adjust the column computations. (Dominique Pelle)
2010-01-19 18:06:03 +01:00
Bram Moolenaar 4c0bcb9f19 updated for version 7.2.341
Problem:    Popup menu wraps to next line when double-wide character doesn't
	    fit. (Jiang Ma)
Solution:   Display a ">" instead. (Dominique Pelle)
2010-01-19 17:40:46 +01:00
Bram Moolenaar 90db1756f3 updated for version 7.2.340
Problem:    Gcc warning for condition that can never be true. (James Vega)
Solution:   Use start_lvl instead flp->lvl.
2010-01-19 17:24:25 +01:00
Bram Moolenaar b720c6880f updated for version 7.2.339
Problem:    Part of --startuptime patch is missing.
Solution:   Add check for time_fd.
2010-01-19 16:31:47 +01:00
Bram Moolenaar 6735e2e56a updated for version 7.2.338
Problem:    Part of FD_CLOEXEC change is missing.
Solution:   Include source file skipped because of typo.
2010-01-19 16:22:03 +01:00
Bram Moolenaar 67e9e6d1ac updated for version 7.2.337
Problem:    The :compiler command doesn't function properly when invoked in a
	    function.
Solution:   Add "g:" before "current_compiler". (Yukihiro Nakadaira)
2010-01-19 16:13:50 +01:00
Bram Moolenaar 588c51a1bc updated for version 7.2.336
Problem:    MzScheme interface can't evaluate an expression.
Solution:   Add mzeval(). (Sergey Khorev)
2010-01-19 15:55:06 +01:00
Bram Moolenaar 9590862732 updated for version 7.2.335
Problem:    The CTRL-] command escapes too many characters.
Solution:   Use a different list of characters to be escaped. (Sergey Khorev)
2010-01-19 15:24:27 +01:00
Bram Moolenaar b9dad4f682 updated for version 7.2.334
Problem:    Postponing keys in Netbeans interface does not work properly.
Solution:   Store the key string instead of the number.  Avoid an infinite
	    loop. (Mostly by Xavier de Gaye)
2010-01-19 15:13:14 +01:00
Bram Moolenaar 76cf08b6ab updated for version 7.2.333
Problem:    Warnings from static code analysis.
Solution:   Small changes to various lines. (Dominique Pelle)
2010-01-19 14:59:56 +01:00
Bram Moolenaar 38f9623414 updated for version 7.2.332
Problem:    Crash when spell correcting triggers an autocommand that reloads
	    the buffer.
Solution:   Make a copy of the line to be modified. (Dominique Pelle)
2010-01-19 13:08:42 +01:00
Bram Moolenaar 48da66c841 updated for version 7.2.331
Problem:    Can't interrupt "echo list" for a very long list.
Solution:   Call line_breakcheck() in list_join().
2010-01-19 12:48:05 +01:00
Bram Moolenaar 94e4a1e380 Add a few missing runtime files. 2010-01-17 14:38:06 +01:00
Bram Moolenaar d58219ca38 Updated runtime files. 2010-01-16 14:29:14 +01:00
Bram Moolenaar 679d4c8d30 Updated runtime files. 2010-01-12 21:31:21 +01:00
Bram Moolenaar e7e70d5f54 updated for version 7.2.330
Problem:    Tables for Unicode case operators are outdated.
Solution:   Add a Vim script for generating the tables.  Include tables for
	    Unicode 5.2.
2010-01-12 19:52:03 +01:00
Bram Moolenaar 2296d028c7 updated for version 7.2.329
Problem:    "g_" doesn't position cursor correctly when in Visual mode and
	    'selection' is "exclusive". (Ben Fritz)
Solution:   Call adjust_for_sel().
2010-01-12 15:42:37 +01:00
Bram Moolenaar 925392f7db updated for version 7.2.328
Problem:    has("win64") does not return 1 on 64 bit MS-Windows version.
Solution:   Also check for _WIN64 besides WIN64.
2010-01-12 13:18:33 +01:00
Bram Moolenaar f4c8ae65db Fixed encoding name in Ukranian message file. 2010-01-11 20:07:07 +01:00
Bram Moolenaar f0e00ae7ae Add an .hgignore file (suggested by Mike Williams). 2010-01-10 14:44:52 +01:00
Bram Moolenaar b356a1b414 Remove config.h from the distribution, let's see if that works. 2010-01-10 14:35:14 +01:00
Bram Moolenaar 6ef6c58da0 Minor text file updates. 2010-01-06 21:16:31 +01:00
Bram Moolenaar 4895774ca7 Update runtime files. 2010-01-06 20:54:52 +01:00
Bram Moolenaar dee4beca2a Update documentation files. 2010-01-06 20:52:26 +01:00
Bram Moolenaar 2c99695854 Update message translations. 2010-01-06 20:29:28 +01:00
Bram Moolenaar 70c9faac89 updated for version 7.2.327 2010-01-06 18:25:34 +01:00
Bram Moolenaar 3dd8d6b9bc updated for version 7.2.326 2010-01-06 17:53:38 +01:00
convert-repo e1a538c47a update tags 2010-01-06 14:58:33 +00:00
vimboss 0d71e0eea8 updated for version 7.2-325 2009-12-31 13:53:33 +00:00
vimboss c34e8a1780 updated for version 7.2-324 2009-12-31 12:18:30 +00:00
vimboss f29fa68b1b updated for version 7.2-323 2009-12-24 15:11:40 +00:00
vimboss c78a20b44b updated for version 7.2-322 2009-12-24 14:46:12 +00:00
vimboss d636fedf95 updated for version 7.2-321 2009-12-24 14:01:12 +00:00
Bjorn Winckler e47dc041ee Use device colors instead of calibrated colors
This fixes a bug in full-screen where the full-screen background color
in "set fuopt=background:Normal" would not match the background color of
the Vim view (with the experimental renderer).
2009-12-19 21:58:10 +01:00
vimboss ff88a3d72f updated for version 7.2-320 2009-12-16 18:02:47 +00:00
vimboss 67d685247c updated for version 7.2-319 2009-12-16 17:49:39 +00:00
vimboss ad8645f0af updated for version 7.2-318 2009-12-16 17:28:07 +00:00
vimboss 9d373ca370 updated for version 7.2-317 2009-12-16 17:13:44 +00:00
vimboss 780cd57aea updated for version 7.2-316 2009-12-16 16:14:51 +00:00
Bjorn Winckler 8b934e5b95 Update README 2009-12-09 10:53:27 +01:00
Bjorn Winckler 345ed7ab01 Support the "a" flag in 'guioptions' 2009-12-03 18:07:10 +01:00
vimboss 79bb1525a4 updated for version 7.2-315 2009-12-02 16:58:33 +00:00
vimboss c8f033fcb2 updated for version 7.2-314 2009-12-02 16:47:11 +00:00
vimboss 84fd8734c3 updated for version 7.2-313 2009-12-02 16:14:36 +00:00
vimboss be7c0483a9 updated for version 7.2-312 2009-12-02 14:02:39 +00:00
vimboss b0cdf23fdc updated for version 7.2-311 2009-12-02 12:31:27 +00:00
vimboss eea0b35637 updated for version 7.2-310 2009-12-02 11:08:38 +00:00
Bjorn Winckler e98f8a27c2 Improve Find pasteboard interaction
Put two representation of the search pattern on the Find pasteboard: one
that holds the unmodified pattern, and a second one that removes some
common backslash escapes from the first.  The second pattern will be
used by other applications so e.g. hitting * in MacVim and then Cmd+g in
another app now works.
2009-11-28 19:10:03 +01:00
Bjorn Winckler 1c1f5c6646 Fix Ctrl-Tab handling in Core Text 2009-11-27 23:02:06 +01:00
Bjorn Winckler 034f136ad2 Remove references to MMAtsuiRenderer in nib file 2009-11-27 20:06:43 +01:00
vimboss d3bfef043f updated for version 7.2-309 2009-11-26 19:40:49 +00:00
vimboss 976686d38c updated for version 7.2-308 2009-11-25 18:51:24 +00:00
vimboss a807d1879b updated for version 7.2-307 2009-11-25 17:21:32 +00:00
vimboss b0c8ac3bfe updated for version 7.2-306 2009-11-25 16:14:45 +00:00
vimboss ff3c3f2b91 updated for version 7.2-305 2009-11-25 12:08:03 +00:00
vimboss d1bf9c480f updated for version 7.2-304 2009-11-25 11:38:30 +00:00
Bjorn Winckler d7d3ee4971 Fix ATSUI/Core Text compilation issues on Tiger 2009-11-23 12:56:44 +01:00
Bjorn Winckler 4494783964 Snapshot 51 2009-11-22 14:02:45 +01:00
Bjorn Winckler 6f45b7a83c Don't link Sparkle framework 2009-11-21 22:27:16 +01:00
Bjorn Winckler 9352553da0 Remove MMAtsuiRenderer user default
This has been deprecated in favor of MMRenderer.
2009-11-21 22:20:09 +01:00
Bjorn Winckler 78330ec132 Remove feat/core-text from README-repo.txt 2009-11-21 16:36:13 +01:00
Bjorn Winckler 5c9e4f17bc Avoid 0x0 window when autosaved dimension missing
This fixes a bug where the first window would be tiny if no autosaved
dimensions existed on startup.
2009-11-21 15:54:39 +01:00
Bjorn Winckler 86d7c475d6 Merge upstream
Conflicts:
	src/auto/configure
2009-11-18 20:12:00 +01:00
vimboss 9bd435daa1 updated for version 7.2-303 2009-11-18 19:11:58 +00:00
vimboss 21d545e55d updated for version 7.2-302 2009-11-17 16:57:14 +00:00
vimboss e4f9c806e5 updated for version 7.2-301 2009-11-17 16:41:01 +00:00
vimboss 07c2bd2d5e updated for version 7.2-300 2009-11-17 16:13:15 +00:00
vimboss f9905d3944 updated for version 7.2-299 2009-11-17 15:08:26 +00:00
vimboss aa5e59d5eb updated for version 7.2-298 2009-11-17 13:57:22 +00:00
vimboss c60da0b7b6 updated for version 7.2-297 2009-11-17 11:43:06 +00:00
vimboss 31f660b37a updated for version 7.2-296 2009-11-17 11:31:25 +00:00
vimboss 116d179fc0 updated for version 7.2-295 2009-11-17 11:20:35 +00:00
vimboss 1c7b224c37 updated for version 7.2-294 2009-11-17 11:08:52 +00:00
Bjorn Winckler fc698b39fe Add MMRenderer user default
Set to 0 for Cocoa renderer, 1 for ATSUI, 2 for Core Text.  The default
is 0.
2009-11-15 22:33:13 +01:00
Jjgod Jiang 5f81e8ad27 Fix transparency for Core Text renderer 2009-11-15 19:59:21 +01:00
Bjorn Winckler 34d334c013 Implemented CoreText renderer 2009-11-15 18:52:21 +01:00
Bjorn Winckler 04820b04d6 Update Advanced preferences pane
Remove the "Use login shell" option, and rename the ATSUI option (since
Core Text may actually be used and not ATSUI).
2009-11-11 22:06:00 +01:00
vimboss dae5f35607 updated for version 7.2-293 2009-11-11 16:30:08 +00:00
vimboss 10244aa84b updated for version 7.2-292 2009-11-11 16:22:28 +00:00
vimboss 313941f77d updated for version 7.2-291 2009-11-11 16:07:20 +00:00
vimboss 435935bf0b updated for version 7.2-290 2009-11-11 15:56:10 +00:00
vimboss 4888e4d704 updated for version 7.2-289 2009-11-11 15:23:37 +00:00
vimboss 0aef550233 updated for version 7.2-288 2009-11-11 14:06:59 +00:00
vimboss 01100ceedc updated for version 7.2-287 2009-11-11 13:45:33 +00:00
vimboss fb48afe434 updated for version 7.2-286 2009-11-11 13:22:11 +00:00
vimboss 1ebdd8968f updated for version 7.2-285 2009-11-11 12:22:32 +00:00
Bjorn Winckler 2da8cec3c2 Autosaved dimensions do not override vimrc
Setting 'lines' and 'columns' in .vimrc works again.  This patch also
fixes a minor memory leak related to the autosaved dimensions.  Finally,
skip checking terminal capabilies when the GUI is about to start.
2009-11-10 21:44:06 +01:00
Bjorn Winckler e9f75c50c1 Remove SUUpdater object from MainMenu.nib
This avoids an annoying warning on each startup (Sparkle, which this
object belongs to, has temporarily been disabled).
2009-11-09 20:25:54 +01:00
Bjorn Winckler b4d507b9d0 Avoid forcing redraw in full-screen
Previously the content view in full-screen mode would get redrawn
whenever the Vim view possibly changed size.  Now the view is only
updated if the view did change size (fixes redraw problems with the Core
Text renderer).
2009-11-08 18:59:30 +01:00
Bjorn Winckler ded90a7def Fix full-screen drawing issues
This commit fixes a problem where the screen would look blurry, or where
each redraw would cause the entire screen to be cleared before the
redraw (only the Core Text renderer was affected by this bug).
2009-11-08 17:46:16 +01:00
Bjorn Winckler 44b0f3bc30 Fix Ruby compilation on case-sensitive FS 2009-11-04 16:43:36 +01:00
vimboss c8a0b8cdfb updated for version 7.2-284 2009-11-03 17:47:12 +00:00
vimboss 99eb5f2c9c updated for version 7.2-283 2009-11-03 17:13:59 +00:00
vimboss b5688c3ef3 updated for version 7.2-282 2009-11-03 17:04:43 +00:00
vimboss 3ed1ee17eb updated for version 7.2-281 2009-11-03 16:36:44 +00:00
vimboss f9d04339ee updated for version 7.2-280 2009-11-03 16:20:34 +00:00
vimboss bc6c0f325c updated for version 7.2-279 2009-11-03 15:44:21 +00:00
vimboss 7092cfd2f8 updated for version 7.2-278 2009-11-03 15:30:12 +00:00
vimboss dbf3bcd840 updated for version 7.2-277 2009-11-03 15:23:14 +00:00
vimboss 4367811170 updated for version 7.2-276 2009-11-03 15:04:20 +00:00
vimboss a4f7e934f5 updated for version 7.2-275 2009-11-03 14:33:17 +00:00
vimboss bf9f50247f updated for version 7.2-274 2009-11-03 13:46:54 +00:00
vimboss 8d96449a24 updated for version 7.2-273 2009-11-03 13:26:55 +00:00
vimboss a6ce4014c4 updated for version 7.2-272 2009-11-03 12:06:23 +00:00
vimboss 1178591d1f updated for version 7.2-271 2009-11-03 11:53:55 +00:00
vimboss 073ba3f0e8 updated for version 7.2-270 2009-11-03 11:40:19 +00:00
vimboss 26f1599979 updated for version 7.2-269 2009-11-03 11:11:11 +00:00
vimboss 2dc63d8e16 updated for version 7.2-268 2009-11-03 10:43:27 +00:00
Bjorn Winckler 5d7d4f9684 Disable NSRepeatCountBinding 2009-10-31 14:14:36 +01:00
Bjorn Winckler 40c88bce6f Fix window tiling with multiple monitors 2009-10-27 20:00:20 +01:00
Bjorn Winckler a409aa7c89 Release text view helper correctly 2009-10-23 20:09:14 +02:00
Bjorn Winckler ddd5a2bd4b Snapshot 50 2009-10-10 02:55:31 +02:00
Bjorn Winckler 5bc897df9d Update UTIs in Info.plist
Ideally all org.vim.*-file UTIs should be replaced with proper UTIs, but
they can be hard to find so they will be replaced as new UTIs are found.
2009-10-09 22:23:52 +02:00
Bjorn Winckler 2f3a9d7740 Remove "No connection ..." warning with --remote 2009-10-09 20:38:31 +02:00
Bjorn Winckler 3aaef67b85 Merge upstream
Conflicts:
	src/auto/configure
2009-10-07 16:21:00 +02:00
vimboss 9f957bcd6c updated for version 7.2-267 2009-10-07 14:20:30 +00:00
Bjorn Winckler 9a01753529 Fix wide character support for 64 bit 2009-10-01 21:13:17 +02:00
Bjorn Winckler ac4412ace2 Add missing defines to Tiger
CGFloat and NS[U]Integer were introduced in 10.5, make sure they are
defined when compiling for 10.4.
2009-09-30 23:04:12 +02:00
Bjorn Winckler b712dd06eb Clean Python and Ruby flags when macsdk is set
Most importantly there are no explicit -I.. flags that break the
--with-macsdk functionality.  Also use -framework Ruby and include Ruby
properly.
2009-09-30 21:46:31 +02:00
Bjorn Winckler 8cad670f16 Don't include Carbon.h in os_mac.h
This avoid polluting the global namespace with Carbon symbols (there was
a conflict between Carbon and Ruby both defining "ID").  To accomodate
this the Carbon types OSErr and OSType have been changed to int16_t and
uint32_t, respectively.
2009-09-30 21:42:50 +02:00
Bjorn Winckler fe79caddfa Enable 64 bit compilation (Vim and MacVim)
Note that Sparkle currently is not 64 bit so automatic updating won't
work when MacVim is compiled for 64 bit.
2009-09-30 19:38:06 +02:00
Bjorn Winckler 33c4dd0eef Deprecate mac-arch, superseded by --with-macarchs
Move --with-macarchs and --with-macsdk to an earlier place in the
configure script.  The flag --with-macsdk is now enabled but it should
also set the MACOSX_DEPLOYMENT_TARGET environment variable (how?).
2009-09-30 15:21:32 +02:00
vimboss d5365574cc updated for version 7.2-266 2009-09-30 13:17:02 +00:00
Bjorn Winckler 615d7dd609 Remove unnecessary include paths in Makefile 2009-09-30 13:30:10 +02:00
vimboss e411119903 updated for version 7.2-265 2009-09-30 11:24:36 +00:00
Bjorn Winckler 1ab1bec908 Strip all -arch flags from Perl and Ruby
The system provided Perl and Ruby libraries adds -arch flags since they
were built as universal binaries.  This causes Vim to build with these
flags which is undesirable (the default should be to only build for the
native architecture).  The solution is to strip any -arch flags from
Perl and Ruby.

A universal binary can be built by using the --with-archs configure
flag.
2009-09-30 10:19:06 +02:00
Bjorn Winckler 770796042e Fix 64 bit compilation warnings in backend 2009-09-29 23:31:32 +02:00
Bjorn Winckler f5a8f4f083 Clean up Carbon includes
Don't use FlatCarbon when building MacVim (only for Carbon GUI).
2009-09-29 23:12:26 +02:00
Bjorn Winckler c36f69c013 Add --with-macsdk flag to configure
Compilation fails for some reason, so this option is disabled.
2009-09-29 22:39:29 +02:00
Bjorn Winckler b05db8d377 Add --with-xcodecfg configure flag 2009-09-29 21:32:00 +02:00
Bjorn Winckler b262a38339 Add --with-archs configure flag 2009-09-29 20:17:38 +02:00
Bjorn Winckler 3b2784e277 Use MacVim instead of Carbon GUI by default 2009-09-29 18:35:16 +02:00
Bjorn Winckler 04a6eb68d0 Build xcode project from Makefile 2009-09-29 03:02:30 +02:00
Bjorn Winckler 25d39a282a Remove Universal configuration from 'Edit in ...' 2009-09-29 02:23:29 +02:00
Bjorn Winckler fdd9622c00 Force 32 bit, remove Universal configuration
The Sparkle framework does not include a 64 bit binary, so force 32 bit
until it is updated.
2009-09-28 22:58:33 +02:00
Bjorn Winckler be45005f25 Prepare for 64 bit
Mostly fixes problems involving NSUInteger.
2009-09-28 22:55:16 +02:00
Bjorn Winckler 281f280eb1 Disable MacVim plugins for now
The supporting files for CTGradient and RBSplitView causes several
warnings when compiling for 64 bit.  Since nobody uses MacVim plugins
I have decided to disable them instead of having to support these files
(although these warnings are easy enough to fix for anybody interested).
2009-09-28 21:26:39 +02:00
Bjorn Winckler 9c1037f556 Prepare PSMTabBarControl for 64 bit
Change unsigned -> NSUInteger, float -> CGFloat as necessary.
2009-09-28 19:44:13 +02:00
Bjorn Winckler 2b77fe974e Don't pass 'long' vars over process boundary
The only place 'long' was used was in scrollbar identifiers.  These are
now "truncated" to fit inside 32 bit (when compiling for 64 bit).
2009-09-27 21:52:06 +02:00
Bjorn Winckler fc05fb5e3e Strip x86_64 arch from Ruby LDFLAGS 2009-09-25 19:08:58 +02:00
Nicolas Weber b7b4e364c4 Really fix icon generation on Snow Leopard 2009-09-24 00:50:18 -07:00
vimboss ed55437203 updated for version 7.2-264 2009-09-23 16:14:49 +00:00
vimboss b07059a739 updated for version 7.2-263 2009-09-23 15:35:48 +00:00
Bjorn Winckler 00a63422ca Update help file 2009-09-23 13:28:05 +02:00
Bjorn Winckler a3bc1d1a86 Fix typo in help file 2009-09-20 14:46:06 +02:00
Bjorn Winckler 629eb02403 Fix Ctrl-C handling
This fixes a bug where mappings to e.g. <C-c>g would fail.
2009-09-18 19:24:11 +02:00
vimboss a81d84df1f updated for version 7.2-262 2009-09-18 15:25:52 +00:00
vimboss 19314f214b updated for version 7.2-261 2009-09-18 13:17:09 +00:00
vimboss baeec8addc updated for version 7.2-260 2009-09-18 12:59:26 +00:00
vimboss 49c9e43d59 updated for version 7.2-259 2009-09-11 15:24:31 +00:00
vimboss 0b5eab9c89 updated for version 7.2-258 2009-09-11 14:48:27 +00:00
vimboss 49a5d8fbab updated for version 7.2-257 2009-09-11 14:17:54 +00:00
vimboss 5f972f11ac updated for version 7.2-256 2009-09-11 13:46:41 +00:00
vimboss 554448b77f updated for version 7.2-255 2009-09-11 13:20:33 +00:00
vimboss c8d08d3d53 updated for version 7.2-254 2009-09-11 13:04:24 +00:00
vimboss 9539d1240e updated for version 7.2-253 2009-09-11 12:19:51 +00:00
vimboss f6785cd6c8 updated for version 7.2-252 2009-09-11 12:02:34 +00:00
vimboss 2688634afb updated for version 7.2-251 2009-09-11 11:44:54 +00:00
vimboss 2a1aff523b updated for version 7.2-250 2009-09-11 11:26:56 +00:00
vimboss d2d8135617 updated for version 7.2-249 2009-09-11 11:00:05 +00:00
vimboss e33ea64952 updated for version 7.2-248 2009-09-11 10:49:58 +00:00
vimboss 6a36ea9a4f updated for version 7.2-247 2009-09-11 10:21:41 +00:00
vimboss 98d113300f updated for version 7.2-246 2009-09-11 09:30:34 +00:00
Bjorn Winckler 814f3a5ed0 Fix "New Document Here" Service
Expand leading tilde in paths, else NSFileManager thinks the path does
not exists.
2009-09-04 18:23:56 +02:00
Bjorn Winckler 99805e6988 Make Services work on 10.6
Services need a (possibly empty) NSRequiredContext dictionary in the
application's Info.plist on 10.6.
2009-09-04 18:22:44 +02:00
Bjorn Winckler fd2804b9df MAC_OS_X_VERSION_10_6 not defined on pre-10.6
Just use a literal 1060 in header files which do not (and should not)
include MacVim.h.
2009-09-02 21:21:12 +02:00
Bjorn Winckler 6f553b7ad5 Use availability macros correctly
Always use >= when checking lower bounds and < when checking upper
bounds. The problem is that MAC_OS_X_MAX_ALLOWED and
MAC_OS_X_MIN_REQUIRED need not be equal to one of the MAC_OS_X_VERSION_*
macros.  For example, on 10.5.8 MAC_OS_X_VERSION_MAX_ALLOWED is 1058
whereas MAC_OS_X_VERSION_10_5 is 1050.

(Based on a patch by Michael Guntsche.)
2009-09-02 20:07:08 +02:00
Bjorn Winckler 67df700615 Disable the ATSUI renderer on 10.6
ATSUI has been deprecated on 10.6.  As it stands the ATSUI renderer does
not even work and it spews out masses of warnings when building, so
ATSUI is disabled when compiling for 10.6 for now.
2009-09-01 22:43:56 +02:00
Bjorn Winckler ad7da68f84 Fix some Xcode static analyzer warnings
The only relevant complaint was a memory leak when opening files from
Finder.
2009-09-02 00:29:14 +02:00
Bjorn Winckler a396b2f7bf Ensure Vim compiles as 32 bit
The MacVim binary always builds as 32 bit so make sure the Vim binary is
32 bit as well (GCC defaults to 64 bit on Leopard).
2009-09-02 00:26:42 +02:00
Bjorn Winckler bb28facdad Don't use +[NSConnection defaultConnection]
The defaultConnection message was deprecated in 10.6.
2009-09-02 00:03:50 +02:00
Bjorn Winckler 25133f7d03 Avoid compilation warnings on 10.6 2009-09-01 22:42:35 +02:00
Bjorn Winckler 6907a6b43e Declare PSMTabBarControl delegate on 10.6
This avoids a compilation warning, nothing else.
2009-09-01 22:14:12 +02:00
Bjorn Winckler 6a87e8cc02 Fix warning in ODBEditor (10.6) 2009-09-01 22:13:16 +02:00
Bjorn Winckler d04263aee2 Autosave window rows and columns 2009-09-01 22:13:10 +02:00
Nicolas Weber 64d84c49fa Fix icon generation on Snow Leopard
Snow Leopard seems to not support Scrap Manager, so don't use the Scrap
Manager code.
2009-08-30 17:11:42 -07:00
Bjorn Winckler 823ab3d45a Copy Sparkle framework into app bundle
The previous commit accidentally removed the step where the Sparkle
framework got copied into the app bundle.
2009-08-30 21:03:40 +02:00
Bjorn Winckler 2a5bbeead5 Include PSMTabBarControl framework properly 2009-08-30 20:43:33 +02:00
Bjorn Winckler 935ea1a658 Don't use Carbon framework from 10.4u sdk 2009-08-30 20:32:25 +02:00
Bjorn Winckler bf68c50168 Fix warnings in Edit in ODBEditor 2009-08-30 20:31:24 +02:00
Bjorn Winckler 84c844a956 Ignore user files in Edit in ODBEditor framework 2009-08-30 20:15:58 +02:00
Bjorn Winckler 889b7064e3 Build Edit in ODBEditor against current OS version 2009-08-30 20:12:27 +02:00
Bjorn Winckler 7a5e3f51cb Disable prebinding of PSMTabBarControl framework 2009-08-30 20:07:13 +02:00
Bjorn Winckler f03063e1cf Ignore user files in PSMTabBar framework 2009-08-30 20:04:13 +02:00
Bjorn Winckler 32c1d587d8 Fix warnings in PSMTabBarControl 2009-08-30 19:31:44 +02:00
Bjorn Winckler 497535c098 Build PSMTabBar against current OS version 2009-08-30 19:31:43 +02:00
Bjorn Winckler 8624d40d53 Delete user config files from PSMTabBar project 2009-08-30 19:26:48 +02:00
Bjorn Winckler dc8a6b7bec Change runtime fall-back directory 2009-08-30 17:35:30 +02:00
Bjorn Winckler c5d549a4e0 Set $VIM and $VIMRUNTIME early
Otherwise bindtextdomain() gets the wrong runtime path inside
init_locale() causing messages never to be translated.
2009-08-29 22:52:00 +02:00
Bjorn Winckler 3eb0ca1305 Make Find and Replace dialog localizable 2009-08-29 19:27:20 +02:00
Bjorn Winckler 6ab612e357 Disable localized menus in system vimrc
Can be enabled by setting/clearing 'langmenu' in ~/.vimrc.
2009-08-29 18:39:35 +02:00
Bjorn Winckler 16caec3a2b Move menus to menu.vim 2009-08-29 18:30:35 +02:00
Bjorn Winckler 3506261522 Fix handling of built-in toolbar icons
In particular, this patch ensures that built-in toolbar icons are
properly used when menus are translated.
2009-08-29 15:36:07 +02:00
Bjorn Winckler 6cc607a2f4 Disallow comments in :macmenu command
This is necessary, otherwise e.g. Edit.Paste<Tab>"+gP does not parse
properly.
2009-08-29 14:47:46 +02:00
Bjorn Winckler 4894e8fb74 Fix window cascading
Windows always cascade a fixed amount down and right from the topmost
window.  If the window sticks out on the right/bottom then it is moved
as far left/up as possible.
2009-08-28 18:25:32 +02:00
Kazuki Sakamoto a2e0526744 IM enhancements
By the default the keyboard layout matching the current locale is used.
Also fix bug where IM switching got confused after manually changing the
IM with Cmd-Space.  Finally, fix support for Ctrl-^ when IM is enabled
(e.g. this did not previously work with the Kotoeri input manager).
2009-08-28 13:22:06 +09:00
Bjorn Winckler d69e140c24 Avoid race condition (e.g. when closing windows)
The app may become multithreaded e.g. due to the open panel being
displayed.  In this case connectionDidDie notifications may arrive
outside the main thread, possibly leading to windows being closed
simultaneously on multiple threads.  This scenario could happen e.g.
when quitting with multiple windows open.

To avoid this situation performSelectorOnMainThread: is used instead of
performSelector:.
2009-08-27 18:16:44 +02:00
Bjorn Winckler 7cae9e965c Fix Cmd key regression
Shift and Alt modifiers now register in combination with Cmd and e.g.
arrow keys.
2009-08-27 17:41:42 +02:00
Bjorn Winckler 2d7c78f24c Snapshot 49 2009-08-16 01:19:58 +02:00
Bjorn Winckler a8da347a13 Fix Ctrl key regression
Fix Ctrl-h, Ctrl-@ and Ctrl-o regression.  Also remove all key bindings
involving arrays from KeyBinding.dict.
2009-08-16 01:09:02 +02:00
Bjorn Winckler 2e45751630 Fix arrow and function key bug on Tiger
The bug caused arrow (and function) key presses to be sent twice.
2009-08-15 02:49:17 +02:00
Bjorn Winckler 8cd984a56b Snapshot 48 2009-08-15 01:07:26 +02:00
Bjorn Winckler 650cb7ac61 Remove feat/inline-im from README-repo.txt 2009-08-15 00:21:44 +02:00
Bjorn Winckler ae400c2dbb Add user default MMUseInlineIm
Use inline IM (Vim draws marked text) when on, use old IM drawing code
otherwise.
2009-08-09 21:27:30 +02:00
Bjorn Winckler 507a68ef81 Add support for +xim
Inline marked text editing, underline marked text (even on command
line), etc.
2009-08-09 19:12:10 +02:00
Bjorn Winckler 271ef88821 Add rudimentary inline IM support
Not possible to move cursor in marked text.
2009-08-09 19:11:10 +02:00
Bjorn Winckler 9a248b819d Fix compilation errors on Tiger 2009-08-09 18:38:19 +02:00
Bjorn Winckler 6aeca470b5 Don't remember IM source if ASCII
This fixes a bug where the IM source would be forgotten whenever command
line mode was entered (with 'noimd' set).
2009-08-09 02:28:28 +02:00
Bjorn Winckler 936863de98 Add feat/inline-im to README-repo.txt 2009-08-09 02:20:42 +02:00
Bjorn Winckler d96b64262d Delete feat/input from README-repo.txt 2009-08-09 00:01:22 +02:00
Bjorn Winckler 200d3e5957 Only set ASCII IM source when setting 'noimd'
The layout used in normal mode (IM disabled) no longer changes when IM
is disabled.  It only changes when the 'noimd' option is set.
2009-08-08 23:37:29 +02:00
Bjorn Winckler 4ca28fccbd Merge upstream 2009-07-29 18:26:00 +02:00
vimboss 9c08729d42 updated for version 7.2-245 2009-07-29 16:25:31 +00:00
vimboss 8e0d50c1ed updated for version 7.2-244 2009-07-29 16:06:27 +00:00
vimboss 865619bc65 updated for version 7.2-243 2009-07-29 14:24:36 +00:00
vimboss 3b1a4d48f0 updated for version 7.2-242 2009-07-29 13:42:05 +00:00
vimboss 6c124f1604 updated for version 7.2-241 2009-07-29 10:10:29 +00:00
vimboss 44c21d0863 updated for version 7.2-240 2009-07-29 09:11:15 +00:00
Bjorn Winckler ad1b34005d Add note on improved IM support to the help 2009-07-26 17:02:10 +02:00
Bjorn Winckler 107a1cf7cc Improve IM support for 10.5
When using "set noimd" remember which input source was used in normal
mode separately from the input source used in insert mode.  This way it
is possible to e.g. use a US layout in normal mode and a non-US layout
in insert mode.

The input source used in normal mode must be ASCII capable or it won't
be remembered -- any input source used in insert mode is remembered.

On 10.4 the IM code is unchanged because 10.4 does not support the Text
Input Source Services.
2009-07-25 00:25:32 +02:00
Bjorn Winckler cbe2f307b1 Fix numeric key pad support 2009-07-24 12:42:42 +02:00
Bjorn Winckler 5213b783d7 Refactor keyboard input code
This both cleans up the code as well as improve support for binding to
more key combinations.  The Cocoa key bindings system is effectively
disabled; a custom key binding dictionary is set up in KeyBinding.plist
(so that keyboard navigation works in dialogs).
2009-07-23 18:28:34 +02:00
vimboss c6babee370 updated for version 7.2-239 2009-07-22 14:23:13 +00:00
vimboss b4b97fe905 updated for version 7.2-238 2009-07-22 12:28:17 +00:00
Bjorn Winckler cd37d01770 Add Vimball (vba) as supported filetype 2009-07-22 13:51:30 +02:00
vimboss d8b193e98b updated for version 7.2-237 2009-07-22 11:28:11 +00:00
vimboss 629579e8a0 updated for version 7.2-236 2009-07-22 09:17:23 +00:00
vimboss 9d6d075726 updated for version 7.2-235 2009-07-22 09:04:20 +00:00
Bjorn Winckler 7d6909d353 Set right pwd when dropping a folder on Dock icon
The last path component of the folder that was dropped is no longer
disregarded.
2009-07-21 03:34:15 +02:00
Bjorn Winckler b75c36581f ATSUI clips text to avoid bleeding 2009-07-20 20:13:42 +02:00
Bjorn Winckler ae253a2dad Fix typo in README-repo.txt 2009-07-19 00:29:47 +02:00
Bjorn Winckler 21cced3fc6 Add README-repo.txt file
For the "readme" section on the repo web page.  Pandoc is used to
generate the HTML file.
2009-07-18 21:18:39 +02:00
Bjorn Winckler 29745cf124 Snapshot 47 2009-07-16 20:08:56 +02:00
Bjorn Winckler 699de3c049 Change some logging messages 2009-07-16 14:35:27 +02:00
Bjorn Winckler 5560396666 Dialog sheet animation can no longer cause a crash
Explicitly force the sheet animation to be performed before passing the
result of the sheet on to the backend.  Before this patch the animation
was performed asynchronously and this could lead to a Vim controller
being released at the same time as the animation was being performed
since the animation took place in the default run loop mode.
2009-07-15 00:54:08 +02:00
Bjorn Winckler 8570b5df1f Merge upstream 2009-07-14 21:41:00 +02:00
vimboss 7391be3977 updated for version 7.2-234 2009-07-14 19:40:21 +00:00
vimboss 7068f9086c updated for version 7.2-233 2009-07-14 16:38:36 +00:00
vimboss af2e8b9e3b updated for version 7.2-232 2009-07-14 15:38:41 +00:00
vimboss 7d87f83e26 updated for version 7.2-231 2009-07-14 14:04:54 +00:00
vimboss eb6512ab82 updated for version 7.2-230 2009-07-14 11:44:30 +00:00
vimboss c2d5277fc9 updated for version 7.2-229 2009-07-14 10:20:22 +00:00
Bjorn Winckler e9d2694dce Snapshot 46 2009-07-11 00:34:33 +02:00
Bjorn Winckler 36154dd8c0 More normalization of filenames, use NFC
Apparently NTFS uses NFC so switch to NFC instead of using NFKC.
2009-07-10 19:01:28 +02:00
Bjorn Winckler 0d778b28a4 Merge upstream 2009-07-10 15:12:00 +02:00
vimboss fa7096a6ee updated for version 7.2-228 2009-07-10 13:11:26 +00:00
vimboss cc2b9e2245 updated for version 7.2-227 2009-07-09 18:13:49 +00:00
vimboss 2cd4c80953 updated for version 7.2-226 2009-07-09 18:06:49 +00:00
vimboss 8303ab1b1a updated for version 7.2-225 2009-07-09 16:24:19 +00:00
vimboss 3ef707c468 updated for version 7.2-224 2009-07-09 16:15:16 +00:00
vimboss b3ec0ad87a updated for version 7.2-223 2009-07-09 13:55:43 +00:00
Bjorn Winckler 4486bb71fb Replace NSLog() with ASLogXXX() 2009-07-07 21:01:13 +02:00
Bjorn Winckler 176ab5d393 Add simple logging facility (using ASL) 2009-07-07 18:34:32 +02:00
Bjorn Winckler aff8366139 Fix typo in help file 2009-07-03 14:46:23 +02:00
vimboss d05fb395d1 updated for version 7.2-222 2009-07-01 18:18:57 +00:00
vimboss e764e25045 updated for version 7.2-221 2009-07-01 16:04:58 +00:00
vimboss bd178a9659 updated for version 7.2-220 2009-07-01 15:13:56 +00:00
vimboss 5a5cd60221 updated for version 7.2-219 2009-07-01 14:13:18 +00:00
Kazuki Sakamoto 7c3e218035 Add NetBeans support 2009-06-26 06:32:14 +09:00
vimboss 760e36dc8b updated for version 7.2-218 2009-06-24 16:32:08 +00:00
vimboss 941e7a992d updated for version 7.2-217 2009-06-24 16:08:18 +00:00
vimboss 7108d56061 updated for version 7.2-216 2009-06-24 15:51:37 +00:00
vimboss d5a9cdd9c8 updated for version 7.2-215 2009-06-24 15:32:01 +00:00
vimboss 60ed6e1213 updated for version 7.2-214 2009-06-24 15:05:00 +00:00
vimboss d628c3711d updated for version 7.2-213 2009-06-24 14:50:12 +00:00
vimboss 3344f11140 updated for version 7.2-212 2009-06-24 14:41:19 +00:00
vimboss f047b3aa3e updated for version 7.2-211 2009-06-24 14:25:49 +00:00
vimboss 31ad5d0472 updated for version 7.2-210 2009-06-24 09:58:32 +00:00
Bjorn Winckler edbdca29e1 Normalize filenames to NFKC before opening
Vim does not cope very well with Unicode decomposed form NFD (i.e. it
does not normalize to composed form before rendering) which causes
problems since HFS+ stores filenames in NFD.  To work around this issue
normalize to compatibility form C before passing filenames to Vim.

(This is not a solution to the problem with NFD since files stored in
NFD will still be problematic but at least a user can work around this
issue by making sure files are in composed form before opening them.)
2009-06-23 20:38:39 +02:00
Bjorn Winckler 5433ca7d4c Support Quick Look for all known file extensions 2009-06-20 22:13:51 +02:00
Bjorn Winckler 816ac0a441 Change name of window menu items
Change "Next/Previous Tab" to "Select Next/Previous Tab" to keep titles
the same as in e.g. Safari.
2009-06-20 20:26:14 +02:00
Bjorn Winckler 90e4752df4 Update 'gfw' on Cmd--/Cmd-+ 2009-06-20 01:58:06 +02:00
Bjorn Winckler 0978ebc1c6 Add help on binding Cmd-keys 2009-06-20 00:14:09 +02:00
Bjorn Winckler f486bb41d6 Avoid exceptions in charRangeForRow::: 2009-06-19 23:09:03 +02:00
Bjorn Winckler 44227b9a93 Fix typo in comment 2009-06-18 21:08:43 +02:00
Bjorn Winckler ad02696d27 Merge upstream
Conflicts:
	src/buffer.c
	src/eval.c
	src/option.c
	src/vim.h
2009-06-16 18:30:00 +02:00
vimboss 87658a916a updated for version 7.2-209 2009-06-16 16:29:10 +00:00
vimboss 66299b9ed5 updated for version 7.2-208 2009-06-16 15:50:33 +00:00
vimboss fc072b7b61 updated for version 7.2-207 2009-06-16 15:22:12 +00:00
vimboss fef8272db2 updated for version 7.2-206 2009-06-16 14:57:26 +00:00
vimboss b04c78a6a0 updated for version 7.2-205 2009-06-16 14:44:48 +00:00
vimboss 99b7765c18 updated for version 7.2-204 2009-06-16 14:34:38 +00:00
vimboss c8e331a5f5 updated for version 7.2-203 2009-06-16 14:01:43 +00:00
vimboss 03f0a92f69 updated for version 7.2-202 2009-06-16 13:35:20 +00:00
vimboss ca96b60e9a updated for version 7.2-201 2009-06-16 13:23:06 +00:00
vimboss ea811731f0 updated for version 7.2-200 2009-06-16 13:12:07 +00:00
vimboss 11b068fc25 updated for version 7.2-199 2009-06-16 12:31:33 +00:00
vimboss 097577c351 updated for version 7.2-198 2009-06-16 09:07:49 +00:00
vimboss 250b62c9a8 updated for version 7.2-197 2009-06-10 16:15:40 +00:00
vimboss 54fea5fe67 updated for version 7.2-196 2009-06-03 20:08:14 +00:00
vimboss e63aad92b1 updated for version 7.2-195 2009-06-03 14:20:21 +00:00
vimboss 8ac99eed90 updated for version 7.2-194 2009-06-03 13:05:07 +00:00
vimboss 25b4e351c9 updated for version 7.2-193 2009-06-03 12:26:06 +00:00
vimboss 20da24a60c updated for version 7.2-192 2009-06-03 11:22:45 +00:00
vimboss 0873fb8f49 updated for version 7.2-191 2009-05-26 20:59:55 +00:00
vimboss 839717064f updated for version 7.2-190 2009-05-26 16:12:37 +00:00
vimboss cee529f197 updated for version 7.2-189 2009-05-26 09:02:10 +00:00
vimboss a3935654b8 updated for version 7.2-188 2009-05-24 11:40:58 +00:00
vimboss ff7ca495c1 updated for version 7.2-187 2009-05-23 12:28:15 +00:00
vimboss 335f08054d updated for version 7.2-186 2009-05-22 19:08:31 +00:00
vimboss fa0d5e0ba9 updated for version 7.2-185 2009-05-22 16:20:57 +00:00
vimboss 1f4d8dd8e1 updated for version 7.2-184 2009-05-21 21:27:43 +00:00
vimboss b465ee5bbe updated for version 7.2-183 2009-05-21 13:20:59 +00:00
vimboss 919b11d301 updated for version 7.2-182 2009-05-17 21:25:42 +00:00
vimboss f5cfc6a148 updated for version 7.2-181 2009-05-17 14:24:23 +00:00
vimboss 915fba8a25 updated for version 7.2-180 2009-05-17 11:33:22 +00:00
vimboss 6b64a62626 updated for version 7.2-179 2009-05-16 19:16:33 +00:00
vimboss 0ee0fbc2d4 updated for version 7.2-178 2009-05-16 19:07:03 +00:00
vimboss 8db81befc3 updated for version 7.2-177 2009-05-16 15:31:32 +00:00
vimboss 47b763090e updated for version 7.2-176 2009-05-16 14:41:10 +00:00
vimboss 99b962f986 updated for version 7.2-175 2009-05-16 14:16:02 +00:00
vimboss e6b7f4ff3b updated for version 7.2-174 2009-05-15 19:33:18 +00:00
vimboss 11f7764bd6 updated for version 7.2-173 2009-05-14 20:20:33 +00:00
vimboss 3f2fbccc21 updated for version 7.2-172 2009-05-14 20:01:05 +00:00
vimboss 84602997b6 updated for version 7.2-171 2009-05-14 19:51:46 +00:00
vimboss 19a1e1db6b updated for version 7.2-170 2009-05-13 18:48:16 +00:00
vimboss 0949ad4f8b updated for version 7.2-169 2009-05-13 16:56:33 +00:00
vimboss 8f5131b2d7 updated for version 7.2-168 2009-05-13 12:49:39 +00:00
vimboss 682e144672 updated for version 7.2-167fix 2009-05-13 12:15:37 +00:00
vimboss a05172e1db updated for version 7.2-168 2009-05-13 10:51:08 +00:00
Travis Jeffery 9b0f42ed24 Add reStructuredText as supported file type 2009-05-11 18:23:50 +02:00
vimboss 7b900cf55a updated for version 7.2-166 2009-04-29 16:47:23 +00:00
vimboss 82c9ce9eeb updated for version 7.2-165 2009-04-29 16:03:38 +00:00
vimboss 104a7e6484 updated for version 7.2-164 2009-04-29 15:41:40 +00:00
vimboss 1e2844207d updated for version 7.2-163 2009-04-29 10:05:51 +00:00
vimboss b39439f386 updated for version 7.2-162 2009-04-29 09:52:12 +00:00
vimboss 185e34337d updated for version 7.2-161 2009-04-29 09:02:44 +00:00
Bjorn Winckler e711158eed Update credits 2009-04-28 23:11:13 +02:00
Kazuki Sakamoto f43ffacda1 Move all IM code into frontend 2009-04-25 22:32:54 +09:00
vimboss 160f5fa78f updated for version 7.2-160 2009-04-22 16:45:21 +00:00
vimboss 7ebc297d1d updated for version 7.2-159 2009-04-22 15:53:09 +00:00
vimboss 3a9b07d2d2 updated for version 7.2-158 2009-04-22 15:45:05 +00:00
vimboss 86d424677a updated for version 7.2-157 2009-04-22 14:44:41 +00:00
vimboss 1666886eaa updated for version 7.2-156 2009-04-22 14:25:01 +00:00
vimboss 7f3a4e21e7 updated for version 7.2-155 2009-04-22 14:10:39 +00:00
vimboss 49b3032c6d updated for version 7.2-154 2009-04-22 13:58:46 +00:00
vimboss 153c893e9e updated for version 7.2-153 2009-04-22 13:39:36 +00:00
vimboss e07aeca8c3 updated for version 7.2-152 2009-04-22 12:44:48 +00:00
vimboss 788aadad0a updated for version 7.2-151 2009-04-22 11:52:33 +00:00
vimboss 396732e9af updated for version 7.2-150 2009-04-22 11:08:26 +00:00
vimboss 1c74207cd6 updated for version 7.2-149 2009-04-22 10:56:16 +00:00
Nicolas Weber eb9ece5bf1 Add markdown as supported file type 2009-04-19 22:29:27 -07:00
Bjorn Winckler 204e14b994 Snapshot 45 2009-04-13 19:28:18 +02:00
Bjorn Winckler 2e8bea32db Fix compilation problems on Tiger
The NSRunLoopCommonModes constant is not defined in the Tiger API so
explicitly enumerate the necessary modes instead.
2009-04-13 16:04:49 +02:00
Bjorn Winckler e70fb38670 Add "show hidden files" checkbox to save dialog 2009-04-13 13:48:54 +02:00
Bjorn Winckler 3d56969f47 Add function to print message queue 2009-04-10 19:05:49 +02:00
Bjorn Winckler 294d03baf6 Beware exceptions when processing input
Added comment on the dangers of exceptions being raised when processing
input in the frontend.  Shuffled the exception handling around in the
vim controller.
2009-04-10 18:33:02 +02:00
Bjorn Winckler ac96dc67ba Fix Quickstart regression
Output from a Vim process may reach the frontend even if the process is
cached.  Thus when processing input queues in the frontend, also check
if the input came from a cached controller else it could be silently
ignored.
2009-04-10 18:11:18 +02:00
Bjorn Winckler 0413dcf3f1 Make dialog sheet messages unsafe 2009-04-08 20:41:32 +02:00
Bjorn Winckler 40263195cb Avoid enumerating vim controllers
Don't enumerate vim controllers when processing input since it may
potentially be a huge operation.  If the vim controller array were to be
modified during input processing (should never happen) MacVim would crash.
2009-04-08 20:38:28 +02:00
Bjorn Winckler dd76f85f0b Deprecate performSelectorOnMainThread calls
Use performSelector:withObject:after:delay instead since it
automatically only triggers in default mode.
2009-04-08 19:36:00 +02:00
Bjorn Winckler e93e9c4201 Do not modify frontend state in DO calls
In particular, delay all state changes that used to be made inside
connectBackend:pid such add adding vim controllers to the vimControllers
array.
2009-04-05 21:43:00 +02:00
Bjorn Winckler a4a14b39ac Cleanup 2009-04-05 20:21:36 +02:00
Bjorn Winckler 49eeb133ac Add comment on DO timeouts 2009-04-05 20:00:02 +02:00
Bjorn Winckler 28de969ae3 Deprecate inProcessCommandQueue related code
We are guarding against re-entrant calls in the app controller now so
the inProcessCommandQueue related code is now obsolete.
2009-04-05 19:56:21 +02:00
Bjorn Winckler 6961a51e9a Cleanup 2009-04-05 19:21:16 +02:00
Bjorn Winckler f679af784b Update README 2009-04-05 19:20:42 +02:00
Bjorn Winckler fd8e8e0b4f Clear delayed vim controller calls on cleanup 2009-04-05 19:02:08 +02:00
Bjorn Winckler cd5ca1918d Add support for dialogs 2009-04-05 18:57:56 +02:00
Bjorn Winckler 27d4ee55ae Add support for live resizing 2009-04-05 18:22:59 +02:00
Bjorn Winckler 23e38c4298 Guard against re-entrant calls to process input 2009-04-05 18:12:23 +02:00
Bjorn Winckler 0486075221 Vim talks only to app controller
- dialog support not implemented yet
- live resizing not supported
2009-04-05 17:32:37 +02:00
Kazuki Sakamoto 7a010c4a46 Avoid forever bouncing dock icon
This problem was caused by calling the Carbon function KeyScript() from
the Vim process.
2009-04-03 21:54:15 +09:00
Bjorn Winckler 9aeade7147 Use "guisp" color for underline in ATSUI 2009-04-01 20:12:26 +02:00
Bjorn Winckler 5663536b1f Do not hide toolbar unless requested
Commit 2d497eabe995ed7f667d67166b396dff6389d12f introduced a regression
where the toolbar automatically hid upon startup regardless whether 'go'
included the "T" flag or not.
2009-03-30 19:41:50 +02:00
Bjorn Winckler 95f42c734a Snapshot 44 2009-03-29 17:34:18 +02:00
Bjorn Winckler e1ece272fa Exit full-screen if the window moves
The window is not supposed to move in full-screen mode so if this
happens then exit full-screen.  This situation can occur e.g. if the
window is on a screen that gets unplugged.
2009-03-29 16:40:59 +02:00
Bjorn Winckler 73b5d1837c Validate screen before constraining window
If a window is on a screen that gets unplugged it may happen that
[NSWindow screen] returns nil.  Guard against this when constraining
the window frame to the screen frame.

This fixes a bug where a window could "disappear" if it was on a screen
that got unplugged.
2009-03-29 16:35:47 +02:00
Bjorn Winckler 790f685006 Merge upstream
Conflicts:
	src/vim.h
2009-03-18 20:10:00 +02:00
vimboss a680267d49 updated for version 7.2-148 2009-03-18 18:09:03 +00:00
vimboss 5f1547b288 updated for version 7.2-147 2009-03-18 15:28:08 +00:00
vimboss 9d9a5983f5 updated for version 7.2-146 2009-03-18 14:42:00 +00:00
vimboss 16e57e6189 updated for version 7.2-145 2009-03-18 13:32:24 +00:00
vimboss 5d45d4a4d2 updated for version 7.2-144 2009-03-18 13:21:18 +00:00
vimboss 0546647038 updated for version 7.2-143 2009-03-18 11:52:53 +00:00
vimboss c9ad0b6d4d updated for version 7.2-142 2009-03-18 11:22:25 +00:00
Bjorn Winckler 25306ee0c5 Fix full-screen zooming with Dock visible
This fixes a bug where 'set fu=maxvert' would not cover the screen
vertically if the Dock was visible.
2009-03-16 17:36:05 +01:00
Bjorn Winckler 2e024248fa Use /usr/bin/python in icons/Makefile 2009-03-16 17:05:17 +01:00
Bjorn Winckler 85879328b0 Fix "set go+=rT" bug
The number of columns now matches the width of the window after calling
"set go+=rT".
2009-03-15 14:12:48 +01:00
Bjorn Winckler 9c530a8030 Revert temp patch, fixed properly in 7.2.121
This patch ensures that Ctrl-C works during lengthy :grep operations in
GUI mode.
2009-03-15 15:58:46 +01:00
Bjorn Winckler 9105eb1fd0 Tab labels only shows file name tail 2009-03-15 15:15:23 +01:00
Bjorn Winckler c49868a11f Fix <C-Tab> regression
This fixes a regression introduced with commmit
c79be7f927aff8b2b52a6d8d917b899154ab0ff9 where Ctrl+Unprintable key
presses could no longer be mapped to.
2009-03-13 22:35:12 +01:00
vimboss 795860de7c updated for version 7.2-141 2009-03-11 16:58:40 +00:00
vimboss 90a729a8e4 updated for version 7.2-140 2009-03-11 16:47:21 +00:00
vimboss 1a328483b7 updated for version 7.2-139 2009-03-11 16:29:20 +00:00
vimboss 5e09d64d77 updated for version 7.2-138 2009-03-11 15:37:53 +00:00
vimboss 4591403b7e updated for version 7.2-137 2009-03-11 15:28:26 +00:00
vimboss e90f76c1aa updated for version 7.2-136 2009-03-11 14:37:32 +00:00
vimboss 8745e4380e updated for version 7.2-135 2009-03-11 14:10:38 +00:00
vimboss cd7a1f6539 updated for version 7.2-134 2009-03-11 12:11:02 +00:00
vimboss bb21f9f120 updated for version 7.2-133 2009-03-11 11:47:18 +00:00
vimboss 38c7ababf6 updated for version 7.2-132 2009-03-05 02:15:53 +00:00
vimboss 5aea857883 updated for version 7.2-131 2009-03-04 03:13:35 +00:00
vimboss 322b4eec7e updated for version 7.2-130 2009-03-02 01:47:02 +00:00
vimboss 886d3d7aed updated for version 7.2-129 2009-03-02 01:12:48 +00:00
vimboss b2f7a2f021 updated for version 7.2-128 2009-03-01 01:45:35 +00:00
Zvezdan Petkovic 4374e9787e Colors.plist autogenerated from "showrgb" command
The Colors.plist dictionary is now generated from "showrgb" to properly
match rgb.txt.  Also add three colors which were missing from the output
of "showrgb" (darkyellow, lightmagenta, lightred).
2009-02-25 20:09:30 +01:00
vimboss 080a7c2c6c updated for version 7.2-127 2009-02-24 03:38:04 +00:00
vimboss ffef064005 updated for version 7.2-126 2009-02-24 03:30:14 +00:00
vimboss d23a68d047 updated for version 7.2-125 2009-02-24 03:12:40 +00:00
vimboss c973e12d3e updated for version 7.2-124 2009-02-22 23:54:59 +00:00
vimboss 5e0543116b updated for version 7.2-123 2009-02-22 22:43:27 +00:00
vimboss d9f633dbb3 updated for version 7.2-122 2009-02-22 20:13:39 +00:00
vimboss 32cb07dd61 updated for version 7.2-121 2009-02-22 01:52:59 +00:00
vimboss 40ae005819 updated for version 7.2-120 2009-02-22 01:37:59 +00:00
vimboss c4e8fcc338 updated for version 7.2-119 2009-02-22 00:14:58 +00:00
vimboss 9dbb79f942 updated for version 7.2-118 2009-02-21 23:59:19 +00:00
vimboss 031479c46b updated for version 7.2-117 2009-02-21 23:03:09 +00:00
vimboss 843a3a41bf updated for version 7.2-116 2009-02-21 21:58:24 +00:00
vimboss 01973d329c updated for version 7.2-115 2009-02-21 21:30:39 +00:00
vimboss bcfeb7c895 updated for version 7.2-114 2009-02-21 21:14:00 +00:00
vimboss 46b250b75f updated for version 7.2-113 2009-02-21 21:04:20 +00:00
vimboss 9b06b0a4b2 updated for version 7.2-112 2009-02-21 20:23:59 +00:00
vimboss 80b36e7995 updated for version 7.2-111 2009-02-21 20:11:41 +00:00
vimboss d29599b7ea updated for version 7.2-110 2009-02-21 19:37:46 +00:00
vimboss a63fc2427e updated for version 7.2-109 2009-02-21 19:28:48 +00:00
Bjorn Winckler 393e47945b Snapshot 43 2009-02-20 14:43:08 +01:00
Bjorn Winckler 5100db4427 Set correct protocol for frontend proxy 2009-02-18 23:21:46 +01:00
Bjorn Winckler 19ee857237 Merge upstream
Conflicts:
	src/buffer.c
2009-02-11 22:49:00 +01:00
vimboss 781ac5b687 updated for version 7.2-108 2009-02-11 21:48:40 +00:00
vimboss 9b52c915d9 updated for version 7.2-107 2009-02-11 17:47:54 +00:00
vimboss 7a68824771 updated for version 7.2-106 2009-02-11 16:58:49 +00:00
vimboss c2aed127ca updated for version 7.2-105 2009-02-11 15:47:05 +00:00
vimboss 12b3ecfdcd updated for version 7.2-104 2009-02-11 15:03:45 +00:00
vimboss 4143f69655 updated for version 7.2-103 2009-02-11 10:35:36 +00:00
Bjorn Winckler 7a720947c8 Mention that 'go' does not support "f" in help 2009-02-10 22:11:43 +01:00
Bjorn Winckler 9393a4151c Revert "Don't init backend if Vim is about to fork"
This reverts commit ef03c36272e9a45f71659df7cecfce7aa15c2cbf.

Conflicts:

	src/MacVim/gui_macvim.m
2009-02-10 22:06:18 +01:00
Bjorn Winckler 95a678d204 Don't update 'fuoptions' before GUI has started
This avoids allocating the MMBackend object before forking.
2009-02-10 22:03:36 +01:00
Bjorn Winckler 68cec2f91b Fork directly after command line scan
This fixes a bug with relative paths as arguments when 'autochdir' was
enabled and also cuts down on startup times.  However, it also has the
negative side-effect that 'f' is no longer supported in 'guioptions'.
2009-02-10 22:00:40 +01:00
Bjorn Winckler 5ed292ebfb Revert old forking code 2009-02-10 21:19:37 +01:00
Bjorn Winckler 6d70e1a179 Fix untitled window on reopen with quickstart
This reverts commit 662aa32b399c1149daa1cd3a2b5bccc8e75f589a and
clarifies the comment regarding how 'pidArguments' is used.
2009-02-08 22:29:58 +01:00
Bjorn Winckler 355d2ec231 Fix untitled window on reopen bug
When MacVim is started from Terminal "-MMNoWindow yes" is passed as an
argument.  This argument will no longer stop new windows from opening on
"reactivate" events -- it only affects "activate" events.
2009-02-08 22:08:34 +01:00
Bjorn Winckler c6ceb6c969 Decrease delay in gui_macvim_flush() 2009-02-07 15:56:17 +01:00
Nicolas Weber 60c1c58967 Fix icon generation Makefile 2009-02-06 22:43:54 +01:00
Bjorn Winckler ba43ddb524 Add more files in MacVim/icons to .gitignore 2009-02-06 18:21:59 +01:00
Nicolas Weber 2a032c05b7 Make icon module compilation more portable 2009-02-05 17:11:45 -08:00
vimboss 8d8aecf662 updated for version 7.2-102 2009-02-05 19:48:25 +00:00
Bjorn Winckler 380d7b2cbf Update credits 2009-02-04 22:04:32 +01:00
Bjorn Winckler 30a12fc740 Ignore temporary files in src/MacVim/icons folder 2009-02-04 21:28:15 +01:00
vimboss 43050b40f8 updated for version 7.2-101 2009-02-04 17:35:52 +00:00
vimboss d5dfed9cfc updated for version 7.2-100 2009-02-04 16:50:47 +00:00
vimboss 0e2e98e570 updated for version 7.2-099 2009-02-04 16:29:07 +00:00
vimboss d0a875e3af updated for version 7.2-098 2009-02-04 15:27:06 +00:00
vimboss b770256474 updated for version 7.2-097 2009-02-04 13:19:42 +00:00
vimboss e14b8cd599 updated for version 7.2-096 2009-02-04 12:14:51 +00:00
vimboss 938149499b updated for version 7.2-095 2009-02-04 10:46:25 +00:00
vimboss 9245af7148 updated for version 7.2-094 2009-02-04 10:20:58 +00:00
Nicolas Weber a874eae869 Update credits 2009-02-01 10:37:58 -08:00
Nicolas Weber cca95bae41 Use text-based 16x16 icons 2009-02-01 10:20:32 -08:00
Bjorn Winckler 243fcce65c Ensure viminfo is written on Cmd-q 2009-02-01 10:15:40 +01:00
Bjorn Winckler b8c8a68a5c Fix <C-]> on German keyboard layout
Instead of checking for Ctrl-character, check when Cocoa translates a
keypress to an unprintable character (in particular, this happens on
Ctrl-character).  This ensures keys like <C-]> work on (some) keyboards
where ] requires the use of Alt.
2009-01-30 20:34:41 +01:00
Bjorn Winckler 8502d5f2b2 Avoid exception in key handling routine 2009-01-30 18:30:21 +01:00
vimboss da857362b0 updated for version 7.2-093 2009-01-28 20:23:17 +00:00
vimboss 4c50d72cdf updated for version 7.2-092 2009-01-28 18:09:38 +00:00
vimboss 9af39a7cb2 updated for version 7.2-091 2009-01-28 15:04:42 +00:00
vimboss d4038f59f4 updated for version 7.2-090 2009-01-28 14:42:59 +00:00
vimboss 9150d82be1 updated for version 7.2-089 2009-01-28 13:18:26 +00:00
Bjorn Winckler 87694dc1bf Tell Git to ignore .pyc files in icons folder 2009-01-23 23:36:12 +01:00
Bjorn Winckler 22704e2bb4 Remove .pyc files from icons folder on clean 2009-01-23 23:33:02 +01:00
Nico Weber 95676cfcd4 Doc icon generation cleanup 2009-01-23 23:28:07 +01:00
Bjorn Winckler 1e901456a5 Fix two minor memory leaks
The MMTextViewHelper class failed to release two objects on dealloc.
2009-01-23 23:23:10 +01:00
vimboss 899f9a6260 updated for version 7.2-088 2009-01-22 20:50:10 +00:00
vimboss 6b989afdb1 updated for version 7.2-087 2009-01-22 20:32:12 +00:00
vimboss 4f48c32bc3 updated for version 7.2-086 2009-01-22 19:48:55 +00:00
vimboss c2ea4b240d updated for version 7.2-085 2009-01-22 17:33:49 +00:00
Bjorn Winckler f81158c840 Always respect MMLayoutVerticalSplit
This flag used to be ignored when dropping a file onto a window.
2009-01-17 20:34:51 +01:00
Bjorn Winckler 3950b3a6b1 Respect layout pref when raising an open file
For example, with layout set to "arglist" and with 'hidden' enabled,
double-clicking an already open (but hidden) file will no longer cause
it to open in a new tab.  Instead it opens as if the ":buf" command had
been used.
2009-01-17 20:25:48 +01:00
vimboss ae65cb89b3 updated for version 7.2-084 2009-01-13 17:11:05 +00:00
vimboss f90e3c31ab updated for version 7.2-083 2009-01-13 16:28:21 +00:00
vimboss 014700ca55 updated for version 7.2-082 2009-01-13 15:58:01 +00:00
vimboss f86423097b updated for version 7.2-081 2009-01-13 15:38:37 +00:00
vimboss a4cdb9b1c4 updated for version 7.2-080 2009-01-13 11:29:48 +00:00
Jonathon Mah 03a1a0ea74 Opening with search text does inclusive search 2009-01-13 06:27:01 +10:30
Jonathon Mah 4e1a1cad93 Fix typo in debug message string 2009-01-13 06:25:24 +10:30
Bjorn Winckler e4abcd6741 Snapshot 42 2009-01-12 16:35:09 +01:00
Bjorn Winckler b0f34cac04 Update appcast 2009-01-10 21:09:43 +01:00
Bjorn Winckler dd243c8ab1 Snapshot 41 2009-01-10 20:57:33 +01:00
Bjorn Winckler 02592cfe41 Prune draw queue before sending to frontend
If the draw queue fills up with lots (i.e. twice the number of max rows)
of insert/delete line commands we can remove draw commands from the
beginning of the draw queue.  This reduces the possibility of the draw
queue overflowing.
2009-01-10 17:39:29 +01:00
Bjorn Winckler e706fca4d6 Cmd-. sends SIGINT
Ctrl-C does not always work to interrupt a stuck Vim process. By making
Cmd-. send SIGINT it is more likely to succeed where Ctrl-C has failed.
(E.g. Ctrl-C may fail if a DO message is dropped, or if the Vim process
is stuck in a loop and isn't checking for new input.)
2009-01-10 17:38:11 +01:00
Bjorn Winckler 8d00a30b0a Show output from external commands as it happens
Previously, all output was sent to the frontend at once so only the last
few rows were visible.  This was a bit disconcerting when a command took
a bit of time because there was no feedback that anything was happening.
The downside to this patch is that it takes a bit longer for a command
to finish since the frontend has to do more drawing.
2009-01-10 17:37:49 +01:00
Bjorn Winckler 76200b7c03 Allow interrupt during external commands 2009-01-08 21:25:37 +01:00
Bjorn Winckler e648d3b011 Don't ignore SIGCHLD (fix automatic updating)
Ignoring SIGCHLD caused problems with automatic updating (Sparkle) since
it uses popen() (and hence implicitly uses wait4()) to unpack archives.
Now that SIGCHLD is no longer ignored we have to reap child processes
after exiting a Vim process as well as when MacVim is about to
terminate.
2009-01-08 16:11:30 +01:00
Bjorn Winckler 1db4b7903b Make no DO calls during app termination 2009-01-07 21:01:47 +01:00
Bjorn Winckler e5e129b933 Prune unnecessary code, clarify comment 2009-01-07 20:19:44 +01:00
Bjorn Winckler 354968a9b9 Add comment 2009-01-07 20:16:01 +01:00
Bjorn Winckler 87e4ef758b Clean up process termination code
Exiting immediately on TerminateNowMsgID simplifies the code a bit and
also minimizes the probability of a process not terminating before
MacVim.
2009-01-07 20:14:03 +01:00
Bjorn Winckler 2b721c9e9c New user default MMLoadDefaultFont
When enabled the default font is loaded from within the app bundle each
time MacVim is started (the default setting).  Startup times are shorter
if this is disabled.  Note that if the default font has already been
installed on the system then this may as well be disabled.
2009-01-07 14:19:27 +01:00
Bjorn Winckler c50143db47 Fix deprecated API compiler warning 2009-01-06 22:05:50 +01:00
Bjorn Winckler 2153ab22d7 Don't load default font in Vim (faster startup)
Loading and unloading a font can take a substantial amount of time so
this cuts down on the startup time.
2009-01-06 21:41:47 +01:00
Bjorn Winckler aefc975f1b Fix compiler issues on Tiger 2009-01-06 22:58:38 +01:00
Bjorn Winckler 79851d47b1 Build Debug and Release using default SDK
The Universal target still builds using the 10.4u SDK.
2009-01-06 17:51:36 +01:00
Bjorn Winckler 2c9f69f2bf Fix double free memory problem
This bug was introduced in commit:
    e162109d6f022942edb7281736f587ee79e20bfe
2009-01-06 18:31:38 +01:00
vimboss 9dc3e9172c updated for version 7.2-079 2009-01-06 15:14:30 +00:00
vimboss 2e69b16f67 updated for version 7.2-078 2009-01-06 14:02:45 +00:00
Bjorn Winckler 462fb78a85 Deprecate "redr|f" in addInput: calls
The previous commit ensures these are no longer neeeded (they used to be
there to avoid the "Press ENTER..." prompt).
2009-01-04 22:13:48 +01:00
Bjorn Winckler d2dbd62e7b Avoid "Press ENTER..." prompt
When adding input programmatically the 'silent' flag is automatically
set.  Hopefully this will mean the end of the annoying "Press ENTER..."
prompt.  This also means that it should no longer be necessary to
manually try to make commands silent (e.g. ":redr|f" should not be
needed).
2009-01-04 21:44:27 +01:00
Bjorn Winckler e1c4adc8c9 Add user default to toggle the "add tab" button
The user default MMShowAddTabButton controls whether the "add tab"
button is displayed on the tab bar or not.
2009-01-04 17:58:57 +01:00
Bjorn Winckler 2ffc552c25 Avoid switching Spaces when using 'mvim' 2009-01-04 17:46:48 +01:00
Nico Weber 7845992803 Toggle menu bar on focus change in full-screen 2009-01-02 13:55:11 -08:00
vimboss 3142e74a3a updated for version 7.2-077 2008-12-31 15:21:32 +00:00
Nico Weber 1eb73428b0 Icon generation works on Tiger again 2008-12-30 23:36:50 -08:00
vimboss c5b2d1b5b4 updated for version 7.2-076 2008-12-30 15:15:57 +00:00
Bjorn Winckler 2ab7e98bb8 Snapshot 40 2008-12-28 17:58:44 +01:00
Bjorn Winckler ebf311d2df List all non-standard options and commands in help 2008-12-28 17:20:30 +01:00
Bjorn Winckler 88d6d362c3 Show dialog when clicking to close modified tab 2008-12-26 17:46:36 +01:00
Bjorn Winckler daf5b3430a Look for toolbar icons in runtime path 2008-12-26 18:56:05 +01:00
Bjorn Winckler b13dede64d Merge upstream 2008-12-24 14:26:00 +01:00
vimboss bd1000809d updated for version 7.2-075 2008-12-24 13:25:14 +00:00
vimboss 2614f8ee3e updated for version 7.2-074 2008-12-24 12:06:26 +00:00
vimboss dd3577db8c updated for version 7.2-073 2008-12-24 11:54:31 +00:00
vimboss ff92260a55 updated for version 7.2-072 2008-12-24 11:43:49 +00:00
vimboss 90c9bf33a2 updated for version 7.2-071 2008-12-24 11:20:53 +00:00
vimboss 8f0b9d6525 updated for version 7.2-070 2008-12-23 22:52:58 +00:00
Bjorn Winckler b9eb197443 Clean up 'guitabtooltip' patch 2008-12-23 23:05:06 +01:00
Jonathon Mah a61f1bf714 Add support for 'guitabtooltip' 2008-12-23 22:52:14 +01:00
Nico Weber c7323339d9 Make icon generation script faster and more flexible 2008-12-23 22:33:41 +01:00
Nico Weber 48fc2be299 Small doc icons look sharper, faster generation 2008-12-23 21:11:42 +01:00
Nico Weber a5be20ba89 Automatically generate document icons
Document icons are generated using the makeicns program and a Python
script.  Note that the script uses PyObjC and hence requires Mac OS X
10.5 or later (on earlier systems a blank icon will be used for all
document types).

This patch also adds more filetypes to Info.plist.

Integration into Xcode project by Bjorn Winckler
<bjorn.winckler@gmail.com> with the help of Keith Hubbard
<keith@bangj.com>
2008-12-23 20:19:33 +01:00
Bjorn Winckler 48874c704b Fix character escaping for "New File Here" service
This also makes this service work on Tiger.
2008-12-22 16:12:21 +01:00
Kent Sibilev b8d2ad693a Add clipboard support in non-GUI mode 2008-12-11 18:00:57 +01:00
vimboss d11de6c31d updated for version 7.2-069 2008-12-09 21:34:39 +00:00
vimboss 4c5d17ec00 updated for version 7.2-068 2008-12-09 11:13:06 +00:00
vimboss 34207703d8 updated for version 7.2-067 2008-12-09 10:18:03 +00:00
vimboss 8ff21dbb7c updated for version 7.2-066 2008-12-09 09:57:49 +00:00
vimboss 1cd2bd4a21 updated for version 7.2-065 2008-12-03 17:50:45 +00:00
Bjorn Winckler 32561e2742 Input Method is disabled by default
The IM code is a bit flakey so keep IM disabled by default for now.
2008-12-03 15:45:04 +01:00
vimboss fe0e293cb9 updated for version 7.2-064 2008-12-03 12:38:36 +00:00
vimboss dcaf01ff54 updated for version 7.2-063 2008-12-03 12:18:55 +00:00
vimboss adac29fc57 updated for version 7.2-062 2008-12-03 10:21:57 +00:00
vimboss 341e36b48d updated for version 7.2-061 2008-12-03 08:52:26 +00:00
vimboss 7b26c6980f updated for version 7.2-060 2008-11-30 20:12:46 +00:00
Bjorn Winckler 668c778621 Handle TerminateNow input message immediately
Fixes a bug where code which waits on the run loop fails to detect
TerminateNow input messages (this could e.g. result in a "leak" of Vim
processes when Quickstart was enabled).
2008-11-30 18:04:13 +01:00
vimboss 279e83bccc updated for version 7.2-059 2008-11-30 14:16:57 +00:00
vimboss c1a71eedb5 updated for version 7.2-058 2008-11-30 11:15:09 +00:00
vimboss 4dea3b30d0 updated for version 7.2-057 2008-11-29 19:19:19 +00:00
vimboss 05b47ac89e updated for version 7.2-056 2008-11-29 19:11:40 +00:00
vimboss 3965aefc79 updated for version 7.2-055 2008-11-28 20:29:07 +00:00
vimboss be089b8aa0 updated for version 7.2-053 2008-11-28 10:47:47 +00:00
vimboss 7aab071854 updated for version 7.2-052 2008-11-28 10:16:05 +00:00
vimboss cff1a9e3c9 updated for version 7.2-051 2008-11-28 10:01:10 +00:00
vimboss 7d03b73992 updated for version 7.2-050 2008-11-28 09:08:51 +00:00
Bjorn Winckler 213d223679 Snapshot 39 2008-11-23 19:53:20 +01:00
Bjorn Winckler f00a001406 Update README 2008-11-22 14:50:25 +01:00
Ben Schmidt 7ae32a1bef Avoid "Stray process..." warning messages 2008-11-22 14:32:12 +01:00
Nico Weber 62b5aae721 Add <D-BS> and <M-BS> insert mode mappings
These are standard shortcuts in Mac OS X.  <D-BS> deletes a whole line,
<M-BS> deletes the previous word.
2008-11-21 20:32:41 +01:00
Bjorn Winckler 1741da563b Merge upstream 2008-11-21 20:20:00 +01:00
Bjorn Winckler c3239dd5e5 Snapshot 38 2008-11-21 20:11:51 +01:00
vimboss 09eb973f44 updated for version 7.2-049 2008-11-20 16:10:17 +00:00
vimboss 1dfdf3ebaa updated for version 7.2-048 2008-11-20 15:12:02 +00:00
vimboss d50de2f2f0 updated for version 7.2-047 2008-11-20 13:12:36 +00:00
vimboss 233164a7d2 updated for version 7.2-046 2008-11-20 10:56:33 +00:00
vimboss ae96eb8469 updated for version 7.2-045 2008-11-20 10:04:53 +00:00
vimboss d676af07ec updated for version 7.2-044 2008-11-20 09:37:01 +00:00
vimboss 73827e6e15 updated for version 7.2-043 2008-11-20 09:27:32 +00:00
Bjorn Winckler 8420566635 Exit if connection becomes invalid
This is only a temporary measure until a proper fix is found.
2008-11-19 19:30:46 +01:00
Ben Schmidt e4c49238bd Use default SIGCHLD handler in Vim processes 2008-11-17 21:36:36 +01:00
Bjorn Winckler 616f845128 No error message when dropping files (Issue 135) 2008-11-16 17:05:14 +01:00
vimboss 09c7a21e4f fix truncation 2008-11-15 15:16:46 +00:00
vimboss 9e75f31ff2 updated for version 7.2-042 2008-11-15 15:06:17 +00:00
vimboss 950ef8ff2f updated for version 7.2-041 2008-11-15 13:12:07 +00:00
Bjorn Winckler 915d2e30ac Snapshot 37 2008-11-15 14:02:15 +01:00
Bjorn Winckler 6319b9c517 Add Reload/Ignore All buttons to file changed dialog 2008-11-14 20:06:53 +01:00
Bjorn Winckler 0dde2b7232 Explicitly ignore SIGCHLD to avoid zombies 2008-11-14 15:43:54 +01:00
vimboss 5d900f6f7e updated for version 7.2-040 2008-11-12 15:05:21 +00:00
vimboss 6907698f60 updated for version 7.2-039 2008-11-12 14:29:28 +00:00
vimboss ce49edcc1e updated for version 7.2-038 2008-11-12 13:52:46 +00:00
vimboss 911a34fed0 updated for version 7.2-037 2008-11-12 13:10:15 +00:00
vimboss a57ecd4e2e updated for version 7.2-036 2008-11-12 12:36:30 +00:00
vimboss 81a5c6dd4e updated for version 7.2-035 2008-11-12 12:08:45 +00:00
vimboss a53e7167fc updated for version 7.2-034 2008-11-12 11:52:19 +00:00
vimboss 6cf044c8fc updated for version 7.2-033 2008-11-11 20:57:11 +00:00
Bjorn Winckler d0645670b5 Merge upstream
Conflicts:
	src/feature.h
2008-11-09 17:23:00 +01:00
vimboss 3157d8636c updated for version 7.2-032 2008-11-09 16:22:01 +00:00
vimboss 8bb0169bd0 updated for version 7.2-031 2008-11-09 12:46:09 +00:00
vimboss 00d911af72 updated for version 7.2-030 2008-11-06 19:47:51 +00:00
vimboss 1111099ec1 updated for version 7.2-029 2008-11-06 16:16:44 +00:00
vimboss 9b4580c4dc updated for version 7.2-028 2008-11-06 10:05:42 +00:00
vimboss e63ff36e87 updated for version 7.2-027 2008-11-06 09:23:57 +00:00
Bjorn Winckler 198610ad25 Data received from system services replaces selection
When data is received from system services it replaces the current
selection.  The current implementation is a bit naive in that it assumes
that Vim is in Visual mode (it doesn't even work in Select mode).  (To
test this functionality: enter "2+3", select it, then hit Cmd-* and the
selection is replaced with "5".)
2008-11-01 19:21:02 +01:00
vimboss a57332a176 updated for version 7.2-026 2008-11-01 12:52:38 +00:00
Bjorn Winckler 9bd6777571 Support "mvim" script symlinks to [m|g]ex, rmvim
Symlinks to "mex" or "gex" starts MacVim in ex mode.  Symlinks to "ex"
starts Vim in ex mode (no GUI).  Symlinks to "rmvim" (or "rgvim" which
was already supported previous to this patch) starts MacVim in
restricted mode.
2008-10-29 17:21:13 +01:00
Bjorn Winckler aee4e6d6ca Add help on symlinks to "mvim" script 2008-10-29 17:04:01 +01:00
Bjorn Winckler 7112e2b5f7 Update help on 'runtimepath' 2008-10-29 16:46:15 +01:00
Bjorn Winckler f9064e4c16 Fix typo in a comment 2008-10-26 22:57:32 +01:00
Bjorn Winckler 69c156faf4 Speed up live resize 2008-10-25 21:10:52 +02:00
Bjorn Winckler dd74c0b520 Connection not in event tracking mode by default
Only add backend connection to event tracking mode when it is absolutely
needed.  At the moment this happens when the window is in "live resize"
or when the mouse button is held on some part of a scroller.
2008-10-25 20:31:17 +02:00
Bjorn Winckler f6ecb9aae9 Help cleanup 2008-10-25 18:38:38 +02:00
Bjorn Winckler bc82e6d58e More help on menu key equivalents 2008-10-25 18:22:12 +02:00
Bjorn Winckler 667279dbca Add help on how to remap Caps Lock to Esc 2008-10-25 18:03:39 +02:00
Bjorn Winckler 331a21d0bd Revert "Modifier key sends Esc" related commits
This reverts the following three commits:
  3ae360ddb38dd49e9392aad7a70f0f31a30849ee
  007bb96eb3ec035169510caa4e206ab901e4b6d0
  b6c06f31be1e8124ed12cc2ff5361752df1e4634
2008-10-25 16:34:16 +02:00
Bjorn Winckler 2cccddd458 Fix "Special Characters" palette bug
It is again possible to insert text from the "Special Characters"
palette (broken by commit 8fbb13da74a1912839e9302ebc725df67619c9c0).
2008-10-18 18:45:50 +02:00
Bjorn Winckler 49a52f9eff Keep whole window visible on ":set lines=X columns=Y" 2008-10-18 17:34:54 +02:00
Bjorn Winckler f231eff6c2 Fix "set lines=999" in .gvimrc
Ensure that the window fits on screen when the window is resized to fit
the content.  This should fix a problem where the window would not be
flush with the menu bar when "set lines=999" was added to .gvimrc.
2008-10-18 15:38:08 +02:00
Bjorn Winckler 3a8ce4e72c Constrain window size during live resize
Ensure that the window size isn't larger than the visible frame of the
current screen.  This avoids problems where the window would "snap back"
immediately after being resized manually.
2008-10-18 14:28:25 +02:00
Bjorn Winckler 52f08cc6aa Delay flushing send queue
Ensure that the send queue is flushed after processCommandQueueDidFinish
since that method may add messages to the send queue.
2008-10-18 14:24:59 +02:00
Bjorn Winckler 1a91b2a5c9 Fix computation of zoomed window frame
When computing the zoomed window frame ensure that it is constrained to
hold an even number of rows and columns.  This fixes a problem where the
window would not "un-zoom" after being zoomed.
2008-10-18 13:23:24 +02:00
Bjorn Winckler 467b890d13 Top of window flush with menu bar after zoom 2008-10-12 17:57:39 +02:00
Jason Foreman fa6eedf24f Enable basic AppleScript support
Putting this key into the Info.plist file turns on the basic AppleScript
support Cocoa provides.  Doing so allows MacVim to receive some basic
events.  This gives MacVim a bit better integration into Mac OS X.

Below is an example which, when placed in one's .vimrc file,  causes the
window to be zoomed during startup.

let script='osascript -e "tell application \"MacVim\""'
       \ . ' -e "set zoomed of first window to true"'
       \ . ' -e "end tell"'
au VIMEnter * call system(script)
2008-10-12 14:36:22 +02:00
Bjorn Winckler 0b546f60b1 Move window to top of screen if bottom is obscured 2008-10-12 14:34:22 +02:00
Bjorn Winckler 1957b370bb Use option as meta key
Added a buffer local option called 'macmeta' which when set causes
MacVim not to interpret option+key presses thus enabling the user to
bind to <M-..>.  Also updated the documentation and added 'macmeta' to
the .vim syntax file.
2008-10-12 14:05:42 +02:00
Bjorn Winckler 275fc44523 Avoid crash when resizing window
Sanity check input to gui_macvim_draw_string(); it can happen that 'len'
is non-zero even though first byte of 's' is NUL (test case with file
containing Chinese characters).
2008-10-11 20:03:23 +02:00
Bjorn Winckler ee1fd606dd Snapshot 36 2008-10-04 19:26:05 +02:00
Bjorn Winckler ac3900639d Update credits 2008-10-04 17:27:58 +02:00
Bjorn Winckler aa3ac2d303 Add Find & Replace dialog box 2008-10-04 17:25:07 +02:00
Bjorn Winckler e84420f7d1 Remove TODO 2008-10-03 16:26:33 +02:00
vimboss 678ceed917 updated for version 7.2-025 2008-10-02 20:55:54 +00:00
Bjorn Winckler f3c411fafe Add help on "modifier key as Esc" 2008-10-02 22:53:17 +02:00
vimboss 1506bb79d9 updated for version 7.2-024 2008-10-02 20:48:41 +00:00
Bjorn Winckler d366864ff5 Add preference to change fake Esc modifier key 2008-10-02 22:28:52 +02:00
vimboss 69742a596f updated for version 7.2-023 2008-10-02 16:04:05 +00:00
Bjorn Winckler 3d2d6a810e Modifier key sends Esc
Adds possibility to make the left Ctrl, Alt, or Cmd key function as a
second Esc key.  The key will still function as a modifier if held down
in conjunction with another key.  Enable by setting the user default
"MMFakeEscModifier" to:
    1 = Left Ctrl
    2 = Left Alt
    3 = Left Cmd
    any other number disables this functionality

By remapping Caps-Lock to one of the above modifier keys this enables
the use of Caps-Lock as a second (and easy to reach) Esc key.  Caps-Lock
can be remapped inside "System Preferences -> Keyboard & Mouse ->
Modifier Keys...".

The Esc event is sent when the modifier key is released.  If the key is
not released within a predefined timeout, then no Esc event is
generated.  The timeout can be changed by setting the user default
MMFakeEscTimeout (a float, specifying the timeout in seconds).

The fact that the Esc event is sent on release makes it feel somewhat
sluggish.  It is possible to have the event sent when the modifier key
is pressed by setting the user default "MMFakeEscOnKeyDown" but then the
left modifier key can only be used as an Esc key.
2008-09-30 22:06:30 +02:00
Jonathon Mah 6fb7a6f38b Added dragging to tab bar
Dragging a file to a tab will open it in that tab.
Dragging files to the end of the tab bar will open them in new tabs.
2008-09-30 02:09:17 +09:30
Jonathon Mah cf7a0a71bd Added tool tips for tabs when tab labels are truncated 2008-09-29 22:06:54 +09:30
Jonathon Mah 6e1e046cbb Fixed memory leak in -[MMAppController openFiles:withArguments:] 2008-09-29 21:20:28 +09:30
Bjorn Winckler 2d1fc65b0e Don't drop non-repeating keyboard input
Keyboard input is not dropped, unless the input was received due to a
key being automatically repeated (as a consequence of the key being held
down).  This way characters are never dropped while typing, but it also
avoids situations where the screen doesn't stop scrolling immediately
when "j" is released after being held.
2008-09-28 23:50:39 +02:00
Bjorn Winckler e378d7332b Add keyboard shortcuts to help file 2008-09-28 22:07:07 +02:00
Bjorn Winckler 4879bdfc5e Snapshot 35 2008-09-26 21:33:40 +02:00
Kaoru Yoshida 52bb6e960f Add IM support to ATSUI renderer
More functionality now shared between ATSUI and Cocoa renderers.
(Some modifications by Bjorn Winckler.)
2008-09-24 21:19:24 +02:00
Bjorn Winckler 0b018a5836 Use -[NSString vimStringSave] 2008-09-24 20:19:24 +02:00
Bjorn Winckler ae2eb1cf48 Merge upstream
Conflicts:
	src/pty.c
2008-09-20 16:28:00 +02:00
vimboss 597590c414 updated for version 7.2-022 2008-09-20 14:27:03 +00:00
Bjorn Winckler 2a70805ffb Put cursor back on cmdline after Cmd-=
Changing the font size up/down while the cursor was on the command line
would cause the cursor to jump away from the cmdline.  This is no longer
the case.  Also fixes a similar problem when showing/hiding the toolbar
by clicking the "pill button".
2008-09-19 20:17:01 +02:00
Bjorn Winckler 86ae8db7d6 Don't coalesce scroll wheel events
Since the backend now pops off all input events at once whenever it
tends to the run-loop, it is no longer necessary to coalesce scroll
wheel events.  In fact, without coalescing the scroll wheel (or track
pad) feels a lot smoother.
2008-09-19 17:50:07 +02:00
Bjorn Winckler dc9008674b Fix typos in help 2008-09-19 16:54:50 +02:00
vimboss 99b9fe4a6d updated for version 7.2-021 2008-09-18 19:29:58 +00:00
vimboss 1d73dbfbe5 updated for version 7.2-020 2008-09-18 18:57:10 +00:00
vimboss 7d9d31e97d updated for version 7.2-019 2008-09-18 10:44:28 +00:00
Bjorn Winckler 8bc680dd63 Update Credits 2008-09-16 22:55:53 +02:00
Bjorn Winckler 5da159c4eb Correct bug in previous commit 2008-09-16 23:08:22 +02:00
Bjorn Winckler def2d1a9e4 Update fullscreen background color immediately
It is no longer necessary to exit and re-enter fullscreen to see changes
to the "background" setting in 'fopt'.
2008-09-16 22:51:08 +02:00
Bjorn Winckler bdb7f8efa6 Fix scrolling bug
Scrolling now works e.g. after pressing 'f' in normal mode (previously
the scrollbar moved, but the window content did not scroll).
2008-09-16 22:14:43 +02:00
Bjorn Winckler db0d1f51a5 Update help file 2008-09-16 21:28:42 +02:00
Bjorn Winckler 6b4059f69d Simplify Services menu
All services open a new window by default, unless new files are set to
open in the current window in the General preference pane.
2008-09-16 21:24:50 +02:00
Ron Olson 232024f71d Add "New Document Here" Service
The "New Document Here" service will create a blank document in the
currently selected directory.  If new files are set to open in the
current window, then the blank document opens in a new tab in the
topmost window, otherwise a new window is opened.
2008-09-14 20:47:55 -05:00
vimboss d732c28bfc updated for version 7.2-018 2008-09-14 19:41:30 +00:00
vimboss e5bae4cb22 updated for version 7.2-017 2008-09-14 13:58:34 +00:00
vimboss bb36e94f24 updated for version 7.2-016 2008-09-14 12:42:29 +00:00
Bjorn Winckler 2e22c44eab Cmd-. sends interrupt
In other words, Cmd-. is synonymous with Ctrl-C.  The former is standard
for Mac apps whereas the latter is standard for Vim.  Incidentally,
Cmd-. may thus be used as a substitute for Esc to exit insert mode.
2008-09-13 21:14:30 +02:00
Bjorn Winckler f6f6f2c8f8 Decrease connection polling interval on startup
This reduces the startup time by almost 1 second when starting MacVim
from Terminal.
2008-09-13 18:47:22 +02:00
Bjorn Winckler ad6fe811e7 Check for Ctrl-C when gui_mch_update() is called
Since gui_mch_update() is called so frequently we only check for
interrupts at most once per second.
2008-09-13 02:48:57 +02:00
Bjorn Winckler deaae7e717 Ignore gui_mch_update()
By making gui_mch_update() a no-op the frame-rate is dramatically
increased in certain situations.  The downside is that it is no longer
possible to interrupt Vim with Ctrl-C when it is busy processing.
2008-09-13 00:37:09 +02:00
Bjorn Winckler e52ae8cbc0 Be more conservative about flushing output queue
Don't flush on gui_mch_flush(); instead only flush when forced (happens
e.g. if Vim is about to take a nap) or just before waiting for new
input.  This reduces screen flicker dramatically in certain cases.
2008-09-13 00:30:07 +02:00
Bjorn Winckler 8e7466bccc Do not allow input queue to fill up
The backend keeps at most one copy of each message on the input queue.
This makes MacVim feel a lot more responsive e.g. when scrolling the
screen.  It used to be that holding down 'j' to scroll and then
releasing 'j' would cause the screen to keep scrolling for a while even
after the release.
2008-09-13 00:08:47 +02:00
Bjorn Winckler 4100056f46 Don't init backend if Vim is about to fork
This way we avoid doing the initializations twice and cut down a bit on
the startup time when starting MacVim from Terminal.
2008-09-11 19:19:03 +02:00
Jjgod Jiang df35270598 Fix blurry text problem in full screen mode for ATSUI 2008-09-11 21:31:46 +02:00
vimboss b2e17cca75 updated for version 7.2-015 2008-09-10 16:26:04 +00:00
vimboss e25a17541d updated for version 7.2-014 2008-09-10 13:39:10 +00:00
vimboss e76375a3e9 updated for version 7.2-013 2008-09-07 19:48:53 +00:00
vimboss ea83ab3650 updated for version 7.2-012 2008-09-07 13:50:37 +00:00
vimboss c53513d4ac updated for version 7.2-011 2008-09-07 11:55:43 +00:00
vimboss 06c64fe88c updated for version 7.2-010 2008-09-06 14:44:59 +00:00
vimboss b39b209d02 updated for version 7.2-009 2008-09-01 15:56:45 +00:00
vimboss 3e5bc79f11 updated for version 7.2-008 2008-09-01 15:33:17 +00:00
vimboss 96e61949b3 updated for version 7.2-007 2008-09-01 14:51:37 +00:00
Bjorn Winckler ce613d4671 Cmd-E copies selection to Find pasteboard but does not search 2008-08-26 02:14:28 +02:00
vimboss b2e259fb62 updated for version 7.2-006 2008-08-25 03:04:18 +00:00
vimboss 28132658b2 updated for version 7.2-005 2008-08-25 02:49:18 +00:00
vimboss 92ed496e29 updated for version 7.2-004 2008-08-25 02:35:59 +00:00
vimboss 91ed612ac0 updated for version 7.2-003 2008-08-25 02:14:05 +00:00
Bjorn Winckler cec4f8b9ee Ensure order of files to open is not affected by 'suffixes'
Opening the same set of files in a new window and in an already open
window could result in the order of the files being different due to a
non-empty 'suffixes' option.  This patch clears 'suffix' before opening
multiple files and restores it afterwards.
2008-08-24 19:32:04 +02:00
Nico Weber 22799739f5 Fix problems with 'fullscreen' and :mksession
If 'fullscreen', 'lines' and 'columns' are all set in the same Vim
script then it used to be possible that the latter two options got
ignored.  This would in particular cause problems with :mks.
2008-08-24 19:00:37 +02:00
Bjorn Winckler 053d76dc13 Update help on mvim:// URL handler 2008-08-24 18:08:10 +02:00
Bjorn Winckler 38a0fd10d1 Make "Save changes" dialog conform to Apple HIG
If 'guioptions' has "c" set then the standard Vim dialog is used
instead.

The dialog for multiple unsaved changes has also been updated to be a
little more like the "Save changes" dialog.
2008-08-23 19:55:21 +02:00
Bjorn Winckler 325a3db78d Add "line" and "column" support to mvim:// URL handler 2008-08-24 00:10:09 +02:00
Bjorn Winckler 27c683092d Add option to hide MacVim when last window closes 2008-08-23 22:01:30 +02:00
Bjorn Winckler 0b896e4f59 Try to ensure new windows open with bottom edge visible on screen
In particular, if new windows are set to open maximized in the vertical
direction then the top of newly opened windows will be in line with the
top of the frontmost window.
2008-08-22 23:07:23 +02:00
Bjorn Winckler 6fcd21f338 Sort files opened from Finder
Finder does not take into consideration the order in which files are
selected anyway, so sorting the files makes opening multiple files more
predictable without breaking anything.
2008-08-22 02:19:10 +02:00
Bjorn Winckler 316034e1db Now works to use :maca on VimLeave auto command
To fix this the output queue is flushed before exiting a Vim process.
Also, the CloseWindowMsgID is added to the "unsafe" list so that other
unsafe messages (such as ExecuteActionMsgID) are not delayed until after
CloseWindowMsgID.
2008-08-22 01:53:24 +02:00
Bjorn Winckler dd46cfc500 Update 'go' help on 'T' option 2008-08-22 00:40:38 +02:00
Bjorn Winckler 28c43bdc64 Update Appcast 2008-08-21 20:11:00 +02:00
Nico Weber 97b5e3c119 Add support for mvim:// URL handler 2008-08-18 20:38:54 +02:00
vimboss 17f08c9776 updated for version 7.2-002 2008-08-17 21:44:45 +00:00
vimboss 9e2f853d00 updated for version 7.2-001 2008-08-17 21:03:18 +00:00
Bjorn Winckler d9d242b00f Snapshot 34 2008-08-16 17:47:30 +02:00
Bjorn Winckler a614dfbfcd Reorder preferences panel
"Use login shell" is now enabled by default and has been moved to the
Advanced pane.  Also, when clicking this or the "Use ATSUI renderer"
button the preload cache is rebuilt.
2008-08-16 16:27:25 +02:00
Bjorn Winckler d72aaeda7f Remove make-snapshot.sh and README-snapshot.sh 2008-08-16 14:36:15 +02:00
Bjorn Winckler 90377d2495 About dialog box shows "Custom Version" 2008-08-15 16:47:41 +02:00
Bjorn Winckler 8b385ca122 Limit scroll wheel message frequency
This avoids clogging up the DO messaging system on fast machines with
high resolution scroll wheels (or track pads).
2008-08-15 21:36:58 +02:00
Michael Wookey 94c7edebd7 Paragraph tidy up in gui_mac.txt
* Some paragraphs weren't formatted properly for the correct line
   length.
 * Fixed a small spelling mistake (know -> known).
2008-08-14 20:24:09 +02:00
Bjorn Winckler d70f67e5b9 Release text storage only if text view class is MMTextView 2008-08-14 19:24:09 +02:00
Bjorn Winckler 03c5dada39 Insert Vim state message first on output queue when flushing 2008-08-14 19:11:58 +02:00
Bjorn Winckler 0cec396a20 Use bundle path for main connection name
This is to make it easier to run two different versions of MacVim
simultaneously.
2008-08-14 16:50:12 +02:00
Bjorn Winckler 50be9d4227 Avoid "dropping incoming DO message ..." being logged
These warnings were caused by a Vim process sending a DO message and
then immediately exiting so that the process would some times die before
the message was received by MacVim.
2008-08-14 18:32:28 +02:00
Ben Schmidt a689202f4e Fix Leopard pty problems
Problem: Pseudo TTYs (ptys) are not successfully allocated on Leopard
         (or when Vim is compiled on Leopard).
Solution: Do not attempt to use SVR4-compatible ptys on Mac OS X even
          though configure may detect their presence.
2008-08-14 12:45:41 +02:00
Jjgod Jiang 41e6389b83 Fix rounding problem in ATSUI renderer
This problem will cause characters with descender (like 'g')
to be drawn a little bit lower than the correct place. Thus
will result some extra pixels after the line is cleared.
2008-08-14 11:02:27 +08:00
Bjorn Winckler 4c615b9622 Fix compilation problems on OS X 10.4 2008-08-13 01:03:57 +02:00
Bjorn Winckler c1f4a11e10 Add ATSUI renderer option to advanced prefs 2008-08-13 00:25:55 +02:00
Bjorn Winckler dcd91fe279 Remove duplicate code in text renderers
Most of the code shared between the text renderers now resides in a
"helper" object.  This way it will be a lot easier to maintain several
renderers at once.

As an added bonus, the ATSUI renderer now has mouse support as well as
drag-n-drop support.
2008-08-12 23:54:06 +02:00
Bjorn Winckler 452e41f92e Now works to set 'linespace' in [g]vimrc 2008-08-12 21:18:55 +02:00
Bjorn Winckler d58cb64b76 Stop using deprecated Cocoa APIs 2008-08-12 21:18:23 +02:00
Bjorn Winckler ee84ad6010 Remove unused method 2008-08-12 20:47:16 +02:00
Bjorn Winckler 055d07bd87 Change Quickstart slider to checkbox in advanced prefs 2008-08-12 20:18:40 +02:00
Bjorn Winckler 1611954a47 Remove NSLog 2008-08-11 21:37:36 +02:00
Bjorn Winckler 0a0f80b2c0 Clear preload cache on "login shell" option changes 2008-08-11 21:32:41 +02:00
Bjorn Winckler 6f0611c29a Start and stop FS events if needed when preload cache size changes 2008-08-11 20:18:47 +02:00
Bjorn Winckler 3420b3b4d8 Smaller FS event latency, cancel previous requests on FS event 2008-08-11 20:17:47 +02:00
Bjorn Winckler 1b68724361 Use FS Streams to watch modifications in ~/.vim 2008-08-11 20:16:47 +02:00
Bjorn Winckler 550e75eed2 Enable cross compilation in Xcode project
Deployment target is OS X 10.4, development SDK is current OS version.
2008-08-11 20:15:47 +02:00
Bjorn Winckler 7e36001233 Change a few toolbar icons 2008-08-11 20:14:47 +02:00
Bjorn Winckler 4f1446124f Missing toolbar icon fallback code fix 2008-08-11 20:13:48 +02:00
Bjorn Winckler 232720a611 Change pwd if file is opening in an "unused" editor
When opening a file from Finder, set the pwd to the directory the file
resides in but only if the editor window is unused (e.g. it doesn't
already have files open in it).
2008-08-10 21:16:31 +02:00
Bjorn Winckler 3c918888d7 Change "untitled window" detection heuristic
Also change terminology to "unused editor" instead of "untitled window"
since the detction has nothing to do with the window's title.
2008-08-10 21:12:34 +02:00
Bjorn Winckler 772859fcca Current directory handling changes
New processes default to using the user's home directory as the current
directory.  When opening files opened from Finder the current directory
is changed to that of the first file opened.
2008-08-10 18:04:27 +02:00
Bjorn Winckler 85c6b71293 "New Window" item on Dock menu activates MacVim 2008-08-10 16:50:02 +02:00
Bjorn Winckler 0fae0b0238 Version strings changed to 7.2 2008-08-10 16:09:17 +02:00
Bjorn Winckler 43ebeed946 Merge upstream 2008-08-09 19:56:00 +02:00
vimboss 0dceccaafb updated for version 7.2-000 2008-08-09 17:55:22 +00:00
vimboss 7d5860b32b updated for version 7.2c-003 2008-08-08 11:45:39 +00:00
vimboss 1c8fc078a3 updated for version 7.2c-002 2008-08-08 10:59:17 +00:00
vimboss c7fead45e0 updated for version 7.2c-001 2008-08-08 10:36:31 +00:00
vimboss ebb92ddd72 updated for version 7.2c-000 2008-08-06 17:06:04 +00:00
vimboss 3047db21af updated for version 7.2b-030 2008-08-06 13:28:57 +00:00
vimboss d128618aba updated for version 7.2b-029 2008-08-06 13:03:07 +00:00
vimboss 764d5e5121 updated for version 7.2b-028 2008-08-06 12:37:44 +00:00
vimboss 2d003da317 updated for version 7.2b-027 2008-08-06 12:19:26 +00:00
Bjorn Winckler 79e728785f Deprecate "Force New Window" menu 2008-08-03 21:32:30 +02:00
Bjorn Winckler 2c9ae326a0 Add "Advanced" preferences pane
The "Advanced" pane can be used to control the preload cache size.
2008-08-03 21:27:30 +02:00
Bjorn Winckler 705ddcf213 Rebuild cache when vimrc/gvimrc files have been modified 2008-08-02 22:00:22 +02:00
Bjorn Winckler ad06dcbb69 Modify how and when preloaded windows open
This hopefully fixes the bug where a preloaded window sometimes failed
to ever show up but MacVim would still think that it was showing.
2008-08-02 19:47:35 +02:00
Bjorn Winckler 5c2795baae More file opening options (plus quickstart feature)
The preferences panel allow for more ways to open files from other
applications.  This is controlled by three user preferences:
  - MMOpenInCurrentWindow
  - MMOpenLayout
  - MMVerticalSplit
These options are also respected when dropping files on a window.

The quickstart feature is currently disabled by default and can be
enabled by setting the user default MMPreloadCacheSize to a positive
integer.  With it enabled, new windows open more or less
instantaneously.
2008-08-01 21:31:03 +02:00
vimboss c295e3d8d1 updated for version 7.2b-026 2008-07-31 20:29:28 +00:00
vimboss b1b0936737 updated for version 7.2b-025 2008-07-31 20:04:27 +00:00
Jjgod Jiang e43b739944 A few MMAtsuiTextView rendering fixes
1. Fix AtsuiTextView italic angle problem.
2. Add underline/undercurl support for text drawing.
3. Use default background color to fill the inset area.
2008-07-29 21:42:45 +02:00
vimboss ea3d1b4ba6 updated for version 7.2b-024 2008-07-29 10:22:12 +00:00
vimboss 8c3618271b updated for version 7.2b-023 2008-07-27 13:57:29 +00:00
Bjorn Winckler 37e3e82f7c Ensure valid scroll region when deleting/inserting rows 2008-07-26 20:06:52 +02:00
vimboss 71ced625f5 updated for version 7.2b-022 2008-07-26 14:05:07 +00:00
vimboss fa46cfe5e7 updated for version 7.2b-021 2008-07-24 20:09:16 +00:00
vimboss 63cd7ab513 updated for version 7.2b-020 2008-07-24 19:31:11 +00:00
vimboss 93b5422bc6 updated for version 7.2b-019 2008-07-24 18:51:11 +00:00
vimboss a4a6146f2d updated for version 7.2b-018 2008-07-24 18:29:37 +00:00
vimboss 0b28a1550d updated for version 7.2b-017 2008-07-24 17:34:23 +00:00
vimboss d5bd3e3888 updated for version 7.2b-016 2008-07-24 16:45:38 +00:00
vimboss b1bc820ac9 updated for version 7.2b-015 2008-07-24 15:20:50 +00:00
vimboss c7333a644b updated for version 7.2b-014 2008-07-24 14:24:48 +00:00
vimboss a8cb1c5563 updated for version 7.2b-012 2008-07-24 11:51:40 +00:00
vimboss 752dcda77e updated for version 7.2b-011 2008-07-24 11:21:31 +00:00
vimboss b86aff8f47 updated for version 7.2b-010 2008-07-22 16:58:47 +00:00
vimboss 41a8a4d368 updated for version 7.2b-009 2008-07-18 15:14:43 +00:00
vimboss 25c670073a updated for version 7.2b-008 2008-07-18 10:54:50 +00:00
vimboss 6743003ba5 updated for version 7.2b-007 2008-07-18 10:05:58 +00:00
vimboss 61c7c7dd1b updated for version 7.2b-006 2008-07-18 09:26:30 +00:00
vimboss 76e0da8cce updated for version 7.2b-005 2008-07-16 20:43:37 +00:00
Jjgod Jiang 8c8db3cd4c Turn off ligatures by default
Turn off all common ligatures (fi, ffi) and rare ligatures (ct, ss).
2008-07-16 16:27:59 +08:00
Bjorn Winckler f96c9a6845 Update doc and short version string for Vim 7.2b 2008-07-16 16:16:23 +02:00
vimboss 998efd292e updated for version 7.2b-004 2008-07-14 21:05:15 +00:00
vimboss 093e2f20f2 updated for version 7.2b-003 2008-07-14 19:48:05 +00:00
vimboss 86c54f9853 updated for version 7.2b-002 2008-07-14 17:51:11 +00:00
vimboss d693919cdd updated for version 7.2b-001 2008-07-14 09:52:40 +00:00
vimboss 7a75fec5ca updated for version 7.2b-000 2008-07-13 17:41:49 +00:00
Bjorn Winckler e9f5ced05c Fix typo in selector name for delayed dialog 2008-07-11 16:10:06 +02:00
Nicolas Weber e5e3c0d2c1 Fix memory leaks in PSMTabBarControl 2008-07-08 20:18:40 +02:00
Matt Tolton 1e2467b3f3 Add versioning to the plugin architecture
The plugin architecture version can be retrieved by a plugin from the
app mediator by calling the majorVersion and minorVersion methods.
2008-07-08 19:59:59 +02:00
Matt Tolton 754d698c33 Add menu item to toggle the plugin view drawer
The setting is remembered, so if the drawer was last toggled closed then
it should not open again until toggled.
2008-07-08 19:58:56 +02:00
vimboss 73626b6c6c updated for version 7.2a-019 2008-07-08 15:15:08 +00:00
vimboss ec20f00066 updated for version 7.2a-018 2008-07-08 10:46:08 +00:00
vimboss 4d14ca32db updated for version 7.2a-017 2008-07-08 09:36:58 +00:00
vimboss 3f3214a409 updated for version 7.2a-016 2008-07-07 19:23:37 +00:00
vimboss 82a81c93f1 updated for version 7.2a-015 2008-07-06 17:16:02 +00:00
888 changed files with 85030 additions and 37575 deletions
+16
View File
@@ -3,9 +3,25 @@
src/MacVim/MacVim.xcodeproj/*.mode1
src/MacVim/MacVim.xcodeproj/*.mode1v3
src/MacVim/MacVim.xcodeproj/*.pbxuser
src/MacVim/icons/*.pyc
src/MacVim/icons/*.ttf
src/MacVim/icons/*.reg
src/MacVim/icons/*.zip
src/MacVim/icons/*.txt
src/MacVim/icons/*.so
src/MacVim/icons/*.egg-info
src/MacVim/icons/build
src/MacVim/icons/makeicns/*.o
src/MacVim/icons/makeicns/makeicns
src/MacVim/PSMTabBarControl/PSMTabBarControl.xcodeproj/*.mode1
src/MacVim/PSMTabBarControl/PSMTabBarControl.xcodeproj/*.mode1v3
src/MacVim/PSMTabBarControl/PSMTabBarControl.xcodeproj/*.pbxuser
src/MacVim/PSMTabBarControl/build
src/MacVim/edit-in-odb/Edit in ODBEditor.xcodeproj/*.mode1
src/MacVim/edit-in-odb/Edit in ODBEditor.xcodeproj/*.mode1v3
src/MacVim/edit-in-odb/Edit in ODBEditor.xcodeproj/*.pbxuser
src/MacVim/edit-in-odb/build
src/MacVim/PSMTabBarControl/build
src/MacVim/build
src/TAGS
src/Vim
+41
View File
@@ -0,0 +1,41 @@
syntax: glob
# Unixen: object and executable files.
*.o
src/vim
src/xxd/xxd
# We do need src/auto/configure and src/auto/config.mk.
src/auto/osdef.h
src/auto/config.aap
src/auto/config.cache
src/auto/config.h
src/auto/config.log
src/auto/config.status
src/auto/configure.aap
src/auto/link.log
src/auto/link.sed
src/auto/pathdef.c
# Windows
*.exe
*.idb
*.manifest
*.exp
*.obj
*.pdb
*.ilk
*.sln
*.suo
*.res
*.RES
src/pathdef.c
src/Obj*/pathdef.c
gvimext.dll
gvimext.lib
# All platforms
*.rej
*.orig
*.mo
*~
+1220
View File
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -9,10 +9,10 @@ Vim Vi IMproved. A clone of the UNIX text editor Vi. Very useful
messages, shows current file name in window title, on-line
help, rectangular cut/paste, etc., etc., etc...
Version 7.2a. Also runs under UNIX, MSDOS and other systems.
vim72art.tgz contains the documentation and syntax files.
vim72abin.tgz contains the binaries.
vim72asrc.tgz contains the sources.
Version 7.2. Also runs under UNIX, MSDOS and other systems.
vim72rt.tgz contains the documentation and syntax files.
vim72bin.tgz contains the binaries.
vim72src.tgz contains the sources.
Author: Bram Moolenaar et al.
+7 -2
View File
@@ -285,6 +285,7 @@ SRC_DOS = \
src/proto/os_win32.pro \
src/proto/os_mswin.pro \
src/testdir/Make_dos.mak \
src/testdir/Make_ming.mak \
src/testdir/dos.vim \
src/uninstal.c \
src/vim.def \
@@ -516,6 +517,7 @@ RT_SCRIPTS = \
runtime/indent/*.vim \
runtime/indent/README.txt \
runtime/ftplugin/*.vim \
runtime/ftplugin/logtalk.dict \
runtime/ftplugin/README.txt \
runtime/plugin/*.vim \
runtime/plugin/README.txt \
@@ -679,11 +681,14 @@ LANG_GEN = \
runtime/spell/README.txt \
runtime/spell/??/*.diff \
runtime/spell/??/main.aap \
runtime/spell/tet/*.diff \
runtime/spell/tet/main.aap \
runtime/spell/check/main.aap \
runtime/spell/check/*.aff \
runtime/spell/check/*.dic \
runtime/spell/yi/README.txt \
runtime/spell/main.aap \
runtime/spell/cleanadd.vim \
runtime/spell/*.vim \
runtime/spell/fixdup \
# generic language files, binary
LANG_GEN_BIN = \
+12 -12
View File
@@ -69,7 +69,7 @@ all install uninstall tools config configure reconfig proto depend lint tags typ
# Before creating an archive first delete all backup files, *.orig, etc.
MAJOR = 7
MINOR = 2a
MINOR = 2
# Uncomment this line if the Win32s version is to be included.
DOSBIN_S = dosbin_s
@@ -133,7 +133,7 @@ DOSBIN_S = dosbin_s
# Win32 console version:
# - Set environment for Visual C++ 2008 Express Edition: "msvc2008.bat". Or,
# when using the Visual C++ Toolkit 2003: "msvcsetup.bat" (adjust the paths
# when necessary).
# when necessary). For Windows 98 the 2003 version is required.
# - "nmake -f Make_mvc.mak"
# - "rm testdir/*.out", "nmake -f Make_mvc.mak test" and check the output.
# - Rename the executables to "vimw32.exe", "xxdw32.exe".
@@ -403,7 +403,7 @@ dosrt_unix2dos: dist prepare no_title.vim
$(RT_AMI_DOS) \
$(LANG_GEN) \
| (cd dist/vim/$(VIMRTDIR); tar xf -)
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -u no_title.vim -c ":set tx|wq" {} \;
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -X -u no_title.vim -c ":set tx|wq" {} \;
tar cf - \
$(RT_UNIX_DOS_BIN) \
$(RT_ALL_BIN) \
@@ -432,7 +432,7 @@ dosbin_gvim: dist no_title.vim dist/$(COMMENT_GVIM)
tar cf - \
$(BIN_DOS) \
| (cd dist/vim/$(VIMRTDIR); tar xf -)
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -u no_title.vim -c ":set tx|wq" {} \;
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -X -u no_title.vim -c ":set tx|wq" {} \;
cp gvim.exe dist/vim/$(VIMRTDIR)/gvim.exe
cp xxdw32.exe dist/vim/$(VIMRTDIR)/xxd.exe
cp vimrun.exe dist/vim/$(VIMRTDIR)/vimrun.exe
@@ -451,7 +451,7 @@ dosbin_w32: dist no_title.vim dist/$(COMMENT_W32)
tar cf - \
$(BIN_DOS) \
| (cd dist/vim/$(VIMRTDIR); tar xf -)
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -u no_title.vim -c ":set tx|wq" {} \;
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -X -u no_title.vim -c ":set tx|wq" {} \;
cp vimw32.exe dist/vim/$(VIMRTDIR)/vim.exe
cp xxdw32.exe dist/vim/$(VIMRTDIR)/xxd.exe
cp installw32.exe dist/vim/$(VIMRTDIR)/install.exe
@@ -468,7 +468,7 @@ dosbin_d32: dist no_title.vim dist/$(COMMENT_D32)
tar cf - \
$(BIN_DOS) \
| (cd dist/vim/$(VIMRTDIR); tar xf -)
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -u no_title.vim -c ":set tx|wq" {} \;
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -X -u no_title.vim -c ":set tx|wq" {} \;
cp vimd32.exe dist/vim/$(VIMRTDIR)/vim.exe
cp xxdd32.exe dist/vim/$(VIMRTDIR)/xxd.exe
cp installd32.exe dist/vim/$(VIMRTDIR)/install.exe
@@ -485,7 +485,7 @@ dosbin_d16: dist no_title.vim dist/$(COMMENT_D16)
tar cf - \
$(BIN_DOS) \
| (cd dist/vim/$(VIMRTDIR); tar xf -)
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -u no_title.vim -c ":set tx|wq" {} \;
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -X -u no_title.vim -c ":set tx|wq" {} \;
cp vimd16.exe dist/vim/$(VIMRTDIR)/vim.exe
cp xxdd16.exe dist/vim/$(VIMRTDIR)/xxd.exe
cp installd16.exe dist/vim/$(VIMRTDIR)/install.exe
@@ -501,7 +501,7 @@ dosbin_ole: dist no_title.vim dist/$(COMMENT_OLE)
tar cf - \
$(BIN_DOS) \
| (cd dist/vim/$(VIMRTDIR); tar xf -)
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -u no_title.vim -c ":set tx|wq" {} \;
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -X -u no_title.vim -c ":set tx|wq" {} \;
cp gvim_ole.exe dist/vim/$(VIMRTDIR)/gvim.exe
cp xxdw32.exe dist/vim/$(VIMRTDIR)/xxd.exe
cp vimrun.exe dist/vim/$(VIMRTDIR)/vimrun.exe
@@ -523,7 +523,7 @@ dosbin_s: dist no_title.vim dist/$(COMMENT_W32S)
tar cf - \
$(BIN_DOS) \
| (cd dist/vim/$(VIMRTDIR); tar xf -)
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -u no_title.vim -c ":set tx|wq" {} \;
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -X -u no_title.vim -c ":set tx|wq" {} \;
cp gvim_w32s.exe dist/vim/$(VIMRTDIR)/gvim.exe
cp xxdd32.exe dist/vim/$(VIMRTDIR)/xxd.exe
cp README_w32s.txt dist/vim/$(VIMRTDIR)
@@ -539,7 +539,7 @@ doslang: dist prepare no_title.vim dist/$(COMMENT_LANG)
mkdir dist/vim/$(VIMRTDIR)
mkdir dist/vim/$(VIMRTDIR)/lang
cd src && MAKEMO=yes $(MAKE) languages
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -u no_title.vim -c ":set tx|wq" {} \;
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -X -u no_title.vim -c ":set tx|wq" {} \;
# Add the message translations. Trick: skip ja.mo and use ja.sjis.mo instead.
# Same for cs.mo / cs.cp1250.mo, pl.mo / pl.cp1250.mo, sk.mo / sk.cp1250.mo,
# zh_CN.mo / zh_CN.cp936.mo, uk.mo / uk.cp1251.mo and ru.mo / ru.cp1251.mo.
@@ -569,7 +569,7 @@ dossrc: dist no_title.vim dist/$(COMMENT_SRC) runtime/doc/uganda.nsis.txt
| (cd dist/vim/$(VIMRTDIR); tar xf -)
mv dist/vim/$(VIMRTDIR)/runtime/* dist/vim/$(VIMRTDIR)
rmdir dist/vim/$(VIMRTDIR)/runtime
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -u no_title.vim -c ":set tx|wq" {} \;
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -X -u no_title.vim -c ":set tx|wq" {} \;
tar cf - \
$(SRC_DOS_BIN) \
| (cd dist/vim/$(VIMRTDIR); tar xf -)
@@ -586,7 +586,7 @@ os2bin: dist no_title.vim dist/$(COMMENT_OS2)
tar cf - \
$(BIN_OS2) \
| (cd dist/vim/$(VIMRTDIR); tar xf -)
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -u no_title.vim -c ":set tx|wq" {} \;
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -X -u no_title.vim -c ":set tx|wq" {} \;
cp vimos2.exe dist/vim/$(VIMRTDIR)/vim.exe
cp xxdos2.exe dist/vim/$(VIMRTDIR)/xxd.exe
cp teeos2.exe dist/vim/$(VIMRTDIR)/tee.exe
+1 -1
View File
@@ -1,4 +1,4 @@
README.txt for version 7.2a of Vim: Vi IMproved.
README.txt for version 7.2 of Vim: Vi IMproved.
WHAT IS VIM
+1 -1
View File
@@ -1,4 +1,4 @@
README_ami.txt for version 7.2a of Vim: Vi IMproved.
README_ami.txt for version 7.2 of Vim: Vi IMproved.
This file explains the installation of Vim on Amiga systems.
See README.txt for general information about Vim.
+1 -1
View File
@@ -1,4 +1,4 @@
README_amibin.txt for version 7.2a of Vim: Vi IMproved.
README_amibin.txt for version 7.2 of Vim: Vi IMproved.
See "README.txt" for general information about Vim.
See "README_ami.txt" for installation instructions for the Amiga.
+1 -1
View File
@@ -1,4 +1,4 @@
README_amisrc.txt for version 7.2a of Vim: Vi IMproved.
README_amisrc.txt for version 7.2 of Vim: Vi IMproved.
See "README.txt" for general information about Vim.
See "README_ami.txt" for installation instructions for the Amiga.
+10 -10
View File
@@ -1,19 +1,19 @@
README_bindos.txt for version 7.2a of Vim: Vi IMproved.
README_bindos.txt for version 7.2 of Vim: Vi IMproved.
See "README.txt" for general information about Vim.
See "README_dos.txt" for installation instructions for MS-DOS and MS-Windows.
These files are in the runtime archive (vim70rt.zip).
These files are in the runtime archive (vim72rt.zip).
There are several binary distributions of Vim for the PC. You would normally
pick only one of them, but it's also possible to install several.
These ones are available (the version number may differ):
vim70d16.zip 16 bit DOS version
vim70d32.zip 32 bit DOS version
vim70w32.zip Windows 95/98/NT/etc. console version
gvim70.zip Windows 95/98/NT/etc. GUI version
gvim70ole.zip Windows 95/98/NT/etc. GUI version with OLE
gvim70_s.zip Windows 3.1 GUI version
vim72d16.zip 16 bit DOS version
vim72d32.zip 32 bit DOS version
vim72w32.zip Windows 95/98/NT/etc. console version
gvim72.zip Windows 95/98/NT/etc. GUI version
gvim72ole.zip Windows 95/98/NT/etc. GUI version with OLE
gvim72_s.zip Windows 3.1 GUI version
You MUST also get the runtime archive (vim70rt.zip).
The sources are also available (vim70src.zip).
You MUST also get the runtime archive (vim72rt.zip).
The sources are also available (vim72src.zip).
+17 -17
View File
@@ -1,4 +1,4 @@
README_dos.txt for version 7.2a of Vim: Vi IMproved.
README_dos.txt for version 7.2 of Vim: Vi IMproved.
This file explains the installation of Vim on MS-DOS and MS-Windows systems.
See "README.txt" for general information about Vim.
@@ -47,13 +47,13 @@ These are the normal steps to install Vim from the .zip archives:
Binary and runtime Vim archives are normally unpacked in the same location,
on top of each other.
2. Unpack the zip archives. This will create a new directory "vim\vim70",
2. Unpack the zip archives. This will create a new directory "vim\vim72",
in which all the distributed Vim files are placed. Since the directory
name includes the version number, it is unlikely that you overwrite
existing files.
Examples:
pkunzip -d gvim70.zip
unzip vim70w32.zip
pkunzip -d gvim72.zip
unzip vim72w32.zip
You need to unpack the runtime archive and at least one of the binary
archives. When using more than one binary version, be careful not to
@@ -69,7 +69,7 @@ These are the normal steps to install Vim from the .zip archives:
archive and follow the instructions in the documentation.
3. Change to the new directory:
cd vim\vim70
cd vim\vim72
Run the "install.exe" program. It will ask you a number of questions about
how you would like to have your Vim setup. Among these are:
- You can tell it to write a "_vimrc" file with your preferences in the
@@ -80,8 +80,8 @@ These are the normal steps to install Vim from the .zip archives:
console or in a shell. You can select one of the directories in your
$PATH. If you skip this, you can add Vim to the search path manually:
The simplest is to add a line to your autoexec.bat. Examples:
set path=%path%;C:\vim\vim70
set path=%path%;D:\editors\vim\vim70
set path=%path%;C:\vim\vim72
set path=%path%;D:\editors\vim\vim72
- Create entries for Vim on the desktop and in the Start menu.
That's it!
@@ -93,8 +93,8 @@ Remarks:
won't show a menubar. Then you need to set the $VIM environment variable to
point to the top directory of your Vim files. Example:
set VIM=C:\editors\vim
Vim version 6.0 will look for your vimrc file in $VIM, and for the runtime
files in $VIM/vim70. See ":help $VIM" for more information.
Vim version 7.2 will look for your vimrc file in $VIM, and for the runtime
files in $VIM/vim72. See ":help $VIM" for more information.
- To avoid confusion between distributed files of different versions and your
own modified vim scripts, it is recommended to use this directory layout:
@@ -105,14 +105,14 @@ Remarks:
C:\vim\vimfiles\ftplugin\*.vim Filetype plugins
C:\vim\... Other files you made.
Distributed files:
C:\vim\vim70\vim.exe The Vim version 6.0 executable.
C:\vim\vim70\doc\*.txt The version 6.0 documentation files.
C:\vim\vim70\bugreport.vim A Vim version 6.0 script.
C:\vim\vim70\... Other version 6.0 distributed files.
C:\vim\vim72\vim.exe The Vim version 7.2 executable.
C:\vim\vim72\doc\*.txt The version 7.2 documentation files.
C:\vim\vim72\bugreport.vim A Vim version 7.2 script.
C:\vim\vim72\... Other version 7.2 distributed files.
In this case the $VIM environment variable would be set like this:
set VIM=C:\vim
Then $VIMRUNTIME will automatically be set to "$VIM\vim70". Don't add
"vim70" to $VIM, that won't work.
Then $VIMRUNTIME will automatically be set to "$VIM\vim72". Don't add
"vim72" to $VIM, that won't work.
- You can put your Vim executable anywhere else. If the executable is not
with the other Vim files, you should set $VIM. The simplest is to add a line
@@ -136,8 +136,8 @@ Remarks:
Select Properties.
5. In the Program tab, change the "Cmdline" to add "/c" and the name of the
Vim executable. Examples:
C:\command.com /c C:\vim\vim70\vim.exe
C:\command.com /c D:\editors\vim\vim70\vim.exe
C:\command.com /c C:\vim\vim72\vim.exe
C:\command.com /c D:\editors\vim\vim72\vim.exe
6. Select the font, window size, etc. that you like. If this isn't
possible, select "Advanced" in the Program tab, and deselect "MS-DOS
mode".
+3 -3
View File
@@ -1,10 +1,10 @@
README_extra.txt for version 7.2a of Vim: Vi IMproved.
README_extra.txt for version 7.2 of Vim: Vi IMproved.
The extra archive of Vim is to be used in combination with the source archive
(vim-7.0-src.tar.gz). The extra archive is useless without it.
(vim-7.2-src.tar.gz). The extra archive is useless without it.
For more information, see the "README.txt" file that comes with the runtime
archive (vim-7.0-rt.tar.gz). To be able to run Vim you MUST get the runtime
archive (vim-7.2-rt.tar.gz). To be able to run Vim you MUST get the runtime
archive too!
The extra archive plus the source and runtime achives make up the complete
+1 -1
View File
@@ -1,4 +1,4 @@
README_lang.txt for version 7.2a of Vim: Vi IMproved.
README_lang.txt for version 7.2 of Vim: Vi IMproved.
This file contains files for non-English languages:
- Translated messages.
+1 -1
View File
@@ -1,4 +1,4 @@
README_mac.txt for version 7.2a of Vim: Vi IMproved.
README_mac.txt for version 7.2 of Vim: Vi IMproved.
This file explains the installation of Vim on Macintosh systems.
See "README.txt" for general information about Vim.
+1 -1
View File
@@ -1,4 +1,4 @@
README_ole.txt for version 7.2a of Vim: Vi IMproved.
README_ole.txt for version 7.2 of Vim: Vi IMproved.
This archive contains gvim.exe with OLE interface and VisVim.
This version of gvim.exe can also load a number of interface dynamically (you
+12 -12
View File
@@ -1,32 +1,32 @@
README_os2.txt for version 7.2a of Vim: Vi IMproved.
README_os2.txt for version 7.2 of Vim: Vi IMproved.
This file explains the installation of Vim on OS/2 systems.
See "README.txt" for general information about Vim.
NOTE: You will need two archives:
vim71rt.zip contains the runtime files (same as for the PC version)
vim71os2.zip contains the OS/2 executables
vim72rt.zip contains the runtime files (same as for the PC version)
vim72os2.zip contains the OS/2 executables
1. Go to the directory where you want to put the Vim files. Examples:
cd C:\
cd D:\editors
2. Unpack the zip archives. This will create a new directory "vim/vim71",
2. Unpack the zip archives. This will create a new directory "vim/vim72",
in which all the distributed Vim files are placed. Since the directory
name includes the version number, it is unlikely that you overwrite
existing files.
Examples:
pkunzip -d vim71os2.zip
unzip vim71os2.zip
pkunzip -d vim72os2.zip
unzip vim72os2.zip
After you unpacked the files, you can still move the whole directory tree
to another location.
3. Add the directory where vim.exe is to your path. The simplest is to add a
line to your autoexec.bat. Examples:
set path=%path%;C:\vim\vim71
set path=%path%;D:\editors\vim\vim71
set path=%path%;C:\vim\vim72
set path=%path%;D:\editors\vim\vim72
That's it!
@@ -41,10 +41,10 @@ Extra remarks:
C:\vim\_viminfo Dynamic info for 'viminfo'.
C:\vim\... Other files you made.
Distributed files:
C:\vim\vim71\vim.exe The Vim version 7.1 executable.
C:\vim\vim71\doc\*.txt The version 7.1 documentation files.
C:\vim\vim71\bugreport.vim A Vim version 7.1 script.
C:\vim\vim71\... Other version 7.1 distributed files.
C:\vim\vim72\vim.exe The Vim version 7.2 executable.
C:\vim\vim72\doc\*.txt The version 7.2 documentation files.
C:\vim\vim72\bugreport.vim A Vim version 7.2 script.
C:\vim\vim72\... Other version 7.2 distributed files.
In this case the $VIM environment variable would be set like this:
set VIM=C:\vim
+1 -1
View File
@@ -1,4 +1,4 @@
README_os_390.txt for version 7.2a of Vim: Vi IMproved.
README_os_390.txt for version 7.2 of Vim: Vi IMproved.
Welcome to the OS/390 Unix port of VIM.
+3 -3
View File
@@ -1,10 +1,10 @@
README_src.txt for version 7.2a of Vim: Vi IMproved.
README_src.txt for version 7.2 of Vim: Vi IMproved.
The source archive contains the files needed to compile Vim on Unix systems.
It is packed for Unix systems (NL line separator). It is also used for other
systems in combination with the extra archive (vim-7.0-extra.tar.gz, in the
systems in combination with the extra archive (vim-7.2-extra.tar.gz, in the
"extra" directory of ftp.vim.org).
For more information, see the README.txt file that comes with the runtime
archive (vim-7.0-rt.tar.gz). To be able to run Vim you MUST get the runtime
archive (vim-7.2-rt.tar.gz). To be able to run Vim you MUST get the runtime
archive too!
+2 -2
View File
@@ -1,8 +1,8 @@
README_srcdos.txt for version 7.2a of Vim: Vi IMproved.
README_srcdos.txt for version 7.2 of Vim: Vi IMproved.
See "README.txt" for general information about Vim.
See "README_dos.txt" for installation instructions for MS-DOS and MS-Windows.
These files are in the runtime archive (vim70rt.zip).
These files are in the runtime archive (vim72rt.zip).
The DOS source archive contains the files needed to compile Vim on MS-DOS or
+1 -1
View File
@@ -1,4 +1,4 @@
README_unix.txt for version 7.2a of Vim: Vi IMproved.
README_unix.txt for version 7.2 of Vim: Vi IMproved.
This file explains the installation of Vim on Unix systems.
See "README.txt" for general information about Vim.
+1 -1
View File
@@ -1,4 +1,4 @@
README_vms.txt for version 7.2a of Vim: Vi IMproved.
README_vms.txt for version 7.2 of Vim: Vi IMproved.
This file explains the installation of Vim on VMS systems.
See "README.txt" in the runtime archive for information about Vim.
+1 -1
View File
@@ -1,4 +1,4 @@
README_w32s.txt for version 7.2a of Vim: Vi IMproved.
README_w32s.txt for version 7.2 of Vim: Vi IMproved.
This archive contains the gvim.exe that was specifically compiled for use in
the Win32s subsystem in MS-Windows 3.1 and 3.11.
+1 -1
View File
@@ -22,7 +22,7 @@
!define HAVE_NLS
!define VER_MAJOR 7
!define VER_MINOR 2a
!define VER_MINOR 2
# ----------- No configurable settings below this line -----------
+67 -32
View File
@@ -1,14 +1,16 @@
"------------------------------------------------------------------------------
" Description: Perform Ada specific completion & tagging.
" Language: Ada (2005)
" $Id$
" Maintainer: Martin Krischik
" $Id: ada.vim 887 2008-07-08 14:29:01Z krischik $
" Maintainer: Martin Krischik <krischik@users.sourceforge.net>
" Taylor Venable <taylor@metasyntax.net>
" Neil Bird <neil@fnxweb.com>
" $Author$
" $Date$
" Version: 4.2
" $Revision$
" $HeadURL: https://svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/autoload/ada.vim $
" Ned Okie <nokie@radford.edu>
" $Author: krischik $
" $Date: 2008-07-08 16:29:01 +0200 (Di, 08 Jul 2008) $
" Version: 4.6
" $Revision: 887 $
" $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/autoload/ada.vim $
" History: 24.05.2006 MK Unified Headers
" 26.05.2006 MK ' should not be in iskeyword.
" 16.07.2006 MK Ada-Mode as vim-ball
@@ -17,6 +19,10 @@
" 05.11.2006 MK Bram suggested not to use include protection for
" autoload
" 05.11.2006 MK Bram suggested to save on spaces
" 08.07.2007 TV fix mapleader problems.
" 09.05.2007 MK Session just won't work no matter how much
" tweaking is done
" 19.09.2007 NO still some mapleader problems
" Help Page: ft-ada-functions
"------------------------------------------------------------------------------
@@ -425,30 +431,49 @@ function ada#Create_Tags (option)
execute '!ctags --excmd=number ' . l:Filename
endfunction ada#Create_Tags
function ada#Switch_Session (New_Session) "{{{1
if a:New_Session != v:this_session
"
" We actualy got a new session - otherwise there
" is nothing to do.
"
if strlen (v:this_session) > 0
execute 'mksession! ' . v:this_session
" Section: ada#Switch_Session {{{1
"
function ada#Switch_Session (New_Session)
"
" you should not save to much date into the seession since they will
" be sourced
"
let l:sessionoptions=&sessionoptions
try
set sessionoptions=buffers,curdir,folds,globals,resize,slash,tabpages,tabpages,unix,winpos,winsize
if a:New_Session != v:this_session
"
" We actualy got a new session - otherwise there
" is nothing to do.
"
if strlen (v:this_session) > 0
execute 'mksession! ' . v:this_session
endif
let v:this_session = a:New_Session
"if filereadable (v:this_session)
"execute 'source ' . v:this_session
"endif
augroup ada_session
autocmd!
autocmd VimLeavePre * execute 'mksession! ' . v:this_session
augroup END
"if exists ("g:Tlist_Auto_Open") && g:Tlist_Auto_Open
"TlistOpen
"endif
endif
let v:this_session = a:New_Session
if filereadable (v:this_session)
execute 'source ' . v:this_session
endif
augroup ada_session
autocmd!
autocmd VimLeavePre * execute 'mksession! ' . v:this_session
augroup END
endif
finally
let &sessionoptions=l:sessionoptions
endtry
return
endfunction ada#Switch_Session "}}}1
endfunction ada#Switch_Session
" Section: GNAT Pretty Printer folding {{{1
"
@@ -546,18 +571,23 @@ function ada#Map_Menu (Text, Keys, Command)
\ a:Keys .
\" <C-O>:" . a:Command . "<CR>"
else
if exists("g:mapleader")
let l:leader = g:mapleader
else
let l:leader = '\'
endif
execute
\ "50amenu " .
\ "Ada." . escape(a:Text, ' ') .
\ "<Tab>" . escape(g:mapleader . "a" . a:Keys , '\') .
\ "<Tab>" . escape(l:leader . "a" . a:Keys , '\') .
\ " :" . a:Command . "<CR>"
execute
\ "nnoremap <buffer>" .
\ escape(g:mapleader . "a" . a:Keys , '\') .
\ escape(l:leader . "a" . a:Keys , '\') .
\" :" . a:Command
execute
\ "inoremap <buffer>" .
\ escape(g:mapleader . "a" . a:Keys , '\') .
\ escape(l:leader . "a" . a:Keys , '\') .
\" <C-O>:" . a:Command
endif
return
@@ -566,10 +596,15 @@ endfunction
" Section: ada#Map_Popup {{{2
"
function ada#Map_Popup (Text, Keys, Command)
if exists("g:mapleader")
let l:leader = g:mapleader
else
let l:leader = '\'
endif
execute
\ "50amenu " .
\ "PopUp." . escape(a:Text, ' ') .
\ "<Tab>" . escape(g:mapleader . "a" . a:Keys , '\') .
\ "<Tab>" . escape(l:leader . "a" . a:Keys , '\') .
\ " :" . a:Command . "<CR>"
call ada#Map_Menu (a:Text, a:Keys, a:Command)
+6 -6
View File
@@ -1,13 +1,13 @@
"------------------------------------------------------------------------------
" Description: Vim Ada omnicompletion file
" Language: Ada (2005)
" $Id$
" $Id: adacomplete.vim 887 2008-07-08 14:29:01Z krischik $
" Maintainer: Martin Krischik
" $Author$
" $Date$
" Version: 4.2
" $Revision$
" $HeadURL: https://svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/autoload/adacomplete.vim $
" $Author: krischik $
" $Date: 2008-07-08 16:29:01 +0200 (Di, 08 Jul 2008) $
" Version: 4.6
" $Revision: 887 $
" $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/autoload/adacomplete.vim $
" History: 24.05.2006 MK Unified Headers
" 26.05.2006 MK improved search for begin of word.
" 16.07.2006 MK Ada-Mode as vim-ball
+8 -8
View File
@@ -1,14 +1,14 @@
"------------------------------------------------------------------------------
" Description: Vim Ada/Dec Ada compiler file
" Language: Ada (Dec Ada)
" $Id$
" $Id: decada.vim 887 2008-07-08 14:29:01Z krischik $
" Copyright: Copyright (C) 2006 Martin Krischik
" Maintainer: Martin Krischik
" $Author$
" $Date$
" Version: 4.2
" $Revision$
" $HeadURL: https://svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/autoload/decada.vim $
" Maintainer: Martin Krischik <krischik@users.sourceforge.net>
" $Author: krischik $
" $Date: 2008-07-08 16:29:01 +0200 (Di, 08 Jul 2008) $
" Version: 4.6
" $Revision: 887 $
" $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/autoload/decada.vim $
" History: 21.07.2006 MK New Dec Ada
" 15.10.2006 MK Bram's suggestion for runtime integration
" 05.11.2006 MK Bram suggested not to use include protection for
@@ -45,7 +45,7 @@ function decada#Set_Session (...) dict " {{{1
call ada#Switch_Session (a:1)
elseif argc() == 0 && strlen (v:servername) > 0
call ada#Switch_Session (
\ expand('~')[0:-2] . ".vimfiles.session]" .
\ expand('~')[0:-2] . ".vimfiles.session]decada_" .
\ v:servername . ".vim")
endif
return
+151 -122
View File
@@ -1,8 +1,8 @@
" ---------------------------------------------------------------------
" getscript.vim
" Author: Charles E. Campbell, Jr.
" Date: May 30, 2008
" Version: 30
" Date: Dec 28, 2009
" Version: 32
" Installing: :help glvs-install
" Usage: :help glvs
"
@@ -12,19 +12,24 @@
" Initialization: {{{1
" if you're sourcing this file, surely you can't be
" expecting vim to be in its vi-compatible mode!
if exists("g:loaded_getscript")
finish
endif
let g:loaded_getscript= "v32"
if &cp
echoerr "GetLatestVimScripts is not vi-compatible; not loaded (you need to set nocp)"
finish
endif
if v:version < 702
echohl WarningMsg
echo "***warning*** this version of getscript needs vim 7.2"
echohl Normal
finish
endif
let s:keepcpo = &cpo
set cpo&vim
"DechoTabOn
if exists("g:loaded_getscript")
finish
endif
let g:loaded_getscript= "v30"
" ---------------------------
" Global Variables: {{{1
" ---------------------------
@@ -40,25 +45,6 @@ if !exists("g:getscript_cygwin")
let g:getscript_cygwin= 0
endif
endif
" shell quoting character {{{2
if exists("g:netrw_shq") && !exists("g:getscript_shq")
let g:getscript_shq= g:netrw_shq
elseif !exists("g:getscript_shq")
if exists("&shq") && &shq != ""
let g:getscript_shq= &shq
elseif exists("&sxq") && &sxq != ""
let g:getscript_shq= &sxq
elseif has("win32") || has("win95") || has("win64") || has("win16")
if g:getscript_cygwin
let g:getscript_shq= "'"
else
let g:getscript_shq= '"'
endif
else
let g:getscript_shq= "'"
endif
" call Decho("g:getscript_shq<".g:getscript_shq.">")
endif
" wget vs curl {{{2
if !exists("g:GetLatestVimScripts_wget")
@@ -112,7 +98,9 @@ if g:GetLatestVimScripts_allowautoinstall
endif
endif
if exists('$HOME') && isdirectory(expand("$HOME")."/".s:dotvim)
if exists("g:GetLatestVimScripts_autoinstalldir") && isdirectory(g:GetLatestVimScripts_autoinstalldir)
let s:autoinstall= g:GetLatestVimScripts_autoinstalldir"
elseif exists('$HOME') && isdirectory(expand("$HOME")."/".s:dotvim)
let s:autoinstall= $HOME."/".s:dotvim
endif
" call Decho("s:autoinstall<".s:autoinstall.">")
@@ -140,6 +128,12 @@ fun! getscript#GetLatestVimScripts()
return
endif
" insure that fnameescape() is available
if !exists("*fnameescape")
echoerr "GetLatestVimScripts needs fnameescape() (provided by 7.1.299 or later)"
return
endif
" Find the .../GetLatest subdirectory under the runtimepath
for datadir in split(&rtp,',') + ['']
if isdirectory(datadir."/GetLatest")
@@ -159,7 +153,6 @@ fun! getscript#GetLatestVimScripts()
" call Dret("GetLatestVimScripts : unable to find a GetLatest subdirectory")
return
endif
if filewritable(datadir) != 2
echoerr "(getLatestVimScripts) Your ".datadir." isn't writable"
" call Dret("GetLatestVimScripts : non-writable directory<".datadir.">")
@@ -176,20 +169,29 @@ fun! getscript#GetLatestVimScripts()
" call Dret("GetLatestVimScripts : non-writable datafile<".datafile.">")
return
endif
" --------------------
" Passed sanity checks
" --------------------
" call Decho("datadir <".datadir.">")
" call Decho("datafile <".datafile.">")
" don't let any events interfere (like winmanager's, taglist's, etc)
let eikeep= &ei
set ei=all
" don't let any event handlers interfere (like winmanager's, taglist's, etc)
let eikeep = &ei
let hlskeep = &hls
let acdkeep = &acd
set ei=all hls&vim noacd
" record current directory, change to datadir, open split window with
" datafile
" Edit the datafile (ie. GetLatestVimScripts.dat):
" 1. record current directory (origdir),
" 2. change directory to datadir,
" 3. split window
" 4. edit datafile
let origdir= getcwd()
" call Decho("exe cd ".fnameescape(substitute(datadir,'\','/','ge')))
exe "cd ".fnameescape(substitute(datadir,'\','/','ge'))
split
" call Decho("exe e ".fnameescape(substitute(datafile,'\','/','ge')))
" call Decho("exe e ".fnameescape(substitute(datafile,'\','/','ge')))
exe "e ".fnameescape(substitute(datafile,'\','/','ge'))
res 1000
let s:downloads = 0
@@ -200,69 +202,68 @@ fun! getscript#GetLatestVimScripts()
" call Decho("searching plugins for GetLatestVimScripts dependencies")
let lastline = line("$")
" call Decho("lastline#".lastline)
let plugins = split(globpath(&rtp,"plugin/*.vim"),'\n')
let firstdir = substitute(&rtp,',.*$','','')
let plugins = split(globpath(firstdir,"plugin/*.vim"),'\n')
let plugins = plugins + split(globpath(firstdir,"AsNeeded/*.vim"),'\n')
let foundscript = 0
let firstdir= ""
" this loop updates the GetLatestVimScripts.dat file
" with dependencies explicitly mentioned in the plugins
" via GetLatestVimScripts: ... lines
" It reads the plugin script at the end of the GetLatestVimScripts.dat
" file, examines it, and then removes it.
for plugin in plugins
" call Decho(" ")
" call Decho("plugin<".plugin.">")
" don't process plugins in system directories
if firstdir == ""
let firstdir= substitute(plugin,'[/\\][^/\\]\+$','','')
" call Decho("setting firstdir<".firstdir.">")
else
let curdir= substitute(plugin,'[/\\][^/\\]\+$','','')
" call Decho("curdir<".curdir.">")
if curdir != firstdir
" call Decho("skipping subsequent plugins: curdir<".curdir."> != firstdir<".firstdir.">")
break
endif
endif
" read plugin in
" evidently a :r creates a new buffer (the "#" buffer) that is subsequently unused -- bwiping it
$
" call Decho(" ")
" call Decho(".dependency checking<".plugin."> line$=".line("$"))
" call Decho("exe silent r ".fnameescape(plugin))
" call Decho("..exe silent r ".fnameescape(plugin))
exe "silent r ".fnameescape(plugin)
exe "silent bwipe ".bufnr("#")
while search('^"\s\+GetLatestVimScripts:\s\+\d\+\s\+\d\+','W') != 0
let newscript= substitute(getline("."),'^"\s\+GetLatestVimScripts:\s\+\d\+\s\+\d\+\s\+\(.*\)$','\1','e')
let llp1 = lastline+1
" call Decho("..newscript<".newscript.">")
let depscript = substitute(getline("."),'^"\s\+GetLatestVimScripts:\s\+\d\+\s\+\d\+\s\+\(.*\)$','\1','e')
let depscriptid = substitute(getline("."),'^"\s\+GetLatestVimScripts:\s\+\(\d\+\)\s\+.*$','\1','')
let llp1 = lastline+1
" call Decho("..depscript<".depscript.">")
" don't process ""GetLatestVimScripts lines -- those that have been doubly-commented out
if newscript !~ '^"'
" found a "GetLatestVimScripts: # #" line in the script; check if its already in the datafile
let curline = line(".")
let noai_script = substitute(newscript,'\s*:AutoInstall:\s*','','e')
exe llp1
let srchline = search('\<'.noai_script.'\>','bW')
" call Decho("..noai_script<".noai_script."> srch=".srchline."curline#".line(".")." lastline#".lastline)
if srchline == 0
" found a new script to permanently include in the datafile
let keep_rega = @a
let @a = substitute(getline(curline),'^"\s\+GetLatestVimScripts:\s\+','','')
exe lastline."put a"
echomsg "Appending <".@a."> to ".datafile." for ".newscript
" call Decho("..APPEND (".noai_script.")<".@a."> to GetLatestVimScripts.dat")
let @a = keep_rega
let lastline = llp1
let curline = curline + 1
let foundscript = foundscript + 1
" else " Decho
" call Decho("..found <".noai_script."> (already in datafile at line#".srchline.")")
endif
let curline = curline + 1
exe curline
" found a "GetLatestVimScripts: # #" line in the script;
" check if its already in the datafile by searching backwards from llp1,
" the (prior to reading in the plugin script) last line plus one of the GetLatestVimScripts.dat file,
" for the script-id with no wrapping allowed.
let curline = line(".")
let noai_script = substitute(depscript,'\s*:AutoInstall:\s*','','e')
exe llp1
let srchline = search('^\s*'.depscriptid.'\s\+\d\+\s\+.*$','bW')
if srchline == 0
" this second search is taken when, for example, a 0 0 scriptname is to be skipped over
let srchline= search('\<'.noai_script.'\>','bW')
endif
" call Decho("..noai_script<".noai_script."> depscriptid#".depscriptid." srchline#".srchline." curline#".line(".")." lastline#".lastline)
if srchline == 0
" found a new script to permanently include in the datafile
let keep_rega = @a
let @a = substitute(getline(curline),'^"\s\+GetLatestVimScripts:\s\+','','')
echomsg "Appending <".@a."> to ".datafile." for ".depscript
" call Decho("..Appending <".@a."> to ".datafile." for ".depscript)
exe lastline."put a"
let @a = keep_rega
let lastline = llp1
let curline = curline + 1
let foundscript = foundscript + 1
" else " Decho
" call Decho("..found <".noai_script."> (already in datafile at line#".srchline.")")
endif
let curline = curline + 1
exe curline
endwhile
" llp1: last line plus one
let llp1= lastline + 1
" call Decho(".deleting lines: ".llp1.",$d")
exe "silent! ".llp1.",$d"
@@ -275,7 +276,9 @@ fun! getscript#GetLatestVimScripts()
setlocal nomod
endif
" --------------------------------------------------------------------
" Check on out-of-date scripts using GetLatest/GetLatestVimScripts.dat
" --------------------------------------------------------------------
" call Decho("begin: checking out-of-date scripts using datafile<".datafile.">")
setlocal lz
1
@@ -315,7 +318,9 @@ fun! getscript#GetLatestVimScripts()
" restore events and current directory
exe "cd ".fnameescape(substitute(origdir,'\','/','ge'))
let &ei= eikeep
let &ei = eikeep
let &hls = hlskeep
let &acd = acdkeep
setlocal nolz
" call Dredir("BUFFER TEST (GetLatestVimScripts 2)","ls!")
" call Dret("GetLatestVimScripts : did ".s:downloads." downloads")
@@ -325,7 +330,7 @@ endfun
" GetOneScript: (Get Latest Vim Script) this function operates {{{1
" on the current line, interpreting two numbers and text as
" ScriptID, SourceID, and Filename.
" It downloads any scripts that have newer versions from vim.sf.net.
" It downloads any scripts that have newer versions from vim.sourceforge.net.
fun! s:GetOneScript(...)
" call Dfunc("GetOneScript()")
@@ -383,6 +388,7 @@ fun! s:GetOneScript(...)
" call Decho("fname <".fname.">")
endif
" plugin author protection from downloading his/her own scripts atop their latest work
if scriptid == 0 || srcid == 0
" When looking for :AutoInstall: lines, skip scripts that have 0 0 scriptname
let @a= rega
@@ -408,21 +414,21 @@ fun! s:GetOneScript(...)
" call Decho('considering <'.aicmmnt.'> scriptid='.scriptid.' srcid='.srcid)
echo 'considering <'.aicmmnt.'> scriptid='.scriptid.' srcid='.srcid
" grab a copy of the plugin's vim.sf.net webpage
let scriptaddr = 'http://vim.sf.net/script.php?script_id='.scriptid
" grab a copy of the plugin's vim.sourceforge.net webpage
let scriptaddr = 'http://vim.sourceforge.net/script.php?script_id='.scriptid
let tmpfile = tempname()
let v:errmsg = ""
" make up to three tries at downloading the description
let itry= 1
while itry <= 3
" call Decho("try#".itry." to download description of <".aicmmnt."> with addr=".scriptaddr)
" call Decho(".try#".itry." to download description of <".aicmmnt."> with addr=".scriptaddr)
if has("win32") || has("win16") || has("win95")
" call Decho("new|exe silent r!".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".s:Escape(tmpfile).' '.s:Escape(scriptaddr)."|bw!")
new|exe "silent r!".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".s:Escape(tmpfile).' '.s:Escape(scriptaddr)|bw!
" call Decho(".new|exe silent r!".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".shellescape(tmpfile).' '.shellescape(scriptaddr)."|bw!")
new|exe "silent r!".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".shellescape(tmpfile).' '.shellescape(scriptaddr)|bw!
else
" call Decho("exe silent !".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".s:Escape(tmpfile)." ".s:Escape(scriptaddr))
exe "silent !".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".s:Escape(tmpfile)." ".s:Escape(scriptaddr)
" call Decho(".exe silent !".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".shellescape(tmpfile)." ".shellescape(scriptaddr))
exe "silent !".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".shellescape(tmpfile)." ".shellescape(scriptaddr)
endif
if itry == 1
exe "silent vsplit ".fnameescape(tmpfile)
@@ -487,8 +493,7 @@ fun! s:GetOneScript(...)
let latestsrcid = latestsrcid + 0
" call Decho("srcid=".srcid." latestsrcid=".latestsrcid." sname<".sname.">")
" has the plugin's most-recent srcid increased, which indicates
" that it has been updated
" has the plugin's most-recent srcid increased, which indicates that it has been updated
if latestsrcid > srcid
" call Decho("[latestsrcid=".latestsrcid."] <= [srcid=".srcid."]: need to update <".sname.">")
@@ -498,65 +503,103 @@ fun! s:GetOneScript(...)
let sname= "NEW_".sname
endif
" -----------------------------------------------------------------------------
" the plugin has been updated since we last obtained it, so download a new copy
" call Decho("...downloading new <".sname.">")
echomsg "...downloading new <".sname.">"
" -----------------------------------------------------------------------------
" call Decho(".downloading new <".sname.">")
echomsg ".downloading new <".sname.">"
if has("win32") || has("win16") || has("win95")
" call Decho("new|exe silent r!".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".s:Escape(sname)." ".s:Escape('http://vim.sf.net/scripts/download_script.php?src_id='.latestsrcid)."|q")
new|exe "silent r!".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".s:Escape(sname)." ".s:Escape('http://vim.sf.net/scripts/download_script.php?src_id='.latestsrcid)|q
" call Decho(".new|exe silent r!".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".shellescape(sname)." ".shellescape('http://vim.sourceforge.net/scripts/download_script.php?src_id='.latestsrcid)."|q")
new|exe "silent r!".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".shellescape(sname)." ".shellescape('http://vim.sourceforge.net/scripts/download_script.php?src_id='.latestsrcid)|q
else
" call Decho("exe silent !".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".s:Escape(sname)." ".s:Escape('http://vim.sf.net/scripts/download_script.php?src_id='))
exe "silent !".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".s:Escape(sname)." ".s:Escape('http://vim.sf.net/scripts/download_script.php?src_id=')
" call Decho(".exe silent !".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".shellescape(sname)." ".shellescape('http://vim.sourceforge.net/scripts/download_script.php?src_id='))
exe "silent !".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".shellescape(sname)." ".shellescape('http://vim.sourceforge.net/scripts/download_script.php?src_id=').latestsrcid
endif
" --------------------------------------------------------------------------
" AutoInstall: only if doautoinstall has been requested by the plugin itself
" --------------------------------------------------------------------------
if doautoinstall
" call Decho("attempting to do autoinstall: getcwd<".getcwd()."> filereadable(".sname.")=".filereadable(sname))
" call Decho(" ")
" call Decho("Autoinstall: getcwd<".getcwd()."> filereadable(".sname.")=".filereadable(sname))
if filereadable(sname)
call Decho("exe silent !".g:GetLatestVimScripts_mv." ".s:Escape(sname)." ".s:Escape(s:autoinstall))
exe "silent !".g:GetLatestVimScripts_mv." ".s:Escape(sname)." ".s:Escape(s:autoinstall)
" 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 installdir= curdir."/Installed"
if !isdirectory(installdir)
call mkdir(installdir)
endif
" call Decho("exe cd ".fnameescape(s:autoinstall))
" call Decho("curdir<".curdir."> installdir<".installdir.">")
" call Decho("exe cd ".fnameescape(s:autoinstall))
exe "cd ".fnameescape(s:autoinstall)
" determine target directory for moves
let firstdir= substitute(&rtp,',.*$','','')
let pname = substitute(sname,'\..*','.vim','')
" call Decho("determine tgtdir: is <".firstdir.'/AsNeeded/'.pname." readable?")
if filereadable(firstdir.'/AsNeeded/'.pname)
let tgtdir= "AsNeeded"
else
let tgtdir= "plugin"
endif
" call Decho("tgtdir<".tgtdir."> pname<".pname.">")
" decompress
if sname =~ '\.bz2$'
" call Decho("decompress: attempt to bunzip2 ".sname)
exe "silent !bunzip2 ".s:Escape(sname)
exe "silent !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 ".s:Escape(sname)
exe "silent !gunzip ".shellescape(sname)
let sname= substitute(sname,'\.gz$','','')
" call Decho("decompress: new sname<".sname."> after gunzip")
else
" call Decho("no decompression needed")
endif
" distribute archive(.zip, .tar, .vba) contents
if sname =~ '\.zip$'
" call Decho("dearchive: attempt to unzip ".sname)
exe "silent !unzip -o ".s:Escape(sname)
exe "silent !unzip -o ".shellescape(sname)
elseif sname =~ '\.tar$'
" call Decho("dearchive: attempt to untar ".sname)
exe "silent !tar -xvf ".s:Escape(sname)
exe "silent !tar -xvf ".shellescape(sname)
elseif sname =~ '\.vba$'
" call Decho("dearchive: attempt to handle a vimball: ".sname)
silent 1split
if exists("g:vimball_home")
let oldvimballhome= g:vimball_home
endif
let g:vimball_home= s:autoinstall
exe "silent e ".fnameescape(sname)
silent so %
silent q
if exists("oldvimballhome")
let g:vimball_home= oldvimballhome
else
unlet g:vimball_home
endif
else
" call Decho("no dearchiving needed")
endif
" ---------------------------------------------
" move plugin to plugin/ or AsNeeded/ directory
" ---------------------------------------------
if sname =~ '.vim$'
" call Decho("dearchive: attempt to simply move ".sname." to plugin")
exe "silent !".g:GetLatestVimScripts_mv." ".s:Escape(sname)." plugin"
" call Decho("dearchive: attempt to simply move ".sname." to ".tgtdir)
exe "silent !".g:GetLatestVimScripts_mv." ".shellescape(sname)." ".tgtdir
else
" call Decho("dearchive: move <".sname."> to installdir<".installdir.">")
exe "silent !".g:GetLatestVimScripts_mv." ".s:Escape(sname)." ".installdir
exe "silent !".g:GetLatestVimScripts_mv." ".shellescape(sname)." ".installdir
endif
if tgtdir != "plugin"
" call Decho("exe silent !".g:GetLatestVimScripts_mv." plugin/".shellescape(pname)." ".tgtdir)
exe "silent !".g:GetLatestVimScripts_mv." plugin/".shellescape(pname)." ".tgtdir
endif
" helptags step
@@ -591,20 +634,6 @@ fun! s:GetOneScript(...)
" call Dret("GetOneScript")
endfun
" ---------------------------------------------------------------------
" s:Escape: makes a string safe&suitable for the shell {{{2
fun! s:Escape(name)
" call Dfunc("s:Escape(name<".a:name.">)")
if exists("*shellescape")
" shellescape() was added by patch 7.0.111
let name= shellescape(a:name)
else
let name= g:getscript_shq . a:name . g:getscript_shq
endif
" call Dret("s:Escape ".name)
return name
endfun
" ---------------------------------------------------------------------
" Restore Options: {{{1
let &cpo= s:keepcpo
+22 -14
View File
@@ -1,14 +1,15 @@
"------------------------------------------------------------------------------
" Description: Vim Ada/GNAT compiler file
" Language: Ada (GNAT)
" $Id$
" $Id: gnat.vim 887 2008-07-08 14:29:01Z krischik $
" Copyright: Copyright (C) 2006 Martin Krischik
" Maintainer: Martin Krischik
" $Author$
" $Date$
" Version: 4.2
" $Revision$
" $HeadURL: https://svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/autoload/gnat.vim $
" Maintainer: Martin Krischi <krischik@users.sourceforge.net>k
" Ned Okie <nokie@radford.edu>
" $Author: krischik $
" $Date: 2008-07-08 16:29:01 +0200 (Di, 08 Jul 2008) $
" Version: 4.6
" $Revision: 887 $
" $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/autoload/gnat.vim $
" History: 24.05.2006 MK Unified Headers
" 16.07.2006 MK Ada-Mode as vim-ball
" 05.08.2006 MK Add session support
@@ -16,6 +17,7 @@
" 05.11.2006 MK Bram suggested not to use include protection for
" autoload
" 05.11.2006 MK Bram suggested to save on spaces
" 19.09.2007 NO use project file only when there is a project
" Help Page: compiler-gnat
"------------------------------------------------------------------------------
@@ -71,13 +73,19 @@ function gnat#Set_Project_File (...) dict " {{{1
execute 'mksession! ' . v:this_session
endif
if strlen (self.Project_File) > 0
call ada#Switch_Session (
\ expand('~') . "/vimfiles/session/" .
\ fnamemodify (self.Project_File, ":t:r") . ".vim")
else
call ada#Switch_Session ('')
endif
"if strlen (self.Project_File) > 0
"if has("vms")
"call ada#Switch_Session (
"\ expand('~')[0:-2] . ".vimfiles.session]gnat_" .
"\ fnamemodify (self.Project_File, ":t:r") . ".vim")
"else
"call ada#Switch_Session (
"\ expand('~') . "/vimfiles/session/gnat_" .
"\ fnamemodify (self.Project_File, ":t:r") . ".vim")
"endif
"else
"call ada#Switch_Session ('')
"endif
return
endfunction gnat#Set_Project_File " }}}1
+5 -5
View File
@@ -1,6 +1,6 @@
" Vim autoload file for editing compressed files.
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2008 May 29
" Last Change: 2008 Jul 04
" These functions are used by the gzip plugin.
@@ -153,9 +153,9 @@ fun gzip#write(cmd)
let nmt = s:tempname(nm)
if rename(nm, nmt) == 0
if exists("b:gzip_comp_arg")
call system(a:cmd . " " . b:gzip_comp_arg . " " . s:escape(nmt))
call system(a:cmd . " " . b:gzip_comp_arg . " -- " . s:escape(nmt))
else
call system(a:cmd . " " . s:escape(nmt))
call system(a:cmd . " -- " . s:escape(nmt))
endif
call rename(nmt . "." . expand("<afile>:e"), nm)
endif
@@ -180,10 +180,10 @@ fun gzip#appre(cmd)
if rename(nm, nmte) == 0
if &patchmode != "" && getfsize(nm . &patchmode) == -1
" Create patchmode file by creating the decompressed file new
call system(a:cmd . " -c " . s:escape(nmte) . " > " . s:escape(nmt))
call system(a:cmd . " -c -- " . s:escape(nmte) . " > " . s:escape(nmt))
call rename(nmte, nm . &patchmode)
else
call system(a:cmd . " " . s:escape(nmte))
call system(a:cmd . " -- " . s:escape(nmte))
endif
call rename(nmt, nm)
endif
+1667 -1143
View File
File diff suppressed because it is too large Load Diff
+36 -30
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: May 30, 2006
" Version: 9
" Copyright: Copyright (C) 1999-2005 Charles E. Campbell, Jr. {{{1
" Date: Sep 30, 2008
" Version: 10
" Copyright: Copyright (C) 1999-2008 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,9 +20,15 @@
if exists("g:loaded_netrwFileHandlers") || &cp
finish
endif
let g:loaded_netrwFileHandlers= "v10"
if v:version < 702
echohl WarningMsg
echo "***warning*** this version of netrwFileHandlers needs vim 7.2"
echohl Normal
finish
endif
let s:keepcpo= &cpo
set cpo&vim
let g:loaded_netrwFileHandlers= "v9"
" ---------------------------------------------------------------------
" netrwFileHandlers#Invoke: {{{1
@@ -73,10 +79,10 @@ fun! s:NFH_html(pagefile)
if executable("mozilla")
" call Decho("executing !mozilla ".page)
exe "!mozilla ".g:netrw_shq.page.g:netrw_shq
exe "!mozilla ".shellescape(page,1)
elseif executable("netscape")
" call Decho("executing !netscape ".page)
exe "!netscape ".g:netrw_shq..page.g:netrw_shq
exe "!netscape ".shellescape(page,1)
else
" call Dret("s:NFH_html 0")
return 0
@@ -96,10 +102,10 @@ fun! s:NFH_htm(pagefile)
if executable("mozilla")
" call Decho("executing !mozilla ".page)
exe "!mozilla ".g:netrw_shq.page.g:netrw_shq
exe "!mozilla ".shellescape(page,1)
elseif executable("netscape")
" call Decho("executing !netscape ".page)
exe "!netscape ".g:netrw_shq.page.g:netrw_shq
exe "!netscape ".shellescape(page,1)
else
" call Dret("s:NFH_htm 0")
return 0
@@ -115,10 +121,10 @@ fun! s:NFH_jpg(jpgfile)
" call Dfunc("s:NFH_jpg(jpgfile<".a:jpgfile.">)")
if executable("gimp")
exe "silent! !gimp -s ".g:netrw_shq.a:jpgfile.g:netrw_shq
exe "silent! !gimp -s ".shellescape(a:jpgfile,1)
elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
" call Decho("silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".escape(a:jpgfile," []|'"))
exe "!".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".g:netrw_shq.a:jpgfile.g:netrw_shq
exe "!".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".shellescape(a:jpgfile,1)
else
" call Dret("s:NFH_jpg 0")
return 0
@@ -134,9 +140,9 @@ fun! s:NFH_gif(giffile)
" call Dfunc("s:NFH_gif(giffile<".a:giffile.">)")
if executable("gimp")
exe "silent! !gimp -s ".g:netrw_shq.a:giffile.g:netrw_shq
exe "silent! !gimp -s ".shellescape(a:giffile,1)
elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".g:netrw_shq.a:giffile.g:netrw_shq
exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".shellescape(a:giffile,1)
else
" call Dret("s:NFH_gif 0")
return 0
@@ -152,9 +158,9 @@ fun! s:NFH_png(pngfile)
" call Dfunc("s:NFH_png(pngfile<".a:pngfile.">)")
if executable("gimp")
exe "silent! !gimp -s ".g:netrw_shq.a:pngfile.g:netrw_shq
exe "silent! !gimp -s ".shellescape(a:pngfile,1)
elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".g:netrw_shq.a:pngfile.g:netrw_shq
exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".shellescape(a:pngfile,1)
else
" call Dret("s:NFH_png 0")
return 0
@@ -170,9 +176,9 @@ fun! s:NFH_pnm(pnmfile)
" call Dfunc("s:NFH_pnm(pnmfile<".a:pnmfile.">)")
if executable("gimp")
exe "silent! !gimp -s ".g:netrw_shq.a:pnmfile.g:netrw_shq
exe "silent! !gimp -s ".shellescape(a:pnmfile,1)
elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".g:netrw_shq.a:pnmfile.g:netrw_shq
exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".shellescape(a:pnmfile,1)
else
" call Dret("s:NFH_pnm 0")
return 0
@@ -190,7 +196,7 @@ fun! s:NFH_bmp(bmpfile)
if executable("gimp")
exe "silent! !gimp -s ".a:bmpfile
elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".g:netrw_shq.a:bmpfile.g:netrw_shq
exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".shellescape(a:bmpfile,1)
else
" call Dret("s:NFH_bmp 0")
return 0
@@ -205,9 +211,9 @@ endfun
fun! s:NFH_pdf(pdf)
" call Dfunc("s:NFH_pdf(pdf<".a:pdf.">)")
if executable("gs")
exe 'silent! !gs '.g:netrw_shq.a:pdf.g:netrw_shq
exe 'silent! !gs '.shellescape(a:pdf,1)
elseif executable("pdftotext")
exe 'silent! pdftotext -nopgbrk '.g:netrw_shq.a:pdf.g:netrw_shq
exe 'silent! pdftotext -nopgbrk '.shellescape(a:pdf,1)
else
" call Dret("s:NFH_pdf 0")
return 0
@@ -223,7 +229,7 @@ fun! s:NFH_doc(doc)
" call Dfunc("s:NFH_doc(doc<".a:doc.">)")
if executable("oowriter")
exe 'silent! !oowriter '.g:netrw_shq.a:doc.g:netrw_shq
exe 'silent! !oowriter '.shellescape(a:doc,1)
redraw!
else
" call Dret("s:NFH_doc 0")
@@ -240,7 +246,7 @@ fun! s:NFH_sxw(sxw)
" call Dfunc("s:NFH_sxw(sxw<".a:sxw.">)")
if executable("oowriter")
exe 'silent! !oowriter '.g:netrw_shq.a:sxw.g:netrw_shq
exe 'silent! !oowriter '.shellescape(a:sxw,1)
redraw!
else
" call Dret("s:NFH_sxw 0")
@@ -257,7 +263,7 @@ fun! s:NFH_xls(xls)
" call Dfunc("s:NFH_xls(xls<".a:xls.">)")
if executable("oocalc")
exe 'silent! !oocalc '.g:netrw_shq.a:xls.g:netrw_shq
exe 'silent! !oocalc '.shellescape(a:xls,1)
redraw!
else
" call Dret("s:NFH_xls 0")
@@ -274,15 +280,15 @@ fun! s:NFH_ps(ps)
" call Dfunc("s:NFH_ps(ps<".a:ps.">)")
if executable("gs")
" call Decho("exe silent! !gs ".a:ps)
exe "silent! !gs ".g:netrw_shq.a:ps.g:netrw_shq
exe "silent! !gs ".shellescape(a:ps,1)
redraw!
elseif executable("ghostscript")
" call Decho("exe silent! !ghostscript ".a:ps)
exe "silent! !ghostscript ".g:netrw_shq.a:ps.g:netrw_shq
exe "silent! !ghostscript ".shellescape(a:ps,1)
redraw!
elseif executable("gswin32")
" call Decho("exe silent! !gswin32 ".g:netrw_shq.a:ps.g:netrw_shq)
exe "silent! !gswin32 ".g:netrw_shq.a:ps.g:netrw_shq
" call Decho("exe silent! !gswin32 ".shellescape(a:ps,1))
exe "silent! !gswin32 ".shellescape(a:ps,1)
redraw!
else
" call Dret("s:NFH_ps 0")
@@ -298,16 +304,16 @@ endfun
fun! s:NFH_eps(eps)
" call Dfunc("s:NFH_eps()")
if executable("gs")
exe "silent! !gs ".g:netrw_shq.a:eps.g:netrw_shq
exe "silent! !gs ".shellescape(a:eps,1)
redraw!
elseif executable("ghostscript")
exe "silent! !ghostscript ".g:netrw_shq.a:eps.g:netrw_shq
exe "silent! !ghostscript ".shellescape(a:eps,1)
redraw!
elseif executable("ghostscript")
exe "silent! !ghostscript ".g:netrw_shq.a:eps.g:netrw_shq
exe "silent! !ghostscript ".shellescape(a:eps,1)
redraw!
elseif executable("gswin32")
exe "silent! !gswin32 ".g:netrw_shq.a:eps.g:netrw_shq
exe "silent! !gswin32 ".shellescape(a:eps,1)
redraw!
else
" call Dret("s:NFH_eps 0")
+12 -15
View File
@@ -1,7 +1,7 @@
" netrwSettings.vim: makes netrw settings simpler
" Date: Mar 11, 2008
" Date: Sep 03, 2008
" Maintainer: Charles E Campbell, Jr <drchipNOSPAM at campbellfamily dot biz>
" Version: 11
" Version: 13
" Copyright: Copyright (C) 1999-2007 Charles E. Campbell, Jr. {{{1
" Permission is hereby granted to use and distribute this code,
" with or without modifications, provided that this copyright
@@ -19,7 +19,13 @@
if exists("g:loaded_netrwSettings") || &cp
finish
endif
let g:loaded_netrwSettings = "v11"
let g:loaded_netrwSettings = "v13"
if v:version < 700
echohl WarningMsg
echo "***warning*** this version of netrwSettings needs vim 7.0"
echohl Normal
finish
endif
" ---------------------------------------------------------------------
" NetrwSettings: {{{1
@@ -82,8 +88,6 @@ fun! netrwSettings#NetrwSettings()
put = 'let g:netrw_ftpmode = '.g:netrw_ftpmode
put = 'let g:netrw_ignorenetrc = '.g:netrw_ignorenetrc
put = 'let g:netrw_sshport = '.g:netrw_sshport
let shqline= line("$")
put = 'let g:netrw_shq...'
put = 'let g:netrw_use_nt_rcp = '.g:netrw_use_nt_rcp
put = 'let g:netrw_win95ftp = '.g:netrw_win95ftp
let s:netrw_xfer_stop= line(".")
@@ -101,9 +105,8 @@ fun! netrwSettings#NetrwSettings()
else
put = 'let g:netrw_browsex_viewer = (not defined)'
endif
let cdescline= line("$")
put ='let g:netrw_cd_escape...'
put = 'let g:netrw_compress = '.g:netrw_compress
put = 'let g:netrw_cursorline = '.g:netrw_cursorline
let decompressline= line("$")
put ='let g:netrw_decompress...'
put = 'let g:netrw_dirhistmax = '.g:netrw_dirhistmax
@@ -137,10 +140,12 @@ fun! netrwSettings#NetrwSettings()
put = 'let g:netrw_silent = '.g:netrw_silent
put = 'let g:netrw_sort_by = '.g:netrw_sort_by
put = 'let g:netrw_sort_direction = '.g:netrw_sort_direction
put = 'let g:netrw_sort_options = '.g:netrw_sort_options
put = 'let g:netrw_sort_sequence = '.g:netrw_sort_sequence
put = 'let g:netrw_special_syntax = '.g:netrw_special_syntax
put = 'let g:netrw_ssh_browse_reject = '.g:netrw_ssh_browse_reject
put = 'let g:netrw_scpport = '.g:netrw_scpport
put = 'let g:netrw_sepchr = '.g:netrw_sepchr
put = 'let g:netrw_sshport = '.g:netrw_sshport
put = 'let g:netrw_timefmt = '.g:netrw_timefmt
let tmpfileescline= line("$")
@@ -159,14 +164,6 @@ fun! netrwSettings#NetrwSettings()
silent %s/= $/= ''/e
1
" Put in g:netrw_shq setting and g:netrw_cd_escape
" (deferred so as to avoid the quote manipulation just preceding)
if g:netrw_shq == "'"
call setline(shqline, 'let g:netrw_shq = "'.g:netrw_shq.'"')
else
call setline(shqline, "let g:netrw_shq = '".g:netrw_shq."'")
endif
call setline(cdescline, "let g:netrw_cd_escape = ".'"'.escape(g:netrw_cd_escape,'\"').'"')
call setline(decompressline,"let g:netrw_decompress = ".substitute(string(g:netrw_decompress),"^'\\(.*\\)'$",'\1',''))
call setline(fnameescline, "let g:netrw_fname_escape = '".escape(g:netrw_fname_escape,"'")."'")
call setline(globescline, "let g:netrw_glob_escape = '".escape(g:netrw_glob_escape,"'")."'")
+8 -8
View File
@@ -1,7 +1,7 @@
" Vim completion script
" Language: Ruby
" Maintainer: Mark Guzman <segfault@hasno.info>
" Info: $Id$
" Info: $Id: rubycomplete.vim,v 1.41 2008/06/30 06:50:45 segy Exp $
" URL: http://vim-ruby.rubyforge.org
" Anon CVS: See above site
" Release Coordinator: Doug Kearns <dougkearns@gmail.com>
@@ -301,7 +301,7 @@ class VimRubyCompletion
def get_buffer_entity(name, vimfun)
loading_allowed = VIM::evaluate("exists('g:rubycomplete_buffer_loading') && g:rubycomplete_buffer_loading")
return nil if loading_allowed != '1'
return nil if loading_allowed.to_i.zero?
return nil if /(\"|\')+/.match( name )
buf = VIM::Buffer.current
nums = eval( VIM::evaluate( vimfun % name ) )
@@ -368,7 +368,7 @@ class VimRubyCompletion
# this will be a little expensive.
loading_allowed = VIM::evaluate("exists('g:rubycomplete_buffer_loading') && g:rubycomplete_buffer_loading")
allow_aggressive_load = VIM::evaluate("exists('g:rubycomplete_classes_in_global') && g:rubycomplete_classes_in_global")
return [] if allow_aggressive_load != '1' || loading_allowed != '1'
return [] if allow_aggressive_load.to_i.zero? || loading_allowed.to_i.zero?
buf = VIM::Buffer.current
eob = buf.length
@@ -401,7 +401,7 @@ class VimRubyCompletion
def load_rails
allow_rails = VIM::evaluate("exists('g:rubycomplete_rails') && g:rubycomplete_rails")
return if allow_rails != '1'
return if allow_rails.to_i.zero?
buf_path = VIM::evaluate('expand("%:p")')
file_name = VIM::evaluate('expand("%:t")')
@@ -461,7 +461,7 @@ class VimRubyCompletion
def get_rails_helpers
allow_rails = VIM::evaluate("exists('g:rubycomplete_rails') && g:rubycomplete_rails")
rails_loaded = VIM::evaluate('s:rubycomplete_rails_loaded')
return [] if allow_rails != '1' || rails_loaded != '1'
return [] if allow_rails.to_i.zero? || rails_loaded.to_i.zero?
buf_path = VIM::evaluate('expand("%:p")')
buf_path.gsub!( /\\/, "/" )
@@ -511,7 +511,7 @@ class VimRubyCompletion
def add_rails_columns( cls )
allow_rails = VIM::evaluate("exists('g:rubycomplete_rails') && g:rubycomplete_rails")
rails_loaded = VIM::evaluate('s:rubycomplete_rails_loaded')
return [] if allow_rails != '1' || rails_loaded != '1'
return [] if allow_rails.to_i.zero? || rails_loaded.to_i.zero?
begin
eval( "#{cls}.establish_connection" )
@@ -534,7 +534,7 @@ class VimRubyCompletion
def get_rails_view_methods
allow_rails = VIM::evaluate("exists('g:rubycomplete_rails') && g:rubycomplete_rails")
rails_loaded = VIM::evaluate('s:rubycomplete_rails_loaded')
return [] if allow_rails != '1' || rails_loaded != '1'
return [] if allow_rails.to_i.zero? || rails_loaded.to_i.zero?
buf_path = VIM::evaluate('expand("%:p")')
buf_path.gsub!( /\\/, "/" )
@@ -580,7 +580,7 @@ class VimRubyCompletion
def get_completions(base)
loading_allowed = VIM::evaluate("exists('g:rubycomplete_buffer_loading') && g:rubycomplete_buffer_loading")
if loading_allowed == '1'
if loading_allowed.to_i == 1
load_requires
load_rails
end
+40 -11
View File
@@ -1,6 +1,6 @@
" Vim script to download a missing spell file
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2008 Jun 27
" Last Change: 2008 Nov 29
if !exists('g:spellfile_URL')
" Prefer using http:// when netrw should be able to use it, since
@@ -39,19 +39,22 @@ function! spellfile#LoadFile(lang)
let s:donedict[a:lang . &enc] = 1
" Find spell directories we can write in.
let dirlist = []
let dirchoices = '&Cancel'
for dir in split(globpath(&rtp, 'spell'), "\n")
if filewritable(dir) == 2
call add(dirlist, dir)
let dirchoices .= "\n&" . len(dirlist)
endif
endfor
let [dirlist, dirchoices] = spellfile#GetDirChoices()
if len(dirlist) == 0
if &verbose
let dir_to_create = spellfile#WritableSpellDir()
if &verbose || dir_to_create != ''
echomsg 'spellfile#LoadFile(): There is no writable spell directory.'
endif
return
if dir_to_create != ''
if confirm("Shall I create " . dir_to_create, "&Yes\n&No", 2) == 1
" After creating the directory it should show up in the list.
call mkdir(dir_to_create, "p")
let [dirlist, dirchoices] = spellfile#GetDirChoices()
endif
endif
if len(dirlist) == 0
return
endif
endif
let msg = 'Cannot find spell file for "' . a:lang . '" in ' . &enc
@@ -177,3 +180,29 @@ function! spellfile#Nread(fname)
unlet g:netrw_use_errorwindow
endif
endfunc
" Get a list of writable spell directories and choices for confirm().
function! spellfile#GetDirChoices()
let dirlist = []
let dirchoices = '&Cancel'
for dir in split(globpath(&rtp, 'spell'), "\n")
if filewritable(dir) == 2
call add(dirlist, dir)
let dirchoices .= "\n&" . len(dirlist)
endif
endfor
return [dirlist, dirchoices]
endfunc
function! spellfile#WritableSpellDir()
if has("unix")
" For Unix always use the $HOME/.vim directory
return $HOME . "/.vim/spell"
endif
for dir in split(&rtp, ',')
if filewritable(dir) == 2
return dir . "/spell"
endif
endfor
return ''
endfunction
+38 -11
View File
@@ -1,13 +1,19 @@
" Vim OMNI completion script for SQL
" Language: SQL
" Maintainer: David Fishburn <fishburn@ianywhere.com>
" Version: 6.0
" Last Change: Thu 03 Apr 2008 10:37:54 PM Eastern Daylight Time
" Maintainer: David Fishburn <dfishburn dot vim at gmail dot com>
" Version: 7.0
" Last Change: 2009 Jan 04
" Usage: For detailed help
" ":help sql.txt"
" or ":help ft-sql-omni"
" or read $VIMRUNTIME/doc/sql.txt
" History
" Version 7.0
" Better handling of object names
" Version 6.0
" 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.
@@ -22,7 +28,7 @@ endif
if exists('g:loaded_sql_completion')
finish
endif
let g:loaded_sql_completion = 50
let g:loaded_sql_completion = 70
" Maintains filename of dictionary
let s:sql_file_table = ""
@@ -106,10 +112,23 @@ function! sqlcomplete#Complete(findstart, base)
let begindot = 1
endif
while start > 0
if line[start - 1] =~ '\(\w\|\s\+\)'
" 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
break
" elseif line[start - 1] =~ '\(\w\|\s\+\)'
" let start -= 1
elseif line[start - 1] =~ '\w'
" If the previous character is word character continue back
let 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:
" table_name.column_name
" owner_name.table_name
" 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.
@@ -184,9 +203,10 @@ function! sqlcomplete#Complete(findstart, base)
endif
let compl_type_uc = substitute(compl_type, '\w\+', '\u&', '')
if s:sql_file_{compl_type} == ""
let s:sql_file_{compl_type} = DB_getDictionaryName(compl_type_uc)
endif
" Same call below, no need to do it twice
" if s:sql_file_{compl_type} == ""
" let s:sql_file_{compl_type} = DB_getDictionaryName(compl_type_uc)
" endif
let s:sql_file_{compl_type} = DB_getDictionaryName(compl_type_uc)
if s:sql_file_{compl_type} != ""
if filereadable(s:sql_file_{compl_type})
@@ -312,9 +332,16 @@ function! sqlcomplete#Complete(findstart, base)
endif
if base != ''
" Filter the list based on the first few characters the user
" entered
let expr = 'v:val '.(g:omni_sql_ignorecase==1?'=~?':'=~#').' "\\(^'.base.'\\|\\([^.]*\\)\\?'.base.'\\)"'
" Filter the list based on the first few characters the user entered.
" Check if the text matches at the beginning
" or
" Match to a owner.table or alias.column type match
" or
" Handle names with spaces "my table name"
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)
endif
+13 -4
View File
@@ -1,10 +1,15 @@
" Vim completion script
" Language: All languages, uses existing syntax highlighting rules
" Maintainer: David Fishburn <dfishburn.vim@gmail.com>
" Version: 4.0
" Last Change: Fri 26 Oct 2007 05:27:03 PM Eastern Daylight Time
" Maintainer: David Fishburn <dfishburn dot vim at gmail dot com>
" Version: 5.0
" Last Change: 2010 Jan 31
" Usage: For detailed help, ":help ft-syntax-omni"
" History
" Version 5.0
" When processing a list of syntax groups, the final group
" was missed in function SyntaxCSyntaxGroupItems.
"
" Set completion with CTRL-X CTRL-O to autoloaded function.
" This check is in place in case this script is
" sourced directly instead of using the autoload feature.
@@ -312,9 +317,13 @@ function! s:SyntaxCSyntaxGroupItems( group_name, syntax_full )
" \zs - start the match
" .\{-} - everything ...
" \ze - end the match
" \( - start a group or 2 potential matches
" \n\w - at the first newline starting with a character
" \| - 2nd potential match
" \%$ - matches end of the file or string
" \) - end a group
let syntax_group = matchstr(a:syntax_full,
\ "\n".a:group_name.'\s\+xxx\s\+\zs.\{-}\ze'."\n".'\w'
\ "\n".a:group_name.'\s\+xxx\s\+\zs.\{-}\ze\(\n\w\|\%$\)'
\ )
if syntax_group != ""
+214 -87
View File
@@ -1,13 +1,13 @@
" tar.vim: Handles browsing tarfiles
" AUTOLOAD PORTION
" Date: Jun 12, 2008
" Version: 16
" Date: Dec 28, 2009
" Version: 24
" 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-2008 Charles E. Campbell, Jr. {{{1
" Copyright: Copyright (C) 2005-2009 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,
@@ -16,19 +16,22 @@
" 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.
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
" ---------------------------------------------------------------------
" Load Once: {{{1
let s:keepcpo= &cpo
set cpo&vim
if &cp || exists("g:loaded_tar") || v:version < 700
if &cp || exists("g:loaded_tar")
finish
endif
let g:loaded_tar= "v16"
"call Decho("loading autoload/tar.vim")
if v:version < 701 || (v:version == 701 && !has("patch299"))
echoerr "(autoload/tar.vim) need vim v7.1 with patchlevel 299"
let g:loaded_tar= "v24"
if v:version < 702
echohl WarningMsg
echo "***warning*** this version of tar needs vim 7.2"
echohl Normal
finish
endif
let s:keepcpo= &cpo
set cpo&vim
"call Decho("loading autoload/tar.vim")
" ---------------------------------------------------------------------
" Default Settings: {{{1
@@ -44,7 +47,22 @@ endif
if !exists("g:tar_writeoptions")
let g:tar_writeoptions= "uf"
endif
if !exists("g:tar_copycmd")
if !exists("g:netrw_localcopycmd")
if has("win32") || has("win95") || has("win64") || has("win16")
if g:netrw_cygwin
let g:netrw_localcopycmd= "cp"
else
let g:netrw_localcopycmd= "copy"
endif
elseif has("unix") || has("macunix")
let g:netrw_localcopycmd= "cp"
else
let g:netrw_localcopycmd= ""
endif
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\)\=$'
@@ -56,6 +74,9 @@ if !exists("g:netrw_cygwin")
let g:netrw_cygwin= 0
endif
endif
if !exists("g:tar_extractcmd")
let g:tar_extractcmd= "tar -xf"
endif
" set up shell quoting character
if !exists("g:tar_shq")
@@ -88,7 +109,6 @@ fun! tar#Browse(tarfile)
if !executable(g:tar_cmd)
redraw!
echohl Error | echo '***error*** (tar#Browse) "'.g:tar_cmd.'" not available on your system'
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
let &report= repkeep
" call Dret("tar#Browse")
return
@@ -99,7 +119,6 @@ fun! tar#Browse(tarfile)
" if its an url, don't complain, let url-handlers such as vim do its thing
redraw!
echohl Error | echo "***error*** (tar#Browse) File not readable<".a:tarfile.">" | echohl None
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
endif
let &report= repkeep
" call Dret("tar#Browse : file<".a:tarfile."> not readable")
@@ -130,37 +149,42 @@ fun! tar#Browse(tarfile)
let tarfile= a:tarfile
if has("win32") && executable("cygpath")
" assuming cygwin
let tarfile=substitute(system("cygpath -u ".s:Escape(tarfile)),'\n$','','e')
let tarfile=substitute(system("cygpath -u ".shellescape(tarfile,0)),'\n$','','e')
endif
let curlast= line("$")
if tarfile =~# '\.\(gz\|tgz\)$'
" call Decho("1: exe silent r! gzip -d -c ".s:Escape(tarfile)." | ".g:tar_cmd." -".g:tar_browseoptions." - ")
exe "silent r! gzip -d -c -- ".s:Escape(tarfile)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
" 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." - "
elseif tarfile =~# '\.lrp'
" call Decho("2: exe silent r! cat -- ".s:Escape(tarfile)."|gzip -d -c -|".g:tar_cmd." -".g:tar_browseoptions." - ")
exe "silent r! cat -- ".s:Escape(tarfile)."|gzip -d -c -|".g:tar_cmd." -".g:tar_browseoptions." - "
" 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$'
" call Decho("3: exe silent r! bzip2 -d -c ".s:Escape(tarfile)." | ".g:tar_cmd." -".g:tar_browseoptions." - ")
exe "silent r! bzip2 -d -c -- ".s:Escape(tarfile)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
" 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$'
" 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." - "
else
" call Decho("4: exe silent r! ".g:tar_cmd." -".g:tar_browseoptions." ".s:Escape(tarfile))
exe "silent r! ".g:tar_cmd." -".g:tar_browseoptions." ".s:Escape(tarfile)
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)
endif
if v:shell_error != 0
redraw!
echohl WarningMsg | echo "***warning*** (tar#Browse) please check your g:tar_browseoptions<".g:tar_browseoptions.">"
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
" call Dret("tar#Browse : a:tarfile<".a:tarfile.">")
return
endif
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
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
silent %d
let eikeep= &ei
set ei=BufReadCmd,FileReadCmd
exe "r ".a:tarfile
exe "r ".fnameescape(a:tarfile)
let &ei= eikeep
1d
" call Dret("tar#Browse : a:tarfile<".a:tarfile.">")
@@ -183,6 +207,13 @@ fun! s:TarBrowseSelect()
let fname= getline(".")
" call Decho("fname<".fname.">")
if !exists("g:tar_secure") && fname =~ '^\s*-\|\s\+-'
redraw!
echohl WarningMsg | echo '***warning*** (tar#BrowseSelect) rejecting tarfile member<'.fname.'> because of embedded "-"'
" call Dret('tar#BrowseSelect : rejecting tarfile member<'.fname.'> because of embedded "-"')
return
endif
" sanity check
if fname =~ '^"'
let &report= repkeep
@@ -195,7 +226,7 @@ fun! s:TarBrowseSelect()
let curfile= expand("%")
if has("win32") && executable("cygpath")
" assuming cygwin
let tarfile=substitute(system("cygpath -u ".s:Escape(tarfile)),'\n$','','e')
let tarfile=substitute(system("cygpath -u ".shellescape(tarfile,0)),'\n$','','e')
endif
new
@@ -220,37 +251,52 @@ fun! tar#Read(fname,mode)
let fname = substitute(a:fname,'tarfile:.\{-}::\(.*\)$','\1','')
if has("win32") && executable("cygpath")
" assuming cygwin
let tarfile=substitute(system("cygpath -u ".s:Escape(tarfile)),'\n$','','e')
let tarfile=substitute(system("cygpath -u ".shellescape(tarfile,0)),'\n$','','e')
endif
" call Decho("tarfile<".tarfile.">")
" call Decho("fname<".fname.">")
if fname =~ '\.gz$' && executable("zcat")
if fname =~ '\.bz2$' && executable("bzcat")
let decmp= "|bzcat"
let doro = 1
elseif fname =~ '\.gz$' && executable("zcat")
let decmp= "|zcat"
let doro = 1
elseif fname =~ '\.bz2$' && executable("bzcat")
let decmp= "|bzcat"
elseif fname =~ '\.lzma$' && executable("lzcat")
let decmp= "|lzcat"
let doro = 1
else
let decmp=""
let doro = 0
if fname =~ '\.gz$\|\.bz2$\|\.Z$\|\.zip$'
if fname =~ '\.bz2$\|\.gz$\|\.lzma$\|\.zip$\|\.Z$'
setlocal bin
endif
endif
if tarfile =~# '\.\(gz\|tgz\)$'
" call Decho("5: exe silent r! gzip -d -c -- ".s:Escape(tarfile)."| ".g:tar_cmd.' -'.g:tar_readoptions.' - '.s:Escape(fname))
exe "silent r! gzip -d -c -- ".s:Escape(tarfile)."| ".g:tar_cmd." -".g:tar_readoptions." - ".s:Escape(fname).decmp
elseif tarfile =~# '\.lrp$'
" call Decho("6: exe silent r! cat ".s:Escape(tarfile)." | gzip -d -c - | ".g:tar_cmd." -".g:tar_readoptions." - ".s:Escape(fname).decmp)
exe "silent r! cat -- ".s:Escape(tarfile)." | gzip -d -c - | ".g:tar_cmd." -".g:tar_readoptions." - ".s:Escape(fname).decmp
elseif tarfile =~# '\.bz2$'
" call Decho("7: exe silent r! bzip2 -d -c ".s:Escape(tarfile)."| ".g:tar_cmd." -".g:tar_readoptions." - ".s:Escape(fname).decmp)
exe "silent r! bzip2 -d -c -- ".s:Escape(tarfile)."| ".g:tar_cmd." -".g:tar_readoptions." - ".s:Escape(fname).decmp
if exists("g:tar_secure")
let tar_secure= " -- "
else
" call Decho("8: exe silent r! ".g:tar_cmd." -".g:tar_readoptions." -- ".s:Escape(tarfile)." ".s:Escape(fname))
exe "silent r! ".g:tar_cmd." -".g:tar_readoptions." ".s:Escape(tarfile)." -- ".s:Escape(fname).decmp
let tar_secure= " "
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
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
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
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
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("8: exe silent r! ".g:tar_cmd." -".g:tar_readoptions.tar_secure.shellescape(tarfile,1)." ".shellescape(fname,1).decmp)
exe "silent r! ".g:tar_cmd." -".g:tar_readoptions.shellescape(tarfile,1)." ".tar_secure.shellescape(fname,1).decmp
endif
if doro
@@ -259,7 +305,7 @@ fun! tar#Read(fname,mode)
endif
let w:tarfile= a:fname
exe "file tarfile::".fname
exe "file tarfile::".fnameescape(fname)
" cleanup
0d
@@ -276,11 +322,17 @@ fun! tar#Write(fname)
let repkeep= &report
set report=10
if !exists("g:tar_secure") && a:fname =~ '^\s*-\|\s\+-'
redraw!
echohl WarningMsg | echo '***warning*** (tar#Write) rejecting tarfile member<'.a:fname.'> because of embedded "-"'
" call Dret('tar#Write : rejecting tarfile member<'.fname.'> because of embedded "-"')
return
endif
" sanity checks
if !executable(g:tar_cmd)
redraw!
echohl Error | echo '***error*** (tar#Browse) "'.g:tar_cmd.'" not available on your system'
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
let &report= repkeep
" call Dret("tar#Write")
return
@@ -288,7 +340,6 @@ fun! tar#Write(fname)
if !exists("*mkdir")
redraw!
echohl Error | echo "***error*** (tar#Write) sorry, mkdir() doesn't work on your system" | echohl None
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
let &report= repkeep
" call Dret("tar#Write")
return
@@ -309,7 +360,6 @@ fun! tar#Write(fname)
catch /^Vim\%((\a\+)\)\=:E344/
redraw!
echohl Error | echo "***error*** (tar#Write) cannot cd to temporary directory" | Echohl None
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
let &report= repkeep
" call Dret("tar#Write")
return
@@ -328,27 +378,33 @@ fun! tar#Write(fname)
let fname = substitute(w:tarfile,'tarfile:.\{-}::\(.*\)$','\1','')
" handle compressed archives
if tarfile =~# '\.gz'
call system("gzip -d -- ".tarfile)
let tarfile = substitute(tarfile,'\.gz','','e')
let compress= "gzip ".s:Escape(tarfile)
elseif tarfile =~# '\.tgz'
call system("gzip -d -- ".s:Escape(tarfile))
let tarfile = substitute(tarfile,'\.tgz','.tar','e')
let compress= "gzip -- ".s:Escape(tarfile)
let tgz = 1
elseif tarfile =~# '\.bz2'
call system("bzip2 -d -- ".s:Escape(tarfile))
if tarfile =~# '\.bz2'
call system("bzip2 -d -- ".shellescape(tarfile,0))
let tarfile = substitute(tarfile,'\.bz2','','e')
let compress= "bzip2 -- ".s:Escape(tarfile)
let compress= "bzip2 -- ".shellescape(tarfile,0)
" call Decho("compress<".compress.">")
elseif tarfile =~# '\.gz'
call system("gzip -d -- ".shellescape(tarfile,0))
let tarfile = substitute(tarfile,'\.gz','','e')
let compress= "gzip -- ".shellescape(tarfile,0)
" call Decho("compress<".compress.">")
elseif tarfile =~# '\.lzma'
call system("lzma -d -- ".shellescape(tarfile,0))
let tarfile = substitute(tarfile,'\.lzma','','e')
let compress= "lzma -- ".shellescape(tarfile,0)
" call Decho("compress<".compress.">")
elseif tarfile =~# '\.tgz'
call system("gzip -d -- ".shellescape(tarfile,0))
let tarfile = substitute(tarfile,'\.tgz','.tar','e')
let compress= "gzip -- ".shellescape(tarfile,0)
let tgz = 1
" call Decho("compress<".compress.">")
endif
" call Decho("tarfile<".tarfile.">")
" call Decho("compress<".compress.">")
if v:shell_error != 0
redraw!
echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".tarfile." with ".fname | echohl None
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
else
" call Decho("tarfile<".tarfile."> fname<".fname.">")
@@ -356,36 +412,43 @@ fun! tar#Write(fname)
if fname =~ '/'
let dirpath = substitute(fname,'/[^/]\+$','','e')
if executable("cygpath")
let dirpath = substitute(system("cygpath ".dirpath),'\n','','e')
let dirpath = substitute(system("cygpath ".shellescape(dirpath, 0)),'\n','','e')
endif
call mkdir(dirpath,"p")
endif
if tarfile !~ '/'
let tarfile= curdir.'/'.tarfile
endif
if tarfile =~ '^\s*-'
" A file name starting with a dash may be taken as an option. Prepend ./ to avoid that.
let tarfile = substitute(tarfile, '-', './-', '')
endif
" call Decho("tarfile<".tarfile."> fname<".fname.">")
if exists("g:tar_secure")
let tar_secure= " -- "
else
let tar_secure= " "
endif
exe "w! ".fnameescape(fname)
if executable("cygpath")
let tarfile = substitute(system("cygpath ".s:Escape(tarfile)),'\n','','e')
let tarfile = substitute(system("cygpath ".shellescape(tarfile,0)),'\n','','e')
endif
" delete old file from tarfile
" call Decho("system(tar --delete -f ".s:Escape(tarfile)." -- ".s:Escape(fname).")")
call system("tar --delete -f ".s:Escape(tarfile)." -- ".s:Escape(fname))
" call Decho("system(".g:tar_cmd." --delete -f ".shellescape(tarfile,0)." -- ".shellescape(fname,0).")")
call system(g:tar_cmd." --delete -f ".shellescape(tarfile,0).tar_secure.shellescape(fname,0))
if v:shell_error != 0
redraw!
echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".fnameescape(tarfile)." with ".fnameescape(fname) | echohl None
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
else
" update tarfile with new file
" call Decho("tar -".g:tar_writeoptions." ".s:Escape(tarfile)." -- ".s:Escape(fname))
call system("tar -".g:tar_writeoptions." ".s:Escape(tarfile)." -- ".s:Escape(fname))
" call Decho(g:tar_cmd." -".g:tar_writeoptions." ".shellescape(tarfile,0).tar_secure.shellescape(fname,0))
call system(g:tar_cmd." -".g:tar_writeoptions." ".shellescape(tarfile,0).tar_secure.shellescape(fname,0))
if v:shell_error != 0
redraw!
echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".fnameescape(tarfile)." with ".fnameescape(fname) | echohl None
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
elseif exists("compress")
" call Decho("call system(".compress.")")
call system(compress)
@@ -401,13 +464,13 @@ fun! tar#Write(fname)
" call Decho("handle writing <".tarfile."> across network to <".s:tblfile_{winnr()}.">")
let tblfile= s:tblfile_{winnr()}
1split|enew
let binkeep= &binary
let binkeep= &l:binary
let eikeep = &ei
set binary ei=all
exe "e! ".tarfile
exe "e! ".fnameescape(tarfile)
call netrw#NetWrite(tblfile)
let &ei = eikeep
let &binary = binkeep
let &ei = eikeep
let &l:binary = binkeep
q!
unlet s:tblfile_{winnr()}
endif
@@ -416,7 +479,7 @@ fun! tar#Write(fname)
" cleanup and restore current directory
cd ..
call s:Rmdir("_ZIPVIM_")
exe "cd ".escape(curdir,' \')
exe "cd ".fnameescape(curdir)
setlocal nomod
let &report= repkeep
@@ -424,34 +487,98 @@ fun! tar#Write(fname)
endfun
" ---------------------------------------------------------------------
" Rmdir: {{{2
" s:Rmdir: {{{2
fun! s:Rmdir(fname)
" call Dfunc("Rmdir(fname<".a:fname.">)")
if has("unix")
call system("/bin/rm -rf -- ".s:Escape(a:fname))
call system("/bin/rm -rf -- ".shellescape(a:fname,0))
elseif has("win32") || has("win95") || has("win64") || has("win16")
if &shell =~? "sh$"
call system("/bin/rm -rf -- ".s:Escape(a:fname))
call system("/bin/rm -rf -- ".shellescape(a:fname,0))
else
call system("del /S ".s:Escape(a:fname))
call system("del /S ".shellescape(a:fname,0))
endif
endif
" call Dret("Rmdir")
endfun
" ---------------------------------------------------------------------
" s:Escape: {{{2
fun s:Escape(name)
" shellescape() was added by patch 7.0.111
if exists("*shellescape")
let qnameq= shellescape(a:name)
else
let qnameq= g:tar_shq . a:name . g:tar_shq
" tar#Vimuntar: installs a tarball in the user's .vim / vimfiles directory {{{2
fun! tar#Vimuntar(...)
" call Dfunc("tar#Vimuntar() a:0=".a:0." a:1<".(exists("a:1")? a:1 : "-n/a-").">")
let tarball = expand("%")
" call Decho("tarball<".tarball.">")
let tarbase = substitute(tarball,'\..*$','','')
" call Decho("tarbase<".tarbase.">")
let tarhome = expand("%:p")
if has("win32") || has("win95") || has("win64") || has("win16")
let tarhome= substitute(tarhome,'\\','/','g')
endif
return qnameq
let tarhome= substitute(tarhome,'/[^/]*$','','')
" call Decho("tarhome<".tarhome.">")
let tartail = expand("%:t")
" call Decho("tartail<".tartail.">")
let curdir = getcwd()
" call Decho("curdir <".curdir.">")
" set up vimhome
if a:0 > 0 && a:1 != ""
let vimhome= a:1
else
let vimhome= vimball#VimballHome()
endif
" call Decho("vimhome<".vimhome.">")
" call Decho("curdir<".curdir."> vimhome<".vimhome.">")
if simplify(curdir) != simplify(vimhome)
" copy (possibly compressed) tarball to .vim/vimfiles
" call Decho(netrw#WinPath(g:tar_copycmd)." ".shellescape(tartail)." ".shellescape(vimhome))
call system(netrw#WinPath(g:tar_copycmd)." ".shellescape(tartail)." ".shellescape(vimhome))
" call Decho("exe cd ".fnameescape(vimhome))
exe "cd ".fnameescape(vimhome)
endif
" call Decho("getcwd<".getcwd().">")
" if necessary, decompress the tarball; then, extract it
if tartail =~ '\.tgz'
if executable("gunzip")
silent exe "!gunzip ".shellescape(tartail)
elseif executable("gzip")
silent exe "!gzip -d ".shellescape(tartail)
else
echoerr "unable to decompress<".tartail."> on this sytem"
if simplify(curdir) != simplify(tarhome)
" remove decompressed tarball, restore directory
" call Decho("delete(".tartail.".tar)")
call delete(tartail.".tar")
" call Decho("exe cd ".fnameescape(curdir))
exe "cd ".fnameescape(curdir)
endif
" call Dret("tar#Vimuntar")
return
endif
else
call vimball#Decompress(tartail,0)
endif
let extractcmd= netrw#WinPath(g:tar_extractcmd)
" call Decho("system(".extractcmd." ".shellescape(tarbase.".tar").")")
call system(extractcmd." ".shellescape(tarbase.".tar"))
" set up help
if filereadable("doc/".tarbase.".txt")
" call Decho("exe helptags ".getcwd()."/doc")
exe "helptags ".getcwd()."/doc"
endif
if simplify(tarhome) != simplify(vimhome)
" remove decompressed tarball, restore directory
call delete(vimhome."/".tarbase.".tar")
exe "cd ".fnameescape(curdir)
endif
" call Dret("tar#Vimuntar")
endfun
" ---------------------------------------------------------------------
" =====================================================================
" Modelines And Restoration: {{{1
let &cpo= s:keepcpo
unlet s:keepcpo
+73 -122
View File
@@ -1,9 +1,9 @@
" vimball.vim : construct a file containing both paths and files
" Author: Charles E. Campbell, Jr.
" Date: Jun 05, 2008
" Version: 27
" Date: Dec 28, 2009
" Version: 30
" GetLatestVimScripts: 1502 1 :AutoInstall: vimball.vim
" Copyright: (c) 2004-2008 by Charles E. Campbell, Jr.
" Copyright: (c) 2004-2009 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.
@@ -11,11 +11,17 @@
" ---------------------------------------------------------------------
" Load Once: {{{1
if &cp || exists("g:loaded_vimball") || v:version < 700
if &cp || exists("g:loaded_vimball")
finish
endif
let s:keepcpo = &cpo
let g:loaded_vimball = "v27"
let g:loaded_vimball = "v30"
if v:version < 702
echohl WarningMsg
echo "***warning*** this version of vimball needs vim 7.2"
echohl Normal
finish
endif
let s:keepcpo= &cpo
set cpo&vim
"DechoTabOn
@@ -52,30 +58,6 @@ if !exists("s:USAGE")
call vimball#ShowMesg(s:WARNING,"(vimball) g:vimball_mkdir undefined")
endif
endif
" set up shell quoting character
if exists("g:vimball_shq") && !exists("g:netrw_shq")
let g:netrw_shq= g:vimball_shq
endif
if !exists("g:netrw_shq")
if exists("&shq") && &shq != ""
let g:netrw_shq= &shq
elseif has("win32") || has("win95") || has("win64") || has("win16")
if g:netrw_cygwin
let g:netrw_shq= "'"
else
let g:netrw_shq= '"'
endif
else
let g:netrw_shq= "'"
endif
" call Decho("g:netrw_shq<".g:netrw_shq.">")
endif
" set up escape string (used to protect paths)
if !exists("g:vimball_path_escape")
let g:vimball_path_escape= ' ;#%'
endif
endif
" =====================================================================
@@ -106,8 +88,8 @@ fun! vimball#MkVimball(line1,line2,writelevel,...) range
let vbname= vbname.'.vba'
endif
" call Decho("vbname<".vbname.">")
if a:1 =~ '[\/]'
call vimball#ShowMesg(s:ERROR,"(MkVimball) vimball name<".a:1."> should not include slashes")
if !a:writelevel && a:1 =~ '[\/]'
call vimball#ShowMesg(s:ERROR,"(MkVimball) vimball name<".a:1."> should not include slashes; use ! to insist")
" call Dret("MkVimball : vimball name<".a:1."> should not include slashes")
return
endif
@@ -125,7 +107,7 @@ fun! vimball#MkVimball(line1,line2,writelevel,...) range
let home= expand(a:2)
else
" use first existing directory from rtp
let home= s:VimballHome()
let home= vimball#VimballHome()
endif
" save current directory
@@ -169,9 +151,8 @@ fun! vimball#MkVimball(line1,line2,writelevel,...) range
call setline(lastline+1,0)
" write the file from the tab
let svfilepath= s:Path(svfile,'')
" call Decho("exe $r ".fnameescape(svfilepath))
exe "$r ".fnameescape(svfilepath)
" call Decho("exe $r ".fnameescape(svfile))
exe "$r ".fnameescape(svfile)
call setline(lastline+1,line("$") - lastline - 1)
" call Decho("lastline=".lastline." line$=".line("$"))
@@ -186,13 +167,11 @@ fun! vimball#MkVimball(line1,line2,writelevel,...) range
call s:ChgDir(curdir)
setlocal ff=unix
if a:writelevel
let vbnamepath= s:Path(vbname,'')
" call Decho("exe w! ".fnameescape(vbnamepath))
exe "w! ".fnameescape(vbnamepath)
" call Decho("exe w! ".fnameescape(vbname))
exe "w! ".fnameescape(vbname)
else
let vbnamepath= s:Path(vbname,'')
" call Decho("exe w ".fnameescape(vbnamepath))
exe "w ".fnameescape(vbnamepath)
" call Decho("exe w ".fnameescape(vbname))
exe "w ".fnameescape(vbname)
endif
" call Decho("Vimball<".vbname."> created")
echo "Vimball<".vbname."> created"
@@ -215,13 +194,13 @@ endfun
fun! vimball#Vimball(really,...)
" call Dfunc("vimball#Vimball(really=".a:really.") a:0=".a:0)
if v:version < 701 || (v:version == 701 && !has("patch299"))
echoerr "This version of vimball requires vim 7.1 with patch 299"
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")
return
endif
if getline(1) !~ '^" Vimball Archiver by Charles E. Campbell, Jr., Ph.D.$'
if getline(1) !~ '^" Vimball Archiver'
echoerr "(Vimball) The current file does not appear to be a Vimball!"
" call Dret("vimball#Vimball")
return
@@ -243,7 +222,7 @@ fun! vimball#Vimball(really,...)
if a:0 > 0
let home= expand(a:1)
else
let home= s:VimballHome()
let home= vimball#VimballHome()
endif
" call Decho("home<".home.">")
@@ -275,7 +254,9 @@ 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 = getline(linenr+1)+0
let fsize = substitute(getline(linenr+1),'^\(\d\+\).\{-}$','\1','')+0
let fenc = substitute(getline(linenr+1),'^\d\+\s*\(\S\+\)$','\1','')
let filecnt = filecnt + 1
" call Decho("fname<".fname."> fsize=".fsize." filecnt=".filecnt)
@@ -310,7 +291,7 @@ fun! vimball#Vimball(really,...)
if !isdirectory(dirname)
" call Decho("making <".dirname.">")
if exists("g:vimball_mkdir")
call system(g:vimball_mkdir." ".s:Escape(dirname))
call system(g:vimball_mkdir." ".shellescape(dirname))
else
call mkdir(dirname)
endif
@@ -338,11 +319,15 @@ fun! vimball#Vimball(really,...)
" write tab to file
if a:really
let fnamepath= s:Path(home."/".fname,'')
let fnamepath= home."/".fname
" call Decho("exe w! ".fnameescape(fnamepath))
exe "silent w! ".fnameescape(fnamepath)
echo "wrote ".fnamepath
call s:RecordInVar(home,"call delete('".fnameescape(fnamepath)."')")
if fenc != ""
exe "silent w! ++enc=".fnameescape(fenc)." ".fnameescape(fnamepath)
else
exe "silent w! ".fnameescape(fnamepath)
endif
echo "wrote ".fnameescape(fnamepath)
call s:RecordInVar(home,"call delete('".fnamepath."')")
endif
" return to tab with vimball
@@ -364,9 +349,9 @@ fun! vimball#Vimball(really,...)
" set up help
" call Decho("about to set up help: didhelp<".didhelp.">")
if didhelp != ""
let htpath= s:Path(home."/".didhelp,"")
let htpath= home."/".didhelp
" call Decho("exe helptags ".htpath)
exe "helptags ".htpath
exe "helptags ".fnameescape(htpath)
echo "did helptags"
endif
@@ -421,7 +406,7 @@ fun! vimball#RmVimball(...)
if a:0 >= 2
let home= expand(a:2)
else
let home= s:VimballHome()
let home= vimball#VimballHome()
endif
let curdir = getcwd()
" call Decho("home <".home.">")
@@ -435,19 +420,20 @@ fun! vimball#RmVimball(...)
keepalt keepjumps 1split
silent! keepalt keepjumps e .VimballRecord
let keepsrch= @/
" call Decho("search for ^".curfile.".vba:")
" call Decho("search for ^".curfile."[-0-9.]*.vba:")
if search('^'.curfile.": ".'cw')
" call Decho('search for ^\M'.curfile.'.\m: ')
" call Decho('search for ^\M'.curfile.'.\mvba: ')
" call Decho('search for ^\M'.curfile.'\m[-0-9.]*\.vba: ')
if search('^\M'.curfile."\m: ".'cw')
let foundit= 1
elseif search('^'.curfile.".vba: ",'cw')
elseif search('^\M'.curfile.".\mvba: ",'cw')
let foundit= 1
elseif search('^'.curfile.'[-0-9.]*.vba: ','cw')
elseif search('^\M'.curfile.'\m[-0-9.]*\.vba: ','cw')
let foundit= 1
else
let foundit = 0
endif
if foundit
let exestring = substitute(getline("."),'^'.curfile.'\S\{-}\.vba: ','','')
let exestring = substitute(getline("."),'^\M'.curfile.'\m\S\{-}\.vba: ','','')
let s:VBRstring= substitute(exestring,'call delete(','','g')
let s:VBRstring= substitute(s:VBRstring,"[')]",'','g')
" call Decho("exe ".exestring)
@@ -475,62 +461,62 @@ endfun
" ---------------------------------------------------------------------
" vimball#Decompress: attempts to automatically decompress vimballs {{{2
fun! vimball#Decompress(fname)
" call Dfunc("Decompress(fname<".a:fname.">)")
fun! vimball#Decompress(fname,...)
" call Dfunc("Decompress(fname<".a:fname.">) a:0=".a:0)
" decompression:
if expand("%") =~ '.*\.gz' && executable("gunzip")
" handle *.gz with gunzip
silent exe "!gunzip ".s:Escape(a:fname)
silent exe "!gunzip ".shellescape(a:fname)
if v:shell_error != 0
call vimball#ShowMesg(s:WARNING,"(vimball#Decompress) gunzip may have failed with <".a:fname.">")
endif
let fname= substitute(a:fname,'\.gz$','','')
exe "e ".escape(fname,' \')
call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)")
if a:0 == 0| call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)") | endif
elseif expand("%") =~ '.*\.gz' && executable("gzip")
" handle *.gz with gzip -d
silent exe "!gzip -d ".s:Escape(a:fname)
silent exe "!gzip -d ".shellescape(a:fname)
if v:shell_error != 0
call vimball#ShowMesg(s:WARNING,'(vimball#Decompress) "gzip -d" may have failed with <'.a:fname.">")
endif
let fname= substitute(a:fname,'\.gz$','','')
exe "e ".escape(fname,' \')
call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)")
if a:0 == 0| call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)") | endif
elseif expand("%") =~ '.*\.bz2' && executable("bunzip2")
" handle *.bz2 with bunzip2
silent exe "!bunzip2 ".s:Escape(a:fname)
silent exe "!bunzip2 ".shellescape(a:fname)
if v:shell_error != 0
call vimball#ShowMesg(s:WARNING,"(vimball#Decompress) bunzip2 may have failed with <".a:fname.">")
endif
let fname= substitute(a:fname,'\.bz2$','','')
exe "e ".escape(fname,' \')
call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)")
if a:0 == 0| call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)") | endif
elseif expand("%") =~ '.*\.bz2' && executable("bzip2")
" handle *.bz2 with bzip2 -d
silent exe "!bzip2 -d ".s:Escape(a:fname)
silent exe "!bzip2 -d ".shellescape(a:fname)
if v:shell_error != 0
call vimball#ShowMesg(s:WARNING,'(vimball#Decompress) "bzip2 -d" may have failed with <'.a:fname.">")
endif
let fname= substitute(a:fname,'\.bz2$','','')
exe "e ".escape(fname,' \')
call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)")
if a:0 == 0| call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)") | endif
elseif expand("%") =~ '.*\.zip' && executable("unzip")
" handle *.zip with unzip
silent exe "!unzip ".s:Escape(a:fname)
silent exe "!unzip ".shellescape(a:fname)
if v:shell_error != 0
call vimball#ShowMesg(s:WARNING,"(vimball#Decompress) unzip may have failed with <".a:fname.">")
endif
let fname= substitute(a:fname,'\.zip$','','')
exe "e ".escape(fname,' \')
call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)")
if a:0 == 0| call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)") | endif
endif
set noma bt=nofile fmr=[[[,]]] fdm=marker
if a:0 == 0| setlocal noma bt=nofile fmr=[[[,]]] fdm=marker | endif
" call Dret("Decompress")
endfun
@@ -539,20 +525,21 @@ endfun
" vimball#ShowMesg: {{{2
fun! vimball#ShowMesg(level,msg)
" call Dfunc("vimball#ShowMesg(level=".a:level." msg<".a:msg.">)")
let rulerkeep = &ruler
let showcmdkeep = &showcmd
set noruler noshowcmd
redraw!
if &fo =~ '[ta]'
echomsg "***vimball*** " a:msg
echomsg "***vimball*** ".a:msg
else
if a:level == s:WARNING || a:level == s:USAGE
echohl WarningMsg
elseif a:level == s:ERROR
echohl Error
endif
echomsg "***vimball*** " a:msg
echomsg "***vimball*** ".a:msg
echohl None
endif
@@ -577,27 +564,6 @@ fun! s:ChgDir(newdir)
" call Dret("ChgDir : curdir<".getcwd().">")
endfun
" ---------------------------------------------------------------------
" s:Path: prepend and append quotes and do escaping {{{2
fun! s:Path(cmd,quote)
" call Dfunc("Path(cmd<".a:cmd."> quote<".a:quote.">) vimball_path_escape<".g:vimball_path_escape.">")
if (has("win32") || has("win95") || has("win64") || has("win16"))
" let cmdpath= a:quote.substitute(a:cmd,'/','\\','g').a:quote
let cmdpath= a:quote.substitute(a:cmd,'\\','/','g').a:quote
" call Decho("cmdpath<".cmdpath."> (win32 mod)")
else
let cmdpath= a:quote.a:cmd.a:quote
" call Decho("cmdpath<".cmdpath."> (not-win32 mod)")
endif
if a:quote == "" && g:vimball_path_escape !~ ' '
let cmdpath= escape(cmdpath,' ')
" call Decho("cmdpath<".cmdpath."> (empty quote case)")
endif
let cmdpath= escape(cmdpath,g:vimball_path_escape)
" call Dret("Path <".cmdpath.">")
return cmdpath
endfun
" ---------------------------------------------------------------------
" s:RecordInVar: record a un-vimball command in the .VimballRecord file {{{2
fun! s:RecordInVar(home,cmd)
@@ -670,9 +636,9 @@ fun! s:RecordInFile(home)
endfun
" ---------------------------------------------------------------------
" s:VimballHome: determine/get home directory path (usually from rtp) {{{2
fun! s:VimballHome()
" call Dfunc("VimballHome()")
" vimball#VimballHome: determine/get home directory path (usually from rtp) {{{2
fun! vimball#VimballHome()
" call Dfunc("vimball#VimballHome()")
if exists("g:vimball_home")
let home= g:vimball_home
else
@@ -698,14 +664,14 @@ fun! s:VimballHome()
if !isdirectory(home)
if exists("g:vimball_mkdir")
" call Decho("home<".home."> isn't a directory -- making it now with g:vimball_mkdir<".g:vimball_mkdir.">")
" call Decho("system(".g:vimball_mkdir." ".s:Escape(home).")")
call system(g:vimball_mkdir." ".s:Escape(home))
" call Decho("system(".g:vimball_mkdir." ".shellescape(home).")")
call system(g:vimball_mkdir." ".shellescape(home))
else
" call Decho("home<".home."> isn't a directory -- making it now with mkdir()")
call mkdir(home)
endif
endif
" call Dret("VimballHome <".home.">")
" call Dret("vimball#VimballHome <".home.">")
return home
endfun
@@ -719,14 +685,14 @@ fun! vimball#SaveSettings()
let s:acdkeep = &acd
endif
let s:eikeep = &ei
let s:fenkeep = &fen
let s:fenkeep = &l:fen
let s:hidkeep = &hidden
let s:ickeep = &ic
let s:lzkeep = &lz
let s:pmkeep = &pm
let s:repkeep = &report
let s:vekeep = &ve
let s:ffkeep = &ff
let s:ffkeep = &l:ff
if exists("&acd")
setlocal ei=all ve=all noacd nofen noic report=999 nohid bt= ma lz pm= ff=unix
else
@@ -745,7 +711,7 @@ fun! vimball#RestoreSettings()
if exists("&acd")
let &acd = s:acdkeep
endif
let &fen = s:fenkeep
let &l:fen = s:fenkeep
let &hidden = s:hidkeep
let &ic = s:ickeep
let &lz = s:lzkeep
@@ -753,7 +719,7 @@ fun! vimball#RestoreSettings()
let &report = s:repkeep
let &ve = s:vekeep
let &ei = s:eikeep
let &ff = s:ffkeep
let &l:ff = s:ffkeep
if s:makeep[0] != 0
" restore mark a
" call Decho("restore mark-a: makeep=".string(makeep))
@@ -766,21 +732,6 @@ fun! vimball#RestoreSettings()
" call Dret("RestoreSettings")
endfun
" ---------------------------------------------------------------------
" s:Escape: {{{2
fun s:Escape(name)
" shellescape() was added by patch 7.0.111
if exists("*shellescape")
return shellescape(a:name)
endif
return g:netrw_shq . a:name . g:netrw_shq
endfun
" ---------------------------------------------------------------------
" Restore:
let &cpo= s:keepcpo
unlet s:keepcpo
" ---------------------------------------------------------------------
" Modelines: {{{1
" vim: fdm=marker
+40 -35
View File
@@ -1,7 +1,7 @@
" zip.vim: Handles browsing zipfiles
" AUTOLOAD PORTION
" Date: Jun 12, 2008
" Version: 18
" Date: Jul 30, 2008
" Version: 22
" 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
@@ -22,7 +22,7 @@ if &cp || exists("g:loaded_zip") || v:version < 700
finish
endif
let g:loaded_zip = "v18"
let g:loaded_zip = "v22"
let s:zipfile_escape = ' ?&;\'
let s:ERROR = 2
let s:WARNING = 1
@@ -58,6 +58,12 @@ fun! zip#Browse(zipfile)
set report=10
" sanity checks
if !exists("*fnameescape")
if &verbose > 1
echoerr "the zip plugin is not available (your vim doens't support fnameescape())"
endif
return
endif
if !executable(g:zip_unzipcmd)
redraw!
echohl Error | echo "***error*** (zip#Browse) unzip not available on your system"
@@ -91,23 +97,24 @@ fun! zip#Browse(zipfile)
set ft=tar
" give header
exe "$put ='".'\"'." zip.vim version ".g:loaded_zip."'"
exe "$put ='".'\"'." Browsing zipfile ".a:zipfile."'"
exe "$put ='".'\"'." Select a file with cursor and press ENTER"."'"
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 Decho("exe silent r! ".g:zip_unzipcmd." -l ".s:QuoteFileDir(a:zipfile))
exe "silent r! ".g:zip_unzipcmd." -l ".s:QuoteFileDir(a:zipfile)
" 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)
if v:shell_error != 0
redraw!
echohl WarningMsg | echo "***warning*** (zip#Browse) ".a:zipfile." is not a zip file" | echohl None
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
let eikeep= &ei
set ei=BufReadCmd,FileReadCmd
exe "r ".a:zipfile
exe "r ".fnameescape(a:zipfile)
let &ei= eikeep
1d
" call Dret("zip#Browse")
@@ -166,8 +173,8 @@ fun! s:ZipBrowseSelect()
wincmd _
endif
let s:zipfile_{winnr()}= curfile
" call Decho("exe e zipfile:".escape(zipfile,s:zipfile_escape).'::'.escape(fname,s:zipfile_escape))
exe "e zipfile:".escape(zipfile,s:zipfile_escape).'::'.escape(fname,s:zipfile_escape)
" call Decho("exe e ".fnameescape("zipfile:".zipfile.'::'.fname))
exe "e ".fnameescape("zipfile:".zipfile.'::'.fname)
filetype detect
let &report= repkeep
@@ -192,8 +199,8 @@ fun! zip#Read(fname,mode)
" call Decho("zipfile<".zipfile.">")
" call Decho("fname <".fname.">")
" call Decho("exe r! ".g:zip_unzipcmd." -p ".s:QuoteFileDir(zipfile)." ".s:QuoteFileDir(fname))
exe "silent r! ".g:zip_unzipcmd." -p ".s:QuoteFileDir(zipfile)." ".s:QuoteFileDir(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)
" cleanup
0d
@@ -266,7 +273,7 @@ fun! zip#Write(fname)
if fname =~ '/'
let dirpath = substitute(fname,'/[^/]\+$','','e')
if executable("cygpath")
let dirpath = substitute(system("cygpath ".dirpath),'\n','','e')
let dirpath = substitute(system("cygpath ".s:Escape(dirpath,0)),'\n','','e')
endif
" call Decho("mkdir(dirpath<".dirpath.">,p)")
call mkdir(dirpath,"p")
@@ -276,17 +283,17 @@ fun! zip#Write(fname)
endif
" call Decho("zipfile<".zipfile."> fname<".fname.">")
exe "w! ".escape(fname,s:zipfile_escape)
exe "w! ".fnameescape(fname)
if executable("cygpath")
let zipfile = substitute(system("cygpath ".zipfile),'\n','','e')
let zipfile = substitute(system("cygpath ".s:Escape(zipfile,0)),'\n','','e')
endif
if (has("win32") || has("win95") || has("win64") || has("win16")) && &shell !~? 'sh$'
let fname = substitute(fname, '[', '[[]', 'g')
endif
" call Decho(g:zip_zipcmd." -u ".s:QuoteFileDir(zipfile)." ".s:QuoteFileDir(fname))
call system(g:zip_zipcmd." -u ".s:QuoteFileDir(zipfile)." ".s:QuoteFileDir(fname))
" call Decho(g:zip_zipcmd." -u ".s:Escape(fnamemodify(zipfile,":p"),0)." ".s:Escape(fname,0))
call system(g:zip_zipcmd." -u ".s:Escape(fnamemodify(zipfile,":p"),0)." ".s:Escape(fname,0))
if v:shell_error != 0
redraw!
echohl Error | echo "***error*** (zip#Write) sorry, unable to update ".zipfile." with ".fname | echohl None
@@ -300,7 +307,7 @@ fun! zip#Write(fname)
let binkeep= &binary
let eikeep = &ei
set binary ei=all
exe "e! ".zipfile
exe "e! ".fnameescape(zipfile)
call netrw#NetWrite(netzipfile)
let &ei = eikeep
let &binary = binkeep
@@ -320,11 +327,15 @@ fun! zip#Write(fname)
endfun
" ---------------------------------------------------------------------
" QuoteFileDir: {{{2
fun! s:QuoteFileDir(fname)
" call Dfunc("QuoteFileDir(fname<".a:fname.">)")
if has("*shellescape")
let qnameq= shellescape(a:fname)
" s:Escape: {{{2
fun! s:Escape(fname,isfilt)
" call Dfunc("QuoteFileDir(fname<".a:fname."> isfilt=".a:isfilt.")")
if exists("*shellescape")
if a:isfilt
let qnameq= shellescape(a:fname,1)
else
let qnameq= shellescape(a:fname)
endif
else
let qnameq= g:zip_shq.escape(a:fname,g:zip_shq).g:zip_shq
endif
@@ -337,14 +348,8 @@ endfun
fun! s:ChgDir(newdir,errlvl,errmsg)
" call Dfunc("ChgDir(newdir<".a:newdir."> errlvl=".a:errlvl." errmsg<".a:errmsg.">)")
if (has("win32") || has("win95") || has("win64") || has("win16")) && &shell !~? 'sh$'
let newdir= escape(a:newdir,' ')
else
let newdir= escape(a:newdir,'\ ')
endif
try
exe "cd ".newdir
exe "cd ".fnameescape(a:newdir)
catch /^Vim\%((\a\+)\)\=:E344/
redraw!
if a:errlvl == s:NOTE
@@ -364,13 +369,13 @@ fun! s:ChgDir(newdir,errlvl,errmsg)
endfun
" ---------------------------------------------------------------------
" Rmdir: {{{2
" s:Rmdir: {{{2
fun! s:Rmdir(fname)
" call Dfunc("Rmdir(fname<".a:fname.">)")
if (has("win32") || has("win95") || has("win64") || has("win16")) && &shell !~? 'sh$'
call system("rmdir /S/Q ".s:QuoteFileDir(a:fname))
call system("rmdir /S/Q ".s:Escape(a:fname,0))
else
call system("/bin/rm -rf ".s:QuoteFileDir(a:fname))
call system("/bin/rm -rf ".s:Escape(a:fname,0))
endif
" call Dret("Rmdir")
endfun
+7 -1
View File
@@ -1,6 +1,6 @@
" Vim color file
" Maintainer: Bohdan Vlasyuk <bohdan@vstu.edu.ua>
" Last Change: 2006 Apr 30
" Last Change: 2008 Jul 18
" darkblue -- for those who prefer dark background
" [note: looks bit uglier with come terminal palettes,
@@ -58,3 +58,9 @@ hi PreProc ctermfg=magenta guifg=#ff80ff gui=none cterm=none
hi type ctermfg=green guifg=#60ff60 gui=none cterm=none
hi Underlined cterm=underline term=underline
hi Ignore guifg=bg ctermfg=bg
" suggested by tigmoid, 2008 Jul 18
hi Pmenu guifg=#c0c0c0 guibg=#404080
hi PmenuSel guifg=#c0c0c0 guibg=#2050d0
hi PmenuSbar guifg=blue guibg=darkgray
hi PmenuThumb guifg=#c0c0c0
+3 -3
View File
@@ -1,9 +1,9 @@
" Vim color file
" Maintainer: Hans Fugal <hans@fugal.net>
" Last Change: $Date$
" Last Change: $Date$
" Last Change: $Date: 2004/06/13 19:30:30 $
" Last Change: $Date: 2004/06/13 19:30:30 $
" URL: http://hans.fugal.net/vim/colors/desert.vim
" Version: $Id$
" Version: $Id: desert.vim,v 1.1 2004/06/13 19:30:30 vimboss Exp $
" cool help screens
" :he group-name
+15 -14
View File
@@ -1,16 +1,17 @@
"------------------------------------------------------------------------------
" Description: Vim Ada/Dec Ada compiler file
" Language: Ada (Dec Ada)
" $Id$
" $Id: decada.vim 887 2008-07-08 14:29:01Z krischik $
" Copyright: Copyright (C) 2006 Martin Krischik
" Maintainer: Martin Krischik
" $Author$
" $Date$
" Version: 4.2
" $Revision$
" $HeadURL: https://svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/compiler/decada.vim $
" Maintainer: Martin Krischik <krischik@users.sourceforge.net>
" $Author: krischik $
" $Date: 2008-07-08 16:29:01 +0200 (Di, 08 Jul 2008) $
" Version: 4.6
" $Revision: 887 $
" $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/compiler/decada.vim $
" History: 21.07.2006 MK New Dec Ada
" 15.10.2006 MK Bram's suggestion for runtime integration
" 08.09.2006 MK Correct double load protection.
" Help Page: compiler-decada
"------------------------------------------------------------------------------
@@ -24,6 +25,13 @@ let current_compiler = "decada"
if !exists("g:decada")
let g:decada = decada#New ()
call ada#Map_Menu (
\'Dec Ada.Build',
\'<F7>',
\'call decada.Make ()')
call g:decada.Set_Session ()
endif
if exists(":CompilerSet") != 2
@@ -33,16 +41,9 @@ if exists(":CompilerSet") != 2
command -nargs=* CompilerSet setlocal <args>
endif
call g:decada.Set_Session ()
execute "CompilerSet makeprg=" . escape (g:decada.Make_Command, ' ')
execute "CompilerSet errorformat=" . escape (g:decada.Error_Format, ' ')
call ada#Map_Menu (
\'Dec Ada.Build',
\'<F7>',
\'call decada.Make ()')
finish " 1}}}
"------------------------------------------------------------------------------
+2 -2
View File
@@ -1,7 +1,7 @@
" Vim compiler file
" Language: eRuby
" Maintainer: Doug Kearns <dougkearns@gmail.com>
" Info: $Id$
" Info: $Id: eruby.vim,v 1.7 2008/06/29 04:18:42 tpope Exp $
" URL: http://vim-ruby.rubyforge.org
" Anon CVS: See above site
" Release Coordinator: Doug Kearns <dougkearns@gmail.com>
@@ -38,4 +38,4 @@ CompilerSet errorformat=
let &cpo = s:cpo_save
unlet s:cpo_save
" vim: nowrap sw=2 sts=2:
" vim: nowrap sw=2 sts=2 ts=8:
+2 -2
View File
@@ -1,8 +1,8 @@
" Vim compiler file
" Compiler: g77 (GNU Fortran)
" Maintainer: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
" Last Change: $Date$
" $Revision$
" Last Change: $Date: 2004/06/13 18:17:36 $
" $Revision: 1.1 $
if exists("current_compiler")
finish
+4 -1
View File
@@ -1,7 +1,7 @@
" Vim compiler file
" Compiler: GNU C Compiler
" Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2006-12-20
" Latest Revision: 2009-05-01
if exists("current_compiler")
finish
@@ -12,10 +12,13 @@ let s:cpo_save = &cpo
set cpo-=C
CompilerSet errorformat=
\%*[^\"]\"%f\"%*\\D%l:%c:\ %m,
\%*[^\"]\"%f\"%*\\D%l:\ %m,
\\"%f\"%*\\D%l:%c:\ %m,
\\"%f\"%*\\D%l:\ %m,
\%-G%f:%l:\ %trror:\ (Each\ undeclared\ identifier\ is\ reported\ only\ once,
\%-G%f:%l:\ %trror:\ for\ each\ function\ it\ appears\ in.),
\%f:%l:%c:\ %m,
\%f:%l:\ %m,
\\"%f\"\\,\ line\ %l%*\\D%c%*[^\ ]\ %m,
\%D%*\\a[%*\\d]:\ Entering\ directory\ `%f',
+11 -9
View File
@@ -1,17 +1,19 @@
"------------------------------------------------------------------------------
" Description: Vim Ada/GNAT compiler file
" Language: Ada (GNAT)
" $Id$
" $Id: gnat.vim 887 2008-07-08 14:29:01Z krischik $
" Copyright: Copyright (C) 2006 Martin Krischik
" Maintainer: Martin Krischik
" $Author$
" $Date$
" Version: 4.2
" $Revision$
" $HeadURL: https://svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/compiler/gnat.vim $
" Maintainer: Martin Krischi <krischik@users.sourceforge.net>k
" Ned Okie <nokie@radford.edu>
" $Author: krischik $
" $Date: 2008-07-08 16:29:01 +0200 (Di, 08 Jul 2008) $
" Version: 4.6
" $Revision: 887 $
" $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/compiler/gnat.vim $
" History: 24.05.2006 MK Unified Headers
" 16.07.2006 MK Ada-Mode as vim-ball
" 15.10.2006 MK Bram's suggestion for runtime integration
" 19.09.2007 NO use project file only when there is a project
" Help Page: compiler-gnat
"------------------------------------------------------------------------------
@@ -46,6 +48,8 @@ if !exists("g:gnat")
\ 'GNAT.Set Projectfile\.\.\.',
\ ':SetProject',
\ 'call gnat.Set_Project_File ()')
call g:gnat.Set_Session ()
endif
if exists(":CompilerSet") != 2
@@ -55,8 +59,6 @@ if exists(":CompilerSet") != 2
command -nargs=* CompilerSet setlocal <args>
endif
call g:gnat.Set_Session ()
execute "CompilerSet makeprg=" . escape (g:gnat.Get_Command('Make'), ' ')
execute "CompilerSet errorformat=" . escape (g:gnat.Error_Format, ' ')
+2 -2
View File
@@ -1,8 +1,8 @@
" Vim Compiler File
" Compiler: Jikes
" Maintainer: Dan Sharp <dwsharp at hotmail dot com>
" Last Change: 2004 Mar 27
" URL: http://mywebpage.netscape.com/sharppeople/vim/compiler
" Last Change: 20 Jan 2009
" URL: http://dwsharp.users.sourceforge.net/vim/compiler
if exists("current_compiler")
finish
+41
View File
@@ -0,0 +1,41 @@
" Vim compiler file
" Language: RSpec
" Maintainer: Tim Pope <vimNOSPAM@tpope.info>
" Info: $Id: rspec.vim,v 1.2 2008/06/29 04:18:42 tpope Exp $
" URL: http://vim-ruby.rubyforge.org
" Anon CVS: See above site
" Release Coordinator: Doug Kearns <dougkearns@gmail.com>
if exists("current_compiler")
finish
endif
let current_compiler = "rspec"
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
endif
let s:cpo_save = &cpo
set cpo-=C
CompilerSet makeprg=spec
CompilerSet errorformat=
\%+W'%.%#'\ FAILED,
\%+I'%.%#'\ FIXED,
\%-Cexpected:%.%#,
\%-C\ \ \ \ \ got:%.%#,
\%E%.%#:in\ `load':\ %f:%l:%m,
\%C%f:%l:,
\%W%f:%l:\ warning:\ %m,
\%E%f:%l:in\ %*[^:]:\ %m,
\%E%f:%l:\ %m,
\%-Z%\tfrom\ %f:%l,
\%-Z%p^%.%#,
\%-C%.%#,
\%-G%.%#
let &cpo = s:cpo_save
unlet s:cpo_save
" vim: nowrap sw=2 sts=2 ts=8:
+1 -1
View File
@@ -2,7 +2,7 @@
" Language: Ruby
" Function: Syntax check and/or error reporting
" Maintainer: Tim Hammerquist <timh at rubyforge.org>
" Info: $Id$
" Info: $Id: ruby.vim,v 1.13 2008/06/29 04:18:43 tpope Exp $
" URL: http://vim-ruby.rubyforge.org
" Anon CVS: See above site
" Release Coordinator: Doug Kearns <dougkearns@gmail.com>
+1 -1
View File
@@ -1,7 +1,7 @@
" Vim compiler file
" Language: Test::Unit - Ruby Unit Testing Framework
" Maintainer: Doug Kearns <dougkearns@gmail.com>
" Info: $Id$
" Info: $Id: rubyunit.vim,v 1.12 2008/06/29 04:18:43 tpope Exp $
" URL: http://vim-ruby.rubyforge.org
" Anon CVS: See above site
" Release Coordinator: Doug Kearns <dougkearns@gmail.com>
+1 -1
View File
@@ -3,7 +3,7 @@
" Maintainer: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
" Splint Home: http://www.splint.org/
" Last Change: 2005 Apr 21
" $Revision$
" $Revision: 1.3 $
if exists("current_compiler")
finish
+24 -1
View File
@@ -287,6 +287,11 @@ CONVERTED = \
vimdiff-it.UTF-8.1 \
vimtutor-it.UTF-8.1 \
xxd-it.UTF-8.1 \
vim-pl.UTF-8.1 \
evim-pl.UTF-8.1 \
vimdiff-pl.UTF-8.1 \
vimtutor-pl.UTF-8.1 \
xxd-pl.UTF-8.1 \
vim-ru.UTF-8.1 \
evim-ru.UTF-8.1 \
vimdiff-ru.UTF-8.1 \
@@ -296,7 +301,7 @@ CONVERTED = \
.SUFFIXES:
.SUFFIXES: .c .o .txt .html
all: tags vim.man vimdiff.man vimtutor.man xxd.man $(CONVERTED)
all: tags vim.man evim.man vimdiff.man vimtutor.man xxd.man $(CONVERTED)
# Use Vim to generate the tags file. Can only be used when Vim has been
# compiled and installed. Supports multiple languages.
@@ -314,6 +319,9 @@ doctags: doctags.c
vim.man: vim.1
nroff -man vim.1 | sed -e s/.//g > vim.man
evim.man: evim.1
nroff -man evim.1 | sed -e s/.//g > evim.man
vimdiff.man: vimdiff.1
nroff -man vimdiff.1 | sed -e s/.//g > vimdiff.man
@@ -445,6 +453,21 @@ vimtutor-it.UTF-8.1: vimtutor-it.1
xxd-it.UTF-8.1: xxd-it.1
iconv -f latin1 -t utf-8 $< >$@
vim-pl.UTF-8.1: vim-pl.1
iconv -f latin2 -t utf-8 $< >$@
evim-pl.UTF-8.1: evim-pl.1
iconv -f latin2 -t utf-8 $< >$@
vimdiff-pl.UTF-8.1: vimdiff-pl.1
iconv -f latin2 -t utf-8 $< >$@
vimtutor-pl.UTF-8.1: vimtutor-pl.1
iconv -f latin2 -t utf-8 $< >$@
xxd-pl.UTF-8.1: xxd-pl.1
iconv -f latin2 -t utf-8 $< >$@
vim-ru.UTF-8.1: vim-ru.1
iconv -f KOI8-R -t utf-8 $< >$@
+1 -1
View File
@@ -1,4 +1,4 @@
*arabic.txt* For Vim version 7.2a. Last change: 2005 Mar 29
*arabic.txt* For Vim version 7.2. Last change: 2005 Mar 29
VIM REFERENCE MANUAL by Nadim Shaikli
+24 -15
View File
@@ -1,4 +1,4 @@
*autocmd.txt* For Vim version 7.2a. Last change: 2008 Jun 24
*autocmd.txt* For Vim version 7.2. Last change: 2009 Nov 25
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -59,10 +59,10 @@ Note: The ":autocmd" command cannot be followed by another command, since any
:au[tocmd] [group] {event} {pat} [nested] {cmd}
Add {cmd} to the list of commands that Vim will
execute automatically on {event} for a file matching
{pat}. Vim always adds the {cmd} after existing
autocommands, so that the autocommands execute in the
order in which they were given. See |autocmd-nested|
for [nested].
{pat} |autocmd-patterns|.
Vim always adds the {cmd} after existing autocommands,
so that the autocommands execute in the order in which
they were given. See |autocmd-nested| for [nested].
The special pattern <buffer> or <buffer=N> defines a buffer-local autocommand.
See |autocmd-buflocal|.
@@ -335,6 +335,8 @@ BufDelete Before deleting a buffer from the buffer list.
NOTE: When this autocommand is executed, the
current buffer "%" may be different from the
buffer being deleted "<afile>" and "<abuf>".
Don't change to another buffer, it will cause
problems.
*BufEnter*
BufEnter After entering a buffer. Useful for setting
options for a file type. Also executed when
@@ -397,6 +399,8 @@ BufUnload Before unloading a buffer. This is when the
NOTE: When this autocommand is executed, the
current buffer "%" may be different from the
buffer being unloaded "<afile>".
Don't change to another buffer, it will cause
problems.
*BufWinEnter*
BufWinEnter After a buffer is displayed in a window. This
can be when the buffer is loaded (after
@@ -406,9 +410,10 @@ BufWinEnter After a buffer is displayed in a window. This
Does not happen for |:split| without
arguments, since you keep editing the same
buffer, or ":split" with a file that's already
open in a window. But it does happen for
a ":split" with the name of the current
buffer, since it reloads that buffer.
open in a window, because it re-uses an
existing buffer. But it does happen for a
":split" with the name of the current buffer,
since it reloads that buffer.
*BufWinLeave*
BufWinLeave Before a buffer is removed from a window.
Not when it's still visible in another window.
@@ -427,6 +432,8 @@ BufWipeout Before completely deleting a buffer. The
NOTE: When this autocommand is executed, the
current buffer "%" may be different from the
buffer being deleted "<afile>".
Don't change to another buffer, it will cause
problems.
*BufWrite* *BufWritePre*
BufWrite or BufWritePre Before writing the whole buffer to a file.
*BufWriteCmd*
@@ -544,7 +551,7 @@ FileChangedShell When Vim notices that the modification time of
buffer that was changed "<afile>".
NOTE: The commands must not change the current
buffer, jump to another buffer or delete a
buffer. *E246*
buffer. *E246* *E811*
NOTE: This event never nests, to avoid an
endless loop. This means that while executing
commands for the FileChangedShell event no
@@ -747,8 +754,10 @@ SwapExists Detected an existing swap file when starting
'a' abort, like hitting CTRL-C
When set to an empty string the user will be
asked, as if there was no SwapExists autocmd.
Note: Do not try to change the buffer, the
results are unpredictable.
*E812*
It is not allowed to change to another buffer,
change a buffer name or change directory
here.
*Syntax*
Syntax When the 'syntax' option has been set. The
pattern is matched against the syntax name.
@@ -826,9 +835,9 @@ The file pattern {pat} is tested for a match against the file name in one of
two ways:
1. When there is no '/' in the pattern, Vim checks for a match against only
the tail part of the file name (without its leading directory path).
2. When there is a '/' in the pattern, Vim checks for a match against the
both short file name (as you typed it) and the full file name (after
expanding it to a full path and resolving symbolic links).
2. When there is a '/' in the pattern, Vim checks for a match against both the
short file name (as you typed it) and the full file name (after expanding
it to a full path and resolving symbolic links).
The special pattern <buffer> or <buffer=N> is used for buffer-local
autocommands |autocmd-buflocal|. This pattern is not matched against the name
@@ -1043,7 +1052,7 @@ option will not cause any commands to be executed.
*:doautoa* *:doautoall*
:doautoa[ll] [group] {event} [fname]
Like ":doautocmd", but apply the autocommands to each
loaded buffer. Note that {fname} is used to select
loaded buffer. Note that [fname] is used to select
the autocommands, not the buffers to which they are
applied.
Careful: Don't use this for autocommands that delete a
+54 -19
View File
@@ -1,4 +1,4 @@
*change.txt* For Vim version 7.2a. Last change: 2008 Jun 22
*change.txt* For Vim version 7.2. Last change: 2009 Nov 11
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -506,9 +506,9 @@ comment (starting with '"') after the ":!" command.
{filter}. Vim replaces the optional bangs with the
latest given command and appends the optional [arg].
Vim saves the output of the filter command in a
temporary file and then reads the file into the
buffer. Vim uses the 'shellredir' option to redirect
the filter output to the temporary file.
temporary file and then reads the file into the buffer
|tempfile|. Vim uses the 'shellredir' option to
redirect the filter output to the temporary file.
However, if the 'shelltemp' option is off then pipes
are used when possible (on Unix).
When the 'R' flag is included in 'cpoptions' marks in
@@ -524,7 +524,9 @@ comment (starting with '"') after the ":!" command.
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|.
|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}.
@@ -534,6 +536,22 @@ comment (starting with '"') after the ":!" command.
{not in Vi}
*tempfile* *setuid*
Vim uses temporary files for filtering, generating diffs and also for
tempname(). For Unix, the file will be in a private directory (only
accessible by the current user) to avoid security problems (e.g., a symlink
attack or other people reading your file). When Vim exits the directory and
all files in it are deleted. When Vim has the setuid bit set this may cause
problems, the temp file is owned by the setuid user but the filter command
probably runs as the original user.
On MS-DOS and OS/2 the first of these directories that works is used: $TMP,
$TEMP, c:\TMP, c:\TEMP.
For Unix the list of directories is: $TMPDIR, /tmp, current-dir, $HOME.
For MS-Windows the GetTempFileName() system function is used.
For other systems the tmpnam() library function is used.
4.2 Substitute *:substitute*
*:s* *:su*
:[range]s[ubstitute]/{pattern}/{string}/[flags] [count]
@@ -772,9 +790,9 @@ 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 "<CR>", "\<CR>" and "\\". Thus in the result of the
expression you need to use two backslashes get one, put a backslash before a
<CR> you want to insert and use a <CR> without a backslash where you want to
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.
For convenience a <NL> character is also used as a line break. Prepend a
@@ -797,7 +815,7 @@ Examples: >
This replaces an end-of-line with a new line containing the value of $HOME. >
s/E/\="\<Char-0x20ac>"/g
This replaces 'E' characters with an euro sign. Read more in |<Char->|.
This replaces each 'E' character with a euro sign. Read more in |<Char->|.
4.3 Search and replace *search-replace*
@@ -806,13 +824,13 @@ This replaces 'E' characters with an euro sign. Read more in |<Char->|.
:promptf[ind] [string]
Put up a Search dialog. When [string] is given, it is
used as the initial search string.
{only for Win32, Motif and GTK GUI}
{only for Win32, Motif, GTK and MacVim GUI}
*:promptr* *:promptrepl*
:promptr[epl] [string]
Put up a Search/Replace dialog. When [string] is
given, it is used as the initial search string.
{only for Win32, Motif and GTK GUI}
{only for Win32, Motif, GTK and MacVim GUI}
4.4 Changing tabs *change-tabs*
@@ -861,7 +879,10 @@ inside of strings can change! Also see 'softtabstop' option. >
*:reg* *:registers*
:reg[isters] Display the contents of all numbered and named
registers. {not in Vi}
registers. If a register is written to for |:redir|
it will not be listed.
{not in Vi}
:reg[isters] {arg} Display the contents of the numbered and named
registers that are mentioned in {arg}. For example: >
@@ -994,6 +1015,11 @@ register. With blockwise selection it also depends on the size of the block
and whether the corners are on an existing character. (Implementation detail:
it actually works by first putting the register after the selection and then
deleting the selection.)
The previously selected text is put in the unnamed register. If you want to
put the same text into a Visual selection several times you need to use
another register. E.g., yank the text to copy, Visually select the text to
replace and use "0p . You can repeat this as many times as you like, the
unnamed register will be changed each time.
*blockwise-register*
If you use a blockwise Visual mode command to get the text into the register,
@@ -1031,8 +1057,10 @@ There are nine types of registers: *registers* *E354*
Vim fills this register with text deleted with the "d", "c", "s", "x" commands
or copied with the yank "y" command, regardless of whether or not a specific
register was used (e.g. "xdd). This is like the unnamed register is pointing
to the last used register. An exception is the '_' register: "_dd does not
store the deleted text in any register.
to the last used register. Thus when appending using an uppercase register
name, the unnamed register contains the same text as the named register.
An exception is the '_' register: "_dd does not store the deleted text in any
register.
Vim uses the contents of the unnamed register for any put command (p or P)
which does not specify a register. Additionally you can access it with the
name '"'. This means you have to type two double quotes. Writing to the ""
@@ -1098,11 +1126,16 @@ normal command-line editing commands are available, including a special
history for expressions. When you end the command-line by typing <CR>, Vim
computes the result of the expression. If you end it with <Esc>, Vim abandons
the expression. If you do not enter an expression, Vim uses the previous
expression (like with the "/" command). The expression must evaluate to a
string. If the result is a number it's turned into a string. A List,
Dictionary or FuncRef results in an error message (use string() to convert).
If the "= register is used for the "p" command, the string is split up at <NL>
characters. If the string ends in a <NL>, it is regarded as a linewise
expression (like with the "/" command).
The expression must evaluate to a String. A Number is always automatically
converted to a String. For the "p" and ":put" command, if the result is a
Float it's converted into a String. If the result is a List each element is
turned into a String and used as a line. A Dictionary or FuncRef results in
an error message (use string() to convert).
If the "= register is used for the "p" command, the String is split up at <NL>
characters. If the String ends in a <NL>, it is regarded as a linewise
register. {not in Vi}
7. Selection and drop registers "*, "+ and "~
@@ -1561,10 +1594,12 @@ found here: |sort()|.
With [n] sorting is done on the first decimal number
in the line (after or inside a {pattern} match).
One leading '-' is included in the number.
With [x] sorting is done on the first hexadecimal
number in the line (after or inside a {pattern}
match). A leading "0x" or "0X" is ignored.
One leading '-' is included in the number.
With [o] sorting is done on the first octal number in
the line (after or inside a {pattern} match).
+54 -30
View File
@@ -1,4 +1,4 @@
*cmdline.txt* For Vim version 7.2a. Last change: 2008 Jun 21
*cmdline.txt* For Vim version 7.2. Last change: 2009 Oct 25
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -99,26 +99,25 @@ CTRL-E or <End> *c_CTRL-E* *c_<End>*
cursor to end of command-line
*c_<LeftMouse>*
<LeftMouse> cursor to position of mouse click.
<LeftMouse> Move the cursor to the position of the mouse click.
CTRL-H *c_<BS>* *c_CTRL-H*
<BS> delete the character in front of the cursor (see |:fixdel| if
<BS> Delete the character in front of the cursor (see |:fixdel| if
your <BS> key does not do what you want).
*c_<Del>*
<Del> delete the character under the cursor (at end of line:
<Del> Delete the character under the cursor (at end of line:
character before the cursor) (see |:fixdel| if your <Del>
key does not do what you want).
*c_CTRL-W*
CTRL-W delete the word before the cursor
CTRL-W Delete the |word| before the cursor. This depends on the
'iskeyword' option.
*c_CTRL-U*
CTRL-U remove all characters between the cursor position and
CTRL-U Remove all characters between the cursor position and
the beginning of the line. Previous versions of vim
deleted all characters on the line. If that is the
preferred behavior, add the following to your .vimrc: >
:cnoremap <C-U> <C-E><C-U>
<
Note: if the command-line becomes empty with one of the
delete commands, Command-line mode is quit.
*c_<Insert>*
<Insert> Toggle between insert and overstrike. {not in Vi}
@@ -156,6 +155,11 @@ CTRL-R {0-9a-z"%#:-=.} *c_CTRL-R* *c_<C-R>*
(doesn't work at the expression prompt; some
things such as changing the buffer or current
window are not allowed to avoid side effects)
When the result is a |List| the items are used
as lines. They can have line breaks inside
too.
When the result is a Float it's automatically
converted to a String.
See |registers| about registers. {not in Vi}
Implementation detail: When using the |expression| register
and invoking setcmdpos(), this sets the position before
@@ -369,7 +373,9 @@ word before the cursor. This is available for:
- Variable and function names: Only after a ":if", ":call" or similar command.
When Vim was compiled with the |+cmdline_compl| feature disabled, only file
names, directories and help items can be completed.
names, directories and help items can be completed. The number of help item
matches is limited (currently to 300) to avoid a long delay when there are
very many matches.
These are the commands that can be used:
@@ -433,13 +439,20 @@ between files with almost the same name. If there are multiple matches,
those files with an extension that is in the 'suffixes' option are ignored.
The default is ".bak,~,.o,.h,.info,.swp,.obj", which means that files ending
in ".bak", "~", ".o", ".h", ".info", ".swp" and ".obj" are sometimes ignored.
It is impossible to ignore suffixes with two dots. Examples:
An empty entry, two consecutive commas, match a file name that does not
contain a ".", thus has no suffix. This is useful to ignore "prog" and prefer
"prog.c".
Examples:
pattern: files: match: ~
test* test.c test.h test.o test.c
test* test.h test.o test.h and test.o
test* test.i test.h test.c test.i and test.c
It is impossible to ignore suffixes with two dots.
If there is more than one matching file (after ignoring the ones matching
the 'suffixes' option) the first file name is inserted. You can see that
there is only one match when you type 'wildchar' twice and the completed
@@ -470,14 +483,14 @@ And this in your .vimrc: >
The Ex commands have a few specialties:
*:quote*
*:quote* *:comment*
'"' at the start of a line causes the whole line to be ignored. '"'
after a command causes the rest of the line to be ignored. This can be used
to add comments. Example: >
:set ai "set 'autoindent' option
It is not possible to add a comment to a shell command ":!cmd" or to the
":map" command and friends, because they see the '"' as part of their
argument.
":map" command and a few others, because they see the '"' as part of their
argument. This is mentioned where the command is explained.
*:bar* *:\bar*
'|' can be used to separate commands, so you can give multiple commands in one
@@ -727,19 +740,29 @@ to use |fnameescape()|.
In Ex commands, at places where a file name can be used, the following
characters have a special meaning. These can also be used in the expression
function expand() |expand()|.
% is replaced with the current file name *:_%*
# is replaced with the alternate file name *:_#*
#n (where n is a number) is replaced with the file name of
buffer n. "#0" is the same as "#"
## is replaced with all names in the argument list *:_##*
% Is replaced with the current file name. *:_%* *c_%*
# Is replaced with the alternate file name. *:_#* *c_#*
#n (where n is a number) is replaced with *:_#0* *:_#n*
the file name of buffer n. "#0" is the same as "#". *c_#n*
## Is replaced with all names in the argument list *:_##* *c_##*
concatenated, separated by spaces. Each space in a name
is preceded with a backslash.
Note that these give the file name as it was typed. If an absolute path is
needed (when using the file name from a different directory), you need to add
":p". See |filename-modifiers|.
#<n (where n is a number > 0) is replaced with old *:_#<* *c_#<*
file name n. See |:oldfiles| or |v:oldfiles| to get the
number. *E809*
{only when compiled with the +eval and +viminfo features}
Note that these, except "#<n", give the file name as it was typed. If an
absolute path is needed (when using the file name from a different directory),
you need to add ":p". See |filename-modifiers|.
The "#<n" item returns an absolute path, but it will start with "~/" for files
below your home directory.
Note that backslashes are inserted before spaces, so that the command will
correctly interpret the file name. But this doesn't happen for shell
commands. For those you probably have to use quotes: >
commands. For those you probably have to use quotes (this fails for files
that contain a quote and wildcards): >
:!ls "%"
:r !spell "%"
@@ -924,7 +947,7 @@ for the file "$home" in the root directory. A few examples:
==============================================================================
6. Command-line window *cmdline-window* *cmdwin*
*command-line-window*
In the command-line window the command line can be edited just like editing
text in any window. It is a special kind of window, because you cannot leave
it in a normal way.
@@ -932,12 +955,12 @@ it in a normal way.
feature}
OPEN
OPEN *c_CTRL-F* *q:* *q/* *q?*
There are two ways to open the command-line window:
1. From Command-line mode, use the key specified with the 'cedit' option.
The default is CTRL-F when 'compatible' is not set.
2. From Normal mode, use the "q:", "q/" or "q?" command. *q:* *q/* *q?*
2. From Normal mode, use the "q:", "q/" or "q?" command.
This starts editing an Ex command-line ("q:") or search string ("q/" or
"q?"). Note that this is not possible while recording is in progress (the
"q" stops recording then).
@@ -967,7 +990,8 @@ nesting.
The command-line window is not a normal window. It is not possible to move to
another window or edit another buffer. All commands that would do this are
disabled in the command-line window. Of course it _is_ possible to execute
any command that you entered in the command-line window.
any command that you entered in the command-line window. Other text edits are
discarded when closing the window.
CLOSE *E199*
@@ -995,14 +1019,14 @@ other than the one that is executed with <CR> are lost.
If you would like to execute the command under the cursor and then have the
command-line window open again, you may find this mapping useful: >
:map <F5> <CR>q:
:autocmd CmdwinEnter * map <buffer> <F5> <CR>q:
VARIOUS
The command-line window cannot be used:
- when there already is a command-line window (no nesting)
- for entering a encryption key or when using inputsecret()
- for entering an encryption key or when using inputsecret()
- when Vim was not compiled with the +vertsplit feature
Some options are set when the command-line window is opened:
@@ -1042,9 +1066,9 @@ events are not triggered. You can use the Cmdwin events to do settings
specifically for the command-line window. Be careful not to cause side
effects!
Example: >
:au CmdwinEnter : let b:cpt_save = &cpt | set cpt=v
:au CmdwinEnter : let b:cpt_save = &cpt | set cpt=.
:au CmdwinLeave : let &cpt = b:cpt_save
This sets 'complete' to use command-line completion in Insert mode for CTRL-N.
This sets 'complete' to use completion in the current window for |i_CTRL-N|.
Another example: >
:au CmdwinEnter [/?] startinsert
This will make Vim start in Insert mode in the command-line window.
+22 -3
View File
@@ -1,4 +1,4 @@
*debug.txt* For Vim version 7.2a. Last change: 2006 May 01
*debug.txt* For Vim version 7.2. Last change: 2009 Jul 22
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -10,7 +10,8 @@ This is for debugging Vim itself, when it doesn't work properly.
For debugging Vim scripts, functions, etc. see |debug-scripts|
1. Location of a crash, using gcc and gdb |debug-gcc|
2. Windows Bug Reporting |debug-win32|
2. Locating memory leaks |debug-leaks|
3. Windows Bug Reporting |debug-win32|
==============================================================================
@@ -38,7 +39,25 @@ This also applies when using the MingW tools.
==============================================================================
2. Windows Bug Reporting *debug-win32*
2. Locating memory leaks *debug-leaks*
If you suspect Vim is leaking memory and you are using Linux, the valgrind
tool is very useful to pinpoint memory leaks.
First of all, build Vim with EXITFREE defined. Search for this in MAKEFILE
and uncomment the line.
Use this command to start Vim: *valgrind*
>
valgrind --log-file=valgrind.log ./vim
Note: Vim will run much slower. If your .vimrc is big or you have several
plugins you need to be patient for startup, or run with the "-u NONE"
argument.
==============================================================================
3. Windows Bug Reporting *debug-win32*
If the Windows version of Vim crashes in a reproducible manner, you can take
some steps to provide a useful bug report.
+1 -1
View File
@@ -1,4 +1,4 @@
*debugger.txt* For Vim version 7.2a. Last change: 2005 Mar 29
*debugger.txt* For Vim version 7.2. Last change: 2005 Mar 29
VIM REFERENCE MANUAL by Gordon Prieur
+3 -3
View File
@@ -1,4 +1,4 @@
*develop.txt* For Vim version 7.2a. Last change: 2007 May 11
*develop.txt* For Vim version 7.2. Last change: 2008 Dec 17
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -64,7 +64,7 @@ completely different editor. Extensions are done with a "Vi spirit".
hard time finding and remembering them. Keep in mind that more commands and
options will be added later.
- A feature that people do not know about is a useless feature. Don't add
obscure features, or at least add hints in documentation that they exists.
obscure features, or at least add hints in documentation that they exist.
- Minimize using CTRL and other modifiers, they are more difficult to type.
- There are many first-time and inexperienced Vim users. Make it easy for
them to start using Vim and learn more over time.
@@ -323,7 +323,7 @@ Wrong: var=a*5;
OK: var = a * 5;
In general: Use empty lines to group lines of code together. Put a comment
just above the group of lines. This makes it more easy to quickly see what is
just above the group of lines. This makes it easier to quickly see what is
being done.
OK: /* Prepare for building the table. */
+14 -9
View File
@@ -1,12 +1,12 @@
*diff.txt* For Vim version 7.2a. Last change: 2006 Oct 02
*diff.txt* For Vim version 7.2. Last change: 2009 Sep 15
VIM REFERENCE MANUAL by Bram Moolenaar
*diff* *vimdiff* *gvimdiff* *diff-mode*
This file describes the +diff feature: Showing differences between two or
three versions of the same file.
This file describes the +diff feature: Showing differences between two,
three or four versions of the same file.
The basics are explained in section |08.7| of the user manual.
@@ -49,7 +49,7 @@ What happens is that Vim opens a window for each of the files. This is like
using the |-O| argument. This uses vertical splits. If you prefer horizontal
splits add the |-o| argument: >
vimdiff -o file1 file2 [file3]
vimdiff -o file1 file2 [file3 [file4]]
If you always prefer horizontal splits include "horizontal" in 'diffopt'.
@@ -64,6 +64,9 @@ In each of the edited files these options are set:
These options are set local to the window. When editing another file they are
reset to the global value.
The options can still be overruled from a modeline when re-editing the file.
However, 'foldmethod' and 'wrap' won't be set from a modeline when 'diff' is
set.
The differences shown are actually the differences in the buffer. Thus if you
make changes after loading a file, these will be included in the displayed
@@ -91,7 +94,7 @@ While already in Vim you can start diff mode in three ways.
:diffthis Make the current window part of the diff windows. This sets
the options like for "vimdiff".
:diffpatch {patchfile} *:diffp* *:diffpatch*
:diffpatch {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".
@@ -121,7 +124,8 @@ 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.
:diffoff! Switch off diff mode for all windows in the current tab page.
:diffoff! 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.
This may be different from what the values were before diff mode was started,
@@ -237,7 +241,8 @@ that the buffers will be equal within the specified range.
*:diffg* *:diffget*
:[range]diffg[et] [bufspec]
Modify the current buffer to undo difference with another
buffer. If [bufspec] is given, that buffer is used.
buffer. If [bufspec] is given, that buffer is used. If
[bufspec] refers to the current buffer then nothing happens.
Otherwise this only works if there is one other buffer in diff
mode.
See below for [range].
@@ -323,7 +328,7 @@ The "1a2" item appends the line "bbb".
The "4d4" item deletes the line "111".
The '7c7" item replaces the line "GGG" with "ggg".
When 'diffexpr' is not empty, Vim evaluates to obtain a diff file in the
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:
v:fname_in original file
@@ -353,7 +358,7 @@ The "-a" argument is used to force comparing the files as text, comparing as
binaries isn't useful. The "--binary" argument makes the files read in binary
mode, so that a CTRL-Z doesn't end the text on DOS.
*E97*
*E810* *E97*
Vim will do a test if the diff output looks alright. If it doesn't, you will
get an error message. Possible causes:
- The "diff" program cannot be executed.
+8 -6
View File
@@ -1,15 +1,15 @@
*digraph.txt* For Vim version 7.2a. Last change: 2007 Sep 10
*digraph.txt* For Vim version 7.2. Last change: 2008 Aug 06
VIM REFERENCE MANUAL by Bram Moolenaar
Digraphs *digraphs* *Digraphs*
Digraphs *digraph* *digraphs* *Digraphs*
Digraphs are used to enter characters that normally cannot be entered by
an ordinary keyboard. These are mostly accented characters which have the
eighth bit set. The digraphs are easier to remember than the decimal number
that can be entered with CTRL-V (see |i_CTRL-V|).
an ordinary keyboard. These are mostly printable non-ASCII characters. The
digraphs are easier to remember than the decimal number that can be entered
with CTRL-V (see |i_CTRL-V|).
There is a brief introduction on digraphs in the user manual: |24.9|
An alternative is using the 'keymap' option.
@@ -53,7 +53,9 @@ this file.
The decimal number normally is the Unicode number of the character. Note that
the meaning doesn't change when 'encoding' changes. The character will be
converted from Unicode to 'encoding' when needed. This does require the
conversion to be available, it might fail.
conversion to be available, it might fail. For the NUL character you will see
"10". That's because NUL characters are internally represented with a NL
character. When you write the file it will become a NUL character.
When Vim was compiled without the +multi_byte feature, you need to specify the
character in the encoding given with 'encoding'. You might want to use
+75 -47
View File
@@ -1,4 +1,4 @@
*editing.txt* For Vim version 7.2a. Last change: 2008 Apr 29
*editing.txt* For Vim version 7.2. Last change: 2009 Jun 10
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -270,7 +270,7 @@ If you want to keep the changed buffer without saving it, switch on the
Normal mode. Otherwise same as |:edit|.
*:vie* *:view*
:vie[w] [++opt] [+cmd] file
:vie[w][!] [++opt] [+cmd] file
When used in Ex mode: Leave |Ex mode|, go back to
Normal mode. Otherwise same as |:edit|, but set
'readonly' option for this buffer. {not in Vi}
@@ -302,9 +302,9 @@ CTRL-^ Edit the alternate file (equivalent to ":e #").
Uses the 'isfname' option to find out which characters
are supposed to be in a file name. Trailing
punctuation characters ".,:;!" are ignored.
Uses the 'path' option as a list of directory names
to look for the file. Also looks for the file
relative to the current file.
Uses the 'path' option as a list of directory names to
look for the file. See the 'path' option for details
about relative directories and wildcards.
Uses the 'suffixesadd' option to check for file names
with a suffix added.
If the file can't be found, 'includeexpr' is used to
@@ -367,13 +367,13 @@ current file name.
Besides the things mentioned here, more special items for where a filename is
expected are mentioned at |cmdline-special|.
Note for systems other than Unix and MS-DOS: When using a command that
accepts a single file name (like ":edit file") spaces in the file name are
allowed, but trailing spaces are ignored. This is useful on systems that
allow file names with embedded spaces (like MS-Windows and the Amiga).
Example: The command ":e Long File Name " will edit the file "Long File
Name". When using a command that accepts more than one file name (like ":next
file1 file2") embedded spaces must be escaped with a backslash.
Note for systems other than Unix: When using a command that accepts a single
file name (like ":edit file") spaces in the file name are allowed, but
trailing spaces are ignored. This is useful on systems that regularly embed
spaces in file names (like MS-Windows and the Amiga). Example: The command
":e Long File Name " will edit the file "Long File Name". When using a
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
@@ -391,6 +391,8 @@ 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
|file-searching|.
Example: >
:n **/*.txt
Finds files:
@@ -460,7 +462,10 @@ converted and illegal bytes. It can be one of three things:
++bad=drop Remove the bad characters.
The default is like "++bad=?": Replace each bad character with a question
mark.
mark. In some places an inverted question mark is used (0xBF).
Note that not all commands use the ++bad argument, even though they do not
give an error when you add it. E.g. |:write|.
Note that when reading, the 'fileformat' and 'fileencoding' options will be
set to the used format. When writing this doesn't happen, thus a next write
@@ -717,23 +722,23 @@ list of the current window.
and |+cmd|. {not in Vi}
*:wn* *:wnext*
:[count]wn[ext] [++opt] [+cmd]
:[count]wn[ext] [++opt]
Write current file and start editing the [count]
next file. Also see |++opt| and |+cmd|. {not in Vi}
:[count]wn[ext] [++opt] [+cmd] {file}
:[count]wn[ext] [++opt] {file}
Write current file to {file} and start editing the
[count] next file, unless {file} already exists and
the 'writeany' option is off. Also see |++opt| and
|+cmd|. {not in Vi}
:[count]wn[ext]! [++opt] [+cmd] {file}
:[count]wn[ext]! [++opt] {file}
Write current file to {file} and start editing the
[count] next file. Also see |++opt| and |+cmd|. {not
in Vi}
:[count]wN[ext][!] [++opt] [+cmd] [file] *:wN* *:wNext*
:[count]wp[revious][!] [++opt] [+cmd] [file] *:wp* *:wprevious*
:[count]wN[ext][!] [++opt] [file] *:wN* *:wNext*
:[count]wp[revious][!] [++opt] [file] *:wp* *:wprevious*
Same as :wnext, but go to previous file instead of
next. {not in Vi}
@@ -835,7 +840,7 @@ USING THE ARGUMENT LIST
Example: >
:args *.c
:argdo set ff=unix | update
This sets the 'fileformat' option to "unix" and writes the file if is now
This sets the 'fileformat' option to "unix" and writes the file if it is now
changed. This is done for all *.c files.
Example: >
@@ -853,39 +858,46 @@ Note: When the 'write' option is off, you are not able to write any file.
*:w* *:write*
*E502* *E503* *E504* *E505*
*E512* *E514* *E667* *E796*
:w[rite] Write the whole buffer to the current file. This is
:w[rite] [++opt] Write the whole buffer to the current file. This is
the normal way to save changes to a file. It fails
when the 'readonly' option is set or when there is
another reason why the file can't be written.
For ++opt see |++opt|, but only ++bin, ++nobin, ++ff
and ++enc are effective.
:w[rite]! Like ":write", but forcefully write when 'readonly' is
:w[rite]! [++opt] Like ":write", but forcefully write when 'readonly' is
set or there is another reason why writing was
refused.
Note: This may change the permission and ownership of
the file and break (symbolic) links. Add the 'W' flag
to 'cpoptions' to avoid this.
:[range]w[rite][!] Write the specified lines to the current file. This
:[range]w[rite][!] [++opt]
Write the specified lines to the current file. This
is unusual, because the file will not contain all
lines in the buffer.
*:w_f* *:write_f*
:[range]w[rite] {file} Write the specified lines to {file}, unless it
:[range]w[rite] [++opt] {file}
Write the specified lines to {file}, unless it
already exists and the 'writeany' option is off.
*:w!*
:[range]w[rite]! {file} Write the specified lines to {file}. Overwrite an
:[range]w[rite]! [++opt] {file}
Write the specified lines to {file}. Overwrite an
existing file.
*:w_a* *:write_a* *E494*
:[range]w[rite][!] >> Append the specified lines to the current file.
:[range]w[rite][!] [++opt] >>
Append the specified lines to the current file.
:[range]w[rite][!] >> {file}
:[range]w[rite][!] [++opt] >> {file}
Append the specified lines to {file}. '!' forces the
write even if file does not exist.
*:w_c* *:write_c*
:[range]w[rite] !{cmd} Execute {cmd} with [range] lines as standard input
:[range]w[rite] [++opt] !{cmd}
Execute {cmd} with [range] lines as standard input
(note the space in front of the '!'). {cmd} is
executed like with ":!{cmd}", any '!' is replaced with
the previous command |:!|.
@@ -902,7 +914,8 @@ used, for example, when the write fails and you want to try again later with
'cpoptions' option.
*:sav* *:saveas*
:sav[eas][!] {file} Save the current buffer under the name {file} and set
:sav[eas][!] [++opt] {file}
Save the current buffer under the name {file} and set
the filename of the current buffer to {file}. The
previous name is used for the alternate file name.
The [!] is needed to overwrite an existing file.
@@ -912,7 +925,7 @@ used, for example, when the write fails and you want to try again later with
{not in Vi}
*:up* *:update*
:[range]up[date][!] [>>] [file]
:[range]up[date][!] [++opt] [>>] [file]
Like ":write", but only write when the buffer has been
modified. {not in Vi}
@@ -1061,30 +1074,31 @@ The names can be in upper- or lowercase.
|quickfix|). {not in Vi}
*:wq*
:wq Write the current file and quit. Writing fails when
:wq [++opt] Write the current file and quit. Writing fails when
the file is read-only or the buffer does not have a
name. Quitting fails when the last file in the
argument list has not been edited.
:wq! Write the current file and quit. Writing fails when
:wq! [++opt] Write the current file and quit. Writing fails when
the current buffer does not have a name.
:wq {file} Write to {file} and quit. Quitting fails when the
:wq [++opt] {file} Write to {file} and quit. Quitting fails when the
last file in the argument list has not been edited.
:wq! {file} Write to {file} and quit.
:wq! [++opt] {file} Write to {file} and quit.
:[range]wq[!] [file] Same as above, but only write the lines in [range].
:[range]wq[!] [++opt] [file]
Same as above, but only write the lines in [range].
*:x* *:xit*
:[range]x[it][!] [file]
:[range]x[it][!] [++opt] [file]
Like ":wq", but write only when changes have been
made.
When 'hidden' is set and there are more windows, the
current buffer becomes hidden, after writing the file.
*:exi* *:exit*
:[range]exi[t][!] [file]
:[range]exi[t][!] [++opt] [file]
Same as :xit.
*ZZ*
@@ -1116,18 +1130,18 @@ MULTIPLE WINDOWS AND BUFFERS *window-exit*
*:quita* *:quitall*
:quita[ll][!] Same as ":qall". {not in Vi}
:wqa[ll] *:wqa* *:wqall* *:xa* *:xall*
:wqa[ll] [++opt] *:wqa* *:wqall* *:xa* *:xall*
:xa[ll] Write all changed buffers and exit Vim. If there are buffers
without a file name, which are readonly or which cannot be
written for another reason, Vim will not quit. {not in Vi}
:conf[irm] wqa[ll]
:conf[irm] wqa[ll] [++opt]
:conf[irm] xa[ll]
Write all changed buffers and exit Vim. Bring up a prompt
when some buffers are readonly or cannot be written for
another reason. See |:confirm|. {not in Vi}
:wqa[ll]!
:wqa[ll]! [++opt]
:xa[ll]! Write all changed buffers, even the ones that are readonly,
and exit Vim. If there are buffers without a file name or
which cannot be written for another reason, Vim will not quit.
@@ -1445,6 +1459,17 @@ If you don't get warned often enough you can use the following command.
may be specified by name, number or with a pattern.
*E813* *E814*
Vim will reload the buffer if you chose to. If a window is visible that
contains this buffer, the reloading will happen in the context of this window.
Otherwise a special window is used, so that most autocommands will work. You
can't close this window. A few other restrictions apply. Best is to make
sure nothing happens outside of the current buffer. E.g., setting
window-local options may end up in the wrong window. Splitting the window,
doing something there and closing it should be OK (if there are no side
effects from other autocommands). Closing unrelated windows and buffers will
get you into trouble.
Before writing a file the timestamp is checked. If it has changed, Vim will
ask if you really want to overwrite the file:
@@ -1476,14 +1501,16 @@ problem goes away the next day.
{not available when compiled without the |+path_extra| feature}
The file searching is currently used for the 'path', 'cdpath' and 'tags'
options, for |finddir()| and |findfile()|.
options, for |finddir()| and |findfile()|. Other commands use |wildcards|
which is slightly different.
There are three different types of searching:
1) Downward search: *starstar*
Downward search uses the wildcards '*', '**' and possibly others
supported by your operating system. '*' and '**' are handled inside Vim, so
they work on all operating systems.
supported by your operating system. '*' and '**' are handled inside Vim,
so they work on all operating systems. Note that "**" only acts as a
special wildcard when it is at the start of a name.
The usage of '*' is quite simple: It matches 0 or more characters. In a
search pattern this would be ".*". Note that the "." is not used for file
@@ -1491,8 +1518,8 @@ There are three different types of searching:
'**' is more sophisticated:
- It ONLY matches directories.
- It matches up to 30 directories deep, so you can use it to search an
entire directory tree
- It matches up to 30 directories deep by default, so you can use it to
search an entire directory tree
- The maximum number of levels matched can be given by appending a number
to '**'.
Thus '/usr/**2' can match: >
@@ -1505,15 +1532,16 @@ There are three different types of searching:
....
< It does NOT match '/usr/include/g++/std' as this would be three
levels.
The allowed number range is 0 ('**0' is removed) to 255.
The allowed number range is 0 ('**0' is removed) to 100
If the given number is smaller than 0 it defaults to 30, if it's
bigger than 255 then 255 is used.
bigger than 100 then 100 is used. The system also has a limit on the
path length, usually 256 or 1024 bytes.
- '**' can only be at the end of the path or be followed by a path
separator or by a number and a path separator.
You can combine '*' and '**' in any order: >
/usr/**/sys/*
/usr/*/sys/**
/usr/*tory/sys/**
/usr/**2/sys/*
2) Upward search:
+202 -102
View File
@@ -1,4 +1,4 @@
*eval.txt* For Vim version 7.2a. Last change: 2008 Jun 24
*eval.txt* For Vim version 7.2. Last change: 2010 Jan 19
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -853,7 +853,8 @@ expr8[expr1] item of String or |List| *expr-[]* *E111*
If expr8 is a Number or String this results in a String that contains the
expr1'th single byte from expr8. expr8 is used as a String, expr1 as a
Number. Note that this doesn't recognize multi-byte encodings.
Number. This doesn't recognize multi-byte encodings, see |byteidx()| for
an alternative.
Index zero gives the first character. This is like it works in C. Careful:
text column numbers start with one! Example, to get the character under the
@@ -878,8 +879,8 @@ expr8[expr1a : expr1b] substring or sublist *expr-[:]*
If expr8 is a Number or String this results in the substring with the bytes
from expr1a to and including expr1b. expr8 is used as a String, expr1a and
expr1b are used as a Number. Note that this doesn't recognize multi-byte
encodings.
expr1b are used as a Number. This doesn't recognize multi-byte encodings, see
|byteidx()| for computing the indexes.
If expr1a is omitted zero is used. If expr1b is omitted the length of the
string minus one is used.
@@ -895,7 +896,8 @@ Examples: >
:let c = name[-2:-2] " last but one byte of a string
:let s = line(".")[4:] " from the fifth byte to the end
:let s = s[:-3] " remove last two bytes
<
*sublist* *slice*
If expr8 is a |List| this results in a new |List| with the items indicated by
the indexes expr1a and expr1b. This works like with a String, as explained
just above, except that indexes out of range cause an error. Examples: >
@@ -967,11 +969,16 @@ These are INVALID:
3. empty {M}
1e40 missing .{M}
*float-pi* *float-e*
A few useful values to copy&paste: >
:let pi = 3.14159265359
:let e = 2.71828182846
Rationale:
Before floating point was introduced, the text "123.456" was interpreted as
the two numbers "123" and "456", both converted to a string and concatenated,
resulting in the string "123456". Since this was considered pointless, and we
could not find it actually being used in Vim scripts, this backwards
could not find it intentionally being used in Vim scripts, this backwards
incompatibility was accepted in favor of being able to use the normal notation
for floating point numbers.
@@ -1185,6 +1192,7 @@ They can be used in:
Thus not in:
- other scripts sourced from this one
- mappings
- menus
- etc.
Script variables can be used to avoid conflicts with global variable names.
@@ -1275,7 +1283,8 @@ v:beval_winnr The number of the window, over which the mouse pointer is. Only
valid while evaluating the 'balloonexpr' option.
*v:char* *char-variable*
v:char Argument for evaluating 'formatexpr'.
v:char Argument for evaluating 'formatexpr' and used for the typed
character when using <expr> in an abbreviation |map-<expr>|.
*v:charconvert_from* *charconvert_from-variable*
v:charconvert_from
@@ -1312,6 +1321,8 @@ v:count The count given for the last Normal mode command. Can be used
:map _x :<C-U>echo "the count is " . v:count<CR>
< Note: The <C-U> is required to remove the line range that you
get when typing ':' after a count.
When there are two counts, as in "3d2w", they are multiplied,
just like what happens in the command, "d6w" for the example.
Also used for evaluating the 'formatexpr' option.
"count" also works, for backwards compatibility.
@@ -1479,6 +1490,17 @@ v:mouse_col Column number for a mouse click obtained with |getchar()|.
This is the screen column number, like with |virtcol()|. The
value is zero when there was no mouse button click.
*v:oldfiles* *oldfiles-variable*
v:oldfiles List of file names that is loaded from the |viminfo| file on
startup. These are the files that Vim remembers marks for.
The length of the List is limited by the ' argument of the
'viminfo' option (default is 100).
Also see |:oldfiles| and |c_#<|.
The List can be modified, but this has no effect on what is
stored in the |viminfo| file later. If you use values other
than String this will cause trouble.
{only when compiled with the +viminfo feature}
*v:operator* *operator-variable*
v:operator The last operator given in Normal mode. This is a single
character except for commands starting with <g> or <z>,
@@ -1661,9 +1683,9 @@ ceil( {expr}) Float round {expr} up
changenr() Number current change number
char2nr( {expr}) Number ASCII value of first char in {expr}
cindent( {lnum}) Number C indent for line {lnum}
clearmatches() None clear all matches
clearmatches() none clear all matches
col( {expr}) Number column nr of cursor or mark
complete({startcol}, {matches}) String set Insert mode completion
complete( {startcol}, {matches}) none set Insert mode completion
complete_add( {expr}) Number add completion match
complete_check() Number check for key typed during completion
confirm( {msg} [, {choices} [, {default} [, {type}]]])
@@ -1688,9 +1710,9 @@ eval( {string}) any evaluate {string} into its value
eventhandler( ) Number TRUE if inside an event handler
executable( {expr}) Number 1 if executable {expr} exists
exists( {expr}) Number TRUE if {expr} exists
extend({expr1}, {expr2} [, {expr3}])
extend( {expr1}, {expr2} [, {expr3}])
List/Dict insert items of {expr2} into {expr1}
expand( {expr}) String expand special keywords in {expr}
expand( {expr} [, {flag}]) String 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
@@ -1730,7 +1752,7 @@ getftime( {fname}) Number last modification time of file
getftype( {fname}) String description of type of file {fname}
getline( {lnum}) String line {lnum} of current buffer
getline( {lnum}, {end}) List lines {lnum} to {end} of current buffer
getloclist({nr}) List list of location list items
getloclist( {nr}) List list of location list items
getmatches() List list of current matches
getpid() Number process ID of Vim
getpos( {expr}) List position of cursor, mark, etc.
@@ -1742,8 +1764,9 @@ 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}) String expand file wildcards in {expr}
globpath( {path}, {expr}) String do glob({expr}) for all dirs in {path}
glob( {expr} [, {flag}]) String 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
has_key( {dict}, {key}) Number TRUE if {dict} has entry {key}
haslocaldir() Number TRUE if current window executed |:lcd|
@@ -1798,11 +1821,12 @@ matchlist( {expr}, {pat}[, {start}[, {count}]])
List match and submatches of {pat} in {expr}
matchstr( {expr}, {pat}[, {start}[, {count}]])
String {count}'th match of {pat} in {expr}
max({list}) Number maximum value of items in {list}
min({list}) Number minimum value of items in {list}
mkdir({name} [, {path} [, {prot}]])
max( {list}) Number maximum value of items in {list}
min( {list}) Number minimum value of items in {list}
mkdir( {name} [, {path} [, {prot}]])
Number create directory {name}
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}
pathshorten( {expr}) String shorten directory names in a path
@@ -1812,7 +1836,7 @@ printf( {fmt}, {expr1}...) String format text
pumvisible() Number whether popup menu is visible
range( {expr} [, {max} [, {stride}]])
List items from {expr} to {max}
readfile({fname} [, {binary} [, {max}]])
readfile( {fname} [, {binary} [, {max}]])
List get list of lines from file {fname}
reltime( [{start} [, {end}]]) List get time value
reltimestr( {time}) String turn time value into a String
@@ -1833,7 +1857,7 @@ reverse( {list}) List reverse {list} in-place
round( {expr}) Float round off {expr}
search( {pattern} [, {flags} [, {stopline} [, {timeout}]]])
Number search for {pattern}
searchdecl({name} [, {global} [, {thisblock}]])
searchdecl( {name} [, {global} [, {thisblock}]])
Number search for variable declaration
searchpair( {start}, {middle}, {end} [, {flags} [, {skip} [...]]])
Number search for other end of start/end pair
@@ -1850,7 +1874,7 @@ setline( {lnum}, {line}) Number set line {lnum} to {line}
setloclist( {nr}, {list}[, {action}])
Number modify location list using {list}
setmatches( {list}) Number restore a list of matches
setpos( {expr}, {list}) none set the {expr} position to {list}
setpos( {expr}, {list}) Number set the {expr} position to {list}
setqflist( {list}[, {action}]) Number modify quickfix list using {list}
setreg( {n}, {v}[, {opt}]) Number set register to value and type
settabwinvar( {tabnr}, {winnr}, {varname}, {val}) set {varname} in window
@@ -1888,7 +1912,7 @@ synID( {lnum}, {col}, {trans}) Number syntax ID at {lnum} and {col}
synIDattr( {synID}, {what} [, {mode}])
String attribute {what} of syntax ID {synID}
synIDtrans( {synID}) Number translated syntax ID of {synID}
synstack({lnum}, {col}) List stack of syntax IDs at {lnum} and {col}
synstack( {lnum}, {col}) List stack of syntax IDs at {lnum} and {col}
system( {expr} [, {input}]) String output of shell command/filter {expr}
tabpagebuflist( [{arg}]) List list of buffer numbers in tab page
tabpagenr( [{arg}]) Number number of current or last tab page
@@ -1912,10 +1936,10 @@ winheight( {nr}) Number height of window {nr}
winline() Number window line of the cursor
winnr( [{expr}]) Number number of current window
winrestcmd() String returns command to restore window sizes
winrestview({dict}) None restore view of current window
winrestview( {dict}) none restore view of current window
winsaveview() Dict save view of current window
winwidth( {nr}) Number width of window {nr}
writefile({list}, {fname} [, {binary}])
writefile( {list}, {fname} [, {binary}])
Number write list of lines to file {fname}
abs({expr}) *abs()*
@@ -2228,7 +2252,7 @@ complete({startcol}, {matches}) *complete()* *E785*
{matches} must be a |List|. Each |List| item is one match.
See |complete-items| for the kind of items that are possible.
Note that the after calling this function you need to avoid
inserting anything that would completion to stop.
inserting anything that would cause completion to stop.
The match can be selected with CTRL-N and CTRL-P as usual with
Insert mode completion. The popup menu will appear if
specified, see |ins-completion-menu|.
@@ -2397,6 +2421,7 @@ cursor({list})
When 'virtualedit' is used {off} specifies the offset in
screen columns from the start of the character. E.g., a
position within a <Tab> or after the last character.
Returns 0 when the position could be set, -1 otherwise.
deepcopy({expr}[, {noref}]) *deepcopy()* *E698*
@@ -2459,7 +2484,7 @@ empty({expr}) *empty()*
Return the Number 1 if {expr} is empty, zero otherwise.
A |List| or |Dictionary| is empty when it does not have any
items. A Number is empty when its value is zero.
For a long |List| this is much faster then comparing the
For a long |List| this is much faster than comparing the
length with zero.
escape({string}, {chars}) *escape()*
@@ -2524,9 +2549,15 @@ exists({expr}) The result is a Number, which is non-zero if {expr} is
|internal-variables|). Also works
for |curly-braces-names|, |Dictionary|
entries, |List| items, etc. Beware
that this may cause functions to be
invoked cause an error message for an
invalid expression.
that evaluating an index may cause an
error message for an invalid
expression. E.g.: >
:let l = [1, 2, 3]
:echo exists("l[5]")
< 0 >
:echo exists("l[xx]")
< E121: Undefined variable: xx
0
:cmdname Ex command: built-in command, user
command or command modifier |:command|.
Returns:
@@ -2670,7 +2701,11 @@ extend({expr1}, {expr2} [, {expr3}]) *extend()*
Examples: >
:echo sort(extend(mylist, [7, 5]))
:call extend(mylist, [2, 3], 1)
< Use |add()| to concatenate one item to a list. To concatenate
< When {expr1} is the same List as {expr2} then the number of
items copied is equal to the original length of the List.
E.g., when {expr3} is 1 you get N new copies of the first item
(where N is the original length of the List).
Use |add()| to concatenate one item to a list. To concatenate
two lists into a new list use the + operator: >
:let newlist = [1, 2, 3] + [4, 5]
<
@@ -2817,11 +2852,13 @@ fnameescape({string}) *fnameescape()*
For most systems the characters escaped are
" \t\n*?[{`$\\%#'\"|!<". For systems where a backslash
appears in a filename, it depends on the value of 'isfname'.
A leading '+' and '>' is also escaped (special after |:edit|
and |:write|). And a "-" by itself (special after |:cd|).
Example: >
:let fname = 'some str%nge|name'
:let fname = '+some str%nge|name'
:exe "edit " . fnameescape(fname)
< results in executing: >
edit some\ str\%nge\|name
edit \+some\ str\%nge\|name
fnamemodify({fname}, {mods}) *fnamemodify()*
Modify file name {fname} according to {mods}. {mods} is a
@@ -2945,6 +2982,8 @@ getbufvar({expr}, {varname}) *getbufvar()*
The result is the value of option or local buffer variable
{varname} in buffer {expr}. Note that the name without "b:"
must be used.
When {varname} is empty returns a dictionary with all the
buffer-local variables.
This also works for a global or buffer-local option, but it
doesn't work for a global variable, window-local variable or
window-local option.
@@ -3021,7 +3060,7 @@ getcharmod() *getcharmod()*
128 Macintosh only: command
Only the modifiers that have not been included in the
character itself are obtained. Thus Shift-a results in "A"
with no modifier.
without a modifier.
getcmdline() *getcmdline()*
Return the current command-line. Only works when the command
@@ -3149,7 +3188,7 @@ getloclist({nr}) *getloclist()*
window {nr}. When {nr} is zero the current window is used.
For a location list window, the displayed location list is
returned. For an invalid window number {nr}, an empty list is
returned. Otherwise, same as getqflist().
returned. Otherwise, same as |getqflist()|.
getmatches() *getmatches()*
Returns a |List| with all matches previously defined by
@@ -3256,14 +3295,16 @@ getwinvar({winnr}, {varname}) *getwinvar()*
:let list_is_on = getwinvar(2, '&list')
:echo "myvar = " . getwinvar(1, 'myvar')
<
*glob()*
glob({expr}) Expand the file wildcards in {expr}. See |wildcards| for the
glob({expr} [, {flag}]) *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.
The 'wildignore' option applies: Names matching one of the
patterns in 'wildignore' will be skipped.
Unless the optional {flag} 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.
If the expansion fails, the result is an empty string.
A name for a non-existing file is not included.
@@ -3277,26 +3318,30 @@ glob({expr}) Expand the file wildcards in {expr}. See |wildcards| for the
See |expand()| for expanding special Vim variables. See
|system()| for getting the raw output of an external command.
globpath({path}, {expr}) *globpath()*
globpath({path}, {expr} [, {flag}]) *globpath()*
Perform glob() on all directories in {path} and concatenate
the results. Example: >
:echo globpath(&rtp, "syntax/c.vim")
< {path} is a comma-separated list of directory names. Each
directory name is prepended to {expr} and expanded like with
glob(). A path separator is inserted when needed.
|glob()|. A path separator is inserted when needed.
To add a comma inside a directory name escape it with a
backslash. Note that on MS-Windows a directory may have a
trailing backslash, remove it if you put a comma after it.
If the expansion fails for one of the directories, there is no
error message.
The 'wildignore' option applies: Names matching one of the
patterns in 'wildignore' will be skipped.
Unless the optional {flag} 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.
The "**" item can be used to search in a directory tree.
For example, to find all "README.txt" files in the directories
in 'runtimepath' and below: >
:echo globpath(&rtp, "**/README.txt")
<
< Upwards search and limiting the depth of "**" is not
supported, thus using 'path' will not always work properly.
*has()*
has({feature}) The result is a Number, which is 1 if the feature {feature} is
supported, zero otherwise. The {feature} argument is a
@@ -3361,13 +3406,13 @@ histdel({history} [, {item}]) *histdel()*
Clear {history}, i.e. delete all its entries. See |hist-names|
for the possible values of {history}.
If the parameter {item} is given as String, this is seen
as regular expression. All entries matching that expression
will be removed from the history (if there are any).
If the parameter {item} evaluates to a String, it is used as a
regular expression. All entries matching that expression will
be removed from the history (if there are any).
Upper/lowercase must match, unless "\c" is used |/\c|.
If {item} is a Number, it will be interpreted as index, see
|:history-indexing|. The respective entry will be removed
if it exists.
If {item} evaluates to a Number, it will be interpreted as
an index, see |:history-indexing|. The respective entry will
be removed if it exists.
The result is a Number: 1 for a successful operation,
otherwise 0 is returned.
@@ -3440,7 +3485,9 @@ hostname() *hostname()*
iconv({expr}, {from}, {to}) *iconv()*
The result is a String, which is the text {expr} converted
from encoding {from} to encoding {to}.
When the conversion fails an empty string is returned.
When the conversion completely fails an empty string is
returned. When some characters could not be converted they
are replaced with "?".
The encoding names are whatever the iconv() library function
can accept, see ":!man 3 iconv".
Most conversions require Vim to be compiled with the |+iconv|
@@ -3465,7 +3512,10 @@ indent({lnum}) The result is a Number, which is indent of line {lnum} in the
index({list}, {expr} [, {start} [, {ic}]]) *index()*
Return the lowest index in |List| {list} where the item has a
value equal to {expr}.
value equal to {expr}. There is no automatic conversion, so
the String "4" is different from the Number 4. And the number
4 is different from the Float 4.0. The value of 'ignorecase'
is not used here, case always matters.
If {start} is given then start looking at the item with index
{start} (may be negative for an item relative to the end).
When {ic} is given and it is non-zero, ignore case. Otherwise
@@ -3478,9 +3528,9 @@ index({list}, {expr} [, {start} [, {ic}]]) *index()*
input({prompt} [, {text} [, {completion}]]) *input()*
The result is a String, which is whatever the user typed on
the command-line. The parameter is either a prompt string, or
a blank string (for no prompt). A '\n' can be used in the
prompt to start a new line.
the command-line. The {prompt} argument is either a prompt
string, or a blank string (for no prompt). A '\n' can be used
in the prompt to start a new line.
The highlighting set with |:echohl| is used for the prompt.
The input is entered just like a command-line, with the same
editing commands and mappings. There is a separate history
@@ -3490,8 +3540,9 @@ input({prompt} [, {text} [, {completion}]]) *input()*
: echo "Cheers!"
:endif
<
If the optional {text} is present and not empty, this is used
for the default reply, as if the user typed this. Example: >
If the optional {text} argument is present and not empty, this
is used for the default reply, as if the user typed this.
Example: >
:let color = input("Color? ", "white")
< The optional {completion} argument specifies the type of
@@ -3521,8 +3572,8 @@ input({prompt} [, {text} [, {completion}]]) *input()*
:endfunction
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.
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 != ""
@@ -3543,7 +3594,7 @@ inputlist({textlist}) *inputlist()*
above the first item a negative number is returned. When
clicking on the prompt one more than the length of {textlist}
is returned.
Make sure {textlist} has less then 'lines' entries, otherwise
Make sure {textlist} has less than 'lines' entries, otherwise
it won't work. It's a good idea to put the entry number at
the start of the string. And put a prompt in the first item.
Example: >
@@ -3551,7 +3602,7 @@ inputlist({textlist}) *inputlist()*
\ '2. green', '3. blue'])
inputrestore() *inputrestore()*
Restore typeahead that was saved with a previous inputsave().
Restore typeahead that was saved with a previous |inputsave()|.
Should be called the same number of times inputsave() is
called. Calling it more often is harmless though.
Returns 1 when there is nothing to restore, 0 otherwise.
@@ -3681,14 +3732,14 @@ libcall({libname}, {funcname}, {argument})
the DLL is not in the usual places.
For Unix: When compiling your own plugins, remember that the
object code must be compiled as position-independent ('PIC').
{only in Win32 on some Unix versions, when the |+libcall|
{only in Win32 and some Unix versions, when the |+libcall|
feature is present}
Examples: >
:echo libcall("libc.so", "getenv", "HOME")
<
*libcallnr()*
libcallnr({libname}, {funcname}, {argument})
Just like libcall(), but used for a function that returns an
Just like |libcall()|, but used for a function that returns an
int instead of a string.
{only in Win32 on some Unix versions, when the |+libcall|
feature is present}
@@ -3721,7 +3772,7 @@ line({expr}) The result is a Number, which is the line number of the file
< *last-position-jump*
This autocommand jumps to the last known position in a file
just after opening it, if the '" mark is set: >
:au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
:au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g`\"" | endif
line2byte({lnum}) *line2byte()*
Return the byte count from the start of the buffer for line
@@ -3764,7 +3815,8 @@ map({expr}, {string}) *map()*
Replace each item in {expr} with the result of evaluating
{string}.
Inside {string} |v:val| has the value of the current item.
For a |Dictionary| |v:key| has the key of the current item.
For a |Dictionary| |v:key| has the key of the current item
and for a |List| |v:key| has the index of the current item.
Example: >
:call map(mylist, '"> " . v:val . " <"')
< This puts "> " before and " <" after each item in "mylist".
@@ -3951,8 +4003,8 @@ matchdelete({id}) *matchdelete()* *E802* *E803*
be deleted in one operation by |clearmatches()|.
matchend({expr}, {pat}[, {start}[, {count}]]) *matchend()*
Same as match(), but return the index of first character after
the match. Example: >
Same as |match()|, but return the index of first character
after the match. Example: >
:echo matchend("testing", "ing")
< results in "7".
*strspn()* *strcspn()*
@@ -3962,15 +4014,15 @@ matchend({expr}, {pat}[, {start}[, {count}]]) *matchend()*
:let span = matchend(line, '[^a-zA-Z]')
< Except that -1 is returned when there are no matches.
The {start}, if given, has the same meaning as for match(). >
The {start}, if given, has the same meaning as for |match()|. >
:echo matchend("testing", "ing", 2)
< results in "7". >
:echo matchend("testing", "ing", 5)
< result is "-1".
When {expr} is a |List| the result is equal to match().
When {expr} is a |List| the result is equal to |match()|.
matchlist({expr}, {pat}[, {start}[, {count}]]) *matchlist()*
Same as match(), but return a |List|. The first item in the
Same as |match()|, but return a |List|. The first item in the
list is the matched string, same as what matchstr() would
return. Following items are submatches, like "\1", "\2", etc.
in |:substitute|. When an optional submatch didn't match an
@@ -3984,7 +4036,7 @@ matchstr({expr}, {pat}[, {start}[, {count}]]) *matchstr()*
:echo matchstr("testing", "ing")
< results in "ing".
When there is no match "" is returned.
The {start}, if given, has the same meaning as for match(). >
The {start}, if given, has the same meaning as for |match()|. >
:echo matchstr("testing", "ing", 2)
< results in "ing". >
:echo matchstr("testing", "ing", 5)
@@ -4012,8 +4064,12 @@ mkdir({name} [, {path} [, {prot}]])
If {prot} is given it is used to set the protection bits of
the new directory. The default is 0755 (rwxr-xr-x: r/w for
the user readable for others). Use 0700 to make it unreadable
for others.
This function is not available in the |sandbox|.
for others. This is only used for the last part of {name}.
Thus if you create /tmp/foo/bar then /tmp/foo will be created
with 0755.
Example: >
:call mkdir($HOME . "/tmp/foo/bar", "p", 0700)
< This function is not available in the |sandbox|.
Not available on all systems. To check use: >
:if exists("*mkdir")
<
@@ -4047,6 +4103,23 @@ mode([expr]) Return a string that indicates the current mode.
"c" or "n".
Also see |visualmode()|.
mzeval({expr}) *mzeval()*
Evaluate MzScheme expression {expr} and return its result
convert 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|.
Hash tables are represented as Vim |Dictionary| type with keys
converted to strings.
All other types are converted to string with display function.
Examples: >
:mz (define l (list 1 2 3))
:mz (define h (make-hash)) (hash-set! h "list" l)
:echo mzeval("l")
:echo mzeval("h")
<
{only available when compiled with the |+mzscheme| feature}
nextnonblank({lnum}) *nextnonblank()*
Return the line number of the first line at or below {lnum}
that is not blank. Example: >
@@ -4278,9 +4351,11 @@ printf({fmt}, {expr1} ...) *printf()*
% A '%' is written. No argument is converted. The
complete conversion specification is "%%".
Each argument can be Number or String and is converted
automatically to fit the conversion specifier. Any other
argument type results in an error message.
When a Number argument is expected a String argument is also
accepted and automatically converted.
When a Float or String argument is expected a Number argument
is also accepted and automatically converted.
Any other argument type results in an error message.
*E766* *E767*
The number of {exprN} arguments must exactly match the number
@@ -4452,9 +4527,9 @@ remote_send({server}, {string} [, {idvar}])
<
remove({list}, {idx} [, {end}]) *remove()*
Without {end}: Remove the item at {idx} from |List| {list} and
return it.
return the item.
With {end}: Remove items from {idx} to {end} (inclusive) and
return a list with these items. When {idx} points to the same
return a List with these items. When {idx} points to the same
item as {end} a list with one item is returned. When {end}
points to an item before {idx} this is an error.
See |list-index| for possible values of {idx} and {end}.
@@ -4473,6 +4548,7 @@ rename({from}, {to}) *rename()*
should also work to move files across file systems. The
result is a Number, which is 0 if the file was renamed
successfully, and non-zero when the renaming failed.
NOTE: If {to} exists it is overwritten without warning.
This function is not available in the |sandbox|.
repeat({expr}, {count}) *repeat()*
@@ -4506,7 +4582,7 @@ reverse({list}) Reverse the order of items in {list} in-place. Returns
:let revlist = reverse(copy(mylist))
round({expr}) *round()*
Round off {expr} to a the nearest integral value and return it
Round off {expr} to the nearest integral value and return it
as a |Float|. If {expr} lies halfway between two integral
values, then use the larger one (away from zero).
{expr} must evaluate to a |Float| or a |Number|.
@@ -4704,7 +4780,7 @@ searchpair({start}, {middle}, {end} [, {flags} [, {skip}
*searchpairpos()*
searchpairpos({start}, {middle}, {end} [, {flags} [, {skip}
[, {stopline} [, {timeout}]]]])
Same as searchpair(), but returns a |List| with the line and
Same as |searchpair()|, but returns a |List| with the line and
column position of the match. The first element of the |List|
is the line number and the second element is the byte index of
the column position of the match. If no match is found,
@@ -4824,7 +4900,8 @@ setpos({expr}, {list})
Does not change the jumplist.
"lnum" and "col" are the position in the buffer. The first
column is 1. Use a zero "lnum" to delete a mark.
column is 1. Use a zero "lnum" to delete a mark. If "col" is
smaller than 1 then 1 is used.
The "off" number is only used when 'virtualedit' is set. Then
it is the offset in screen columns from the start of the
@@ -4943,7 +5020,7 @@ setwinvar({nr}, {varname}, {val}) *setwinvar()*
:call setwinvar(2, "myvar", "foobar")
shellescape({string} [, {special}]) *shellescape()*
Escape {string} for use as shell command argument.
Escape {string} for use as a shell command argument.
On MS-Windows and MS-DOS, when 'shellslash' is not set, it
will enclose {string} in double quotes and double all double
quotes within {string}.
@@ -4951,9 +5028,16 @@ shellescape({string} [, {special}]) *shellescape()*
and replace all "'" with "'\''".
When the {special} argument is present and it's a non-zero
Number or a non-empty String (|non-zero-arg|), then special
items such as "%", "#" and "<cword>" will be preceded by a
backslash. This backslash will be removed again by the |:!|
items such as "!", "%", "#" and "<cword>" will be preceded by
a backslash. This backslash will be removed again by the |:!|
command.
The "!" character will be escaped (again with a |non-zero-arg|
{special}) when 'shell' contains "csh" in the tail. That is
because for csh and tcsh "!" is used for history replacement
even when inside single quotes.
The <NL> character is also escaped. With a |non-zero-arg|
{special} and 'shell' containing "csh" in the tail it's
escaped a second time.
Example of use with a |:!| command: >
:exe '!dir ' . shellescape(expand('<cfile>'), 1)
< This results in a directory listing for the file under the
@@ -4998,15 +5082,20 @@ sort({list} [, {func}]) *sort()* *E702*
When {func} is given and it is one then case is ignored.
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 if
the first one sorts after the second one, -1 if the first one
sorts before the second one. Example: >
items as argument and must return zero if they are equal, 1 or
bigger if the first one sorts after the second one, -1 or
smaller if the first one sorts before the second one.
Example: >
func MyCompare(i1, i2)
return a:i1 == a:i2 ? 0 : a:i1 > a:i2 ? 1 : -1
endfunc
let sortedlist = sort(mylist, "MyCompare")
< A shorter compare version for this specific simple case, which
ignores overflow: >
func MyCompare(i1, i2)
return a:i1 - a:i2
endfunc
<
*soundfold()*
soundfold({word})
Return the sound-folded equivalent of {word}. Uses the first
@@ -5098,6 +5187,7 @@ sqrt({expr}) *sqrt()*
< 10.0 >
:echo sqrt(-4.01)
< nan
"nan" may be different, it depends on system libraries.
{only available when compiled with the |+float| feature}
@@ -5297,10 +5387,12 @@ synIDattr({synID}, {what} [, {mode}]) *synIDattr()*
"fg" foreground color (GUI: color name used to set
the color, cterm: color number as a string,
term: empty string)
"bg" background color (like "fg")
"bg" background color (as with "fg")
"sp" special color (as with "fg") |highlight-guisp|
"fg#" like "fg", but for the GUI and the GUI is
running the name in "#RRGGBB" form
"bg#" like "fg#" for "bg"
"sp#" like "fg#" for "sp"
"bold" "1" if bold
"italic" "1" if italic
"reverse" "1" if reverse
@@ -5452,10 +5544,7 @@ tempname() *tempname()* *temp-file-name*
is different for at least 26 consecutive calls. Example: >
:let tmpfile = tempname()
:exe "redir > " . tmpfile
< For Unix, the file will be in a private directory (only
accessible by the current user) to avoid security problems
(e.g., a symlink attack or other people reading your file).
When Vim exits the directory and all files in it are deleted.
< For Unix, the file will be in a private directory |tempfile|.
For MS-Windows forward slashes are used when the 'shellslash'
option is set or when 'shellcmdflag' starts with '-'.
@@ -5484,7 +5573,7 @@ tr({src}, {fromstr}, {tostr}) *tr()*
< returns "{blob}"
trunc({expr}) *trunc()*
Return the largest integral value with magnituted less than or
Return the largest integral value with magnitude less than or
equal to {expr} as a |Float| (truncate towards zero).
{expr} must evaluate to a |Float| or a |Number|.
Examples: >
@@ -5790,7 +5879,8 @@ 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_xterm Compiled with support for xterm mouse.
multi_byte Compiled with support for editing Korean et al.
multi_byte Compiled with support for 'encoding'
multi_byte_encoding 'encoding' is set to a multi-byte encoding.
multi_byte_ime Compiled with support for IME input method.
multi_lang Compiled with support for multiple languages.
mzscheme Compiled with MzScheme interface |mzscheme|.
@@ -5816,6 +5906,7 @@ showcmd Compiled with 'showcmd' support.
signs Compiled with |:sign| support.
smartindent Compiled with 'smartindent' support.
sniff Compiled with SNiFF interface support.
startuptime Compiled with |--startuptime| support.
statusline Compiled with support for 'statusline', 'rulerformat'
and special formats of 'titlestring' and 'iconstring'.
sun_workshop Compiled with support for Sun |workshop|.
@@ -5909,7 +6000,7 @@ It's also possible to use curly braces, see |curly-braces-names|. And the
A function local to a script must start with "s:". A local script function
can only be called from within the script and from functions, user commands
and autocommands defined in the script. It is also possible to call the
function from a mappings defined in the script, but then |<SID>| must be used
function from a mapping defined in the script, but then |<SID>| must be used
instead of "s:" when the mapping is expanded outside of the script.
*:fu* *:function* *E128* *E129* *E123*
@@ -6019,7 +6110,7 @@ can be 0). "a:000" is set to a |List| that contains these arguments. Note
that "a:1" is the same as "a:000[0]".
*E742*
The a: scope and the variables in it cannot be changed, they are fixed.
However, if a |List| or |Dictionary| is used, you can changes their contents.
However, if a |List| or |Dictionary| is used, you can change their contents.
Thus you can pass a |List| to a function and have the function add an item to
it. If you want to make sure the function cannot change a |List| or
|Dictionary| use |:lockvar|.
@@ -6398,6 +6489,11 @@ This would call the function "my_func_whizz(parameter)".
< One item from a |Dictionary| can be removed at a time: >
:unlet dict['two']
:unlet dict.two
< This is especially useful to clean up used global
variables and script-local variables (these are not
deleted when the script ends). Function-local
variables are automatically deleted when the function
ends.
:lockv[ar][!] [depth] {name} ... *:lockvar* *:lockv*
Lock the internal variable {name}. Locking means that
@@ -6516,15 +6612,19 @@ This would call the function "my_func_whizz(parameter)".
removed without effect. Removing any later item means
it will not be found. Thus the following example
works (an inefficient way to make a list empty): >
:for item in mylist
:call remove(mylist, 0)
:endfor
for item in mylist
call remove(mylist, 0)
endfor
< Note that reordering the list (e.g., with sort() or
reverse()) may have unexpected effects.
Note that the type of each list item should be
identical to avoid errors for the type of {var}
changing. Unlet the variable at the end of the loop
to allow multiple item types.
to allow multiple item types: >
for item in ["foo", ["bar"]]
echo item
unlet item " E706 without this
endfor
:for [{var1}, {var2}, ...] in {listlist}
:endfo[r]
@@ -6593,7 +6693,7 @@ This would call the function "my_func_whizz(parameter)".
:try | edit | catch /^Vim(edit):E\d\+/ | echo "error" | endtry
<
*:cat* *:catch* *E603* *E604* *E605*
:cat[ch] /{pattern}/ The following commands until the next ":catch",
:cat[ch] /{pattern}/ The following commands until the next |:catch|,
|:finally|, or |:endtry| that belongs to the same
|:try| as the ":catch" are executed when an exception
matching {pattern} is being thrown and has not yet
@@ -6766,7 +6866,7 @@ This would call the function "my_func_whizz(parameter)".
:execute 'while i < 5 | echo i | let i = i + 1 | endwhile'
<
*:comment*
*:exe-comment*
":execute", ":echo" and ":echon" cannot be followed by
a comment directly, because they see the '"' as the
start of a string. But, you can use '|' followed by a
@@ -7772,7 +7872,7 @@ a "E600: Missing :endtry" error message is given, see |except-single-line|.
Printing in Binary ~
>
:" The function Nr2Bin() returns the Hex string of a number.
:" The function Nr2Bin() returns the binary string representation of a number.
:func Nr2Bin(nr)
: let n = a:nr
: let r = ""
+5 -5
View File
@@ -14,11 +14,11 @@ uruchamia
.B Vima
i ustawia opcje tak by zachowywał się jak edytor bez trybów.
To jest cały czas Vim ale używany jako edytor wskaż-i-kliknij.
Zachowanie w stlu Notepada dla MS-Windows.
Zachowanie w stylu Notepada dla MS-Windows.
.B eVim
będzie zawsze uruchomiony w GUI by włączyć menu i pasek narzędzi.
.PP
Przeznaczony tylko dla ludzi, którzy naprawdę nie potrafią pracować
Przeznaczony tylko dla ludzi, którzy naprawdę nie mogą pracować
z Vimem w normalny sposób. Edycja będzie o wiele mniej efektywna.
.PP
.B eview
@@ -31,8 +31,8 @@ Opcja 'insertmode' jest ustawiona by mo
tekst.
.br
Mapowania są ustawione tak by Kopiowanie i Wklejanie działało
z klawiszami MS-Windows. CTRL-X wycina tekst, CTRL-C kopiuje
a CTRL-V wkleja. Użyj CTRL-Q by uzyskać oryginalne znaczenie
z klawiszami MS-Windows. CTRL-X wycina, CTRL-C kopiuje a CTRL-V
wkleja tekst. Użyj CTRL-Q by uzyskać oryginalne przeznaczenie
CTRL-V.
.SH OPCJE
Zobacz vim(1).
@@ -42,7 +42,7 @@ Zobacz vim(1).
Skrypt uruchamiania dla eVima.
.SH ZNANY JAKO
Znany jako "Vim dla frajerów".
Jeśli używasz evima oczekuje się, że wyjmiesz chusteczkę do nosa,
Jeśli używasz eVima oczekuje się, że wyjmiesz chusteczkę do nosa,
zrobisz węzęł w każdym rogu i będziesz to nosił na głowie.
.SH ZOBACZ TAKŻE
vim(1)
+5 -5
View File
@@ -14,11 +14,11 @@ uruchamia
.B Vima
i ustawia opcje tak by zachowywał się jak edytor bez trybów.
To jest cały czas Vim ale używany jako edytor wskaż-i-kliknij.
Zachowanie w stlu Notepada dla MS-Windows.
Zachowanie w stylu Notepada dla MS-Windows.
.B eVim
będzie zawsze uruchomiony w GUI by włączyć menu i pasek narzędzi.
.PP
Przeznaczony tylko dla ludzi, którzy naprawdę nie potrafią pracować
Przeznaczony tylko dla ludzi, którzy naprawdę nie mogą pracować
z Vimem w normalny sposób. Edycja będzie o wiele mniej efektywna.
.PP
.B eview
@@ -31,8 +31,8 @@ Opcja 'insertmode' jest ustawiona by można było od razu wpisywać
tekst.
.br
Mapowania są ustawione tak by Kopiowanie i Wklejanie działało
z klawiszami MS-Windows. CTRL-X wycina tekst, CTRL-C kopiuje
a CTRL-V wkleja. Użyj CTRL-Q by uzyskać oryginalne znaczenie
z klawiszami MS-Windows. CTRL-X wycina, CTRL-C kopiuje a CTRL-V
wkleja tekst. Użyj CTRL-Q by uzyskać oryginalne przeznaczenie
CTRL-V.
.SH OPCJE
Zobacz vim(1).
@@ -42,7 +42,7 @@ Zobacz vim(1).
Skrypt uruchamiania dla eVima.
.SH ZNANY JAKO
Znany jako "Vim dla frajerów".
Jeśli używasz evima oczekuje się, że wyjmiesz chusteczkę do nosa,
Jeśli używasz eVima oczekuje się, że wyjmiesz chusteczkę do nosa,
zrobisz węzęł w każdym rogu i będziesz to nosił na głowie.
.SH ZOBACZ TAKŻE
vim(1)
+1 -1
View File
@@ -1,4 +1,4 @@
*farsi.txt* For Vim version 7.2a. Last change: 2005 Mar 29
*farsi.txt* For Vim version 7.2. Last change: 2005 Mar 29
VIM REFERENCE MANUAL by Mortaza Ghassab Shiran
+28 -5
View File
@@ -1,4 +1,4 @@
*filetype.txt* For Vim version 7.2a. Last change: 2008 Jun 21
*filetype.txt* For Vim version 7.2. Last change: 2008 Jul 15
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -55,7 +55,7 @@ filetype prepend "ft-" and optionally append "-syntax", "-indent" or
If the file type is not detected automatically, or it finds the wrong type,
you can either set the 'filetype' option manually, or add a modeline to your
file. Example, for in an IDL file use the command: >
file. Example, for an IDL file use the command: >
:set filetype=idl
or add this |modeline| to the file:
@@ -284,8 +284,8 @@ match in angle brackets in place of a pattern, like this: >
This will match:
- Any file whose name ends in `.html'
- Any file whose type is `&faf' or 'HTML', where the meaning of these types
- Any file whose name ends in ".html"
- Any file whose type is "&faf" or "HTML", where the meaning of these types
depends on which version of Vim you are using.
Unknown types are considered NOT to match.
@@ -294,7 +294,7 @@ must both match): >
:au BufRead <&fff>diff*
This will match files of type `&fff' whose names start with `diff'.
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.
@@ -482,6 +482,29 @@ g:changelog_date_end_entry_search
The default is '^\s*$' which finds lines that contain
only whitespace or are completely empty.
b:changelog_name *b:changelog_name*
Name of the ChangeLog file to look for.
The default is 'ChangeLog'.
b:changelog_path
Path of the ChangeLog to use for the current buffer.
The default is empty, thus looking for a file named
|b:changelog_name| in the same directory as the
current buffer. If not found, the parent directory of
the current buffer is searched. This continues
recursively until a file is found or there are no more
parent directories to search.
b:changelog_entry_prefix
Name of a function to call to generate a prefix to a
new entry. This function takes no arguments and
should return a string containing the prefix.
Returning an empty prefix is fine.
The default generates the shortest path between the
ChangeLog's pathname and the current buffers pathname.
In the future, it will also be possible to use other
variable contexts for this variable, for example, g:.
The Changelog entries are inserted where they add the least amount of text.
After figuring out the current date and user, the file is searched for an
entry beginning with the current date and user and if found adds another item
+2 -2
View File
@@ -1,10 +1,10 @@
*fold.txt* For Vim version 7.2a. Last change: 2007 May 11
*fold.txt* For Vim version 7.2. Last change: 2009 Dec 22
VIM REFERENCE MANUAL by Bram Moolenaar
Folding *Folding* *folding*
Folding *Folding* *folding* *folds*
You can find an introduction on folding in chapter 28 of the user manual.
|usr_28.txt|
+24 -24
View File
@@ -1,4 +1,4 @@
*ft_ada.txt* For Vim version 7.2a. Last change: 2008 Jun 21
*ft_ada.txt* For Vim version 7.2. Last change: 2008 Jun 21
ADA FILE TYPE PLUG-INS REFERENCE MANUAL~
@@ -82,7 +82,7 @@ The Ada plug-in provides support for:
- comment handling (|'comments'|, |'commentstring'|)
The plug-in only activates the features of the Ada mode whenever an Ada
files is opened and add adds Ada related entries to the main and pop-up menu.
file is opened and adds Ada related entries to the main and pop-up menu.
==============================================================================
3. Omni Completion ~
@@ -142,7 +142,7 @@ support yet.
4. Compiler Support ~
*ada-compiler*
The Ada mode supports more then one Ada compiler and will automatically load the
The Ada mode supports more than one Ada compiler and will automatically load the
compiler set in|g:ada_default_compiler|whenever an Ada source is opened. The
provided compiler plug-ins are split into the actual compiler plug-in and a
collection of support functions and variables. This allows the easy
@@ -154,7 +154,7 @@ environment.
*compiler-gnat*
GNAT is the only free (beer and speech) Ada compiler available. There are
several version available which differentiate in the licence terms used.
several versions available which differ in the licence terms used.
The GNAT compiler plug-in will perform a compile on pressing <F7> and then
immediately shows the result. You can set the project file to be used by
@@ -163,7 +163,7 @@ setting:
> call g:gnat.Set_Project_File ('my_project.gpr')
Setting a project file will also create a Vim session (|views-sessions|) so -
like with the GPS - opened files, window positions etc. will remembered
like with the GPS - opened files, window positions etc. will be remembered
separately for all projects.
*gnat_members*
@@ -228,9 +228,9 @@ and HP Ada) is a fairly dated Ada 83 compiler. Support is basic: <F7> will
compile the current unit.
The Dec Ada compiler expects the package name and not the file name to be
passed a parameter. The compiler plug-in supports the usual file name
convention to convert the file into a unit name. For separates both '-' and
'__' are allowed.
passed as a parameter. The compiler plug-in supports the usual file name
convention to convert the file into a unit name. Both '-' and '__' are allowed
as separators.
*decada_members*
DEC ADA OBJECT ~
@@ -262,7 +262,7 @@ g:decada.Error_Format| string
*g:ada_standard_types*
g:ada_standard_types bool (true when exists)
Highlight types in package Standard (e.g., "Float")
Highlight types in package Standard (e.g., "Float").
*g:ada_space_errors*
*g:ada_no_trail_space_error*
@@ -279,13 +279,13 @@ g:ada_space_errors bool (true when exists)
*g:ada_line_errors*
g:ada_line_errors bool (true when exists)
Highlight lines which are to long. Note: This highlighting
Highlight lines which are too long. Note: This highlighting
option is quite CPU intensive.
*g:ada_rainbow_color*
g:ada_rainbow_color bool (true when exists)
Use rainbow colours for '(' and ')'. You need the
rainbow_parenthesis for this to work
rainbow_parenthesis for this to work.
*g:ada_folding*
g:ada_folding set ('sigpft')
@@ -313,7 +313,7 @@ g:ada_folding set ('sigpft')
*g:ada_abbrev*
g:ada_abbrev bool (true when exists)
Add some abbreviations. This feature more or less superseded
Add some abbreviations. This feature is more or less superseded
by the various completion methods.
*g:ada_withuse_ordinary*
@@ -359,12 +359,12 @@ g:ada_with_gnat_project_files bool (true when exists)
*g:ada_default_compiler*
g:ada_default_compiler string
set default compiler. Currently supported is 'gnat' and
set default compiler. Currently supported are 'gnat' and
'decada'.
An "exists" type is a boolean is considered true when the variable is defined
and false when the variable is undefined. The value which the variable is
set makes no difference.
An "exists" type is a boolean considered true when the variable is defined and
false when the variable is undefined. The value to which the variable is set
makes no difference.
------------------------------------------------------------------------------
5.3 Commands ~
@@ -372,10 +372,10 @@ set makes no difference.
:AdaRainbow *:AdaRainbow*
Toggles rainbow colour (|g:ada_rainbow_color|) mode for
'(' and ')'
'(' and ')'.
:AdaLines *:AdaLines*
Toggles line error (|g:ada_line_errors|) display
Toggles line error (|g:ada_line_errors|) display.
:AdaSpaces *:AdaSpaces*
Toggles space error (|g:ada_space_errors|) display.
@@ -424,7 +424,7 @@ All constants are locked. See |:lockvar| for details.
*g:ada#WordRegex*
g:ada#WordRegex string
Regular expression to search for Ada words
Regular expression to search for Ada words.
*g:ada#DotWordRegex*
g:ada#DotWordRegex string
@@ -432,7 +432,7 @@ g:ada#DotWordRegex string
*g:ada#Comment*
g:ada#Comment string
Regular expression to search for Ada comments
Regular expression to search for Ada comments.
*g:ada#Keywords*
g:ada#Keywords list of dictionaries
@@ -454,7 +454,7 @@ ada#Word([{line}, {col}]) *ada#Word()*
ada#List_Tag([{line}, {col}]) *ada#Listtags()*
List all occurrences of the Ada entity under the cursor (or at
given line/column) inside the quick-fix window
given line/column) inside the quick-fix window.
ada#Jump_Tag ({ident}, {mode}) *ada#Jump_Tag()*
List all occurrences of the Ada entity under the cursor (or at
@@ -482,8 +482,8 @@ gnat#New ()
8. Extra Plugins ~
*ada-extra-plugins*
You can optionally install the following extra plug-in. They work well with Ada
and enhance the ability of the Ada mode.:
You can optionally install the following extra plug-ins. They work well with
Ada and enhance the ability of the Ada mode:
backup.vim
http://www.vim.org/scripts/script.php?script_id=1537
@@ -501,7 +501,7 @@ nerd_comments.vim
matchit.vim
http://www.vim.org/scripts/script.php?script_id=39
'%' jumping for any language. The normal '%' jump only works for '{}'
style languages. The Ada mode will set the needed search patters.
style languages. The Ada mode will set the needed search patterns.
taglist.vim
http://www.vim.org/scripts/script.php?script_id=273
+51 -38
View File
@@ -1,4 +1,4 @@
*ft_sql.txt* For Vim version 7.2a. Last change: Wed Apr 26 2006 3:05:33 PM
*sql.txt* For Vim version 7.2. Last change: 2009 Nov 03
by David Fishburn
@@ -15,7 +15,8 @@ features for navigation, indentation and syntax highlighting.
1.4 Macros |sql-macros|
2. SQL Dialects |sql-dialects|
2.1 SQLSetType |SQLSetType|
2.2 SQL Dialect Default |sql-type-default|
2.2 SQLGetType |SQLGetType|
2.3 SQL Dialect Default |sql-type-default|
3. Adding new SQL Dialects |sql-adding-dialects|
4. OMNI SQL Completion |sql-completion|
4.1 Static mode |sql-completion-static|
@@ -204,7 +205,7 @@ Press any of the following keys: >
*sqlanywhere*
*oracle* *plsql* *sqlj*
*sqlserver*
*mysql* *postgres* *psql*
*mysql* *postgress* *psql*
*informix*
All relational databases support SQL. There is a portion of SQL that is
@@ -231,7 +232,7 @@ be nice to specify a default in your |vimrc|.
2.1 SQLSetType *sqlsettype* *SQLSetType*
--------------
For the people that work with many different databases, it would be nice to be
For the people that work with many different databases, it is nice to be
able to flip between the various vendors rules (indent, syntax) on a per
buffer basis, at any time. The ftplugin/sql.vim file defines this function: >
SQLSetType
@@ -259,7 +260,17 @@ of available Vim script names: >
:SQL<Tab><space><Tab>
2.2 SQL Dialect Default *sql-type-default*
2.2 SQLGetType *sqlgettype* *SQLGetType*
--------------
At anytime you can determine which SQL dialect you are using by calling the
SQLGetType command. The ftplugin/sql.vim file defines this function: >
SQLGetType
This will echo: >
Current SQL dialect in use:sqlanywhere
2.3 SQL Dialect Default *sql-type-default*
-----------------------
As mentioned earlier, the default syntax rules for Vim is based on Oracle
(PL/SQL). You can override this default by placing one of the following in
@@ -331,6 +342,10 @@ The defaults static maps are: >
imap <buffer> <C-C>T <C-\><C-O>:call sqlcomplete#Map('sqlType')<CR><C-X><C-O>
imap <buffer> <C-C>s <C-\><C-O>:call sqlcomplete#Map('sqlStatement')<CR><C-X><C-O>
The use of "<C-C>" can be user chosen by using the following in your |.vimrc| as it
may not work properly on all platforms: >
let g:ftplugin_sql_omni_key = '<C-C>'
>
The static maps (which are based on the syntax highlight groups) follow this
format: >
imap <buffer> <C-C>k <C-\><C-O>:call sqlcomplete#Map('sqlKeyword')<CR><C-X><C-O>
@@ -406,21 +421,25 @@ to display a list of tables, procedures, views and columns. >
To enable the popup, while in INSERT mode, use the following key combinations
for each group (where <C-C> means hold the CTRL key down while pressing
the space bar):
Table List - <C-C>t
- <C-X><C-O> (the default map assumes tables)
Stored Procedure List - <C-C>p
View List - <C-C>v
Column List - <C-C>c
Table List - <C-C>t
- <C-X><C-O> (the default map assumes tables)
Stored Procedure List - <C-C>p
View List - <C-C>v
Column List - <C-C>c
Windows platform only - When viewing a popup window displaying the list
of tables, you can press <C-Right>, this will
replace the table currently highlighted with
the column list for that table.
- When viewing a popup window displaying the list
of columns, you can press <C-Left>, this will
replace the column list with the list of tables.
- This allows you to quickly drill down into a
table to view it's columns and back again.
Drilling In / Out - When viewing a popup window displaying the list
of tables, you can press <Right>, this will
replace the table currently highlighted with
the column list for that table.
- When viewing a popup window displaying the list
of columns, you can press <Left>, this will
replace the column list with the list of tables.
- This allows you to quickly drill down into a
table to view it's columns and back again.
- <Right> and <Left> can be also be chosen via
your |.vimrc| >
let g:ftplugin_sql_omni_key_right = '<Right>'
let g:ftplugin_sql_omni_key_left = '<Left>'
The SQL completion plugin caches various lists that are displayed in
the popup window. This makes the re-displaying of these lists very
@@ -498,30 +517,24 @@ beginning with those characters. >
The SQL completion plugin can also display a list of columns for particular
tables. The column completion is trigger via <C-C>c.
NOTE: The following example uses <C-Right> to trigger a column list while
the popup window is active. This map is only available on the Windows
platforms since *nix does not recognize CTRL and the right arrow held down
together. If you wish to enable this functionality on a *nix platform choose
a key and create one of these mappings (see |sql-completion-maps| for further
details on where to create this imap): >
imap <buffer> <your_keystroke> <C-R>=sqlcomplete#DrillIntoTable()<CR>
imap <buffer> <your_keystroke> <C-Y><C-\><C-O>:call sqlcomplete#Map('column')<CR><C-X><C-O>
NOTE: The following example uses <Right> to trigger a column list while
the popup window is active.
Example of using column completion:
- Press <C-C>t again to display the list of tables.
- When the list is displayed in the completion window, press <C-Right>,
- When the list is displayed in the completion window, press <Right>,
this will replace the list of tables, with a list of columns for the
table highlighted (after the same short delay).
- If you press <C-Left>, this will again replace the column list with the
- If you press <Left>, this will again replace the column list with the
list of tables. This allows you to drill into tables and column lists
very quickly.
- Press <C-Right> again while the same table is highlighted. You will
- Press <Right> again while the same table is highlighted. You will
notice there is no delay since the column list has been cached. If you
change the schema of a cached table you can press <C-C>R, which
clears the SQL completion cache.
- NOTE: <C-Right> and <C-Left> have been designed to work while the
- NOTE: <Right> and <Left> have been designed to work while the
completion window is active. If the completion popup window is
not active, a normal <C-Right> or <C-Left> will be executed.
not active, a normal <Right> or <Left> will be executed.
Lets look how we can build a SQL statement dynamically. A select statement
requires a list of columns. There are two ways to build a column list using
@@ -529,7 +542,7 @@ the SQL completion plugin. >
One column at a time:
< 1. After typing SELECT press <C-C>t to display a list of tables.
2. Choose a table from the list.
3. Press <C-Right> to display a list of columns.
3. Press <Right> to display a list of columns.
4. Choose the column from the list and press enter.
5. Enter a "," and press <C-C>c. Generating a column list
generally requires having the cursor on a table name. The plugin
@@ -632,7 +645,7 @@ your |vimrc|: >
- When completing tables, procedure or views and using dbext.vim 3.00
or higher the list of objects will also include the owner name.
When completing these objects and omni_sql_include_owner is enabled
the owner name will be replaced. >
the owner name will be be replaced. >
omni_sql_precache_syntax_groups
< - Default:
@@ -684,15 +697,15 @@ plugin. >
<C-C>L
< - Displays a comma separated list of columns for a specific table.
This should only be used when the completion window is active. >
<C-Right>
<Right>
< - Displays a list of columns for the table currently highlighted in
the completion window. <C-Right> is not recognized on most Unix
the completion window. <Right> is not recognized on most Unix
systems, so this maps is only created on the Windows platform.
If you would like the same feature on Unix, choose a different key
and make the same map in your vimrc. >
<C-Left>
<Left>
< - Displays the list of tables.
<C-Left> is not recognized on most Unix systems, so this maps is
<Left> is not recognized on most Unix systems, so this maps is
only created on the Windows platform. If you would like the same
feature on Unix, choose a different key and make the same map in
your vimrc. >
+8 -6
View File
@@ -1,4 +1,4 @@
*gui.txt* For Vim version 7.2a. Last change: 2008 Jun 14
*gui.txt* For Vim version 7.2. Last change: 2009 Jan 22
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -35,13 +35,13 @@ GUI version of Vim with:
The X11 version of Vim can run both in GUI and in non-GUI mode. See
|gui-x11-start|.
*gui-init* *gvimrc* *.gvimrc* *_gvimrc*
*gui-init* *gvimrc* *.gvimrc* *_gvimrc* *$MYGVIMRC*
The gvimrc file is where GUI-specific startup commands should be placed. It
is always sourced after the |vimrc| file. If you have one then the $MYGVIMRC
environment variable has its name.
When the GUI starts up initializations are carried out, in this order:
- The 'term' option is set to "builgin_gui" and terminal options are reset to
- The 'term' option is set to "builtin_gui" and terminal options are reset to
their default value for the GUI |terminal-options|.
- If the system menu file exists, it is sourced. The name of this file is
normally "$VIMRUNTIME/menu.vim". You can check this with ":version". Also
@@ -473,9 +473,11 @@ this line to your .vimrc file (NOT your .gvimrc file!): >
:let did_install_default_menus = 1
If you also want to avoid the Syntax menu: >
:let did_install_syntax_menu = 1
If you do want the Syntax menu but not all the entries for each available
syntax file (which take quite a bit of time to load): >
:let skip_syntax_sel_menu = 1
The first item in the Syntax menu can be used to show all available filetypes
in the menu (which can take a bit of time to load). If you want to have all
filetypes already present at startup, add: >
:let do_syntax_sel_menu = 1
<
*console-menus*
Although this documentation is in the GUI section, you can actually use menus
+285 -78
View File
@@ -1,4 +1,4 @@
*gui_mac.txt* For Vim version 7.2a. Last change: 2008 May 25
*gui_mac.txt* For Vim version 7.2. Last change: 2009 Sep 23
VIM REFERENCE MANUAL by Bjorn Winckler
@@ -15,12 +15,14 @@ The MacVim Graphical User Interface *macvim* *gui-macvim*
6. Toolbar |macvim-toolbar|
7. Dialogs |macvim-dialogs|
8. System services |macvim-services|
9. Known bugs/missing features |macvim-todo|
10. Hints |macvim-hints|
9. mvim:// URL handler |macvim-url-handler|
10. Keyboard shortcuts |macvim-shortcuts|
11. International |macvim-international|
12. Known bugs/missing features |macvim-todo|
13. Hints |macvim-hints|
Other relevant documentation:
|gui.txt| For generic items of the GUI.
|os_mac.txt| For Mac specific items.
{Vi does not have a GUI}
@@ -76,16 +78,6 @@ file at all. In this situation, you will need to set both 'encoding' and
'fileencodings' to a simple single-byte encoding such as Latin1 so that when
the file is read into memory, the original bytes are left untouched.
*macvim-movement*
Some Mac OS X standard key mappings involving Cmd or Option and an arrow key
are set up by default in "$VIM/gvimrc". You can quickly disable all of these
by adding the following lines to your "~/.vimrc" (not .gvimrc) file: >
if has("gui_macvim")
let macvim_skip_cmd_opt_movement = 1
endif
Note: These are the only key mappings that MacVim makes (not counting menu key
equivalents which are not set up with :map).
*macvim-shift-movement*
Text editors on Mac OS X lets the user hold down shift+movement key to extend
the selection. Also, pressing a printable key whilst selecting replaces the
@@ -108,6 +100,10 @@ If a file is dropped on the Dock icon, it is always opened in a new tab
regardless of the mode Vim is currently in. The same holds if you
double-click on a file in the Finder.
The "Open files from applications" preference in the General preference pane
gives more options on how dropped files should open, in case tabs are not
desired.
*macvim-default-menu*
The default menu in MacVim has been changed to conform better with the Apple
Human Interface Guidelines (HIG). At the moment this breaks the localized
@@ -122,9 +118,19 @@ really bad once you start using tabs. For example, dropping two files, then
dropping two more, and switching back to the first tab would cause weird
strings like "((3) of 2)" to appear in the window title.
*macvim-tablabel*
Tab labels only show the tail of the file name to make the tabs more readable
when editing files in deeply nested folders. Add the line "set guitablabel="
to your .gvimrc file to revert back to the default Vim tab label.
*macvim-options*
These are the non-standard options that MacVim supports:
'fullscreen' 'fuoptions' 'toolbariconsize' 'transparency' 'antialias'
'antialias' 'fullscreen' 'fuoptions'
'macmeta' 'toolbariconsize' 'transparency'
*macvim-commands*
These are the non-standard commands that MacVim supports:
|:macaction| |:macmenu|
*macvim-find*
Whenever you search for something in Vim (e.g. using "/") the search query is
@@ -161,24 +167,31 @@ formats. This enables you to double-click a file to open it with MacVim (if
it is not associated with another program), or to right-click a file to bring
up the "Open with" menu. You can also drag and drop files onto the Dock icon
to open them in tabs in a new window, or you can drop them in an already open
window to open the files in tabs in that specific window. Finally, you can
use Mac OS X System Services to open files in MacVim, see |macvim-services|.
window to open the files in tabs in that specific window (it is possible to
have files open in e.g. splits by changing the "Open files from applications"
option in the General preference pane). Finally, you can use Mac OS X System
Services to open files in MacVim, see |macvim-services|.
There are essentially two ways to start MacVim from Terminal: either call the
Vim binary with the -g switch >
/Applications/MacVim.app/Contents/MacOS/Vim -g file ...
or use the "open" command (which is of limited use since it cannot be used to
pass parameters to Vim) >
or use the "open" command (this method can not be used to pass parameters to
Vim) >
open -a MacVim file ...
<
*mvim*
The advantage of using the latter method is that the settings relating to file
opening in the preferences panel are respected, and files open instantly if
|Quickstart| is enabled.
To save yourself from having to type the entire path to the Vim binary each
time you start MacVim, you could create an alias such as >
alias gvim='/Applications/MacVim.app/Contents/MacOS/Vim -g'
and add that to "~/.profile". A more flexible way to start MacVim is to use
the shell script "mvim" which comes bundled with MacVim. Put this script in a
folder in your path and then simply type "mvim" to start MacVim. This script
will try to find MacVim.app in various typical folders such as >
and add that to "~/.profile".
*mvim*
A more flexible way to start MacVim is to use the shell script "mvim" which
comes bundled with MacVim. Put this script in a folder in your path and then
simply type "mvim" to start MacVim. This script will try to find MacVim.app
in various typical folders such as >
~/Applications ~/Applications/vim
/Applications /Applications/vim
/Applications/Utilities /Applications/Utilities/vim
@@ -186,6 +199,17 @@ If you would rather put MacVim.app in some other directory then that is also
possible, simply set the environment variable VIM_APP_DIR to whatever folder
you have placed MacVim.app in.
The "mvim" script can be symlinked to in order to start up MacVim in different
modes as follows (assuming you placed "mvim" in "/usr/local/bin"): >
* Diff: ln -s /usr/local/bin/mvim mvimdiff
* Read-only: ln -s /usr/local/bin/mvim mview
* Ex: ln -s /usr/local/bin/mvim mex
* Restricted: ln -s /usr/local/bin/mvim rmvim
If the symlink destination starts with "m" (or "g"), Vim will start in GUI
mode. Removing the initial "m" from the above destination names makes Vim
start without the GUI. (In the last case, the destination name can be
"rmvim", "rgvim" or "rvim".)
Note: Starting MacVim by creating a symlink to >
.../MacVim.app/Contents/MacOS/Vim
with 'ln -s' does not work.
@@ -195,6 +219,20 @@ command:
:gui [++opt] [+cmd] [-f|-b] [files...]
Note: Forking ("-b") currently does not work.
*Quickstart*
Quickstart ensures that new windows open instantaneously e.g. when <D-n> is
pressed. This feature can be enabled from the Advanced preferences pane (it
is disabled by default). Note that this setting does not affect the speed
with which windows open when using the |mvim| command.
The main reason why this feature is not enabled by default is because on OS X
10.4 changes to runtime files (e.g. those in "~/.vim") are not detected. For
example, if you install a new plugin and then press <D-n> to open a new
window, then that first window will not notice the plugin (but any consecutive
windows after the first one will). On OS X 10.5 and later all modifications
to runtime files in "~/.vim" are detected, so unless you keep runtime files in
another folder there should be no problems.
*odbeditor* *external-editor*
MacVim can act as an 'external editor' for Mac OS X applications that support
the ODB Editor Protocol (or the 'external editor' protocol). Each application
@@ -212,8 +250,9 @@ is sent back to the server application.
Some settings are global to the MacVim application and would not make sense as
Vim options. These settings are stored in a user default database and can be
accessed via the "MacVim/Preferences..." menu item.
accessed via the "MacVim.Preferences..." menu item.
*macvim-user-defaults*
Not all entries in the user defaults database are exposed via the preference
panel, usually because they should not be changed by the user under normal
circumstances. These options can still be changed with the "defaults" command
@@ -225,12 +264,13 @@ as general information regarding Mac OS X user defaults.
Here is a list of relevant dictionary entries:
KEY VALUE ~
MMAtsuiRenderer enable ATSUI renderer [bool]
MMCellWidthMultiplier width of a normal glyph in em units [float]
MMDialogsTrackPwd open/save dialogs track the Vim pwd [bool]
MMLoadDefaultFont load font (disable for faster startup) [bool]
MMLoginShellArgument login shell parameter [string]
MMLoginShellCommand which shell to use to launch Vim [string]
MMNoFontSubstitution disable automatic font substitution [bool]
MMShowAddTabButton enable "add tab" button on tabline [bool]
MMTabMaxWidth maximum width of a tab [int]
MMTabMinWidth minimum width of a tab [int]
MMTabOptimumWidth default width of a tab [int]
@@ -240,6 +280,7 @@ MMTextInsetRight text area offset in pixels [int]
MMTextInsetTop text area offset in pixels [int]
MMTexturedWindow use brushed metal window (Tiger only) [bool]
MMTranslateCtrlClick interpret ctrl-click as right-click [bool]
MMVerticalSplit files open in vertical splits [bool]
MMZoomBoth zoom button maximizes both directions [bool]
As an example, if you have more than one mouse button and would wish to free
@@ -255,7 +296,7 @@ Terminal and type: >
Applications opened from the Finder do not automatically source the user's
environment variables (which are typically set in .profile or .bashrc). This
presents a problem when using |:!| to execute commands in the shell since e.g.
$PATH might not be set properly. To work around this problem MacVim can start
$PATH might not be set properly. To work around this problem MacVim starts
new Vim processes via a login shell so that all environment variables are set.
By default MacVim uses the $SHELL environment variable to determine which
@@ -310,7 +351,7 @@ The color scheme uses the the system "Highlight Color", which can be changed in
the "Appearance" pane of the System Preferences. It also changes the
highlight color when a window becomes inactive.
If you have any comments regarding this colors cheme (is it better or worse
If you have any comments regarding this color scheme (is it better or worse
than the default?) then post them to |vim_mac|.
==============================================================================
@@ -344,7 +385,7 @@ can be used to send action messages.
property list file called |Actions.plist|.
*:macm* *:macmenu*
:mac[menu] {menu} {key}={arg} ...
:macm[enu] {menu} {key}={arg} ...
Set Mac specific properties for {menu}. The
properties that can be set are:
action the action this menu sends
@@ -362,9 +403,11 @@ can be used to send action messages.
":maca name:".
The key equivalent is specified with the <D-..>
syntax. Note that key equivalents must contain the
Cmd modifier flag (<D-...>), and they take precedence
over normal mappings.
syntax. This is case-sensitive, so <D-a> means Cmd-a
whereas <D-A> means Cmd-Shift-a.
Note that key equivalents must contain the Cmd
modifier flag (<D-..>), and they take precedence over
normal mappings.
Use the syntax "key=<nop>" to clear the key equivalent
of a menu. This can be used to free up a key
combination that is set in the system gvimrc so that
@@ -388,7 +431,12 @@ equivalent Cmd-n, which opens a new window when selected: >
:macm Window.Next\ Tab key=<D-Right>
3. Create a mapping in normal mode which closes the current tab/window: >
:map <C-w> :maca performClose:<CR>
>
4. Free up Cmd-t and remap it to open a file browser in a split view: >
macm File.New\ Tab key=<nop>
nmap <D-t> :sp .<CR>
Note: These two lines must be added to .gvimrc else the first line will fail.
The second line is case sensitive, so <D-T> (Cmd-Shift-t) is not the same as
<D-t> (Cmd-t)!
The standard Vim menus are modified in "$VIM/gvimrc". Take a look at that
file for more examples on how to set up menus. Note: When no window is open a
@@ -456,15 +504,16 @@ icon can be found a warning triangle is displayed instead.
Dialogs can be controlled with the keyboard in two ways. By default each
button in a dialog is bound to a key. The button that is highlighted by blue
is bound to Enter, and any button with the title "Cancel" is bound to Escape.
Other buttons are usually bound to the first letter in the title of the
button. There is no visual feedback to indicate which letter a button is
bound to, so sometimes some experimentation might be required in order to
figure out which key to press.
is bound to Enter, any button with the title "Cancel" is bound to Escape, and
any button with the title "Don't Save" is bound to <D-d>. Other buttons are
usually bound to the first letter in the title of the button. There is no
visual feedback to indicate which letter a button is bound to, so sometimes
some experimentation might be required in order to figure out which key to
press.
The second way of controlling dialogs with the keyboard is to enable "Full
keyboard access" in the "Keyboard & Mouse" pane of the System Preferences (you
can also toggle this on or off by pressing Ctrl-F7). Once keyboard access is
keyboard access" in the "Keyboard" pane of the System Preferences (you can
also toggle this on or off by pressing Ctrl-F7). Once keyboard access is
enabled it is possible to move between buttons with Tab and pressing Space to
select the current button. The current button is indicated with a blue
outline.
@@ -478,20 +527,130 @@ located in the /Applications folder. (You might have to logout and then login
again before Mac OS X detects the MacVim services.)
These are the currently supported services:
* New Tab Containing Selection: Opens a new tab in the topmost window and
pastes the currently selected text in that tab. A new window will be
opened if necessary.
* Open Selected File in Tab: If the selected text represents a file
name, then the corresponding file is opened in a new tab in the topmost
window.
* Open Selected File in Window: Same as the above, but always open in a new
window.
* New Document Containing Selection: Open a new window and paste the
currently selected text.
* New Document Here: Open a new window and set the current directory
to that of the selected text. This is intended to be used from a
Finder window to open an empty document in the currently selected
folder.
* Open Selected File: If the selected text represents a file name,
then the corresponding file is opened in a new window.
If new files are set to open in the current window (in the General preference
pane) then the above services will also reuse the topmost window, instead of
opening a new window.
==============================================================================
9. Known bugs/missing features *macvim-todo*
9. mvim:// URL handler *mvim://* *macvim-url-handler*
Here are some of the bigger bugs in MacVim. Of course there are others, but
these are ones that are know and/or which were judged major.
MacVim supports a custom URL handler for "mvim://" URLs. The handler is
supposed to be compatible to TextMate's URL scheme as documented at
http://blog.macromates.com/2007/the-textmate-url-scheme/.
Currently, this means that the format is >
mvim://open?<arguments>
where "arguments" can be:
* url — the actual file to open (i.e. a file://... URL), if you leave
out this argument, the frontmost document is implied
* line — line number to go to (one based)
* column — column number to go to (one based)
For example, the link >
mvim://open?url=file:///etc/profile&line=20
will open the file /etc/profile on line 20 when clicked in a web browser.
Note that url has to be a file:// url pointing to an existing local file.
==============================================================================
10. Keyboard shortcuts *macvim-shortcuts*
Most keyboard shortcuts in MacVim are bound to menu items and can be
discovered by looking through the menus (see |macvim-menus| on how to create
your own menu shortcuts). The remaining shortcuts are listed here:
*Cmd-.* *<D-.>*
Cmd-. Interrupt Vim. Unlike Ctrl-C which is sent as normal
keyboard input (and hence has to be received and then
interpreted) this sends a SIGINT signal to the Vim
process. Use this shortcut if the Vim process appears
to have locked up and is not responding to key presses.
This Cmd-key combination cannot be unmapped.
*Cmd-`* *<D-`>*
Cmd-` Cycle to the next window. On an American keyboard the
`-key is located under the Esc-key. On European
keyboards this key is often adjacent to the left
Shift-key and it may be not even be marked with "`".
This Cmd-key combination can only be unmapped via the
"Keyboard" System Preferences.
*Cmd-Left* *<D-Left>*
Cmd-Left Move cursor to the beginning of the line
(see |cmd-movement|).
*Cmd-Right* *<D-Right>*
Cmd-Right Move cursor to the end of the line (see |cmd-movement|).
*Cmd-Up* *<D-Up>*
Cmd-Up Move cursor to the first line (see |cmd-movement|).
*Cmd-Down* *<D-Down>*
Cmd-Down Move cursor to the last line (see |cmd-movement|).
*Alt-Left* *<M-Left>*
Alt-Left Move cursor to the beginning of the previous word
(see |alt-movement|).
*Alt-Right* *<M-Right>*
Alt-Right Move cursor to the beginning of the next word
(see |alt-movement|).
*Alt-Up* *<M-Up>*
Alt-Up Move cursor one paragraph forward (see |alt-movement|).
*Alt-Down* *<M-Down>*
Alt-Down Move cursor to the previous paragraph
(see |alt-movement|).
*cmd-movement* *alt-movement*
The above mappings involving Cmd/Alt + arrow key are enabled by default in the
system gvimrc file "$VIM/gvimrc". You can quickly disable all of these by
adding the following lines to your "~/.vimrc" (not .gvimrc) file: >
if has("gui_macvim")
let macvim_skip_cmd_opt_movement = 1
endif
Note: These are the only key mappings that MacVim makes (not counting menu key
equivalents which are not set up with :map).
See |macvim-shift-movement| if you want Shift to select text when used in
conjunction with the above Cmd/Alt movement shortcuts.
==============================================================================
11. International *macvim-international*
When editing non-English text it may be convenient to keep separate keyboard
layouts for normal and insert mode. This is supported via the 'imd' option on
Mac OS X 10.5 or later (on 10.4 the 'imd' option support is not as useful as
it only switches between Roman and non-Roman input sources and it has been
known not to work very reliably).
For example: When 'noimd' is enabled (i.e. IM is enabled) the input source is
saved when toggling between normal and insert mode, so you can use a US layout
in normal mode then switch to insert mode and choose a Swedish layout. When
you go back to normal mode the US layout will be selected and when you enter
insert mode the Swedish layout is selected. This also works when searching
for text etc. see 'imc', 'imi', 'ims'.
Note that the layout used in normal mode is the layout used when 'noimd' is
set (i.e when IM is enabled). If you find that MacVim switches to the
wrong layout when going back to normal mode, then select the layout you want
to use in normal mode and type ":set imd" followed by ":set noimd".
==============================================================================
12. Known bugs/missing features *macvim-todo*
This list is by no means exhaustive, it only enumerates some of the more
prominent bugs/missing features.
- Localized menus are not supported. Choosing anything but "English" in the
"International" pane of "System Prefences" may break the menus (and
@@ -500,8 +659,9 @@ these are ones that are know and/or which were judged major.
- Sometimes multibyte characters look "too wide", i.e. they overlap the
following character. It might help to change 'ambiwidth', or override the
automatic font substitution by setting 'guifontwide' manually.
- Printing
- No find/replace dialog
- Printing. As a temporary solution <D-p> creates a PostScript file which is
then opened in Preview where it may be printed.
- The toolbar looks ugly and is not very useful.
If you find new bugs then add a new issue at http://code.google.com/p/macvim/
or post your findings to the |vim_mac| mailing list. If you are missing
@@ -510,24 +670,24 @@ might be simple to implement, but unless somebody asks for a particular
feature then there is little incentive to add it.
==============================================================================
10. Hints *macvim-hints*
13. Hints *macvim-hints*
In this section some general (not necessarily MacVim specific) hints are
given.
Scenario: ~
You try opening a bunch of files in tabs but not all files get
opened in their own tab.
You try opening a bunch of files in tabs but not all files get opened in their
own tab.
Solution: ~
To get around this, set 'tabpagemax' to something big in your
.gvimrc file (e.g. ":set tabpagemax=100").
To get around this, set 'tabpagemax' to something big in your .gvimrc file
(e.g. ":set tabpagemax=100").
Scenario: ~
You want to open a file in a tab in an already opened window, but typing
"mvim filename" in Terminal opens it up in a separate window.
You want to open a file in a tab in an already opened window, but typing "mvim
filename" in Terminal opens it up in a separate window.
Solution: ~
Use the |--remote-tab| switch. If you have several windows open you
might have to specify which window you want the file to open in by using the
Use the |--remote-tab| switch. If you have several windows open you might
have to specify which window you want the file to open in by using the
|--servername| switch. The title of a window usually ends in something like
"VIM" or "VIM3" --- this is the server name of that window. So to open a file
named "foobar.txt" in a window whose title ends in "VIM3" you would type (the
@@ -536,29 +696,29 @@ order of the arguments matters): >
For more information, consult the |client-server| manual page.
Scenario: ~
You like to be able to select text by holding down shift and
pressing the arrow keys and find the Vim way of selecting text strange.
You like to be able to select text by holding down shift and pressing the
arrow keys and find the Vim way of selecting text strange.
Solution: ~
See |macvim-shift-movement|.
Scenario: ~
You do not want MacVim to set up any key mappings.
Solution: ~
See |macvim-movement|.
See |cmd-movement|.
Scenario: ~
Enabling localized menus breaks the toolbar and the menus as well.
Solution: ~
This is a know problem, see |macvim-todo|.
This is a known problem, see |macvim-todo|.
Scenario: ~
You dislike the default font (DejaVu Sans Mono).
Solution: ~
The standard fixed width font on other Mac OS X applications is
Monaco. If you prefer this font then add the following line to your
"~/.gvimrc" (note that Monaco does not come in italic and bold variants): >
set guifont=Monaco:h10
The suffix ":h10" specifies the point size of the font should be "10" (see
The standard fixed width font on Mac OS X is Menlo (it used to be Monaco prior
to OS X 10.6). If you prefer this font then add the following line to your
"~/.gvimrc": >
set guifont=Menlo:h11
The suffix ":h11" specifies the point size of the font should be "11" (see
'guifont' for more information on how to set the font).
Scenario: ~
@@ -569,20 +729,67 @@ Hold down Cmd and click the zoom button. If you prefer this to be the default
action, then set the user default MMZoomBoth (see |macvim-prefs|).
Scenario: ~
Typing feels sluggish when the cursor is just before a right bracket (i.e. ')',
'}', or ']').
Typing feels sluggish when the cursor is just before a right bracket (i.e.
')', '}', or ']').
Solution: ~
Disable the "matchparen" plugin (see |matchparen|) by typing :NoMatchParen.
If that helps, then you can permanently disable "matchparen" by adding the
following line to your "~/.vimrc": >
let loaded_matchparen=1
<
Scenario: ~
You want to use MacVim as an editor for some external application.
Solution: ~
If the external application lets you set a program to execute then something
like "mvim -f" might be all you need (the "-f" switch ensures that the "mvim"
script returns only after you close the editor window, otherwise "mvim"
returns immediately). If the external program honors the EDITOR environment
variable (e.g Git does this) then you may get away by adding the following
line to your "~/.profile": >
export EDITOR='mvim -f'
If you have not installed the "mvim" script in your path you can provide the
path to the Vim binary instead. Thus, if "MacVim.app" resides in the
Applications folder then you would use the following line: >
export EDITOR='/Applications/MacVim.app/Contents/MacOS/Vim -g -f'
Scenario: ~
You can't find the information on MacVim you thought should be in
this manual page.
You have set MacVim to open from an external program and when you finish
editing (by closing the MacVim window) you want the external program to regain
focus.
Solution: ~
Post your question on the |vim_mac| mailing list and wait for an
answer.
Use the VimLeave autocommand to hide MacVim when the window closes: >
au VimLeave * maca hide:
Assuming your external program has a setting for which command to execute to
bring up an editor, you would set that option to something like: >
mvim -f -c "au VimLeave * maca hide:"
(See the above Scenario for an explanation of the "-f" switch.)
Scenario: ~
You would like to remap Caps Lock to Esc.
Solution: ~
The app "PCKeyboardHack" can be used to remap Caps Lock. It is available as a
free download from:
http://www.pqrs.org/tekezo/macosx/keyremap4macbook/extra.html
On some Apple keyboards the Caps Lock key doesn't immediately register and
this makes Caps Lock "drop" key presses. To work around this problem go into
the "Keyboard" System Preference and remap Caps Lock to Ctrl first (click the
"Modifier Keys..." button). This trick may also be necessary if the Caps Lock
light turns on/off despite having remapped to Esc.
Scenario: ~
You have problems creating custom mappings involving the Cmd key.
Solution: ~
To bind to a key involving Cmd you use the "<D-..>" syntax. Many Cmd-key
mappings are already used by the menus so if your mapping doesn't work then
the solution is usually to first unmap the menu binding (see |macvim-menus|,
in particular read the end of that section). Also see the section on
|macvim-shortcuts| for some Cmd-key combinations which are not used by the
menus but still need to be freed up before they can be used in custom bindings.
Scenario: ~
You can't find the information on MacVim you thought should be in this manual
page.
Solution: ~
Post your question on the |vim_mac| mailing list and wait for an answer.
vim:tw=78:sw=4:ts=8:ft=help:norl:
+1 -1
View File
@@ -1,4 +1,4 @@
*gui_w16.txt* For Vim version 7.2a. Last change: 2005 Mar 29
*gui_w16.txt* For Vim version 7.2. Last change: 2005 Mar 29
VIM REFERENCE MANUAL by Bram Moolenaar
+2 -2
View File
@@ -1,4 +1,4 @@
*gui_w32.txt* For Vim version 7.2a. Last change: 2007 Aug 30
*gui_w32.txt* For Vim version 7.2. Last change: 2007 Aug 30
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -129,7 +129,7 @@ the makefile by double clicking it and use the "Edit with Vim" entry to edit
the makefile.
You can select any files and right-click to see a menu option called "Edit
with gvim". Chosing this menu option will invoke gvim with the file you have
with gvim". Choosing this menu option will invoke gvim with the file you have
selected. If you select multiple files, you will find two gvim-related menu
options:
"Edit with multiple gvims" -- one gvim for each file in the selection
+12 -8
View File
@@ -1,4 +1,4 @@
*gui_x11.txt* For Vim version 7.2a. Last change: 2007 Dec 09
*gui_x11.txt* For Vim version 7.2. Last change: 2009 Oct 28
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -63,7 +63,8 @@ already running vim will never fork in MacVim.
"gvim --nofork" does the same as "gvim -f".
If you want the GUI to run in the foreground always, include the 'f'
flag in 'guioptions'. |-f|.
flag in 'guioptions'. |-f|. MacVim does not support this flag in
'guioptions'.
==============================================================================
2. GUI Resources *gui-resources* *.Xdefaults*
@@ -548,13 +549,16 @@ Of these three, Vim uses PRIMARY when reading and writing the "* register
register. Vim does not access the SECONDARY selection.
Examples: (assuming the default option values)
- Select an URL in Visual mode in Vim. Go to a text field in Netscape and
click the middle mouse button. The selected text will be inserted
(hopefully!).
- Select some text in Netscape by dragging with the mouse. Go to Vim and
- Select an URL in Visual mode in Vim. Go to your browser and click the
middle mouse button in the URL text field. The selected text will be
inserted (hopefully!). Note: in Firefox you can set the
middlemouse.contentLoadURL preference to true in about:config, then the
selected URL will be used when pressing middle mouse button in most places
in the window.
- Select some text in your browser by dragging with the mouse. Go to Vim and
press the middle mouse button: The selected text is inserted.
- Select some text in Vim and do "+y. Go to Netscape, select some text in a
textfield by dragging with the mouse. Now use the right mouse button and
- Select some text in Vim and do "+y. Go to your browser, select some text in
a textfield by dragging with the mouse. Now use the right mouse button and
select "Paste" from the popup menu. The selected text is overwritten by the
text from Vim.
Note that the text in the "+ register remains available when making a Visual
+6 -2
View File
@@ -1,8 +1,12 @@
*hangulin.txt* For Vim version 7.2a. Last change: 2006 Apr 02
*hangulin.txt* For Vim version 7.2. Last change: 2009 Jun 24
VIM REFERENCE MANUAL by Chi-Deok Hwang and Sung-Hyun Nam
NOTE: The |+hangul_input| feature is scheduled to be removed. If you want to
keep it, please send a message to the Vim user maillist.
Introduction *hangul*
------------
It is to input hangul, the Korean language, with VIM GUI version.
@@ -96,6 +100,6 @@ Bug or Comment
Send comments, patches and suggestions to:
Chi-Deok Hwang <hwang@mizi.co.kr>
Nam SungHyun <namsh@kldp.org>
SungHyun Nam <goweol@gmail.com>
vim:tw=78:ts=8:ft=help:norl:
+1 -1
View File
@@ -1,4 +1,4 @@
*hebrew.txt* For Vim version 7.2a. Last change: 2007 Jun 14
*hebrew.txt* For Vim version 7.2. Last change: 2007 Jun 14
VIM REFERENCE MANUAL by Ron Aaron (and Avner Lottem)
+3 -2
View File
@@ -1,4 +1,4 @@
*help.txt* For Vim version 7.2a. Last change: 2008 Jun 21
*help.txt* For Vim version 7.2. Last change: 2008 Jul 21
VIM - main help file
k
@@ -126,7 +126,7 @@ Advanced editing ~
|tabpage.txt| commands for using multiple tab pages
|syntax.txt| syntax highlighting
|spell.txt| spell checking
|diff.txt| working with two or three versions of the same file
|diff.txt| working with two to four versions of the same file
|autocmd.txt| automatically executing commands on an event
|filetype.txt| settings done specifically for a type of file
|eval.txt| expression evaluation, conditional commands
@@ -144,6 +144,7 @@ Special issues ~
|hebrew.txt| Hebrew language support and editing
|russian.txt| Russian language support and editing
|ft_ada.txt| Ada (the programming language) support
|ft_sql.txt| about the SQL filetype plugin
|hangulin.txt| Hangul (Korean) input mode
|rileft.txt| right-to-left editing mode
+1 -1
View File
@@ -1,4 +1,4 @@
*howto.txt* For Vim version 7.2a. Last change: 2006 Apr 02
*howto.txt* For Vim version 7.2. Last change: 2006 Apr 02
VIM REFERENCE MANUAL by Bram Moolenaar
+18 -11
View File
@@ -1,4 +1,4 @@
*if_cscop.txt* For Vim version 7.2a. Last change: 2005 Mar 29
*if_cscop.txt* For Vim version 7.2. Last change: 2009 Mar 18
VIM REFERENCE MANUAL by Andy Kahn
@@ -131,11 +131,22 @@ The available subcommands are:
7 or f: Find this file
8 or i: Find files #including this file
For all types, except 4 and 6, leading white space for {name} is
removed. For 4 and 6 there is exactly one space between {querytype}
and {name}. Further white space is included in {name}.
EXAMPLES >
:cscope find c vim_free
:cscope find 3 vim_free
:cscope find 3 vim_free
<
These two examples perform the same query. >
These two examples perform the same query: functions calling
"vim_free". >
:cscope find t initOnce
:cscope find t initOnce
<
The first one searches for the text "initOnce", the second one for
" initOnce". >
:cscope find 0 DEFAULT_TERM
<
@@ -344,13 +355,8 @@ cscope version for Win32 see:
The DJGPP-built version from http://cscope.sourceforge.net is known to not
work with Vim.
There are a couple of hard-coded limitations:
1. The maximum number of cscope connections allowed is 8. Do you
really need more?
2. Doing a |:tjump| when |:cstag| searches the tag files is not
configurable (e.g., you can't do a tselect instead).
Hard-coded limitation: doing a |:tjump| when |:cstag| searches the tag files
is not configurable (e.g., you can't do a tselect instead).
==============================================================================
6. Suggested usage *cscope-suggestions*
@@ -475,7 +481,8 @@ bit of code) was adapted from the cscope interface in nvi. Please report
any problems, suggestions, patches, et al., you have for the usage of
cscope within Vim to him.
*cscope-win32*
For a cscope version for Win32 see: http://iamphet.nm.ru/cscope/index.html
For a cscope version for Win32 see:
http://code.google.com/p/cscope-win32/
Win32 support was added by Sergey Khorev <sergey.khorev@gmail.com>. Contact
him if you have Win32-specific issues.
+50 -62
View File
@@ -1,4 +1,4 @@
*if_mzsch.txt* For Vim version 7.2a. Last change: 2007 May 03
*if_mzsch.txt* For Vim version 7.2. Last change: 2010 Jan 19
VIM REFERENCE MANUAL by Sergey Khorev
@@ -9,8 +9,9 @@ The MzScheme Interface to Vim *mzscheme* *MzScheme*
1. Commands |mzscheme-commands|
2. Examples |mzscheme-examples|
3. Threads |mzscheme-threads|
4. The Vim access procedures |mzscheme-vim|
5. Dynamic loading |mzscheme-dynamic|
4. Vim access from MzScheme |mzscheme-vim|
5. mzeval() Vim function |mzscheme-mzeval|
6. Dynamic loading |mzscheme-dynamic|
{Vi does not have any of these commands}
@@ -42,10 +43,6 @@ Note: On FreeBSD you should use the "drscheme" port.
*:mzfile* *:mzf*
:[range]mzf[ile] {file} Execute the MzScheme script in {file}. {not in Vi}
All statements are executed in the namespace of the
buffer that was current during :mzfile start.
If you want to access other namespaces, use
'parameterize'.
All of these commands do essentially the same thing - they execute a piece of
MzScheme code, with the "current range" set to the given line
@@ -54,8 +51,6 @@ range.
In the case of :mzscheme, the code to execute is in the command-line.
In the case of :mzfile, the code to execute is the contents of the given file.
Each buffer has its own MzScheme namespace. Global namespace is bound to
the `global-namespace' value from the 'vimext' module.
MzScheme interface defines exception exn:vim, derived from exn.
It is raised for various Vim errors.
@@ -79,40 +74,8 @@ To avoid clashes with MzScheme, consider using prefix when requiring module,
e.g.: >
:mzscheme (require (prefix vim- vimext))
<
All the examples below assume this naming scheme. Note that you need to do
this again for every buffer.
All the examples below assume this naming scheme.
The auto-instantiation can be achieved with autocommands, e.g. you can put
something like this in your .vimrc (EOFs should not have indentation): >
function s:MzRequire()
if has("mzscheme")
:mz << EOF
(require (prefix vim- vimext))
(let ((buf (vim-get-buff-by-name (vim-eval "expand(\"<afile>\")"))))
(when (and buf (not (eq? buf (vim-curr-buff))))
(parameterize ((current-namespace (vim-get-buff-namespace buf)))
(namespace-attach-module vim-global-namespace 'vimext)
(namespace-require '(prefix vim vimext)))))
EOF
endif
endfunction
function s:MzStartup()
if has("mzscheme")
au BufNew,BufNewFile,BufAdd,BufReadPre * :call s:MzRequire()
:mz << EOF
(current-library-collection-paths
(cons
(build-path (find-system-path 'addon-dir) (version) "collects")
(current-library-collection-paths)))
EOF
endif
endfunction
call s:MzStartup()
<
The global namespace just instantiated this module with the prefix "vimext:".
*mzscheme-sandbox*
When executed in the |sandbox|, access to some filesystem and Vim interface
procedures is restricted.
@@ -121,15 +84,20 @@ procedures is restricted.
2. Examples *mzscheme-examples*
>
:mzscheme (display "Hello")
:mz (display (string-append "Using MzScheme version " (version)))
:mzscheme (require (prefix vim- vimext)) ; for MzScheme < 4.x
:mzscheme (require (prefix-in vim- 'vimext)) ; MzScheme 4.x
:mzscheme (vim-set-buff-line 10 "This is line #10")
<
Inline script usage: >
function! <SID>SetFirstLine()
:mz << EOF
(display "!!!")
(require (prefix vim- vimext))
; for newer versions (require (prefix-in vim- 'vimext))
(vim-set-buff-line 1 "This is line #1")
(vim-beep)
EOF
EOF
endfunction
nmap <F9> :call <SID>SetFirstLine() <CR>
@@ -137,17 +105,33 @@ Inline script usage: >
File execution: >
:mzfile supascript.scm
<
Accessing the current buffer namespace from an MzScheme program running in
another buffer within |:mzfile|-executed script : >
; Move to the window below
(vim-command "wincmd j")
; execute in the context of buffer, to which window belongs
; assume that buffer has 'textstring' defined
(parameterize ((current-namespace
(vim-get-buff-namespace (vim-curr-buff))))
(eval '(vim-set-buff-line 1 textstring)))
Vim exception handling: >
:mz << EOF
(require (prefix vim- vimext))
; for newer versions (require (prefix-in vim- 'vimext))
(with-handlers
([exn:vim? (lambda (e) (display (exn-message e)))])
(vim-eval "nonsense-string"))
EOF
<
Auto-instantiation of vimext module (can be placed in your |vimrc|): >
function! MzRequire()
:redir => l:mzversion
:mz (version)
:redir END
if strpart(l:mzversion, 1, 1) < "4"
" MzScheme versions < 4.x:
:mz (require (prefix vim- vimext))
else
" newer versions:
:mz (require (prefix-in vim- 'vimext))
endif
endfunction
if has("mzscheme")
silent call MzRequire()
endif
<
==============================================================================
3. Threads *mzscheme-threads*
@@ -159,7 +143,7 @@ Thread scheduling in the console version of Vim is less reliable than in the
GUI version.
==============================================================================
5. VIM Functions *mzscheme-vim*
4. Vim access from MzScheme *mzscheme-vim*
*mzscheme-vimext*
The 'vimext' module provides access to procedures defined in the MzScheme
@@ -168,11 +152,11 @@ interface.
Common
------
(command {command-string}) Perform the vim ":Ex" style command.
(eval {expr-string}) Evaluate the vim expression to a string.
A |List| is turned into a string by
joining the items and inserting line
breaks.
NOTE clashes with MzScheme eval
(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
(range-start) Start/End of the range passed with
(range-end) the Scheme command.
(beep) beep
@@ -186,7 +170,6 @@ Common
be set. The symbol 'global can be passed
as {buffer-or-window}. Then |:setglobal|
will be used.
global-namespace The MzScheme main namespace.
Buffers *mzscheme-buffer*
-------
@@ -218,7 +201,7 @@ Buffers *mzscheme-buffer*
{linenr}. If {linenr} is 0, lines will be
inserted at start.
(curr-buff) Get the current buffer. Use procedures
from `vimcmd' module to change it.
from "vimcmd" module to change it.
(buff-count) Get count of total buffers in the editor.
(get-next-buff [buffer]) Get next buffer.
(get-prev-buff [buffer]) Get previous buffer. Return #f when there
@@ -228,7 +211,6 @@ Buffers *mzscheme-buffer*
if there is no such buffer.
(get-buff-by-num {buffernum}) Get a buffer by its number (return #f if
there is no buffer with this number).
(get-buff-namespace [buffer]) Get buffer namespace.
Windows *mzscheme-window*
------
@@ -250,7 +232,13 @@ Windows *mzscheme-window*
(set-cursor (line . col) [window]) Set cursor position.
==============================================================================
5. Dynamic loading *mzscheme-dynamic*
5. mzeval() Vim function *mzscheme-mzeval*
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*
On MS-Windows the MzScheme libraries can be loaded dynamically. The |:version|
output then includes |+mzscheme/dyn|.
+2 -2
View File
@@ -1,4 +1,4 @@
*if_ole.txt* For Vim version 7.2a. Last change: 2007 May 10
*if_ole.txt* For Vim version 7.2. Last change: 2008 Aug 16
VIM REFERENCE MANUAL by Paul Moore
@@ -115,7 +115,7 @@ Example (Visual Basic syntax) >
3. The "normal" command *ole-normal*
Due to the way Vim processes OLE Automation commands, combined with the method
of implementation of the ex command :normal, it is not possible to execute the
of implementation of the Ex command :normal, it is not possible to execute the
:normal command via OLE automation. Any attempt to do so will fail, probably
harmlessly, although possibly in unpredictable ways.
+1 -1
View File
@@ -1,4 +1,4 @@
*if_perl.txt* For Vim version 7.2a. Last change: 2006 Mar 06
*if_perl.txt* For Vim version 7.2. Last change: 2006 Mar 06
VIM REFERENCE MANUAL by Sven Verdoolaege
+2 -2
View File
@@ -1,4 +1,4 @@
*if_pyth.txt* For Vim version 7.2a. Last change: 2006 Apr 30
*if_pyth.txt* For Vim version 7.2. Last change: 2008 Aug 16
VIM REFERENCE MANUAL by Paul Moore
@@ -93,7 +93,7 @@ module before using it: >
Overview >
:py print "Hello" # displays a message
:py vim.command(cmd) # execute an ex command
:py vim.command(cmd) # execute an Ex command
:py w = vim.windows[n] # gets window "n"
:py cw = vim.current.window # gets the current window
:py b = vim.buffers[n] # gets buffer "n"
+2 -2
View File
@@ -1,4 +1,4 @@
*if_ruby.txt* For Vim version 7.2a. Last change: 2006 Apr 30
*if_ruby.txt* For Vim version 7.2. Last change: 2008 Aug 16
VIM REFERENCE MANUAL by Shugo Maeda
@@ -79,7 +79,7 @@ Ruby code gets all of its access to vim via the "VIM" module.
Overview >
print "Hello" # displays a message
VIM.command(cmd) # execute an ex command
VIM.command(cmd) # execute an Ex command
num = VIM::Window.count # gets the number of windows
w = VIM::Window[n] # gets window "n"
cw = VIM::Window.current # gets the current window
+1 -1
View File
@@ -1,4 +1,4 @@
*if_sniff.txt* For Vim version 7.2a. Last change: 2005 Mar 29
*if_sniff.txt* For Vim version 7.2. Last change: 2005 Mar 29
VIM REFERENCE MANUAL
+11 -11
View File
@@ -1,4 +1,4 @@
*if_tcl.txt* For Vim version 7.2a. Last change: 2006 Mar 06
*if_tcl.txt* For Vim version 7.2. Last change: 2008 Aug 16
VIM REFERENCE MANUAL by Ingo Wilken
@@ -83,7 +83,7 @@ The following commands are implemented: >
::vim::beep # Guess.
::vim::buffer {n} # Create Tcl command for one buffer.
::vim::buffer list # Create Tcl commands for all buffers.
::vim::command [-quiet] {cmd} # Execute an ex command.
::vim::command [-quiet] {cmd} # Execute an Ex command.
::vim::expr {expr} # Use Vim's expression evaluator.
::vim::option {opt} # Get vim option.
::vim::option {opt} {val} # Set vim option.
@@ -116,7 +116,7 @@ Commands:
::vim::command {cmd} *tcl-command*
::vim::command -quiet {cmd}
Execute the vim (ex-mode) command {cmd}. Any ex command that affects
Execute the vim (ex-mode) command {cmd}. Any Ex command that affects
a buffer or window uses the current buffer/current window. Does not
return a result other than a standard Tcl error code. After this
command is completed, the "::vim::current" variable is updated.
@@ -210,7 +210,7 @@ Variables:
line *tcl-var-line*
lnum *tcl-var-lnum*
These global variables are only available if the ":tcldo" ex command
These global variables are only available if the ":tcldo" Ex command
is being executed. They contain the text and line number of the
current line. When the Tcl command invoked by ":tcldo" is completed,
the current line is set to the contents of the "line" variable, unless
@@ -233,7 +233,7 @@ Let's assume the name of the window command is stored in the Tcl variable "win",
i.e. "$win" calls the command. The following options are available: >
$win buffer # Create Tcl command for window's buffer.
$win command {cmd} # Execute ex command in windows context.
$win command {cmd} # Execute Ex command in windows context.
$win cursor # Get current cursor position.
$win cursor {var} # Set cursor position from array variable.
$win cursor {row} {col} # Set cursor position.
@@ -312,7 +312,7 @@ Let's assume the name of the buffer command is stored in the Tcl variable "buf",
i.e. "$buf" calls the command. The following options are available: >
$buf append {n} {str} # Append a line to buffer, after line {n}.
$buf command {cmd} # Execute ex command in buffers context.
$buf command {cmd} # Execute Ex command in buffers context.
$buf count # Report number of lines in buffer.
$buf delcmd {cmd} # Call Tcl command when buffer is deleted.
$buf delete {n} # Delete a single line.
@@ -407,7 +407,7 @@ Options:
< See |tcl-window-cmds| for the available options.
$buf command [-quiet] {cmd} *tcl-buffer-command*
$buf expr {exr} *tcl-buffer-expr*
$buf expr {expr} *tcl-buffer-expr*
$buf option {opt} [val] *tcl-buffer-option*
These are similar to "::vim::command" etc., except that everything is
done in the context of the buffer represented by $buf, instead of the
@@ -438,7 +438,7 @@ used to display messages in vim.
==============================================================================
7. Known bugs & problems *tcl-bugs*
Calling one of the Tcl ex commands from inside Tcl (via "::vim::command") may
Calling one of the Tcl Ex commands from inside Tcl (via "::vim::command") may
have unexpected side effects. The command creates a new interpreter, which
has the same abilities as the standard interpreter - making "::vim::command"
available in a safe child interpreter therefore makes the child unsafe. (It
@@ -487,11 +487,11 @@ This script adds a consecutive number to each line in the current range:
incr i ; incr n
}
The same can also be done quickly with two ex commands, using ":tcldo":
The same can also be done quickly with two Ex commands, using ":tcldo":
:tcl set n 1
:[range]tcldo set line "$n\t$line" ; incr n
This procedure runs an ex command on each buffer (idea stolen from Ron Aaron):
This procedure runs an Ex command on each buffer (idea stolen from Ron Aaron):
proc eachbuf { cmd } {
foreach b [::vim::buffer list] {
$b command $cmd
@@ -500,7 +500,7 @@ This procedure runs an ex command on each buffer (idea stolen from Ron Aaron):
Use it like this:
:tcl eachbuf %s/foo/bar/g
Be careful with Tcl's string and backslash substitution, tough. If in doubt,
surround the ex command with curly braces.
surround the Ex command with curly braces.
If you want to add some Tcl procedures permanently to vim, just place them in
+81 -5
View File
@@ -1,4 +1,4 @@
*indent.txt* For Vim version 7.2a. Last change: 2008 Jun 21
*indent.txt* For Vim version 7.2. Last change: 2010 Jan 27
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -437,7 +437,7 @@ assume a 'shiftwidth' of 4.
*N Vim searches for unclosed comments at most N lines away. This
limits the time needed to search for the start of a comment.
(default 30 lines).
(default 70 lines).
#N When N is non-zero recognize shell/Perl comments, starting with
'#'. Default N is zero: don't recognizes '#' comments. Note
@@ -506,11 +506,86 @@ to get do loops indented in .f90 files and left alone in Fortran files with
other extensions such as .for.
PHP *ft-php-indent* *php-indent* *php-indenting*
NOTE: PHP files will be indented correctly only if PHP |syntax| is active.
If you are editing a file in Unix 'fileformat' and '\r' characters are present
before new lines, indentation won't proceed correctly ; you have to remove
those useless characters first with a command like: >
:%s /\r$//g
Or, you can simply |:let| the variable PHP_removeCRwhenUnix to 1 and the
script will silently remove them when Vim loads a PHP file (at each|BufRead|).
OPTIONS: ~
PHP indenting can be altered in several ways by modifying the values of some
variables:
*php-comment*
To not enable auto-formating of comments by default (if you want to use your
own 'formatoptions'): >
:let g:PHP_autoformatcomment = 0
Else, 't' will be removed from the 'formatoptions' string and "qrowcb" will be
added, see|fo-table|for more information.
-------------
To add an extra indent to every PHP lines with N being the number of
'shiftwidth' to add: >
:let g:PHP_default_indenting = N
For example, with N = 1, this will give:
>
<?php
if (!isset($History_lst_sel))
if (!isset($History_lst_sel))
if (!isset($History_lst_sel)) {
$History_lst_sel=0;
} else
$foo="bar";
$command_hist = TRUE;
?>
(Notice the extra indent between the PHP container markers and the code)
-------------
To automatically remove '\r' characters when the 'fileformat' is set to Unix: >
:let g:PHP_removeCRwhenUnix = 1
-------------
To indent braces at the same level than the code they contain: >
:let g:PHP_BracesAtCodeLevel = 1
This will give the following result: >
if ($foo)
{
foo();
}
Instead of: >
if ($foo)
{
foo();
}
NOTE: Indenting will be a bit slower if this option is used because some
optimizations won't be available.
-------------
To indent 'case:' and 'default:' statements in switch() blocks: >
:let g:PHP_vintage_case_default_indent = 1
(By default they are indented at the same level than the 'switch()' to avoid
unnecessary indentation)
PYTHON *ft-python-indent*
The amount of indent can be set for the following situations. The examples
given are de the defaults. Note that the variables are set to an expression,
so that you can change the value of 'shiftwidth' later.
given are the defaults. Note that the variables are set to an expression, so
that you can change the value of 'shiftwidth' later.
Indent after an open paren: >
let g:pyindent_open_paren = '&sw * 2'
@@ -534,8 +609,9 @@ b:sh_indent_options['continuation-line']
b:sh_indent_options['case-labels']
Amount of indent to add for case labels.
(not actually implemented)
b:sh_indent_options['case-statement']
b:sh_indent_options['case-statements']
Amount of indent to add for case statements.
b:sh_indent_options['case-breaks']
+6 -4
View File
@@ -1,4 +1,4 @@
*index.txt* For Vim version 7.2a. Last change: 2008 May 04
*index.txt* For Vim version 7.2. Last change: 2009 Jul 01
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -522,7 +522,7 @@ tag command action in Normal mode ~
|CTRL-W_+| CTRL-W + increase current window height N lines
|CTRL-W_-| CTRL-W - decrease current window height N lines
|CTRL-W_<| CTRL-W < decrease current window width N columns
|CTRL-W_=| CTRL-W = make all windows the same height
|CTRL-W_=| CTRL-W = make all windows the same height & width
|CTRL-W_>| CTRL-W > increase current window width N columns
|CTRL-W_H| CTRL-W H move current window to the far left
|CTRL-W_J| CTRL-W J move current window to the very bottom
@@ -572,7 +572,7 @@ tag command action in Normal mode ~
window N lines high
|CTRL-W_t| CTRL-W t go to top window
|CTRL-W_v| CTRL-W v split current window vertically, new window
N lines wide
N columns wide
|CTRL-W_w| CTRL-W w go to N next window (wrap around)
|CTRL-W_x| CTRL-W x exchange current window with window N
(default: next window)
@@ -1341,6 +1341,7 @@ The commands are sorted on the non-optional part of their name.
|:number| :nu[mber] print lines with line number
|:nunmap| :nun[map] like ":unmap" but for Normal mode
|:nunmenu| :nunme[nu] remove menu for Normal mode
|:oldfiles| :ol[dfiles] list files that have marks in the viminfo file
|:open| :o[pen] start open mode (not implemented)
|:omap| :om[ap] like ":map" but for Operator-pending mode
|:omapclear| :omapc[lear] remove all mappings for Operator-pending mode
@@ -1438,7 +1439,7 @@ The commands are sorted on the non-optional part of their name.
|:shell| :sh[ell] escape to a shell
|:simalt| :sim[alt] Win32 GUI: simulate Windows ALT key
|:sign| :sig[n] manipulate signs
|:silent| :sil[ent] Run a command silently
|:silent| :sil[ent] run a command silently
|:sleep| :sl[eep] do nothing for a few seconds
|:slast| :sla[st] split window and go to last file in the
argument list
@@ -1527,6 +1528,7 @@ The commands are sorted on the non-optional part of their name.
|:unlockvar| :unlo[ckvar] unlock variables
|:unmap| :unm[ap] remove mapping
|:unmenu| :unme[nu] remove menu
|:unsilent| :uns[ilent] run a command not silently
|:update| :up[date] write buffer if modified
|:vglobal| :v[global] execute commands for not matching lines
|:version| :ve[rsion] print version number and other info
+10 -11
View File
@@ -1,4 +1,4 @@
*insert.txt* For Vim version 7.2a. Last change: 2008 Jun 21
*insert.txt* For Vim version 7.2. Last change: 2009 Jul 14
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -123,6 +123,7 @@ CTRL-R {0-9a-z"%#*+:.-=} *i_CTRL-R*
':' the last command-line
'.' the last inserted text
'-' the last small (less than a line) delete
*i_CTRL-R_=*
'=' the expression register: you are prompted to
enter an expression (see |expression|)
Note that 0x80 (128 decimal) is used for
@@ -133,6 +134,8 @@ CTRL-R {0-9a-z"%#*+:.-=} *i_CTRL-R*
When the result is a |List| the items are used
as lines. They can have line breaks inside
too.
When the result is a Float it's automatically
converted to a String.
See |registers| about registers. {not in Vi}
CTRL-R CTRL-R {0-9a-z"%#*+/:.-=} *i_CTRL-R_CTRL-R*
@@ -660,7 +663,8 @@ CTRL-X CTRL-L Search backwards for a line that starts with the
CTRL-X CTRL-L After expanding a line you can additionally get the
line next to it by typing CTRL-X CTRL-L again, unless
a double CTRL-X is used.
a double CTRL-X is used. Only works for loaded
buffers.
Completing keywords in current file *compl-current*
@@ -1488,7 +1492,7 @@ with data pulled directly from within a database. For detailed instructions
and a tutorial see |omni-sql-completion|.
The SQL completion plugin can be used in conjunction with other completion
plugins. For example, the PHP filetype has it's own completion plugin.
plugins. For example, the PHP filetype has its own completion plugin.
Since PHP is often used to generate dynamic website by accessing a database,
the SQL completion plugin can also be enabled. This allows you to complete
PHP code and SQL code at the same time.
@@ -1725,14 +1729,9 @@ too long when appending characters a line break is automatically inserted.
These two commands will keep on asking for lines, until you type a line
containing only a ".". Watch out for lines starting with a backslash, see
|line-continuation|.
When these commands are used with |:global| or |:vglobal| then the lines are
obtained from the text following the command. Separate lines with a NL
escaped with a backslash: >
:global/abc/insert\
one line\
another line
The final "." is not needed then.
NOTE: ":append" and ":insert" don't work properly in between ":if" and
NOTE: These commands cannot be used with |:global| or |:vglobal|.
":append" and ":insert" don't work properly in between ":if" and
":endif", ":for" and ":endfor", ":while" and ":endwhile".
*:start* *:startinsert*
+6 -2
View File
@@ -1,4 +1,4 @@
*intro.txt* For Vim version 7.2a. Last change: 2008 Jun 24
*intro.txt* For Vim version 7.2. Last change: 2009 Apr 21
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -43,6 +43,10 @@ between different computers and terminals. Besides the remarks given in this
document, there is a separate document for each supported system, see
|sys-file-list|.
*pronounce*
Vim is pronounced as one word, like Jim, not vi-ai-em. It's written with a
capital, since it's a name, again like Jim.
This manual is a reference for all the Vim commands and options. This is not
an introduction to the use of Vi or Vim, it gets a bit complicated here and
there. For beginners, there is a hands-on |tutor|. To learn using Vim, read
@@ -208,7 +212,7 @@ Vim would never have become what it is now, without the help of these people!
Bill Foster Athena GUI port
Google Lets me work on Vim one day a week
Loic Grenie xvim (ideas for multi windows version)
Sven Guckes Vim promotor and previous WWW page maintainer
Sven Guckes Vim promoter and previous WWW page maintainer
Darren Hiebert Exuberant ctags
Jason Hildebrand GTK+ 2 port
Bruce Hunsaker improvements for VMS port
+22 -11
View File
@@ -1,4 +1,4 @@
*map.txt* For Vim version 7.2a. Last change: 2008 Jun 21
*map.txt* For Vim version 7.2. Last change: 2009 Nov 04
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -162,8 +162,8 @@ be used in any order. They must appear right after the command, before any
other arguments.
*:map-local* *:map-<buffer>* *E224* *E225*
If the first argument to one of these commands is "<buffer>" it will apply to
mappings locally to the current buffer only. Example: >
If the first argument to one of these commands is "<buffer>" the mapping will
be effective in the current buffer only. Example: >
:map <buffer> ,w /[.,;]<CR>
Then you can map ",w" to something else in another buffer: >
:map <buffer> ,w /[#&!]<CR>
@@ -224,6 +224,10 @@ expression is evaluated to obtain the {rhs} that is used. Example: >
The result of the InsertDot() function will be inserted. It could check the
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.
Be very careful about side effects! The expression is evaluated while
obtaining characters, you may very well make the command dysfunctional.
For this reason the following is blocked:
@@ -268,9 +272,10 @@ as a special key.
1.3 MAPPING AND MODES *:map-modes*
*mapmode-nvo* *mapmode-n* *mapmode-v* *mapmode-o*
There are five sets of mappings
There are six sets of mappings
- For Normal mode: When typing commands.
- For Visual mode: When typing commands while the Visual area is highlighted.
- For Select mode: like Visual mode but typing text replaces the selection.
- For Operator-pending mode: When an operator is pending (after "d", "y", "c",
etc.). See below: |omap-info|.
- For Insert mode. These are also used in Replace mode.
@@ -295,6 +300,9 @@ Overview of which map command works in which mode:
Some commands work both in Visual and Select mode, some in only one. Note
that quite often "Visual" is mentioned where both Visual and Select mode
apply. |Select-mode-mapping|
NOTE: Mapping a printable character in Select mode may confuse the user. It's
better to explicitly use :xmap and :smap for printable characters. Or use
:sunmap after defining the mapping.
commands: modes: ~
Visual Select ~
@@ -586,11 +594,14 @@ otherwise you would not be able to use those commands anymore. Here are a few
suggestions:
- Function keys <F2>, <F3>, etc.. Also the shifted function keys <S-F1>,
<S-F2>, etc. Note that <F1> is already used for the help command.
- Meta-keys (with the ALT key pressed). |:map-alt-keys|
- Meta-keys (with the ALT key pressed). Depending on your keybord accented
characters may be used as well. |:map-alt-keys|
- Use the '_' or ',' character and then any other character. The "_" and ","
commands do exist in Vim (see |_| and |,|), but you probably never use them.
- Use a key that is a synonym for another command. For example: CTRL-P and
CTRL-N. Use an extra character to allow more mappings.
- The key defined by <Leader> and one or more other keys. This is especially
useful in scripts. |mapleader|
See the file "index" for keys that are not used and thus can be mapped without
losing any builtin function. You can also use ":help {key}^D" to find out if
@@ -1078,7 +1089,7 @@ feature}.
It is possible to define your own Ex commands. A user-defined command can act
just like a built-in command (it can have a range or arguments, arguments can
be completed as filenames or buffer names, etc), except that when the command
is executed, it is transformed into a normal ex command and then executed.
is executed, it is transformed into a normal Ex command and then executed.
For starters: See section |40.2| in the user manual.
@@ -1146,7 +1157,7 @@ See |:verbose-cmd| for more information.
Command attributes
User-defined commands are treated by Vim just like any other ex commands. They
User-defined commands are treated by Vim just like any other Ex commands. They
can have arguments, or have a range specified. Arguments are subject to
completion as filenames, buffers, etc. Exactly how this works depends upon the
command's attributes, which are specified when the command is defined.
@@ -1236,7 +1247,7 @@ The function arguments are:
CursorPos the cursor position in it (byte index)
The function may use these for determining context. For the "custom"
argument, it is not necessary to filter candidates against the (implicit
pattern in) ArgLead. Vim will do filter the candidates with its regexp engine
pattern in) ArgLead. Vim will filter the candidates with its regexp engine
after function return, and this is probably more efficient in most cases. For
the "customlist" argument, Vim will not filter the returned completion
candidates and the user supplied function should filter the candidates.
@@ -1252,7 +1263,7 @@ the 'path' option: >
:com -nargs=1 -bang -complete=customlist,EditFileComplete
\ EditFile edit<bang> <args>
:fun EditFileComplete(A,L,P)
: return split(globpath(&path, a:ArgLead), "\n")
: return split(globpath(&path, a:A), "\n")
:endfun
<
@@ -1300,7 +1311,7 @@ The replacement text for a user defined command is scanned for special escape
sequences, using <...> notation. Escape sequences are replaced with values
from the entered command line, and all other text is copied unchanged. The
resulting string is executed as an Ex command. To avoid the replacement use
<lt> in plade of the initial <. Thus to include "<bang>" literally use
<lt> in place of the initial <. Thus to include "<bang>" literally use
"<lt>bang>".
The valid escape sequences are
@@ -1401,7 +1412,7 @@ errors and the "update" command to write modified buffers): >
This will invoke: >
:call Allargs("%s/foo/bar/ge|update")
<
When defining an user command in a script, it will be able to call functions
When defining a user command in a script, it will be able to call functions
local to the script and use mappings local to the script. When the user
invokes the user command, it will run in the context of the script it was
defined in. This matters if |<SID>| is used in a command.
+24 -8
View File
@@ -1,4 +1,4 @@
*mbyte.txt* For Vim version 7.2a. Last change: 2008 Jun 21
*mbyte.txt* For Vim version 7.2. Last change: 2009 Nov 17
VIM REFERENCE MANUAL by Bram Moolenaar et al.
@@ -555,7 +555,7 @@ Unfortunately, using fonts in X11 is complicated. The name of a single-byte
font is a long string. For multi-byte fonts we need several of these...
Note: Most of this is no longer relevant for GTK+ 2. Selecting a font via
its XLFD is not supported anymore; see 'guifont' for an example of how to
its XLFD is not supported; see 'guifont' for an example of how to
set the font. Do yourself a favor and ignore the |XLFD| and |xfontset|
sections below.
@@ -1030,7 +1030,7 @@ For Command-line mode the flag is NOT remembered. You are expected to type an
Ex command first, which is ASCII.
For typing search patterns the 'imsearch' option is used. It can be set to
use the same value as for 'iminsert'.
*lCursor*
It is possible to give the GUI cursor another color when the language mappings
are being used. This is disabled by default, to avoid that the cursor becomes
invisible when you use a non-standard background color. Here is an example to
@@ -1246,21 +1246,37 @@ character sets. Therefore it is possible to write text in any language using
Unicode (with a few rarely used languages excluded). And it's mostly possible
to mix these languages in one file, which is impossible with other encodings.
Unicode can be encoded in several ways. The two most popular ones are UCS-2,
which uses 16-bit words and UTF-8, which uses one or more bytes for each
character. Vim can support all of these encodings, but always uses UTF-8
Unicode can be encoded in several ways. The most popular one is UTF-8, which
uses one or more bytes for each character and is backwards compatible with
ASCII. On MS-Windows UTF-16 is also used (previously UCS-2), which uses
16-bit words. Vim can support all of these encodings, but always uses UTF-8
internally.
Vim has comprehensive UTF-8 support. It appears to work in:
Vim has comprehensive UTF-8 support. It works well in:
- xterm with utf-8 support enabled
- Athena, Motif and GTK GUI
- MS-Windows GUI
- several other platforms
Double-width characters are supported. This works best with 'guifontwide' or
'guifontset'. When using only 'guifont' the wide characters are drawn in the
normal width and a space to fill the gap. Note that the 'guifontset' option
is no longer relevant in the GTK+ 2 GUI.
*bom-bytes*
When reading a file a BOM (Byte Order Mark) can be used to recognize the
Unicode encoding:
EF BB BF utf-8
FF FE utf-16 big endian
FE FF utf-16 little endian
00 00 FE FF utf-32 big endian
FF FE 00 00 utf-32 little endian
Utf-8 is the recommended encoding. Note that it's difficult to tell utf-16
and utf-32 apart. Utf-16 is often used on MS-Windows, utf-32 is not
widespread as file format.
*mbyte-combining* *mbyte-composing*
A composing or combining character is used to change the meaning of the
character before it. The combining characters are drawn on top of the
@@ -1402,7 +1418,7 @@ options.txt for detailed information.
Contributions specifically for the multi-byte features by:
Chi-Deok Hwang <hwang@mizi.co.kr>
Nam SungHyun <namsh@kldp.org>
SungHyun Nam <goweol@gmail.com>
K.Nagano <nagano@atese.advantest.co.jp>
Taro Muraoka <koron@tka.att.ne.jp>
Yasuhiro Matsumoto <mattn@mail.goo.ne.jp>
+8 -8
View File
@@ -1,4 +1,4 @@
*message.txt* For Vim version 7.2a. Last change: 2007 Aug 19
*message.txt* For Vim version 7.2. Last change: 2009 Oct 28
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -135,8 +135,8 @@ This means that there are not enough colors available for Vim. It will still
run, but some of the colors will not appear in the specified color. Try
stopping other applications that use many colors, or start them after starting
gvim.
Netscape is known to consume a lot of colors. You can avoid this by telling
it to use its own colormap: >
Browsers are known to consume a lot of colors. You can avoid this with
netscape by telling it to use its own colormap: >
netscape -install
Or tell it to limit to a certain number of colors (64 should work well): >
netscape -ncols 64
@@ -567,7 +567,7 @@ allowed for the command that was used.
Unable to open swap file for "{filename}", recovery impossible
Vim was not able to create a swap file. You can still edit the file, but if
Vim unexpected exits the changes will be lost. And Vim may consume a lot of
Vim unexpectedly exits the changes will be lost. And Vim may consume a lot of
memory when editing a big file. You may want to change the 'directory' option
to avoid this error. See |swap-file|.
@@ -758,9 +758,9 @@ and the screen is about to be redrawn:
-> Press 'k', <Up>, 'u', 'b' or 'g' to scroll back in the messages. This
works the same way as at the |more-prompt|. Only works when 'compatible'
is off and 'more' is on.
-> Pressing 'j', 'd' or <Down> is ignored when messages scrolled off the top
of the screen, 'compatible' is off and 'more' is on, to avoid that typing
one 'j' too many causes the messages to disappear.
-> Pressing 'j', 'f', 'd' or <Down> is ignored when messages scrolled off the
top of the screen, 'compatible' is off and 'more' is on, to avoid that
typing one 'j' or 'f' too many causes the messages to disappear.
-> Press <C-Y> to copy (yank) a modeless selection to the clipboard register.
-> Use a menu. The characters defined for Cmdline-mode are used.
-> When 'mouse' contains the 'r' flag, clicking the left mouse button works
@@ -795,7 +795,7 @@ group.
Type effect ~
<CR> or <NL> or j or <Down> one more line
d down a page (half a screen)
<Space> or <PageDown> down a screen
<Space> or f or <PageDown> down a screen
G down all the way, until the hit-enter
prompt
+1 -1
View File
@@ -1,4 +1,4 @@
*mlang.txt* For Vim version 7.2a. Last change: 2008 Jun 08
*mlang.txt* For Vim version 7.2. Last change: 2008 Jun 08
VIM REFERENCE MANUAL by Bram Moolenaar
+20 -19
View File
@@ -1,4 +1,4 @@
*motion.txt* For Vim version 7.2a. Last change: 2008 May 02
*motion.txt* For Vim version 7.2. Last change: 2009 Sep 15
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -151,6 +151,11 @@ CTRL-V When used after an operator, before the motion command: Force
==============================================================================
2. Left-right motions *left-right-motions*
These commands move the cursor to the specified column in the current line.
They stop at the first column and at the end of the line, except "$", which
may move to one of the next lines. See 'whichwrap' option to make some of the
commands move across line boundaries.
h or *h*
<Left> or *<Left>*
CTRL-H or *CTRL-H* *<BS>*
@@ -234,7 +239,7 @@ g$ or g<End> When lines wrap ('wrap' on): To the last character of
*bar*
| To screen column [count] in the current line.
|exclusive| motion.
|exclusive| motion. Ceci n'est pas une pipe.
*f*
f{char} To [count]'th occurrence of {char} to the right. The
@@ -270,11 +275,6 @@ T{char} Till after [count]'th occurrence of {char} to the
, Repeat latest f, t, F or T in opposite direction
[count] times.
These commands move the cursor to the specified column in the current line.
They stop at the first column and at the end of the line, except "$", which
may move to one of the next lines. See 'whichwrap' option to make some of the
commands move across line boundaries.
==============================================================================
3. Up-down motions *up-down-motions*
@@ -325,9 +325,9 @@ gg Goto line [count], default first line, on the first
non-blank character |linewise|. If 'startofline' not
set, keep the same column.
:[range] Set the cursor on the specified line number. If
there are several numbers, the last one is used.
:[range] Set the cursor on the last line number in [range].
[range] can also be just one line number, e.g., ":1"
or ":'m".
*N%*
{count}% Go to {count} percentage in the file, on the first
non-blank in the line |linewise|. To compute the new
@@ -637,7 +637,8 @@ a` *v_a`* *a`*
When the cursor starts on a quote, Vim will figure out
which quote pairs form a string by searching from the
start of the line.
Any trailing or leading white space is included.
Any trailing white space is included, unless there is
none, then leading white space is included.
When used in Visual mode it is made characterwise.
Repeating this object in Visual mode another string is
included. A count is currently not used.
@@ -851,16 +852,16 @@ when using blockwise Visual mode. These commands do not work when no change
was made yet in the current file.
*'<* *`<*
'< `< To the first character of the last selected Visual
area in the current buffer. For block mode it may
also be the last character in the first line (to be
able to define the block). {not in Vi}.
'< `< To the first line or character of the last selected
Visual area in the current buffer. For block mode it
may also be the last character in the first line (to
be able to define the block). {not in Vi}.
*'>* *`>*
'> `> To the last character of the last selected Visual
area in the current buffer. For block mode it may
also be the first character of the last line (to be
able to define the block). Note that 'selection'
'> `> To the last line or character of the last selected
Visual area in the current buffer. For block mode it
may also be the first character of the last line (to
be able to define the block). Note that 'selection'
applies, the position may be just after the Visual
area. {not in Vi}.
+7 -5
View File
@@ -1,4 +1,4 @@
*netbeans.txt* For Vim version 7.2a. Last change: 2008 Jun 22
*netbeans.txt* For Vim version 7.2. Last change: 2009 Jan 06
VIM REFERENCE MANUAL by Gordon Prieur et al.
@@ -69,7 +69,7 @@ Initially just a Java IDE, NetBeans has had C, C++, and Fortran support added
in recent releases.
For more information visit the main NetBeans web site http://www.netbeans.org.
The External Editor is now, unfortunately, declared Obsolte. See
The External Editor is now, unfortunately, declared obsolete. See
http://externaleditor.netbeans.org.
Sun Microsystems, Inc. also ships NetBeans under the name Sun ONE Studio.
@@ -418,7 +418,7 @@ moveAnnoToFront serNum
Not implemented.
netbeansBuffer isNetbeansBuffer
If "isNetbeansBuffer" is "T" then this buffer is ``owned'' by
If "isNetbeansBuffer" is "T" then this buffer is "owned" by
NetBeans.
New in version 2.2.
@@ -722,8 +722,10 @@ keyAtPos keyName lnum/col
of the cursor.
New in version 2.1.
killed A file was closed by the user. Only for files that have been
assigned a number by the IDE.
killed A file was deleted or wiped out by the user and the buffer
annotations have been removed. The bufID number for this
buffer has become invalid. Only for files that have been
assigned a bufID number by the IDE.
newDotAndMark off off
Reports the position of the cursor being at "off" bytes into
+140 -82
View File
@@ -1,4 +1,4 @@
*options.txt* For Vim version 7.2a. Last change: 2008 Jun 24
*options.txt* For Vim version 7.2. Last change: 2010 Jan 06
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -748,8 +748,8 @@ A jump table for the options with a short description can be found at |Q_op|.
within a word (initial, medial, final and stand-alone).
b) the enabling of the ability to compose characters
c) the enabling of the required combining of some characters
When disabled the character display reverts back to each character's
true stand-alone form.
When disabled the display shows each character's true stand-alone
form.
Arabic is a complex language which requires other settings, for
further details see |arabic.txt|.
@@ -818,11 +818,11 @@ A jump table for the options with a short description can be found at |Q_op|.
When 'background' is set Vim will adjust the default color groups for
the new value. But the colors used for syntax highlighting will not
change. *g:colors_name*
When a color scheme is loaded (the "colors_name" variable is set)
When a color scheme is loaded (the "g:colors_name" variable is set)
setting 'background' will cause the color scheme to be reloaded. If
the color scheme adjusts to the value of 'background' this will work.
However, if the color scheme sets 'background' itself the effect may
be undone. First delete the "colors_name" variable when needed.
be undone. First delete the "g:colors_name" variable when needed.
When setting 'background' to the default value with: >
:set background&
@@ -964,7 +964,8 @@ A jump table for the options with a short description can be found at |Q_op|.
{not in Vi}
List of directories for the backup file, separated with commas.
- The backup file will be created in the first directory in the list
where this is possible.
where this is possible. The directory must exist, Vim will not
create it for you.
- Empty means that no backup file will be created ('patchmode' is
impossible!). Writing may fail because of this.
- A directory "." means to put the backup file in the same directory
@@ -1148,7 +1149,7 @@ A jump table for the options with a short description can be found at |Q_op|.
Some applications use the BOM to recognize the encoding of the file.
Often used for UCS-2 files on MS-Windows. For other applications it
causes trouble, for example: "cat file1 file2" makes the BOM of file2
appear halfway the resulting file.
appear halfway the resulting file. Gcc doesn't accept a BOM.
When Vim reads a file and 'fileencodings' starts with "ucs-bom", a
check for the presence of the BOM is done and 'bomb' set accordingly.
Unless 'binary' is set, it is removed from the first line, so that you
@@ -1285,7 +1286,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|+file_in_path| feature}
This is a list of directories which will be searched when using the
|:cd| and |:lcd| commands, provided that the directory being searched
for has a relative path (not starting with "/", "./" or "../").
for has a relative path, not an absolute part starting with "/", "./"
or "../", the 'cdpath' option is not used then.
The 'cdpath' option's value has the same form and semantics as
|'path'|. Also see |file-searching|.
The default value is taken from $CDPATH, with a "," prepended to look
@@ -1447,6 +1449,14 @@ A jump table for the options with a short description can be found at |Q_op|.
autoselectml Like "autoselect", but for the modeless selection
only. Compare to the 'A' flag in 'guioptions'.
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
Firefox, paste it as raw HTML in Vim, select the HTML
in Vim and paste it in a rich edit box in Firefox.
Only supported for GTK version 2 and later.
Only available with the |+multi_byte| feature.
exclude:{pattern}
Defines a pattern that is matched against the name of
the terminal 'term'. If there is a match, no
@@ -1755,8 +1765,8 @@ A jump table for the options with a short description can be found at |Q_op|.
set and to the Vim default value when 'compatible' is reset.
NOTE: This option is set to the POSIX default value at startup when
the Vi default value would be used and the $VIM_POSIX environment
variable exists |posix|. This means tries to behave like the POSIX
specification.
variable exists |posix|. This means Vim tries to behave like the
POSIX specification.
contains behavior ~
*cpo-a*
@@ -2296,6 +2306,8 @@ A jump table for the options with a short description can be found at |Q_op|.
or "\\", the swap file name will be built from the complete path to
the file with all path separators substituted to percent '%' signs.
This will ensure file name uniqueness in the preserve directory.
On Win32, when a separating comma is following, you must use "//",
since "\\" will include the comma in the file name.
- Spaces after the comma are ignored, other spaces are considered part
of the directory name. To have a space at the start of a directory
name, precede it with a backslash.
@@ -2380,6 +2392,10 @@ A jump table for the options with a short description can be found at |Q_op|.
This is specified with 'fileencoding'. The conversion is done with
iconv() or as specified with 'charconvert'.
If you need to know whether 'encoding' is a multi-byte encoding, you
can use: >
if has("multi_byte_encoding")
<
Normally 'encoding' will be equal to your current locale. This will
be the default if Vim recognizes your environment settings. If
'encoding' is not set to the current locale, 'termencoding' must be
@@ -2440,6 +2456,9 @@ A jump table for the options with a short description can be found at |Q_op|.
'eadirection' option tells in which direction the size is affected.
Changing the height and width of a window can be avoided by setting
'winfixheight' and 'winfixwidth', respectively.
If a window size is specified when creating a new window sizes are
currently not equalized (it's complicated, but may be implemented in
the future).
*'equalprg'* *'ep'*
'equalprg' 'ep' string (default "")
@@ -2447,7 +2466,8 @@ A jump table for the options with a short description can be found at |Q_op|.
{not in Vi}
External program to use for "=" command. When this option is empty
the internal formatting functions are used; either 'lisp', 'cindent'
or 'indentexpr'.
or 'indentexpr'. When Vim was compiled without internal formatting,
the "indent" program is used.
Environment variables are expanded |:set_env|. See |option-backslash|
about including spaces and backslashes.
This option cannot be set from a |modeline| or in the |sandbox|, for
@@ -2544,13 +2564,17 @@ A jump table for the options with a short description can be found at |Q_op|.
{not in Vi}
Sets the character encoding for the file of this buffer.
When 'fileencoding' is different from 'encoding', conversion will be
done when reading and writing the file.
done when writing the file. For reading see below.
When 'fileencoding' is empty, the same value as 'encoding' will be
used (no conversion when reading or writing a file).
Conversion will also be done when 'encoding' and 'fileencoding' are
both a Unicode encoding and 'fileencoding' is not utf-8. That's
because internally Unicode is always stored as utf-8.
WARNING: Conversion can cause loss of information! When
'encoding' is "utf-8" conversion is most likely done in a way
that the reverse conversion results in the same text. When
'encoding' is not "utf-8" some characters may be lost!
'encoding' is "utf-8" or another Unicode encoding, conversion
is most likely done in a way that the reverse conversion
results in the same text. When 'encoding' is not "utf-8" some
characters may be lost!
See 'encoding' for the possible values. Additionally, values may be
specified that can be handled by the converter, see
|mbyte-conversion|.
@@ -2837,6 +2861,8 @@ A jump table for the options with a short description can be found at |Q_op|.
The expression may be evaluated in the |sandbox|, see
|sandbox-option|.
This option can't be set from a |modeline| when the 'diff' option is
on.
It is not allowed to change text or jump to another window while
evaluating 'foldexpr' |textlock|.
@@ -3078,6 +3104,15 @@ A jump table for the options with a short description can be found at |Q_op|.
See 'fuoptions' for how Vim resizes and colors the background when
entering and leaving fullscreen mode.
Note: Setting 'fullscreen' usually changes the size of the Vim
control. However, for technical reasons, 'lines' and 'columns' will
currently only be updated when Vim runs its event loop. As a
consequence, if you set 'fullscreen' and 'lines' or 'columns' in a
Vim script file, you should always set 'fullscreen' after setting
'lines' and 'columns', else 'lines' and 'columns' will be overwritten
with the values 'fullscreen' sets after the script has been executed
and the event loop is ran again.
XXX: Add fuenter/fuleave autocommands? You might want to display
a NERDTree or a Tlist only in fullscreen for example. Then again, this
could probably be in a sizechanged autocommand that triggers if the
@@ -3301,7 +3336,7 @@ A jump table for the options with a short description can be found at |Q_op|.
the case of X). The font names given should be "normal" fonts. Vim
will try to find the related bold and italic fonts.
For Win32, GTK, Mac OS and Photon: >
For Win32, GTK, Motif, Mac OS and Photon: >
:set guifont=*
< will bring up a font requester, where you can pick the font you want.
In MacVim ":set guifont=*" calls: >
@@ -3313,8 +3348,13 @@ A jump table for the options with a short description can be found at |Q_op|.
For the GTK+ 2 GUI the font name looks like this: >
:set guifont=Andale\ Mono\ 11
< That's all. XLFDs are no longer accepted.
< That's all. XLFDs are not used. For Chinese this is reported to work
well: >
if has("gui_gtk2")
set guifont=Bitstream\ Vera\ Sans\ Mono\ 12,Fixed\ 12
set guifontwide=Microsoft\ Yahei\ 12,WenQuanYi\ Zen\ Hei\ 12
endif
<
For Mac OS X you can use something like this: >
:set guifont=Monaco:h10
< Also see 'macatsui', it can help fix display problems {not in MacVim}.
@@ -3478,6 +3518,8 @@ A jump table for the options with a short description can be found at |Q_op|.
foreground. |gui-fork|
Note: Set this option in the vimrc file. The forking may have
happened already when the |gvimrc| file is read.
MacVim does not support this flag due to limitations with
forking on Mac OS X.
*'go-i'*
'i' Use a Vim icon. For GTK with KDE it is used in the left-upper
corner of the window. It's black&white on non-GTK, because of
@@ -3496,7 +3538,7 @@ A jump table for the options with a short description can be found at |Q_op|.
Exception: Athena will always use grey menu items.
*'go-t'*
't' Include tearoff menu items. Currently only works for Win32,
GTK+, and Motif 1.2 GUI.
GTK+, MacVim, and Motif 1.2 GUI.
*'go-T'*
'T' Include Toolbar. Currently only in Win32, GTK+, Motif, Photon
and Athena GUIs.
@@ -3569,7 +3611,9 @@ A jump table for the options with a short description can be found at |Q_op|.
When nonempty describes the text to use in a tooltip for the GUI tab
pages line. When empty Vim will use a default tooltip.
This option is otherwise just like 'guitablabel' above.
You can include a line break. Simplest method is to use |:let|: >
:let &guitabtooltip = "line one\nline two"
<
*'helpfile'* *'hf'*
'helpfile' 'hf' string (default (MSDOS) "$VIMRUNTIME\doc\help.txt"
@@ -3854,16 +3898,17 @@ A jump table for the options with a short description can be found at |Q_op|.
English characters directly, e.g., when it's used to type accented
characters with dead keys.
*'imdisable'* *'imd'* *'nodisable'* *'noimd'*
*'imdisable'* *'imd'* *'noimdisable'* *'noimd'*
'imdisable' 'imd' boolean (default off, on for some systems (SGI))
global
{not in Vi}
{only available when compiled with the |+xim|
|+multi_byte_ime| or |global-ime| feature}
|+multi_byte_ime| or |global-ime| feature, always
available in MacVim}
When set the Input Method is never used. This is useful to disable
the IM when it doesn't work properly.
Currently this option is on by default for SGI/IRIX machines. This
may change in later releases.
Currently this option is on by default for SGI/IRIX. This may change
in later releases.
*'iminsert'* *'imi'*
'iminsert' 'imi' number (default 0, 2 when an input method is supported)
@@ -4170,8 +4215,8 @@ A jump table for the options with a short description can be found at |Q_op|.
displayed as <xx>, with the hexadecimal value of the byte.
When 'display' contains "uhex" all unprintable characters are
displayed as <xx>.
The NonText highlighting will be used for unprintable characters.
|hl-NonText|
The SpecialKey highlighting will be used for unprintable characters.
|hl-SpecialKey|
Multi-byte characters 256 and above are always included, only the
characters up to 255 are specified with this option. When a character
@@ -4261,9 +4306,6 @@ A jump table for the options with a short description can be found at |Q_op|.
be able to execute Normal mode commands.
This is the opposite of the 'keymap' option, where characters are
mapped in Insert mode.
This only works for 8-bit characters. The value of 'langmap' may be
specified with multi-byte characters (e.g., UTF-8), but only the lower
8 bits of each character will be used.
Example (for Greek, in UTF-8): *greek* >
:set langmap=ΑA,ΒB,ΨC,ΔD,ΕE,ΦF,ΓG,ΗH,ΙI,ΞJ,ΚK,ΛL,ΜM,ΝN,ΟO,ΠP,QQ,ΡR,ΣS,ΤT,ΘU,ΩV,WW,ΧX,ΥY,ΖZ,αa,βb,ψc,δd,εe,φf,γg,ηh,ιi,ξj,κk,λl,μm,νn,οo,πp,qq,ρr,σs,τt,θu,ωv,ςw,χx,υy,ζz
@@ -4411,10 +4453,17 @@ A jump table for the options with a short description can be found at |Q_op|.
*'list'* *'nolist'*
'list' boolean (default off)
local to window
List mode: Show tabs as CTRL-I, show end of line with $. Useful to
see the difference between tabs and spaces and for trailing blanks.
Note that this will also affect formatting (set with 'textwidth' or
'wrapmargin') when 'cpoptions' includes 'L'. See 'listchars' for
List mode: Show tabs as CTRL-I is displayed, display $ after end of
line. Useful to see the difference between tabs and spaces and for
trailing blanks. Further changed by the 'listchars' option.
The cursor is displayed at the start of the space a Tab character
occupies, not at the end as usual in Normal mode. To get this cursor
position while displaying Tabs with spaces, use: >
:set list lcs=tab\ \
<
Note that list mode will also affect formatting (set with 'textwidth'
or 'wrapmargin') when 'cpoptions' includes 'L'. See 'listchars' for
changing the way tabs are displayed.
*'listchars'* *'lcs'*
@@ -4481,6 +4530,18 @@ A jump table for the options with a short description can be found at |Q_op|.
'termencoding'.
Note: MacVim does not use this option.
*'macmeta'* *'mmta'* *'nomacmeta'* *'nommta'*
'macmeta' boolean (default off)
local to buffer
{only available in MacVim GUI}
Use option (alt) as meta key. When on, option-key presses are not
interpreted, thus enabling bindings to <M-..>. When off, option-key
presses are interpreted by the selected input method and inserted as
text.
Note: Some keys (e.g. <M-F1>, <M-Tab>, <M-Return>, <M-Left>) can be
bound with the Meta flag even when this option is disabled, but this
is not the case for the majority of keys (e.g. <M-a>, <M-`>).
*'magic'* *'nomagic'*
'magic' boolean (default on)
global
@@ -4598,15 +4659,15 @@ A jump table for the options with a short description can be found at |Q_op|.
{not in Vi}
Maximum amount of memory (in Kbyte) to use for one buffer. When this
limit is reached allocating extra memory for a buffer will cause
other memory to be freed. Maximum value 2000000. Use this to work
without a limit. Also see 'maxmemtot'.
other memory to be freed. The maximum usable value is about 2000000.
Use this to work without a limit. Also see 'maxmemtot'.
*'maxmempattern'* *'mmp'*
'maxmempattern' 'mmp' number (default 1000)
global
{not in Vi}
Maximum amount of memory (in Kbyte) to use for pattern matching.
Maximum value 2000000. Use this to work without a limit.
The maximum value is about 2000000. Use this to work without a limit.
*E363*
When Vim runs into the limit it gives an error message and mostly
behaves like CTRL-C was typed.
@@ -4621,9 +4682,11 @@ A jump table for the options with a short description can be found at |Q_op|.
available)
global
{not in Vi}
Maximum amount of memory (in Kbyte) to use for all buffers together.
Maximum value 2000000. Use this to work without a limit. Also see
'maxmem'.
Maximum amount of memory in Kbyte to use for all buffers together.
The maximum usable value is about 2000000 (2 Gbyte). Use this to work
without a limit. On 64 bit machines higher values might work. But
hey, do you really need more than 2 Gbyte for text editing?
Also see 'maxmem'.
*'menuitems'* *'mis'*
'menuitems' 'mis' number (default 25)
@@ -4987,7 +5050,7 @@ A jump table for the options with a short description can be found at |Q_op|.
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
use to set the file type when file is written.
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|
@@ -5101,9 +5164,10 @@ A jump table for the options with a short description can be found at |Q_op|.
global or local to buffer |global-local|
{not in Vi}
This is a list of directories which will be searched when using the
|gf|, [f, ]f, ^Wf, |:find| and other commands, provided that the file
being searched for has a relative path (not starting with '/'). The
directories in the 'path' option may be relative or absolute.
|gf|, [f, ]f, ^Wf, |:find|, |:sfind|, |:tabfind| and other commands,
provided that the file being searched for has a relative path (not
starting with "/", "./" or "../"). The directories in the 'path'
option may be relative or absolute.
- Use commas to separate directory names: >
:set path=.,/usr/local/include,/usr/include
< - Spaces can also be used to separate directory names (for backwards
@@ -5122,19 +5186,8 @@ A jump table for the options with a short description can be found at |Q_op|.
- Environment variables are expanded |:set_env|.
- When using |netrw.vim| URLs can be used. For example, adding
"http://www.vim.org" will make ":find index.html" work.
- Search upwards and downwards in a directory tree:
1) "*" matches a sequence of characters, e.g.: >
:set path=/usr/include/*
< means all subdirectories in /usr/include (but not /usr/include
itself). >
:set path=/usr/*c
< matches /usr/doc and /usr/src.
2) "**" matches a subtree, up to 100 directories deep. Example: >
:set path=/home/user_x/src/**
< means search in the whole subtree under "/home/usr_x/src".
3) If the path ends with a ';', this path is the startpoint
for upward search.
See |file-searching| for more info and exact syntax.
- Search upwards and downwards in a directory tree using "*", "**" and
";". See |file-searching| for info and syntax.
{not available when compiled without the |+path_extra| feature}
- Careful with '\' characters, type two to get one in the option: >
:set path=.,c:\\include
@@ -5437,7 +5490,7 @@ A jump table for the options with a short description can be found at |Q_op|.
<
*'runtimepath'* *'rtp'* *vimfiles*
'runtimepath' 'rtp' string (default:
Unix: "$HOME/.vim,
Unix, Mac OS X: "$HOME/.vim,
$VIM/vimfiles,
$VIMRUNTIME,
$VIM/vimfiles/after,
@@ -5452,7 +5505,7 @@ A jump table for the options with a short description can be found at |Q_op|.
$VIMRUNTIME,
$VIM/vimfiles/after,
$HOME/vimfiles/after"
Macintosh: "$VIM:vimfiles,
Macintosh (pre-OS X): "$VIM:vimfiles,
$VIMRUNTIME,
$VIM:vimfiles:after"
RISC-OS: "Choices:vimfiles,
@@ -5699,8 +5752,8 @@ A jump table for the options with a short description can be found at |Q_op|.
winsize window sizes
Don't include both "curdir" and "sesdir".
When "curdir" nor "sesdir" is included, file names are stored with
absolute paths.
When neither "curdir" nor "sesdir" is included, file names are stored
with absolute paths.
"slash" and "unix" are useful on Windows when sharing session files
with Unix. The Unix version of Vim cannot source dos format scripts,
but the Windows version of Vim can source unix format scripts.
@@ -5976,8 +6029,12 @@ A jump table for the options with a short description can be found at |Q_op|.
{not available when compiled without the |+linebreak|
feature}
String to put at the start of lines that have been wrapped. Useful
values are "> " or "+++ ".
Only printable single-cell characters are allowed, excluding <Tab> and
values are "> " or "+++ ": >
:set showbreak=>\
< Note the backslash to escape the trailing space. It's easier like
this: >
:let &showbreak = '+++ '
< Only printable single-cell characters are allowed, excluding <Tab> and
comma (in a future version the comma might be used to separate the
part that is shown at the end and at the start of a line).
The characters are highlighted according to the '@' flag in
@@ -5998,7 +6055,8 @@ A jump table for the options with a short description can be found at |Q_op|.
In Visual mode the size of the selected area is shown:
- When selecting characters within a line, the number of characters.
- When selecting more than one line, the number of lines.
- When selecting a block, the size in screen characters: linesxcolumns.
- When selecting a block, the size in screen characters:
{lines}x{columns}.
NOTE: This option is set to the Vi default value when 'compatible' is
set and to the Vim default value when 'compatible' is reset.
@@ -6405,15 +6463,15 @@ A jump table for the options with a short description can be found at |Q_op|.
directory.
F S Full path to the file in the buffer.
t S File name (tail) of file in the buffer.
m F Modified flag, text is " [+]"; " [-]" if 'modifiable' is off.
m F Modified flag, text is "[+]"; "[-]" if 'modifiable' is off.
M F Modified flag, text is ",+" or ",-".
r F Readonly flag, text is " [RO]".
r F Readonly flag, text is "[RO]".
R F Readonly flag, text is ",RO".
h F Help buffer flag, text is " [help]".
h F Help buffer flag, text is "[help]".
H F Help buffer flag, text is ",HLP".
w F Preview window flag, text is " [Preview]".
w F Preview window flag, text is "[Preview]".
W F Preview window flag, text is ",PRV".
y F Type of file in the buffer, e.g., " [vim]". See 'filetype'.
y F Type of file in the buffer, e.g., "[vim]". See 'filetype'.
Y F Type of file in the buffer, e.g., ",VIM". See 'filetype'.
{not available when compiled without |+autocmd| feature}
k S Value of "b:keymap_name" or 'keymap' when |:lmap| mappings are
@@ -6460,14 +6518,9 @@ A jump table for the options with a short description can be found at |Q_op|.
to StatusLineNC for the statusline of non-current windows.
The number N must be between 1 and 9. See |hl-User1..9|
Display of flags are controlled by the following heuristic:
If a flag text starts with comma it is assumed that it wants to
separate itself from anything but preceding plaintext. If it starts
with a space it is assumed that it wants to separate itself from
anything but other flags. That is: A leading comma is removed if the
preceding character stems from plaintext. A leading space is removed
if the preceding character stems from another active flag. This will
make a nice display when flags are used like in the examples below.
When displaying a flag, Vim removes the leading comma, if any, when
that flag comes right after plaintext. This will make a nice display
when flags are used like in the examples below.
When all items in a group becomes an empty string (i.e. flags that are
not set) and a minwid is not set for the group, the whole group will
@@ -6738,8 +6791,9 @@ A jump table for the options with a short description can be found at |Q_op|.
of '2' in the "!_TAG_FILE_SORTED" line for this. A tag file can be
case-fold sorted with the -f switch to "sort" in most unices, as in
the command: "sort -f -o tags tags". For "Exuberant ctags" version
5.3 or higher the -f or --fold-case-sort switch can be used for this
as well. Note that case must be folded to uppercase for this to work.
5.x or higher (at least 5.5) the --sort=foldcase switch can be used
for this as well. Note that case must be folded to uppercase for this
to work.
When 'tagbsearch' is off, tags searching is slower when a full match
exists, but faster when no full match exists. Tags in unsorted tags
@@ -7361,9 +7415,9 @@ A jump table for the options with a short description can be found at |Q_op|.
*'viminfo'* *'vi'* *E526* *E527* *E528*
'viminfo' 'vi' string (Vi default: "", Vim default for MS-DOS,
Windows and OS/2: '20,<50,s10,h,rA:,rB:,
for Amiga: '20,<50,s10,h,rdf0:,rdf1:,rdf2:
for others: '20,<50,s10,h)
Windows and OS/2: '100,<50,s10,h,rA:,rB:,
for Amiga: '100,<50,s10,h,rdf0:,rdf1:,rdf2:
for others: '100,<50,s10,h)
global
{not in Vi}
{not available when compiled without the |+viminfo|
@@ -7586,7 +7640,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.
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.
The pattern is used like with |:autocmd|, see |autocmd-patterns|.
Also see 'suffixes'.
Example: >
@@ -7834,6 +7890,8 @@ A jump table for the options with a short description can be found at |Q_op|.
:set sidescroll=5
:set listchars+=precedes:<,extends:>
< See 'sidescroll', 'listchars' and |wrap-off|.
This option can't be set from a |modeline| when the 'diff' option is
on.
*'wrapmargin'* *'wm'*
'wrapmargin' 'wm' number (default 0)
+3 -3
View File
@@ -1,4 +1,4 @@
*os_390.txt* For Vim version 7.2a. Last change: 2005 Mar 29
*os_390.txt* For Vim version 7.2. Last change: 2008 Dec 17
VIM REFERENCE MANUAL by Ralf Schandl
@@ -282,7 +282,7 @@ not an exhaustive summary of all the modifications made to the code base.
5.6-390c:
I grepped through the source and examined every spot with a character
involved in a operation (+-). I hope I now found all EBCDIC/ASCII
involved in an operation (+-). I hope I now found all EBCDIC/ASCII
stuff, but ....
Fixed:
@@ -311,7 +311,7 @@ not an exhaustive summary of all the modifications made to the code base.
- added special compiler and linker options if building with X11
- configure:
- after created via autoconf hand-edited it to make the test for
ICEConnectionNumber work. This is a autoconf problem. OS/390 UNIX
ICEConnectionNumber work. This is an autoconf problem. OS/390 UNIX
needs -lX11 for this.
- Makefile
- Don't include the lib directories ('-L...') into the variable

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