Compare commits

...

63 Commits

Author SHA1 Message Date
Bjorn Winckler e1f144fff9 Snapshot 54 2010-10-01 21:33:51 +02:00
Bjorn Winckler 96a5aaca30 Update credits 2010-10-01 21:23:12 +02:00
Bjorn Winckler fe4dcf1ea1 Patch 7.3.019 missing #ifdef 2010-10-01 16:57:50 +02:00
Bjorn Winckler 051dd87d5e Merge branch 'vim'
Conflicts:
	src/main.c
2010-10-01 16:55:17 +02:00
Dmitry Vazhov 24b70ebcfa Set represented filename for full screen window
This fixes a bug which caused DTerm not to work when in full screen
mode.
2010-10-01 16:47:55 +02:00
Bram Moolenaar 8d49009628 Runtime file updates. 2010-09-30 21:47:56 +02:00
Bram Moolenaar 59d9dd938d updated for version 7.3.019
Problem:    ":nbstart" can fail silently.
Solution:   Give an error when netbeans is not supported by the GUI. (Xavier
	    de Gaye)
2010-09-30 21:03:26 +02:00
Bjorn Winckler fdd289b215 Shorter input check intervals 2010-09-30 12:25:54 +02:00
Bjorn Winckler be8446006b Avoid Vim locking up whilst waiting for input
Put keyboard input on Vim's input buffer as soon as it arrives instead
of first putting it on the backend's input buffer.

This should fix problems with MacVim spuriously locking up when opening
files as has been reported by users of the PeepOpen utility.
2010-09-30 11:59:32 +02:00
Bram Moolenaar daa5cfe9dd updated for version 7.3.018
Problem:    Missing argument to windres in MingW makefiles.
Solution:   Add the argument that was wrapped in the patch. (Jon Maken)
2010-09-29 18:42:28 +02:00
Bram Moolenaar 855f2810f5 updated for version 7.3.017
Problem:    smatch reports errors.
Solution:   Fix the reported errors. (Dominique Pelle)
2010-09-29 18:32:52 +02:00
Bram Moolenaar 09915c6560 updated for version 7.3.016
Problem:    Netbeans doesn't work under Athena.
Solution:   Support Athena, just like Motif. (Xavier de Gaye)
2010-09-29 17:27:01 +02:00
Bram Moolenaar 32de6c1f95 updated for version 7.3.015
Problem:    Test is using error message that no longer exists.
Solution:   Change E106 to E121. (Dominique Pelle)
2010-09-29 16:55:49 +02:00
Bram Moolenaar 2e002ed5f0 updated for version 7.3.014
Problem:    Ending a line in a backslash inside an ":append" or ":insert"
	    command in Ex mode doesn't work properly. (Ray Frush)
Solution:   Halve the number of backslashes, only insert a NUL after an odd
	    number of backslashes.
2010-09-29 15:50:30 +02:00
Bram Moolenaar 9b3ee033ca updated for version 7.3.013
Problem:    Dynamic loading with Ruby doesn't work for 1.9.2.
Solution:   Handle rb_str2cstr differently.  Also support dynamic loading on
	    Unix. (Jon Maken)
2010-09-29 13:02:53 +02:00
Bram Moolenaar e0035e72ff updated for version 7.3.012
Problem:    Problems building with MingW.
Solution:   Adjust the MingW makefiles. (Jon)
2010-09-29 12:38:00 +02:00
Bram Moolenaar 3a7b73bbe8 Updated runtime files. 2010-09-21 22:34:02 +02:00
Bram Moolenaar fa8a10cc0d updated for version 7.3.011
Problem:    X11 clipboard doesn't work in Athena/Motif GUI.  First selection
	    after a shell command doesn't work.
Solution:   When using the GUI use XtLastTimestampProcessed() instead of
	    changing a property.  (partly by Toni Ronkko)
	    When executing a shell command disown the selection.
2010-09-21 22:09:37 +02:00
Bram Moolenaar e35b5e0207 updated for version 7.3.010
Problem:    Mac GUI: Missing break statements.
Solution:   Add the break statements. (Dominique Pelle)
2010-09-21 17:34:31 +02:00
Bram Moolenaar f04780aebd updated for version 7.3.009
Problem:    Win32: Crash on Windows when using a bad argument for strftime().
	    (Christian Brabandt)
Solution:   Use the bad_param_handler(). (Mike Williams)
2010-09-21 17:29:23 +02:00
Bram Moolenaar 3faee0eea8 updated for version 7.3.008
Problem:    'cursorbind' is kept in places where 'scrollbind' is reset.
Solution:   Reset 'cursorbind'.
2010-09-21 16:56:35 +02:00
Bram Moolenaar e4b1724130 updated for version 7.3.007
Problem:    Python code defines global "buffer".  Re-implements a grow-array.
Solution:   Use a grow-array instead of coding the same functionality.  Handle
	    out-of-memory situation properly.
2010-09-21 16:49:37 +02:00
Bram Moolenaar 7e9a35b73e Updated runtime files. 2010-09-19 19:01:21 +02:00
Bram Moolenaar a030e14f4c updated for version 7.3.006
Problem:    Can't build some multi-byte code with C89.
Solution:   Move code to after declarations. (Joachim Schmitz)
2010-09-18 13:36:49 +02:00
Bjorn Winckler 3609f1181b Update help on Quickstart feature 2010-09-17 21:47:40 +02:00
Bram Moolenaar 7f521f9180 updated for version 7.3.005
Problem:    Crash when using undotree(). (Christian Brabandt)
Solution:   Increase the list reference count.  Add a test for undotree()
	    (Lech Lorens)
2010-09-14 12:47:37 +02:00
Bram Moolenaar 5bfb7b6c36 updated for version 7.3.004
Problem:    Crash when using very long regexp. (Peter Odding)
Solution:   Reset reg_toolong. (Carlo Teubner)
2010-09-14 10:55:47 +02:00
Bjorn Winckler 6b593596a8 Deprecate Pinch/Rotate gestures
These do not make much sense to include (and they could not easily be
mapped to because of the fact that they generate events as the gesture
is being performed).

Also, make some updates to the help.
2010-09-08 18:51:30 +02:00
Bjorn Winckler 355030366f Add help on trackpad gestures 2010-09-02 20:49:03 +02:00
Bjorn Winckler a542a26f2e Use swipe gesture to navigate help
Left/right swipe goes back/forward through tag stag when reading help.
2010-09-02 19:02:53 +02:00
Bjorn Winckler 65065e6c02 Avoid <SwipeLeft> etc. being inserted
Performing a gesture will not cause <SwipeLeft> etc. to be inserted into
the text while in insert mode/cmdline mode/etc.
2010-09-02 18:54:52 +02:00
Bjorn Winckler a5db9c5785 Add support for trackpad gestures
Supported gestures are swipe, pinch and rotate.  These generate the
following keys:

    <SwipeLeft> <SwipeRight> <SwipeUp> <SwipeDown>
    <PinchIn>   <PinchOut>
    <RotateCW>  <RotateCCW>

(CW = ClockWise, CCW = CounterClockWise)
2010-09-01 22:30:21 +02:00
Bjorn Winckler 2a25ea4e26 Improvements to Spotlight integration
No longer issue a warning if the text entered in Spotlight can not be
found in a file opened from Spotlight.  Sanitize Spotlight input before
passing it on to Vim.
2010-09-01 18:02:56 +02:00
Nikola Knezevic f4e9d096f2 Fix Vim hanging when using zsh+git
This fixes the problem explained in [2]. Essentially, when executing
external program, where default shell is zsh, Vim would hang. This
behaviour does not occur with bash, or other shells.

Problem:
When Vim executes an external program from GUI (MacVim in this case), it
opens PTYs. Parent passes information to the child via these PTYs. Savvy
implementation closes all unused filehandles, so slave PTY fd is closed
in the parent immediately after fork(). This causes problems on
MacVim, due to [1]. In a nutshell, on BSD-like systems, write operations
on PTY would block until one side reads or exits. If a child tries to
write on a PTY, which is closed in parent, that would block the child,
and stop further progress.

Resolution:
Instead of closing child's fd in the parent immediately after fork(),
close it after child exits.

[1] http://osdir.com/ml/darwin-kernel/2010-04/msg00025.html
[2] http://groups.google.com/group/vim_mac/browse_thread/thread/78b18ce8cc15557d
2010-08-29 14:29:51 +02:00
Nikola Knezevic daa43ff96d Revert "Double fork to avoid Vim hanging when using zsh"
This reverts commit 453876f267.

This is not the right/complete solution.
2010-08-29 14:25:00 +02:00
Nikola Knezevic 453876f267 Double fork to avoid Vim hanging when using zsh 2010-08-24 19:49:32 +02:00
Bjorn Winckler 329a140ce1 Remove snapshot appcast 2010-08-24 15:41:38 +02:00
Bram Moolenaar 8dfe0f6e7a Fold Vim 7.2 default branch back to trunk to avoid two heads. (Tony
Mechelynck)
2010-08-20 11:11:57 +02:00
Bram Moolenaar 9be9c0aaeb updated for version 7.3.003
Problem:    Crash with specific BufWritePost autocmd. (Peter Odding)
Solution:   Don't free the quickfix title twice. (Lech Lorens)
2010-08-17 20:26:59 +02:00
Bjorn Winckler ff0faa47a4 Merge 'Snapshot 53' commit 2010-08-17 13:43:00 +02:00
Bjorn Winckler f408e184c1 Merge branch 'vim' 2010-08-17 12:58:43 +02:00
Bram Moolenaar d22aff9897 updated for version 7.3.002
Problem:    ":find" completion doesn't work when halfway an environment
	    variable. (Dominique Pelle)
Solution:   Only use in-path completion when expanding file names. (Nazri
	    Ramliy)
2010-08-16 22:34:29 +02:00
Bram Moolenaar 85431083e7 updated for version 7.3.002
Problem:    ":find" completion doesn't work when halfway an environment
	    variable. (Dominique Pelle)
Solution:   Only use in-path completion when expanding file names. (Nazri
	    Ramliy)
2010-08-16 21:53:27 +02:00
Bram Moolenaar 0d3005d65e Make the vim73 branch the default branch. 2010-08-16 21:24:09 +02:00
Bram Moolenaar b34087a4a2 updated for version 7.2.446
Problem:    Crash in GUI when closing the last window in a tabpage. (ryo7000)
Solution:   Remove the tabpage from the list before freeing the window.
2010-07-12 21:38:19 +02:00
Bram Moolenaar 874574c6bb updated for version 7.2.445
Problem:    Crash when using undo/redo and a FileChangedRO autocmd event that
	    reloads the buffer. (Dominique Pelle)
Solution:   Do not allow autocommands while performing and undo or redo.
2010-07-07 18:20:28 +02:00
Bram Moolenaar 6e664be861 updated for version 7.2.444
Problem:    Can't build with GTK 1, gtk_selection_clear_targets() is not
	    available. (Patrick Texier)
Solution:   Don't change the targets for GTK 1, set them once.
2010-06-13 02:35:46 +02:00
Bram Moolenaar a92a746da4 updated for version 7.2.443
Problem:    Using taglist() on a tag file with duplicate fields generates an
	    internal error. (Peter Odding)
Solution:   Check for duplicate field names.
2010-06-12 20:12:02 +02:00
Bram Moolenaar 18ce00cbee updated for version 7.2.442
Problem:    Copy/paste with OpenOffice doesn't work.
Solution:   Do not offer the HTML target when it is not supported. (James
	    Vega)
2010-06-05 12:49:46 +02:00
Bram Moolenaar 8e9bf3f572 updated for version 7.2.441
Problem:    When using ":earlier" undo information may be wrong.
Solution:   When changing alternate branches also adjust b_u_oldhead.
2010-05-30 16:55:22 +02:00
Bram Moolenaar c0dd720f49 updated for version 7.2.440
Problem:    Calling a function through a funcref, where the function deletes
	    the funcref, leads to an invalid memory access.
Solution:   Make a copy of the function name. (Lech Lorens)
2010-05-28 22:06:46 +02:00
Bram Moolenaar 69c231441a updated for version 7.2.439
Problem:    Invalid memory access when doing thesaurus completion and
	    'infercase' is set.
Solution:   Use the minimal length of completed word and replacement.
	    (Dominique Pelle)
2010-05-28 21:31:58 +02:00
Bram Moolenaar c93594baa5 updated for version 7.2.438
Problem:    "vim -r" crashes.
Solution:   Don't use NULL pointer argument.
2010-05-25 21:37:17 +02:00
Bram Moolenaar bc69624568 updated for version 7.2.437
Problem:    When "\\\n" appears in the expression result the \n doesn't result
	    in a line break. (Andy Wokula)
Solution:   Also replace a \n after a backslash into \r.
2010-05-21 13:08:58 +02:00
Bram Moolenaar 30887c5a27 updated for version 7.2.436
Problem:    Reproducible crash in syntax HL. (George Reilly, Dominique Pelle)
Solution:   Make sst_stacksize an int instead of short. (Dominique Pelle)
2010-05-16 13:56:06 +02:00
Bram Moolenaar 350b73a180 updated for version 7.2.435
Problem:    Crash when using bad_char_idx uninitialized. (Patrick Texier)
Solution:   Don't use bad_char_idx, reproduce the ++bad argument from bad_char.
2010-05-16 13:26:25 +02:00
Bram Moolenaar 4b758f6023 updated for version 7.2.434
Problem:    Compilation fails without the multi-lang feature.
Solution:   Add #ifdefs. (Johm Marriott)
2010-05-16 12:32:51 +02:00
Bram Moolenaar 5ebd22a7c0 Undo changes that are meant for the Vim 7.3 branch. 2010-05-15 21:13:04 +02:00
Bram Moolenaar d8025cb9da After recovery check if the text changed. If it did mark the buffer as
modified.

--HG--
extra : rebase_source : 0527eb0f6918ca9111d64d32092d92ec8ea70e11
2010-05-15 17:06:53 +02:00
Bram Moolenaar 524b356466 Get rid of the "extra" and "lang" archives.
--HG--
extra : rebase_source : c1d31f774a03e6e4bea6e08ea6608915da43aa39
2010-05-15 15:41:59 +02:00
Bram Moolenaar b3bdfdd3dc Switched from autoconf 2.63 to 2.65.
--HG--
extra : rebase_source : 29df04ae0fad8926f8f6a7166d26caae32974134
2010-05-15 15:04:53 +02:00
Bram Moolenaar e306f514a6 Small fix for compiler warning in Netbeans.
--HG--
extra : rebase_source : e8ef654038c4d9d18187be14a2ca49ec746e70f9
2010-05-15 14:49:02 +02:00
Bram Moolenaar 13b802f309 First step in the Vim 7.3 branch. Changed version numbers.
--HG--
extra : rebase_source : 7c8c7c95a865c6da6338889441b8d55d8c5b656d
2010-05-15 13:56:02 +02:00
90 changed files with 1775 additions and 1458 deletions
+3 -2
View File
@@ -1,4 +1,4 @@
*cmdline.txt* For Vim version 7.3. Last change: 2010 May 07
*cmdline.txt* For Vim version 7.3. Last change: 2010 Sep 18
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -423,7 +423,8 @@ CTRL-L A match is done on the pattern in front of the cursor. If
The 'wildchar' option defaults to <Tab> (CTRL-E when in Vi compatible mode; in
a previous version <Esc> was used). In the pattern standard wildcards '*' and
'?' are accepted. '*' matches any string, '?' matches exactly one character.
'?' are accepted when matching file names. '*' matches any string, '?'
matches exactly one character.
If you like tcsh's autolist completion, you can use this mapping:
:cnoremap X <C-L><C-D>
+8 -7
View File
@@ -1,4 +1,4 @@
*debug.txt* For Vim version 7.3. Last change: 2010 Jul 20
*debug.txt* For Vim version 7.3. Last change: 2010 Sep 14
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -22,7 +22,8 @@ compilation, here is what you can do to find out exactly where Vim crashes.
This also applies when using the MingW tools.
1. Compile Vim with the "-g" option (there is a line in the Makefile for this,
which you can uncomment).
which you can uncomment). Also make sure "strip" is disabled (do not
install it, or use the line "STRIP = /bin/true").
2. Execute these commands (replace "11" with the test that fails): >
cd testdir
@@ -67,7 +68,7 @@ If the Windows version of Vim crashes in a reproducible manner, you can take
some steps to provide a useful bug report.
GENERIC ~
3.1 GENERIC ~
You must obtain the debugger symbols (PDB) file for your executable: gvim.pdb
for gvim.exe, or vim.pdb for vim.exe. The PDB should be available from the
@@ -89,7 +90,7 @@ a Vim executable compiled with the Borland compiler; gdb (see above
*debug-vs2005*
2.2 Debugging Vim crashes with Visual Studio 2005/Visual C++ 2005 Express ~
3.2 Debugging Vim crashes with Visual Studio 2005/Visual C++ 2005 Express ~
First launch vim.exe or gvim.exe and then launch Visual Studio. (If you don't
have Visual Studio, follow the instructions at |get-ms-debuggers| to obtain a
@@ -123,7 +124,7 @@ installed as a just-in-time debugger. Use WinDbg, |debug-windbg|, if you
need to save minidumps or you want a just-in-time (postmortem) debugger.
*debug-windbg*
2.3 Debugging Vim crashes with WinDbg ~
3.3 Debugging Vim crashes with WinDbg ~
See |get-ms-debuggers| to obtain a copy of WinDbg.
@@ -149,7 +150,7 @@ To save a minidump, type the following at the WinDbg command line: >
.dump vim.dmp
<
*debug-minidump*
2.4 Opening a Minidump ~
3.4 Opening a Minidump ~
If you have a minidump file, you can open it in Visual Studio or in WinDbg.
@@ -161,7 +162,7 @@ In WinDbg: choose Open Crash Dump on the File menu. Follow the instructions in
|debug-windbg| to set the Symbol File Path.
*get-ms-debuggers*
2.5 Obtaining Microsoft Debugging Tools ~
3.5 Obtaining Microsoft Debugging Tools ~
The Debugging Tools for Windows (including WinDbg) can be downloaded from
http://www.microsoft.com/whdc/devtools/debugging/default.mspx
+4 -2
View File
@@ -1,4 +1,4 @@
*diff.txt* For Vim version 7.3. Last change: 2010 Jul 31
*diff.txt* For Vim version 7.3. Last change: 2010 Sep 30
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -261,10 +261,12 @@ that the buffers will be equal within the specified range.
*do*
do Same as ":diffget" without argument or range. The "o" stands
for "obtain" ("dg" can't be used, it could be the start of
"dgg"!).
"dgg"!). Note: this doesn't work in Visual mode.
*dp*
dp Same as ":diffput" without argument or range.
Note: this doesn't work in Visual mode.
When no [range] is given, the diff at the cursor position or just above it is
affected. When [range] is used, Vim tries to only put or get the specified
+10 -8
View File
@@ -1,4 +1,4 @@
*editing.txt* For Vim version 7.3. Last change: 2010 Jul 28
*editing.txt* For Vim version 7.3. Last change: 2010 Sep 18
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1431,13 +1431,15 @@ Notes:
history, showing the 'key' value in a viminfo file.
- There is never 100% safety. The encryption in Vim has not been tested for
robustness.
- The algorithm used is breakable. A 4 character key in about one hour, a 6
character key in one day (on a Pentium 133 PC). This requires that you know
some text that must appear in the file. An expert can break it for any key.
When the text has been decrypted, this also means that the key can be
revealed, and other files encrypted with the same key can be decrypted.
- Pkzip uses the same encryption, and US Govt has no objection to its export.
Pkzip's public file APPNOTE.TXT describes this algorithm in detail.
- The algorithm used for 'cryptmethod' "zip" is breakable. A 4 character key
in about one hour, a 6 character key in one day (on a Pentium 133 PC). This
requires that you know some text that must appear in the file. An expert
can break it for any key. When the text has been decrypted, this also means
that the key can be revealed, and other files encrypted with the same key
can be decrypted.
- Pkzip uses the same encryption as 'cryptmethod' "zip", and US Govt has no
objection to its export. Pkzip's public file APPNOTE.TXT describes this
algorithm in detail.
- Vim originates from the Netherlands. That is where the sources come from.
Thus the encryption code is not exported from the USA.
+18 -17
View File
@@ -1,4 +1,4 @@
*eval.txt* For Vim version 7.3. Last change: 2010 Aug 15
*eval.txt* For Vim version 7.3. Last change: 2010 Sep 29
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -63,21 +63,21 @@ The Number and String types are converted automatically, depending on how they
are used.
Conversion from a Number to a String is by making the ASCII representation of
the Number. Examples: >
Number 123 --> String "123"
Number 0 --> String "0"
Number -1 --> String "-1"
the Number. Examples:
Number 123 --> String "123" ~
Number 0 --> String "0" ~
Number -1 --> String "-1" ~
*octal*
Conversion from a String to a Number is done by converting the first digits
to a number. Hexadecimal "0xf9" and Octal "017" numbers are recognized. If
the String doesn't start with digits, the result is zero. Examples: >
String "456" --> Number 456
String "6bar" --> Number 6
String "foo" --> Number 0
String "0xf1" --> Number 241
String "0100" --> Number 64
String "-8" --> Number -8
String "+8" --> Number 0
the String doesn't start with digits, the result is zero. Examples:
String "456" --> Number 456 ~
String "6bar" --> Number 6 ~
String "foo" --> Number 0 ~
String "0xf1" --> Number 241 ~
String "0100" --> Number 64 ~
String "-8" --> Number -8 ~
String "+8" --> Number 0 ~
To force conversion from String to Number, add zero to it: >
:echo "0100" + 0
@@ -1115,8 +1115,8 @@ See below |functions|.
==============================================================================
3. Internal variable *internal-variables* *E121*
*E461*
3. Internal variable *internal-variables* *E461*
An internal variable name can be made up of letters, digits and '_'. But it
cannot start with a digit. It's also possible to use curly braces, see
|curly-braces-names|.
@@ -6220,7 +6220,7 @@ transparency Compiled with 'transparency' support.
unix Unix version of Vim.
user_commands User-defined commands.
viminfo Compiled with viminfo support.
vim_starting True while initial source'ing takes place.
vim_starting True while initial source'ing takes place. |startup|
vertsplit Compiled with vertically split windows |:vsplit|.
virtualedit Compiled with 'virtualedit' option.
visual Compiled with Visual mode.
@@ -6745,7 +6745,8 @@ This would call the function "my_func_whizz(parameter)".
:let [{name}, ..., ; {lastname}] -= {expr1}
Like above, but append/add/subtract the value for each
|List| item.
*E106*
*E121*
:let {var-name} .. List the value of variable {var-name}. Multiple
variable names may be given. Special names recognized
here: *E738*
+11 -11
View File
@@ -6,20 +6,20 @@
ADA *ada.vim*
1. Syntax Highlighting |ft-ada-syntax|
2. Plug-in |ft-ada-plugin|
2. File type Plug-in |ft-ada-plugin|
3. Omni Completion |ft-ada-omni|
3.1 Omni Completion with "gnat xref" |gnat-xref|
3.2 Omni Completion with "ctags" |ada-ctags|
4. Compiler Support |ada-compiler|
4.1 GNAT |compiler-gnat|
4.1 Dec Ada |compiler-decada|
4.2 Dec Ada |compiler-decada|
5. References |ada-reference|
5.1 Options |ft-ada-options|
5.2 Functions |ft-ada-functions|
5.3 Commands |ft-ada-commands|
5.4 Variables |ft-ada-variables|
5.5 Constants |ft-ada-constants|
8. Extra Plug-ins |ada-extra-plugins|
5.2 Commands |ft-ada-commands|
5.3 Variables |ft-ada-variables|
5.4 Constants |ft-ada-constants|
5.5 Functions |ft-ada-functions|
6. Extra Plug-ins |ada-extra-plugins|
==============================================================================
1. Syntax Highlighting ~
@@ -139,7 +139,7 @@ The Ada parser for Exuberant Ctags is fairly new - don't expect complete
support yet.
==============================================================================
4. Compiler Support ~
4. Compiler Support ~
*ada-compiler*
The Ada mode supports more than one Ada compiler and will automatically load the
@@ -367,7 +367,7 @@ false when the variable is undefined. The value to which the variable is set
makes no difference.
------------------------------------------------------------------------------
5.3 Commands ~
5.2 Commands ~
*ft-ada-commands*
:AdaRainbow *:AdaRainbow*
@@ -445,7 +445,7 @@ g:ada#Ctags_Kinds dictionary of lists
for Ctags generates.
------------------------------------------------------------------------------
5.2 Functions ~
5.5 Functions ~
*ft-ada-functions*
ada#Word([{line}, {col}]) *ada#Word()*
@@ -479,7 +479,7 @@ gnat#New ()
==============================================================================
8. Extra Plugins ~
6. Extra Plugins ~
*ada-extra-plugins*
You can optionally install the following extra plug-ins. They work well with
+48 -14
View File
@@ -1,4 +1,4 @@
*gui_mac.txt* For Vim version 7.3. Last change: 2010 Aug 1
*gui_mac.txt* For Vim version 7.3. Last change: 2010 Sep 17
VIM REFERENCE MANUAL by Bjorn Winckler
@@ -16,9 +16,10 @@ The MacVim Graphical User Interface *macvim* *gui-macvim*
8. System services |macvim-services|
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|
11. Trackpad gestures |macvim-gestures|
12. International |macvim-international|
13. Known bugs/missing features |macvim-todo|
14. Hints |macvim-hints|
Other relevant documentation:
|gui.txt| For generic items of the GUI.
@@ -209,13 +210,15 @@ 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.
Note that any changes to runtime files that are kept in an non-standard
location (i.e. not in ~/.vim) will not be picked up for the first window that
opens after any changes. Also, there are some issues related to reading and
writing of the |viminfo| file which can lead to the command line history
appearing to be lost (as well as any other information stored in the |viminfo|
file). For example, if you open a window, edit some files then close the
window, then the next window that opens will not have the same command line
history as the window you just closed (however the next window you open will).
For these reasons Quickstart is disabled by default.
*odbeditor* *external-editor*
MacVim can act as an 'external editor' for Mac OS X applications that support
@@ -606,7 +609,38 @@ 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*
11. Trackpad gestures *macvim-gestures*
MacVim supports trackpad swipe gestures. By default this can be used to
navigate back/forward in the help (try it!).
Each gesture generates one of the following Vim pseudo keys:
*<SwipeLeft>* *<SwipeRight>*
Generated when swiping three fingers across the trackpad in a
horizontal direction. The Apple Magic Mouse generates these
events when swiping two fingers in a horizontal direction.
*<SwipeUp>* *<SwipeDown>*
Generated when swiping three fingers across the trackpad in a
vertical direction. (Not supported by the Apple Magic Mouse.)
You can map these keys like with any other key using the |:map| family of
commands. For example, the following commands map left/right swipe to change
to the previous/next tab in normal mode: >
nmap <SwipeLeft> gT
nmap <SwipeRight> gt
As another example, here is how to switch buffers by swiping left/right: >
nmap <SwipeLeft> :bN<CR>
nmap <SwipeRight> :bn<CR>
See the section on |key-mapping| for more help on how to map keys.
==============================================================================
12. 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
@@ -627,7 +661,7 @@ 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*
13. Known bugs/missing features *macvim-todo*
This list is by no means exhaustive, it only enumerates some of the more
prominent bugs/missing features.
@@ -651,7 +685,7 @@ This is also the best place for making feature requests as well as for asking
general questions about MacVim.
==============================================================================
13. Hints *macvim-hints*
14. Hints *macvim-hints*
In this section some general (not necessarily MacVim specific) hints are
given.
+3 -3
View File
@@ -1,4 +1,4 @@
*helphelp.txt* For Vim version 7.3. Last change: 2010 Jul 29
*helphelp.txt* For Vim version 7.3. Last change: 2010 Sep 14
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -7,7 +7,7 @@
Help on help files *helphelp*
1. Help commands |online-help|
2. Translating help files |help-translated|
2. Translated help files |help-translated|
3. Writing help files |help-writing|
==============================================================================
@@ -188,7 +188,7 @@ command: >
Only for backwards compatibility. It now executes the
ToolBar.FindHelp menu entry instead of using a builtin
dialog. {only when compiled with |+GUI_GTK|}
< {not in Vi}
{not in Vi}
*:helpt* *:helptags*
*E154* *E150* *E151* *E152* *E153* *E670*
+3 -4
View File
@@ -1,4 +1,4 @@
*if_cscop.txt* For Vim version 7.3. Last change: 2009 Mar 18
*if_cscop.txt* For Vim version 7.3. Last change: 2010 Sep 29
VIM REFERENCE MANUAL by Andy Kahn
@@ -112,8 +112,7 @@ The available subcommands are:
:cscope add /projects/vim/cscope.out /usr/local/vim
:cscope add cscope.out /usr/local/vim -C
<
*cscope-find* *cs-find*
*E565* *E567*
*cscope-find* *cs-find* *E567*
find : Query cscope. All cscope query options are available
except option #5 ("Change this grep pattern").
@@ -198,7 +197,7 @@ The available subcommands are:
USAGE :cs help
*E260* *E261*
*E261*
kill : Kill a cscope connection (or kill all cscope connections).
USAGE :cs kill {num|partial_name}
+11 -7
View File
@@ -1,4 +1,4 @@
*insert.txt* For Vim version 7.3. Last change: 2010 Jul 29
*insert.txt* For Vim version 7.3. Last change: 2010 Sep 29
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -555,12 +555,11 @@ CTRL-D, 'expandtab', 'smarttab', 'softtabstop', etc.
In 'list' mode, Virtual Replace mode acts as if it was not in 'list' mode,
unless "L" is in 'cpoptions'.
Note that the only times characters beyond the cursor should appear to move
are in 'list' mode, and occasionally when 'wrap' is set (and the line changes
length to become shorter or wider than the width of the screen), or
momentarily when typing over a CTRL character. A CTRL character takes up two
screen spaces. When replacing it with two normal characters, the first will
be inserted and the second will replace the CTRL character.
Note that the only situations for which characters beyond the cursor should
appear to move are in List mode |'list'|, and occasionally when 'wrap' is set
(and the line changes length to become shorter or wider than the width of the
screen). In other cases spaces may be inserted to avoid following characters
to move.
This mode is very useful for editing <Tab> separated columns in tables, for
entering new data while keeping all the columns aligned.
@@ -1767,6 +1766,11 @@ 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 in Ex mode (see |-e|) a backslash at the end of the line can be used to
insert a NUL character. To be able to have a line ending in a backslash use
two backslashes. This means that the number of backslashes is halved, but
only at the end of the line.
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".
+2 -2
View File
@@ -1,4 +1,4 @@
*intro.txt* For Vim version 7.3. Last change: 2010 Jul 20
*intro.txt* For Vim version 7.3. Last change: 2010 Sep 29
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -300,7 +300,7 @@ and <> are part of what you type, the context should make this clear.
[] Characters in square brackets are optional.
*count* *[count]* *E489*
*count* *[count]*
[count] An optional number that may precede the command to multiply
or iterate the command. If no number is given, a count of one
is used, unless otherwise noted. Note that in this manual the
+3 -1
View File
@@ -1,4 +1,4 @@
*map.txt* For Vim version 7.3. Last change: 2010 Jul 31
*map.txt* For Vim version 7.3. Last change: 2010 Sep 29
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1203,6 +1203,7 @@ completion can be enabled:
-complete=augroup autocmd groups
-complete=buffer buffer names
-complete=command Ex command (and arguments)
-complete=cscope |:cscope| suboptions
-complete=dir directory names
-complete=environment environment variable names
-complete=event autocommand events
@@ -1216,6 +1217,7 @@ completion can be enabled:
-complete=menu menus
-complete=option options
-complete=shellcmd Shell command
-complete=sign |:sign| suboptions
-complete=syntax syntax file names |'syntax'|
-complete=tag tags
-complete=tag_listfiles tags, file names are shown when CTRL-D is hit
+2 -2
View File
@@ -1,4 +1,4 @@
*message.txt* For Vim version 7.3. Last change: 2010 Aug 10
*message.txt* For Vim version 7.3. Last change: 2010 Sep 14
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -65,7 +65,7 @@ or view a list of recent messages with: >
LIST OF MESSAGES
*E222* *E228* *E232* *E256* *E293* *E298* *E304* *E317*
*E318* *E356* *E438* *E439* *E440* *E316* *E320* *E322*
*E323* *E341* *E473* *E570* *E685* >
*E323* *E341* *E473* *E570* *E685* >
Add to read buffer
makemap: Illegal mode
Cannot create BalloonEval with both message and callback
+4 -3
View File
@@ -1,4 +1,4 @@
*netbeans.txt* For Vim version 7.3. Last change: 2010 Jul 20
*netbeans.txt* For Vim version 7.3. Last change: 2010 Sep 29
VIM REFERENCE MANUAL by Gordon Prieur et al.
@@ -118,7 +118,8 @@ In case you do not want the NetBeans interface you can disable it by
uncommenting a line with "--disable-netbeans" in the Makefile.
Currently the NetBeans interface is supported by Vim running in a terminal and
by GVim when it is run with one of the following GUIs: GTK, GNOME, and Motif.
by GVim when it is run with one of the following GUIs: GTK, GNOME, Windows,
Athena and Motif.
If Motif support is required the user must supply XPM libraries. See
|workshop-xpm| for details on obtaining the latest version of XPM.
@@ -819,7 +820,7 @@ These errors occur when a message violates the protocol:
==============================================================================
7. NetBeans commands *netbeans-commands*
*:nbstart* *E511*
*:nbstart* *E511* *E838*
:nbs[tart] {connection} Start a new Netbeans session with {connection} as the
socket connection parameters. The format of
{connection} is described in |netbeans-parameters|.
+8 -8
View File
@@ -1,4 +1,4 @@
*options.txt* For Vim version 7.3. Last change: 2010 Aug 15
*options.txt* For Vim version 7.3. Last change: 2010 Sep 21
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -2822,13 +2822,13 @@ A jump table for the options with a short description can be found at |Q_op|.
2. If a <NL> is found and 'fileformats' includes "unix", 'fileformat'
is set to "unix". Note that when a <NL> is found without a
preceding <CR>, "unix" is preferred over "dos".
3. If 'fileformats' includes "mac", 'fileformat' is set to "mac".
This means that "mac" is only chosen when "unix" is not present,
or when no <NL> is found in the file, and when "dos" is not
present, or no <CR><NL> is present in the file.
Also if "unix" was first chosen, but the first <CR> is before
the first <NL> and there appears to be more <CR>'s than <NL>'s in
the file, then 'fileformat' is set to "mac".
3. If 'fileformat' has not yet been set, and if 'fileformats'
includes "mac", 'fileformat' is set to "mac".
This means that "mac" is only chosen when:
"unix" is not present or no <NL> is found in the file, and
"dos" is not present or no <CR><NL> is found in the file.
Except: if "unix" was chosen, but there is a <CR> before
the first <NL>, and there appear to be more <CR>s than <NL>s in
4. If 'fileformat' is still not set, the first name from
'fileformats' is used.
When reading a file into an existing buffer, the same is done, but
+4 -4
View File
@@ -1,4 +1,4 @@
*os_vms.txt* For Vim version 7.3. Last change: 2010 Jul 28
*os_vms.txt* For Vim version 7.3. Last change: 2010 Aug 16
VIM REFERENCE MANUAL
@@ -675,7 +675,7 @@ slow when user wants to run Vim just in the console mode - because of X environm
Luckily, there is a simple solution for that. Administrators need to deploy
both GUI/GTK build and just console build executables, like below: >
|- vim72
|- vim73
|----- doc
|----- syntax
vimrc (system rc files)
@@ -685,7 +685,7 @@ both GUI/GTK build and just console build executables, like below: >
Define system symbols like below in for ex in LOGIN.COM or SYLOGIN.COM: >
$ define/nolog VIM RF10:[UTIL.VIM72] ! where you VIM directory is
$ define/nolog VIM RF10:[UTIL.VIM73] ! where you VIM directory is
$ vi*m :== mcr VIM:VIM.EXE
$ gvi*m :== mcr VIM:GVIM.EXE
$ ! or you can try to spawn with
@@ -755,7 +755,7 @@ Solution 2. Different directories: >
$ define/nolog VIM RF10:[UTIL.IA64_EXE] ! IA64 executables
$ endif
$! VIMRUNTIME must be defined in order to find runtime files
$ define/nolog VIMRUNTIME RF10:[UTIL.VIM72]
$ define/nolog VIMRUNTIME RF10:[UTIL.VIM73]
A good example for this approach is the [GNU]gnu_tools.com script from
GNU_TOOLS.ZIP package downloadable from http://www.polarhome.com/vim/
+2 -3
View File
@@ -1,4 +1,4 @@
*pi_zip.txt* For Vim version 7.3. Last change: 2010 Apr 12
*pi_zip.txt* For Vim version 7.3. Last change: 2010 Sep 14
+====================+
| Zip File Interface |
@@ -64,12 +64,11 @@ Copyright: Copyright (C) 2005-2009 Charles E Campbell, Jr *zip-copyright*
If for some reason you do not wish to use vim to examine zipped files,
you may put the following two variables into your <.vimrc> to prevent
the tar plugin from loading: >
the zip plugin from loading: >
let g:loaded_zipPlugin= 1
let g:loaded_zip = 1
<
<
==============================================================================
3. Additional Extensions *zip-extension*
+5 -5
View File
@@ -1,4 +1,4 @@
*quickref.txt* For Vim version 7.3. Last change: 2010 Jul 24
*quickref.txt* For Vim version 7.3. Last change: 2010 Sep 14
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1095,11 +1095,11 @@ Context-sensitive completion on the command-line:
|:_#| #[num] alternate file name [num] (only where a file name is
expected)
Note: The next seven are typed literally; these are not special keys!
|:<afile>| <abuf> buffer number, for use in an autocommand (only where a
|:<abuf>| <abuf> buffer number, for use in an autocommand (only where a
file name is expected)
|:<afile>| <afile> file name, for user in an autocommand (only where a
|:<afile>| <afile> file name, for use in an autocommand (only where a
file name is expected)
|:<afile>| <amatch> what matched with the pattern, for use in an
|:<amatch>| <amatch> what matched with the pattern, for use in an
autocommand (only where a file name is expected)
|:<cword>| <cword> word under the cursor (only where a file name is
expected)
@@ -1381,7 +1381,7 @@ Context-sensitive completion on the command-line:
set foldmethod=indent folding by indent
set foldmethod=expr folding by 'foldexpr'
set foldmethod=syntax folding by syntax regions
set foldmethod=marker folding by 'foldmarkers'
set foldmethod=marker folding by 'foldmarker'
|zf| zf{motion} operator: Define a fold manually
|:fold| :{range}fold define a fold for {range} lines
+9 -8
View File
@@ -1,4 +1,4 @@
*starting.txt* For Vim version 7.3. Last change: 2009 Dec 31
*starting.txt* For Vim version 7.3. Last change: 2010 Sep 18
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -95,14 +95,14 @@ exim vim -E Start in improved Ex mode (see |Ex-mode|). *exim*
(normally not installed)
view vim -R Start in read-only mode (see |-R|). *view*
gvim vim -g Start the GUI (see |gui|). *gvim*
gex vim -eg Start the GUI in Ex mode. *gex*
gview vim -Rg Start the GUI in read-only mode. *gview*
gex vim -eg Start the GUI in Ex mode. *gex*
gview vim -Rg Start the GUI in read-only mode. *gview*
rvim vim -Z Like "vim", but in restricted mode (see |-Z|) *rvim*
rview vim -RZ Like "view", but in restricted mode. *rview*
rgvim vim -gZ Like "gvim", but in restricted mode. *rgvim*
rgview vim -RgZ Like "gview", but in restricted mode. *rgview*
rview vim -RZ Like "view", but in restricted mode. *rview*
rgvim vim -gZ Like "gvim", but in restricted mode. *rgvim*
rgview vim -RgZ Like "gview", but in restricted mode. *rgview*
evim vim -y Easy Vim: set 'insertmode' (see |-y|) *evim*
eview vim -yR Like "evim" in read-only mode *eview*
eview vim -yR Like "evim" in read-only mode *eview*
vimdiff vim -d Start in diff mode |diff-mode|
gvimdiff vim -gd Start in diff mode |diff-mode|
@@ -244,7 +244,7 @@ a slash. Thus "-R" means recovery and "-/R" readonly.
-Z Restricted mode. All commands that make use of an external
shell are disabled. This includes suspending with CTRL-Z,
":sh", filtering, the system() function, backtick expansion,
etc.
delete(), rename(), mkdir(), writefile(), libcall(), etc.
{not in Vi}
*-g*
@@ -870,6 +870,7 @@ accordingly. Vim proceeds in this order:
12. Execute startup commands
If a "-t" flag was given to Vim, the tag is jumped to.
The commands given with the |-c| and |+cmd| arguments are executed.
The starting flag is reset, has("vim_starting") will now return zero.
If the 'insertmode' option is set, Insert mode is entered.
The |VimEnter| autocommands are executed.
+4 -4
View File
@@ -1,4 +1,4 @@
*syntax.txt* For Vim version 7.3. Last change: 2010 Aug 10
*syntax.txt* For Vim version 7.3. Last change: 2010 Sep 23
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -2258,7 +2258,7 @@ For highlighted builtin functions: >
For highlighted standard exceptions: >
:let python_highlight_exceptions = 1
For highlighted trailing whitespace and mix of spaces and tabs:
For highlighted trailing whitespace and mix of spaces and tabs: >
:let python_highlight_space_errors = 1
If you want all possible Python highlighting (the same as setting the
@@ -3953,7 +3953,7 @@ To show the syntax items for one syntax group: >
:sy[ntax] list {group-name}
To list the syntax groups in one cluster: *E392* >
To list the syntax groups in one cluster: *E392* >
:sy[ntax] list @{cluster-name}
@@ -4612,7 +4612,7 @@ is loaded into that window or the file is reloaded.
When splitting the window, the new window will use the original syntax.
==============================================================================
16. Color xterms *xterm-color* *color-xterm*
17. Color xterms *xterm-color* *color-xterm*
Most color xterms have only eight colors. If you don't get colors with the
default setup, it should work with these lines in your .vimrc: >
+6 -4
View File
@@ -3192,6 +3192,10 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
<ScrollWheelRight> scroll.txt /*<ScrollWheelRight>*
<ScrollWheelUp> scroll.txt /*<ScrollWheelUp>*
<Space> motion.txt /*<Space>*
<SwipeDown> gui_mac.txt /*<SwipeDown>*
<SwipeLeft> gui_mac.txt /*<SwipeLeft>*
<SwipeRight> gui_mac.txt /*<SwipeRight>*
<SwipeUp> gui_mac.txt /*<SwipeUp>*
<Tab> motion.txt /*<Tab>*
<Undo> undo.txt /*<Undo>*
<Up> motion.txt /*<Up>*
@@ -3463,7 +3467,6 @@ E102 diff.txt /*E102*
E103 diff.txt /*E103*
E104 digraph.txt /*E104*
E105 mbyte.txt /*E105*
E106 eval.txt /*E106*
E107 eval.txt /*E107*
E108 eval.txt /*E108*
E109 eval.txt /*E109*
@@ -3630,7 +3633,6 @@ E257 if_cscop.txt /*E257*
E258 remote.txt /*E258*
E259 if_cscop.txt /*E259*
E26 rileft.txt /*E26*
E260 if_cscop.txt /*E260*
E261 if_cscop.txt /*E261*
E262 if_cscop.txt /*E262*
E263 if_pyth.txt /*E263*
@@ -3879,7 +3881,6 @@ E485 message.txt /*E485*
E486 pattern.txt /*E486*
E487 options.txt /*E487*
E488 message.txt /*E488*
E489 intro.txt /*E489*
E49 message.txt /*E49*
E490 fold.txt /*E490*
E492 message.txt /*E492*
@@ -3962,7 +3963,6 @@ E561 if_cscop.txt /*E561*
E562 if_cscop.txt /*E562*
E563 if_cscop.txt /*E563*
E564 if_cscop.txt /*E564*
E565 if_cscop.txt /*E565*
E566 if_cscop.txt /*E566*
E567 if_cscop.txt /*E567*
E568 if_cscop.txt /*E568*
@@ -4262,6 +4262,7 @@ E834 options.txt /*E834*
E835 options.txt /*E835*
E836 if_pyth.txt /*E836*
E837 if_pyth.txt /*E837*
E838 netbeans.txt /*E838*
E84 windows.txt /*E84*
E85 options.txt /*E85*
E86 windows.txt /*E86*
@@ -6544,6 +6545,7 @@ macvim-differences gui_mac.txt /*macvim-differences*
macvim-drag-n-drop gui_mac.txt /*macvim-drag-n-drop*
macvim-encoding gui_mac.txt /*macvim-encoding*
macvim-find gui_mac.txt /*macvim-find*
macvim-gestures gui_mac.txt /*macvim-gestures*
macvim-hints gui_mac.txt /*macvim-hints*
macvim-international gui_mac.txt /*macvim-international*
macvim-login-shell gui_mac.txt /*macvim-login-shell*
+134 -63
View File
@@ -1,4 +1,4 @@
*todo.txt* For Vim version 7.3. Last change: 2010 Aug 15
*todo.txt* For Vim version 7.3. Last change: 2010 Sep 29
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -30,23 +30,88 @@ be worked on, but only if you sponsor Vim development. See |sponsor|.
*known-bugs*
-------------------- Known bugs and current work -----------------------
":find e" completion, editing a file in the Vim source directory, 'path' set
to "./proto", does not shorten ./proto/eval.pro, probably because of
./proto/ex_eval.pro.
Cursor position wrong when 'formatoptions' contains "a". (Moshe Kamensky, 2010
Sep 7, Gary Johnson, 2010 Sep 14)
Formatoptions cause cursor to jump. (ZyX, 2010 Aug 22)
Caused by revision 2294, "Make joining a range of lines much faster. (Milan
Vancura)" ?
Patch by Carlo Teubner, 2010 Sep 25. Test Sep 26.
Problem with \NL in Ex script. (Ray Frish, 2010 Aug 10)
'cursorline' is displayed too short when there are concealed characters and
'list' is set, 'listchars' at default value. (Dennis Preiser, 2010 Aug 15)
Hang on slave PTY on Mac. Patch from Nikola Knezevic, 2010 Aug 29.
Patch to fix sign type negative and memory not freed. (Xavier de Gaye, 2010
Aug 20)
Conceal: using Tab for cchar causes problems. Should reject it. (ZyX, 2010
Aug 25)
Syntax region with 'concealends' and a 'cchar' value, 'conceallevel' set to 2,
only one of the two ends gets the cchar displayed. (Brett Stahlman, 2010 Aug
21, Ben Fritz, 2010 Sep 14)
Patch for :mksession not escaping file name properly. (Peter Odding, 2010 Sep
19)
Patch for CTRL-] in help file doing wrong escaping. (Carlo Teubner, 2010 Sep
25)
Patch to support List and Dict in .viminfo. (Christian Brabandt, 2010 Sep 24)
Sep 26 with a test.
Patch for :grep docs. (Britton Kerin, 2010 Aug 31)
Patch for dynamic loading Ruby on Unix. (Jon, 2010 Aug 23)
Included, but also need a change to configure.
Replacement R syntax file. (Jakson A. Aquino, 2010 Sep 29)
Windows keys not set properly on Windows 7? (cncyber, 2010 Aug 26)
maparg() doesn't return the flags, such as <buffer>, <script>, <silent>.
These are needed to save and restore a mapping.
Also: the rhs string is not always correct. (Hari Krishna Dara, 2009 Sept 29)
Patch by Christian Brabandt, 2010 Sep 17.
Building the MingW version without clipboard but with multi-byte doesn't
build. (Bill Lam, 2010 Sep 18)
Bug: E685 error for func_unref(). (ZyX, 2010 Aug 5)
Patch to fix warning for accessing mediumVersion. (Dominique Pelle, 2010 Aug
18)
Patch for 2html to support 'fileencoding'. (Benjamin Fritz, 2010 Sep 10)
Patch to use 'previewheight' for popup menu. (Benjamin Haskell, 2010 Sep 29)
CTRL-] on help tag |/[\n]| doesn't jump to the right place. (Tony Mechelynck,
2010 Aug 8)
Three patches for undo persistence. (Christian Brabandt, 2010 Sep 4)
string() can't parse back "inf" and "nan". Fix documentation or fix code?
(ZyX, 2010 Aug 23)
":command Print echo 'print'" works, but ":Print" doesn't. Builtin Print
should be overruled. (Aaron Thoma)
Patch by Christian Brabandt, 2010 Sep 5.
Comparing recursive structure loops forever. (ZyX, 2010 Aug 22, info from John
Beckett Aug 23)
GTK: drawing a double-width combining character over single-width characters
doesn't look right. (Dominique Pelle, 2010 Aug 8)
Copy/paste between Vim and Google chrome doesn't work well for multi-byte
characters. (Ben Haskell, 2010 Sep 17)
When putting text in the cut buffer (when exiting) and conversion doesn't work
properly, Prepend "ENC==={value of 'enc'}:" to the text and don't convert?
Then it should at least work from Vim to Vim and in other applications it's
clear why it doesn't work.
Editing a file with a ^M with 'ff' set to "mac", opening a help file, then the
^M is displayed as ^J sometimes. Getting 'ff' value from wrong window/buffer?
@@ -55,15 +120,33 @@ Results in E670. (Tony Mechelynck, 2010 May 2)
setpos() does not restore cursor position after :normal. (Tyru, 2010 Aug 11)
getpos()/setpos() don't include curswant. getpos() could return a fifth
element. setpos() could accept an optional fifth element.
Patch by Christian Brabandt, 2010 Sep 6. Check that new argument is optional
and that it's documented.
Messages in message.txt are highlighted as examples.
Win32: Patch to fix slow access over network (David Anderson). Cleaned up by
John Beckett, 2010 Aug 25.
Test 73 fails on MS-Windows when compiled with DJGPP and run twice. How to
delete the Xfind directory? Add an rmdir() function, just like we have
mkdir().
'cindent' not correct when 'list' is set. (Zdravi Korusef, 2010 Apr 15)
Windows installer: licence text should not use indent, causes bad word wrap.
(Benjamin Fritz, 2010 Aug 16)
Mac with X11: clipboard doesn't work properly. (Raf, 2010 Aug 16)
":helpgrep" does not put the cursor in the correct column when preceded by
accented character. (Tony Mechelynck, 2010 Apr 15)
Don't call check_restricted() for histadd(), setbufvar(), settabvar(),
setwinvar().
Echo starts in the wrong column:
while 1 | let s = input('A') | echo 'R' | endw
(Boyko Bantchev, 2010 Aug 9)
@@ -75,6 +158,9 @@ Patch to make more characters work in dialogs. (Yankwei Jia, 2010 Aug 4)
":drop" does not respect 'autochdir'. (Peter Odding, 2010 Jul 24)
When 'lines' is 25 and 'scrolloff' is 12, "j" scrolls zero or two lines
instead of one. (Constantin Pan, 2010 Sep 10)
Problem with cursor in the wrong column. (SungHyun Nam, 2010 Mar 11)
Additional info by Dominique Pelle. (also on 2010 Apr 10)
@@ -148,12 +234,18 @@ Disable updating folds while completion is active? (Peter Odding, 2010 Jun 9)
In command line window ":close" doesn't work properly. (Tony Mechelynck, 2009
Jun 1)
Cannot use getchar() inside :normal and using an expression mapping. Is this
supposed to work? (XyX, 2010 Sep 22)
When a:base in 'completefunc' starts with a number it's passed as a number,
not a string. (Sean Ma) Need to add flag to call_func_retlist() to force a
string value.
There is no command line completion for ":lmap".
":e ~br<Tab>" does not complete to ":e /home/bram/". Would need to use
getpwent() to find all the matches.
Invalid read error in Farsi mode. (Dominique Pelle, 2009 Aug 2)
For running gvim on an USB stick: avoid the OLE registration. Use a command
@@ -178,8 +270,13 @@ Probably needs a bit of work.
List of encoding aliases. (Takao Fujiware, 2009 Jul 18)
Are they all OK? Update Jul 22.
Win32: Improved Makefile for MSVC. (Leonardo Valeri Manera, 2010 Aug 18)
Win32: Expanding 'path' runs into a maximum size limit. (bgold12, 2009 Nov 15)
Win32: Patch for enabling quick edit mode in console. (Craig Barkhouse, 2010
Sep 1)
Putting a Visual block while 'visualedit' is "all" does not leave the cursor
on the first character. (John Beckett, 2010 Aug 7)
@@ -288,10 +385,6 @@ very high. (Yegappan Lakshmanan, 2010 Jul 22, Michael Peeters, 2010 Jul 22)
Directory wrong in session file, caused by ":lcd" in BufEnter autocommand.
(Felix Kater, 2009 Mar 3)
maparg() doesn't return the flags, such as <buffer>, <script>, <silent>.
These are needed to save and restore a mapping.
Also: the rhs string is not always correct. (Hari Krishna Dara, 2009 Sept 29)
Using ~ works OK on 'a' with composing char, but not on 0x0418 with composing
char 0x0301. (Tony Mechelynck, 2009 Mar 4)
@@ -424,6 +517,15 @@ argument is processed for <f-args>. (Ivan Tishchenko, 2008 Aug 19)
Win32: associating a type with Vim doesn't take care of space after a
backslash? (Robert Vibrant, 2008 Jun 5)
Win32: bold font doesn't work when 'guifontwide' has been set. (Yue Wu, 2010
Aug 23)
When 'rightleft' is set, cursorcolumn isn't highlighted after the end of a
line. It's also wrong in folds. (Dominique Pelle, 2010 Aug 21)
Using an insert mode expression mapping, cursor is not in the expected
position. (ZyX, 2010 Aug 29)
After using <Tab> for command line completion after ":ta blah" and getting E33
(no tags file), further editing the command to e.g., ":echo 'blah'", the
command is not executed. Fix by Ian Kelling?
@@ -513,6 +615,12 @@ When 'smartcase' is set and using CTRL-L to add to the search pattern it may
result in no matches. Convert chars to lower case? (Erik Wognsen, 2009 Apr
16)
Searching for composing char works, but not when inside []. (ZyX, Benjamin R.
Haskell, 2010 Aug 24)
Fail to edit file after failed register access. Error flag remains set?
(Lech Lorens, 2010 Aug 30)
Patch for redo register. (Ben Schmidt, 2007 Oct 19)
Await response to question to make the register writable.
@@ -560,6 +668,7 @@ C syntax: {} inside () causes following {} to be highlighted as error.
Can't easily close the help window, like ":pc" closes the preview window and
":ccl" closes the quickfix window. Add ":hclose". (Chris Gaal)
Patch for :helpclose, Christian Brabandt, 2010 Sep 6.
When 'diffopt' has "context:0" a single deleted line causes two folds to merge
and mess up syncing. (Austin Jennings, 2008 Jan 31)
@@ -589,6 +698,9 @@ Asked about latest version: 0.77.1 is on www.vim.org.
More AmigaOS4 patches. (Peter Bengtsson, Nov 9)
Amiga patches with vbcc. (Adrien Destugues, 2010 Aug 30)
http://pulkomandy.ath.cx/drop/vim73_vbcc_amiga.diff
Insert mode completion: When editing the text and pressing CTRL-N again goes
back to originally completed text, edited text is gone. (Peng Yu, 2008 Jul 24)
Suggestion by Ben Schmidt, 2008 Aug 6.
@@ -718,9 +830,6 @@ Win32: When there is 4 Gbyte of memory mch_avail_mem() doesn't work properly.
Unfinished patch by Jelle Geerts, 2008 Aug 24.
Let mch_avail_mem() return Kbyte instead?
Win32: With two monitors, gvim partly on both, and adding/removing a scrollbar
Vim resizes and moves to one of the monitors. (Chris Monkiewicz, 2008 Oct)
Win32: When 'shell' is bash shellescape() doesn't always do the right thing.
Depends on 'shellslash', 'shellquote' and 'shellxquote', but shellescape()
only takes 'shellslash' into account.
@@ -802,9 +911,6 @@ VMS: VFC files are in some cases truncated during reading (Zoltan Arpadffy)
input() completion should not insert a backslash to escape a space in a file
name?
getpos()/setpos() don't include curswant. getpos() could return a fifth
element. setpos() could accept an optional fifth element.
Ruby completion is insecure. Can this be fixed?
When 'backupskip' is set from $TEMP special characters need to be escaped.
@@ -993,9 +1099,6 @@ resulting in highlighted "{" in that window, not in the other.
In mswin.vim: Instead of mapping <C-V> for Insert mode in a complicated way,
can it be done like ":imap <C-V> <MiddleMouse>" without negative side effects?
Win32: When the GUI tab pages line is displayed Vim jumps from the secondary
to the primary monitor. (Afton Lewis, 2007 Mar 9) Old resizing problem?
GTK: when the Tab pages bar appears or disappears while the window is
maximized the window is no longer maximized. Patch that has some idea but
doesn't work from Geoffrey Antos, 2008 May 5.
@@ -1319,9 +1422,18 @@ Win32 GUI known bugs:
the wide functions.
8 On Windows 98 the unicows library is needed to support functions with UCS2
file names. Can we load unicows.dll dynamically?
8 Win32: With two monitors, gvim partly on both, and adding/removing a
scrollbar Vim resizes and moves to one of the monitors. (Chris Monkiewicz,
2008 Oct)
8 When the primary monitor is below or right of the secondary monitor and
Vim is on the secondary monitor it will often move to the primary monitor.
Window position coordinates can be negative. (James Harvey)
When the primary monitor is on the right, coordinates on the left monitor
are negative. Clamping to zero means gvim jups to the primary monitor.
(Michael Wookey, 2010 Aug 17)
Probably the same issue: When the GUI tab pages line is displayed Vim
jumps from the secondary to the primary monitor. (Afton Lewis, 2007 Mar 9)
Possible solution using GetSystemMetrics() (Sergey Khorev, 2010 Aug 18)
8 The -P argument doesn't work very well with many MDI applications.
The last argument of CreateWindowEx() should be used, see MSDN docs.
Tutorial: http://win32assembly.online.fr/tut32.html
@@ -1452,7 +1564,7 @@ Athena GUI:
Motif GUI:
- gui_mch_browsedir() is missing.
- gui_mch_browsedir() is missing, browsedir() doesn't work nicely.
7 Use XmStringCreateLocalized() instead of XmStringCreateSimple()?
David Harrison says it's OK (it exists in Motif 1.2).
8 Lesstif: When deleting a menu that's torn off, the torn off menu becomes
@@ -1662,33 +1774,17 @@ Amiga:
Macintosh:
- GUI: gui_mch_browsedir() is missing.
7 Patch to add 'transparency' option. Disadvantage: it's slow. (Eckehard
Berns, 2004 May 9) http://ecki.to/vim/TransBack-2004-05-09.diff
Needs more work. Add when someone really wants it.
7 Loading the Perl library only works on OS/X 10.2 or 10.3, never on both.
Load the Perl library dynamically see Python sources file dynload_mac
(Jack)
dynamic linking: http://developer.apple.com/technotes/tn2002/tn2064.html
8 Inputting Unicode characters does not work in the terminal. They appear
to arrive as upper and lower bytes. (David Brown, 2004 April 17)
8 Typing Unicode characters doesn't work at all in the GUI.
8 inputdialog() doesn't resize when giving more text lines. (David Fishburn,
2006 Sept 28)
9 Problems in Carbon version for OS X: (Benji Fisher)
- keyboard shortcuts in the menus get lost.
8 The Vim/About menu doesn't work.
8 ":gui" doesn't fork. Enabling the code in gui.c to fork causes a SEGV.
8 Define vim_mkdir() for Macintosh.
8 Define mch_writable() for Macintosh.
9 When DiskLock is running, using a swap file causes a crash. Appears to be
a problem with writing a file that starts with a dot. (Giacalone)
9 On G3 Mac, OS version 8, control strip causes characters messed up when
scrolling (CTRL-L cleans it up). (Benji Fisher)
9 On G3 Mac, OS version 8, variable-speed scrolling doesn't work, after two
seconds of scrolling the screen freezes. (Benji Fisher)
9 In mac_expandpath() check that handling of backslashes is done properly.
8 Standard Mac shortcuts are missing. (Amerige)
8 Handling of non-fixed width fonts is wrong. (Amerige)
"Small" problems:
@@ -2584,9 +2680,6 @@ Syntax highlighting:
colors. And add colors, so that Green+Red becomes Yellow.
E.g. for this html:
<B> bold text <I> italic+bold text </B> italic text </I>
7 Wild idea: Not only set highlighting, but also change what is displayed
(e.g., remove characters, so that "<B>bold</B>" can be shown as "bold"):
:syn region boldstuff start="<B>" display="" end="</B>" display=""
7 CTRL-] checks the highlight group for finding out what the tag is.
7 Add an explanation how a list of words can be used to highlight misspelled
words.
@@ -2760,8 +2853,6 @@ Built-in script language:
"command" would use <> notation.
Does scratch buffer have a number? Or re-use same number?
7 Add function to generate unique number (date in milliseconds).
7 Automatically load a function from a file when it is called. Need an
option for the search path. (Sekera)
Robustness:
@@ -2813,7 +2904,7 @@ Performance:
http://www.theregister.co.uk/content/4/22908.html. (Andre Pang)
7 Check how performance of loading the wordlist can be improved (adding a
lot of abbreviations).
7 DOS console: Add t_DL support, to make scrolling faster.
7 MS-DOS console: Add t_DL support, to make scrolling faster.
7 Compile Ex commands to byte codes. Store byte codes in a vim script file
at the end, after "compiled:. Make it look like a single comment line
for old Vim versions. Insert first line "Vim script compiled <timestamp>.
@@ -2946,7 +3037,7 @@ Screen updating:
Scrolling:
8 Add "zm" command: scroll horizontally to put the cursor in the middle.
8 Add "zy" command: scroll horizontally to put the cursor in the middle.
6 Add option to set the overlap for CTRL-F and CTRL-B. (Garhi)
- extend 'scrollbind' option: 'scrollopt' words "search", "relative", etc..
Also 'e'xecute some commands (search, vertical movements) in all bound
@@ -3182,8 +3273,6 @@ Autocommands:
CursorHold), go through the list once and cache the result for a specific
buffer. Invalidate the cache when adding/deleting autocommands or
changing the buffer name.
8 Add ScriptReadCmd event: used to load remote Vim scripts, e.g.
"vim -u http://mach/path/vimrc".
7 Add TagJump event: do something after jumping to a tag.
8 Add "TagJumpFile" autocommand: When jumping to another file for a tag.
Can be used to open "main.c.gz" when "main.c" isn't found.
@@ -3234,8 +3323,6 @@ Autocommands:
PreDirChanged/PostDirChanged
- Before/after ":cd" has been used (for changing the
window title)
BufReadAction - replaces reading a file
BufWriteAction - replaces writing a file
ShutDown - when the system is about to shut down
InsertCharPre - user typed character Insert mode, before inserting the
char. Pattern is matched with text before the cursor.
@@ -3712,21 +3799,14 @@ Mappings and Abbreviations:
8 Add a flag to ":abbrev" to eat the character that triggers the
abbreviation. Thus "abb ab xxx" and typing "ab<Space>" inserts "xxx" and
not the <Space>.
8 Allow mapping of CTRL-@ (anywhere in the LHS).
8 Give a warning when using CTRL-C in the lhs of a mapping. It will never
(?) work.
8 Add a way to save a current mapping and restore it later. Use a function
that returns the mapping command to restore it: mapcmd()? mapcheck() is
not fool proof. How to handle ambiguous mappings?
7 Add <0x8f> (hex), <033> (octal) and <123> (decimal) to <> notation?
7 Allow mapping "Q" and "Q}" at the same time. Need to put a flag with "Q",
that it needs an extra character before it can match. See Vile 'maplonger'
option.
7 When someone tries to unmap with a trailing space, and it fails, try
unmapping without the trailing space. Helps for ":unmap xx | unmap yy".
7 Make it possible to map 'wildchar', but only when it's a special character
(like CTRL-E). Currently it's only recognized when typed. Useful for
mapping a key to do something and then completion.
6 Context-sensitive abbreviations: Specify syntax group(s) in which the
abbreviations are to be used.
- Add mappings that take arguments. Could work like the ":s" command. For
@@ -3738,12 +3818,9 @@ Mappings and Abbreviations:
:map q<Char> :s/<Char>/\u\0/g
Or implicit:
:map q <Register>d<Number>$
- Make it possible to include a <Nul> in the lhs and rhs of a mapping.
- Add command to repeat a whole mapping ("." only repeats the last change in
a mapping). Also: Repeat a whole insert command, including any mappings
that it included. Sort-of automatic recording?
- Add an option to ":map" that makes it display the special keys in
<> notation (e.g. <CR> instead of ^M). Or just always do this?
- Include an option (or flag to 'cpoptions') that makes errors in mappings
not flush the rest of the mapping (like nvi does).
- Use context sensitiveness of completion to switch abbreviations and
@@ -4393,7 +4470,7 @@ Various improvements:
(like "v" makes the operator characterwise-exclusive). "x" could be used.
- Make a set of operations on list of names: expand wildcards, replace home
dir, append a string, delete a string, etc.
- Remove mktemp() and use tmpname() only? Ctags does this.
- Remove using mktemp() and use tmpname() only? Ctags does this.
- When replacing environment variables, and there is one that is not set,
turn it into an empty string? Only when expanding options? (Hiebert)
- Option to set command to be executed instead of producing a beep (e.g. to
@@ -4478,7 +4555,6 @@ Various improvements:
expanded. Is there a better way to do this?
- Add ":@!" command, to ":@" like what ":source!" is to ":source".
8 Add ":@:!": repeat last command with forceit set.
- Should be possible to write to a device, e.g. ":w! /dev/null".
- Add 't_normal': Used whenever t_me, t_se, t_ue or t_Zr is empty.
- ":cab map test ^V| je", ":cunab map" doesn't work. This is vi compatible!
- CTRL-W CTRL-E and CTRL-W CTRL-Y should move the current window up or down
@@ -4556,9 +4632,6 @@ Various improvements:
- ":split file1 file2" adds two more windows (Webb).
- Don't give message "Incomplete last line" when editing binary file.
- Add ":a", ":i" for preloading of named buffers.
- Allow autowrite when doing ":e file" (with an option 'eaw').
- Allow a "+command" argument before each file name in the Vim command line:
"vim +123 file1 +234 file2 +345 file3". ???
- When entering text, keep other windows on same buffer updated (when a line
entered)?
- Check out how screen does output optimizing. Apparently this is possible
@@ -4632,8 +4705,6 @@ Various improvements:
working in another window. Put cmdline in a separate window?
- Add possibility to put output of Ex commands in a buffer or file, e.g. for
":set all". ":r :set all"?
- 'edit' option: When off changing the buffer is not possible (Really
read-only mode).
- When the 'equalalways' option is set, creating a new window should not
result in windows to become bigger. Deleting a window should not result in
a window to become smaller (Webb).
+9 -6
View File
@@ -1,4 +1,4 @@
*undo.txt* For Vim version 7.3. Last change: 2010 Jul 20
*undo.txt* For Vim version 7.3. Last change: 2010 Sep 30
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -125,9 +125,9 @@ This is explained in the user manual: |usr_32.txt|.
*:undol* *:undolist*
:undol[ist] List the leafs in the tree of changes. Example:
number changes time ~
number changes time saved ~
4 10 10:34:11
18 4 11:01:46
18 4 11:01:46 7
The "number" column is the change number. This number
continuously increases and can be used to identify a
@@ -135,6 +135,9 @@ This is explained in the user manual: |usr_32.txt|.
The "changes" column is the number of changes to this
leaf from the root of the tree.
The "time" column is the time this change was made.
The "saved" column specifies, if this change was
written to disk and which file write it was. This can
be used with the |:later| and |:earlier| commands.
For more details use the |undotree()| function.
*g-*
@@ -148,7 +151,7 @@ g- Go to older text state. With a count repeat that many
:earlier {N}d Go to older text state about {N} days before.
:earlier {N}f Go to older text state {N} file writes before.
When changes were made since the laste write
When changes were made since the last write
":earlier 1f" will revert the text to the state when
it was written. Otherwise it will go to the write
before that.
@@ -324,8 +327,8 @@ Writing an undo file may fail for these reasons:
A file exists with the name of the undo file to be written, but it
does not start with the right magic number. You may want to delete
this file or rename it.
"Skipping undo file write, noting to undo"
There is no undo information not be written, nothing has been changed
"Skipping undo file write, nothing to undo"
There is no undo information to be written, nothing has been changed
or 'undolevels' is negative.
*E829* An error occurred while writing the undo file. You may want to try
again.
+4 -4
View File
@@ -1,4 +1,4 @@
*various.txt* For Vim version 7.3. Last change: 2010 Aug 10
*various.txt* For Vim version 7.3. Last change: 2010 Sep 23
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -167,8 +167,8 @@ g8 Print the hex values of the bytes used in the
:norm[al][!] {commands} *:norm* *:normal*
Execute Normal mode commands {commands}. This makes
it possible to execute Normal mode commands typed on
the command-line. {commands} is executed like it is
typed. For undo all commands are undone together.
the command-line. {commands} are executed like they
are typed. For undo all commands are undone together.
Execution stops when an error is encountered.
If the [!] is given, mappings will not be used.
{commands} should be a complete command. If
@@ -613,7 +613,7 @@ g CTRL-A Only when Vim was compiled with MEM_PROFILING defined
Only useful for debugging Vim.
==============================================================================
3. Using Vim like less or more *less*
2. Using Vim like less or more *less*
If you use the less or more program to view a file, you don't get syntax
highlighting. Thus you would like to use Vim instead. You can do this by
+2 -1
View File
@@ -1,4 +1,4 @@
*vi_diff.txt* For Vim version 7.3. Last change: 2010 Jul 20
*vi_diff.txt* For Vim version 7.3. Last change: 2010 Sep 25
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -90,6 +90,7 @@ Maximum lhs of a mapping 50 characters.
Number of different highlighting types: over 30000
Range of a Number variable: -2147483648 to 2147483647 (more on 64 bit
systems)
Maximum length of a line in a tags file: 512 bytes.
Information for undo and text in registers is kept in memory, thus when making
(big) changes the amount of (virtual) memory available limits the number of
+4 -1
View File
@@ -1,7 +1,7 @@
" Vim support file to detect file types
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2010 Jul 30
" Last Change: 2010 Sep 29
" Listen very carefully, I will say this only once
if exists("did_load_filetypes")
@@ -677,6 +677,9 @@ au BufNewFile,BufRead *.exp setf expect
" Exports
au BufNewFile,BufRead exports setf exports
" Falcon
au BufNewFile,BufRead *.fal setf falcon
" Fantom
au BufNewFile,BufRead *.fan,*.fwt setf fan
+43
View File
@@ -0,0 +1,43 @@
" Vim filetype plugin file
" Language: Falcon
" Author: Steven Oliver <oliver.steven@gmail.com>
" Copyright: Copyright (c) 2009, 2010 Steven Oliver
" License: You may redistribute this under the same terms as Vim itself
" --------------------------------------------------------------------------
" GetLatestVimScripts: 2762 1 :AutoInstall: falcon.vim
" Only do this when not done yet for this buffer
if (exists("b:did_ftplugin"))
finish
endif
let b:did_ftplugin = 1
let s:cpo_save = &cpo
set cpo&vim
setlocal tabstop=4 shiftwidth=4 expandtab fileencoding=utf-8
setlocal suffixesadd=.fal
" Matchit support
if exists("loaded_matchit") && !exists("b:match_words")
let b:match_ignorecase = 0
let b:match_words =
\ '\<\%(if\|case\|while\|until\|for\|do\|class\)\>=\@!' .
\ ':' .
\ '\<\%(else\|elsif\|when\)\>' .
\ ':' .
\ '\<end\>' .
\ ',{:},\[:\],(:)'
endif
" Set comments to include dashed lines
setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,://
" Windows allows you to filter the open file dialog
if has("gui_win32") && !exists("b:browsefilter")
let b:browsefilter = "Falcon Source Files (*.fal)\t*.fal\n" .
\ "All Files (*.*)\t*.*\n"
endif
" vim: set sw=4 sts=4 et tw=80 :
+6
View File
@@ -15,5 +15,11 @@ let b:undo_ftplugin = "setl fo< tw< cole< cocu<"
setlocal formatoptions+=tcroql textwidth=78 cole=2 cocu=nc
if has("gui_macvim")
" Use swipe gesture to navigate back/forward
nmap <buffer> <silent> <SwipeLeft> :po<CR>
nmap <buffer> <silent> <SwipeRight> :ta<CR>
endif
let &cpo = s:cpo_save
unlet s:cpo_save
+5 -6
View File
@@ -1,7 +1,7 @@
" Vim indent file
" Language: DTD (Document Type Definition for XML)
" Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2008-07-18
" Latest Revision: 2010-09-21
let s:cpo_save = &cpo
set cpo&vim
@@ -52,7 +52,7 @@ function s:indent_to_innermost_parentheses(line, end)
let end = a:end
let parentheses = [end - 1]
while token != ""
let [token, end] = s:lex(a:line, end, '^\%([(),|]\|[A-Za-z0-9_-]\+\)[?*+]\=')
let [token, end] = s:lex(a:line, end, '^\%([(),|]\|[A-Za-z0-9_-]\+\|#PCDATA\|%[A-Za-z0-9_-]\+;\)[?*+]\=')
if token[0] == '('
call add(parentheses, end - 1)
elseif token[0] == ')'
@@ -80,7 +80,7 @@ function GetDTDIndent()
let lnum = line('.')
let col = col('.')
let indent = indent('.')
let line = join(getline(lnum, v:lnum - 1), "\n")
let line = lnum == v:lnum ? getline(lnum) : join(getline(lnum, v:lnum - 1), "\n")
let [declaration, end] = s:lex1(line, col)
if declaration == ""
@@ -106,7 +106,7 @@ function GetDTDIndent()
" Check for token following element name. This can be a specification of
" whether the start or end tag may be omitted. If nothing is found, indent
" one level.
let [token, end] = s:lex(line, end)
let [token, end] = s:lex(line, end, '^\%([-O(]\|ANY\|EMPTY\)')
let n = 0
while token =~ '[-O]' && n < 2
let [token, end] = s:lex(line, end, '^\%([-O(]\|ANY\|EMPTY\)')
@@ -214,8 +214,7 @@ function GetDTDIndent()
" Finally look for the attributes default value. If non exists, indent
" two levels.
" TODO: Do validation of keywords (#REQUIRED|#IMPLIED)?
let [default, end] = s:lex(line, end, '^\%("\_[^"]*"\|[^[:space:]]\+\)')
let [default, end] = s:lex(line, end, '^\%("\_[^"]*"\|#\(REQUIRED\|IMPLIED\|FIXED\)\)')
if default == ""
return indent + &sw * 2
elseif default == '#FIXED'
+156
View File
@@ -0,0 +1,156 @@
" Vim indent file
" Language: Falcon
" Maintainer: Steven Oliver <oliver.steven@gmail.com>
" Website: https://steveno@github.com/steveno/falconpl-vim.git
" Credits: Thanks to the ruby.vim authors, I borrow a lot!
" Previous Maintainer: Brent A. Fulgham <bfulgham@debian.org>
" -----------------------------------------------------------
" GetLatestVimScripts: 2752 1 :AutoInstall: falcon.vim
"======================================
" SETUP
"======================================
" Only load this indent file when no other was loaded.
if exists("b:did_indent")
finish
endif
let b:did_indent = 1
setlocal nosmartindent
" Setup indent function and when to use it
setlocal indentexpr=FalconGetIndent()
setlocal indentkeys=0{,0},0),0],!^F,o,O,e
setlocal indentkeys+==~case,=~catch,=~default,=~elif,=~else,=~end,=~\"
" Define the appropriate indent function but only once
if exists("*FalconGetIndent")
finish
endif
let s:cpo_save = &cpo
set cpo&vim
"======================================
" VARIABLES
"======================================
" Regex of syntax group names that are strings AND comments
let s:syng_strcom = '\<falcon\%(String\|StringEscape\|Comment\)\>'
" Regex of syntax group names that are strings
let s:syng_string = '\<falcon\%(String\|StringEscape\)\>'
" Keywords to indent on
let s:falcon_indent_keywords = '^\s*\(case\|catch\|class\|enum\|default\|elif\|else' .
\ '\|for\|function\|if.*"[^"]*:.*"\|if \(\(:\)\@!.\)*$\|loop\|object\|select' .
\ '\|switch\|try\|while\|\w*\s*=\s*\w*([$\)'
" Keywords to deindent on
let s:falcon_deindent_keywords = '^\s*\(case\|catch\|default\|elif\|else\|end\)'
"======================================
" FUNCTIONS
"======================================
" Check if the character at lnum:col is inside a string
function s:IsInStringOrComment(lnum, col)
return synIDattr(synID(a:lnum, a:col, 1), 'name') =~ s:syng_strcom
endfunction
"======================================
" INDENT ROUTINE
"======================================
function FalconGetIndent()
" Get the line to be indented
let cline = getline(v:lnum)
" Don't reindent comments on first column
if cline =~ '^\/\/'
return 0
endif
" Find the previous non-blank line
let lnum = prevnonblank(v:lnum - 1)
" Use zero indent at the top of the file
if lnum == 0
return 0
endif
let prevline=getline(lnum)
let ind = indent(lnum)
let chg = 0
" If we are in a multi-line string or line-comment, don't do anything
if s:IsInStringOrComment(v:lnum, matchend(cline, '^\s*') + 1 )
return indent('.')
endif
" If the start of the line equals a double quote, then indent to the
" previous lines first double quote
if cline =~? '^\s*"'
let chg = chg + &sw
endif
" If previous line started with a double quote and this one
" doesn't, unindent
if prevline =~? '^\s*"' && cline =~? '^\s*'
let chg = chg - &sw
endif
" Indent if proper keyword
if prevline =~? s:falcon_indent_keywords
let chg = &sw
" If previous line opened a parenthesis, and did not close it, indent
elseif prevline =~ '^.*(\s*[^)]*\((.*)\)*[^)]*$'
" Make sure this isn't just a function split between two lines
if prevline =~ ',\s*$'
return indent(prevnonblank(v:lnum - 1)) + &sw
else
return match(prevline, '(.*\((.*)\|[^)]\)*.*$') + 1
endif
elseif prevline =~ '^[^(]*)\s*$'
" This line closes a parenthesis. Finds opening.
let curr_line = prevnonblank(lnum - 1)
while curr_line >= 0
let str = getline(curr_line)
if str !~ '^.*(\s*[^)]*\((.*)\)*[^)]*$'
let curr_line = prevnonblank(curr_line - 1)
else
break
endif
endwhile
if curr_line < 0
return -1
endif
let ind = indent(curr_line)
endif
" If previous line ends in a semi-colon reset indent to previous
" lines setting
if prevline =~? ';\s*$' && prevnonblank(prevline) =~? ',\s*$'
return chg = chg - (2 * &sw)
endif
" If previous line ended in a comma, indent again
if prevline =~? ',\s*$'
let chg = chg + &sw
endif
" If previous line ended in a =>, indent again
if prevline =~? '=>\s*$'
let chg = chg + &sw
endif
" Deindent on proper keywords
if cline =~? s:falcon_deindent_keywords
let chg = chg - &sw
endif
return ind + chg
endfunction
" vim: set sw=4 sts=4 et tw=80 :
+3 -2
View File
@@ -1,7 +1,7 @@
" Vim support file to detect file types in scripts
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last change: 2010 Jul 29
" Last change: 2010 Sep 22
" This file is called by an autocommand for every file that has just been
" loaded into a buffer. It checks if the type of file can be recognized by
@@ -168,7 +168,8 @@ else
call SetFileTypeSH(s:line1) " defined in filetype.vim
" Z shell scripts
elseif s:line1 =~ '^#compdef\>' || s:line1 =~ '^#autoload\>'
elseif s:line1 =~ '^#compdef\>' || s:line1 =~ '^#autoload\>' ||
\ "\n".s:line1."\n".s:line2."\n".s:line3."\n".s:line4."\n".s:line5 =~ '\n\s*emulate\s\+\%(-[LR]\s\+\)\=[ckz]\=sh\>'
set ft=zsh
" ELM Mail files
+266 -101
View File
@@ -1,16 +1,19 @@
" Vim syntax file for the D programming language (version 1.053 and 2.039).
" Vim syntax file for the D programming language (version 1.053 and 2.047).
"
" Language: D
" Maintainer: Jason Mills<jasonmills@nf.sympatico.ca>
" Last Change: 2010 Jan 07
" Version: 0.18
" Language: D
" Maintainer: Jesse Phillips <Jesse.K.Phillips+D@gmail.com>
" Last Change: 2010 Sep 21
" Version: 0.22
"
" Contributors:
" - Jason Mills <jasonmills@nf.sympatico.ca>: original Maintainer
" - Kirk McDonald: version 0.17 updates, with minor modifications
" (http://paste.dprogramming.com/dplmb7qx?view=hidelines)
" - Jesse K. Phillips: patch for some keywords and attributes (annotations), with modifications
" - Tim Keating: patch to fix a bug in highlighting the `\` literal
" - Frank Benoit: Fixed a bug that caused some identifiers and numbers to highlight as octal number errors.
" - Shougo Matsushita <Shougo.Matsu@gmail.com>: updates for latest 2.047 highlighting
" - Ellery Newcomer: Fixed some highlighting bugs.
" - Steven N. Oliver: #! highlighting
"
" Please email me with bugs, comments, and suggestions.
"
@@ -47,52 +50,89 @@ endif
" Keyword definitions
"
syn keyword dExternal import package module extern
syn keyword dConditional if else switch
syn keyword dBranch goto break continue
syn keyword dRepeat while for do foreach foreach_reverse
syn keyword dBoolean true false
syn keyword dConstant null
syn keyword dConstant __FILE__ __LINE__ __EOF__ __VERSION__
syn keyword dConstant __DATE__ __TIME__ __TIMESTAMP__ __VENDOR__
syn keyword dTypedef alias typedef
syn keyword dStructure template interface class struct union
syn keyword dEnum enum
syn keyword dOperator new delete typeof typeid cast align is
syn keyword dOperator this super
syn keyword dExternal import package module extern
syn keyword dConditional if else switch
syn keyword dBranch goto break continue
syn keyword dRepeat while for do foreach foreach_reverse
syn keyword dBoolean true false
syn keyword dConstant null
syn keyword dConstant __FILE__ __LINE__ __EOF__ __VERSION__
syn keyword dConstant __DATE__ __TIME__ __TIMESTAMP__ __VENDOR__
syn keyword dTypedef alias typedef
syn keyword dStructure template interface class struct union
syn keyword dEnum enum
syn keyword dOperator new delete typeof typeid cast align is
syn keyword dOperator this super
if exists("d_hl_operator_overload")
syn keyword dOpOverload opNeg opCom opPostInc opPostDec opCast opAdd opSub opSub_r
syn keyword dOpOverload opMul opDiv opDiv_r opMod opMod_r opAnd opOr opXor
syn keyword dOpOverload opShl opShl_r opShr opShr_r opUShr opUShr_r opCat
syn keyword dOpOverload opCat_r opEquals opEquals opCmp
syn keyword dOpOverload opAssign opAddAssign opSubAssign opMulAssign opDivAssign
syn keyword dOpOverload opModAssign opAndAssign opOrAssign opXorAssign
syn keyword dOpOverload opShlAssign opShrAssign opUShrAssign opCatAssign
syn keyword dOpOverload opIndex opIndexAssign opCall opSlice opSliceAssign opPos
syn keyword dOpOverload opAdd_r opMul_r opAnd_r opOr_r opXor_r opIn opIn_r
syn keyword dOpOverload opPow opDispatch opStar opDot opApply opApplyReverse
syn keyword dOpOverload opNeg opCom opPostInc opPostDec opCast opAdd
syn keyword dOpOverload opSub opSub_r opMul opDiv opDiv_r opMod
syn keyword dOpOverload opMod_r opAnd opOr opXor opShl opShl_r opShr
syn keyword dOpOverload opShr_r opUShr opUShr_r opCat
syn keyword dOpOverload opCat_r opEquals opEquals opCmp
syn keyword dOpOverload opAssign opAddAssign opSubAssign opMulAssign
syn keyword dOpOverload opDivAssign opModAssign opAndAssign
syn keyword dOpOverload opOrAssign opXorAssign opShlAssign
syn keyword dOpOverload opShrAssign opUShrAssign opCatAssign
syn keyword dOpOverload opIndex opIndexAssign opIndexOpAssign
syn keyword dOpOverload opCall opSlice opSliceAssign opSliceOpAssign
syn keyword dOpOverload opPos opAdd_r opMul_r opAnd_r opOr_r opXor_r
syn keyword dOpOverload opIn opIn_r opPow opDispatch opStar opDot
syn keyword dOpOverload opApply opApplyReverse
syn keyword dOpOverload opUnary opIndexUnary opSliceUnary
syn keyword dOpOverload opBinary opBinaryRight
endif
syn keyword dType ushort int uint long ulong float
syn keyword dType void byte ubyte double bit char wchar ucent cent
syn keyword dType short bool dchar string wstring dstring
syn keyword dType real ireal ifloat idouble creal cfloat cdouble
syn keyword dDebug deprecated unittest
syn keyword dExceptions throw try catch finally
syn keyword dScopeDecl public protected private export
syn keyword dStatement version debug return with
syn keyword dStatement function delegate __traits asm mixin macro
syn keyword dStorageClass in out inout ref lazy scope body
syn keyword dStorageClass pure nothrow
syn keyword dStorageClass auto static override final abstract volatile __gshared __thread
syn keyword dStorageClass synchronized immutable shared const invariant lazy
syn keyword dPragma pragma
syn keyword dType void ushort int uint long ulong float
syn keyword dType byte ubyte double bit char wchar ucent cent
syn keyword dType short bool dchar wstring dstring
syn keyword dType real ireal ifloat idouble
syn keyword dType creal cfloat cdouble
syn keyword dDebug deprecated unittest invariant
syn keyword dExceptions throw try catch finally
syn keyword dScopeDecl public protected private export
syn keyword dStatement debug return with
syn keyword dStatement function delegate __traits mixin macro
syn keyword dStorageClass in out inout ref lazy body
syn keyword dStorageClass pure nothrow
syn keyword dStorageClass auto static override final abstract volatile
syn keyword dStorageClass __gshared __thread
syn keyword dStorageClass synchronized shared immutable const lazy
syn keyword dPragma pragma
syn keyword dIdentifier _arguments _argptr __vptr __monitor _ctor _dtor
syn keyword dScopeIdentifier contained exit success failure
syn keyword dAttribute contained safe trusted system
syn keyword dAttribute contained property disable
syn keyword dVersionIdentifier contained DigitalMars GNU LDC LLVM
syn keyword dVersionIdentifier contained X86 X86_64 Windows Win32 Win64
syn keyword dVersionIdentifier contained linux Posix OSX FreeBSD
syn keyword dVersionIdentifier contained LittleEndian BigEndian D_Coverage
syn keyword dVersionIdentifier contained D_Ddoc D_InlineAsm_X86
syn keyword dVersionIdentifier contained D_InlineAsm_X86_64 D_LP64 D_PIC
syn keyword dVersionIdentifier contained unittest D_Version2 none all
" Highlight the sharpbang
syn match dSharpBang "\%^#!.*" display
" Attributes/annotations
syn match dAnnotation "@[_$a-zA-Z][_$a-zA-Z0-9_]*\>"
syn match dAnnotation "@[_$a-zA-Z][_$a-zA-Z0-9_]*\>" contains=dAttribute
" Version Identifiers
syn match dVersion "[^.]version" nextgroup=dVersionInside
syn match dVersion "^version" nextgroup=dVersionInside
syn match dVersionInside "([_a-zA-Z][_a-zA-Z0-9]*\>" transparent contained contains=dVersionIdentifier
" Scope StorageClass
syn match dStorageClass "scope"
" Scope Identifiers
syn match dScope "scope\s*([_a-zA-Z][_a-zA-Z0-9]*\>"he=s+5 contains=dScopeIdentifier
" String is a statement and a module name.
syn match dType "^string"
syn match dType "[^.]\s*\<string\>"ms=s+1
" Assert is a statement and a module name.
syn match dAssert "^assert\>"
syn match dAssert "^assert"
syn match dAssert "[^.]\s*\<assert\>"ms=s+1
" dTokens is used by the token string highlighting
@@ -101,26 +141,18 @@ syn cluster dTokens add=dConstant,dTypedef,dStructure,dOperator,dOpOverload
syn cluster dTokens add=dType,dDebug,dExceptions,dScopeDecl,dStatement
syn cluster dTokens add=dStorageClass,dPragma,dAssert,dAnnotation
" Marks contents of the asm statment body as special
"
" TODO
"syn match dAsmStatement "\<asm\>"
"syn region dAsmBody start="asm[\n]*\s*{"hs=e+1 end="}"he=e-1 contains=dAsmStatement
"
"hi def link dAsmBody dUnicode
"hi def link dAsmStatement dStatement
" Labels
"
" We contain dScopeDecl so public: private: etc. are not highlighted like labels
syn match dUserLabel "^\s*[_$a-zA-Z][_$a-zA-Z0-9_]*\s*:"he=e-1 contains=dLabel,dScopeDecl,dEnum
syn keyword dLabel case default
syn keyword dLabel case default
syn cluster dTokens add=dUserLabel,dLabel
" Comments
"
syn keyword dTodo contained TODO FIXME TEMP REFACTOR REVIEW HACK BUG XXX
syn keyword dTodo contained TODO FIXME TEMP REFACTOR REVIEW HACK BUG XXX
syn match dCommentStar contained "^\s*\*[^/]"me=e-1
syn match dCommentStar contained "^\s*\*$"
syn match dCommentPlus contained "^\s*+[^/]"me=e-1
@@ -251,51 +283,184 @@ syn region dPragma start="#\s*\(line\>\)" skip="\\$" end="$"
" The default highlighting.
"
hi def link dBinary Number
hi def link dDec Number
hi def link dHex Number
hi def link dOctal Number
hi def link dFloat Float
hi def link dHexFloat Float
hi def link dDebug Debug
hi def link dBranch Conditional
hi def link dConditional Conditional
hi def link dLabel Label
hi def link dUserLabel Label
hi def link dRepeat Repeat
hi def link dExceptions Exception
hi def link dAssert Statement
hi def link dStatement Statement
hi def link dScopeDecl dStorageClass
hi def link dStorageClass StorageClass
hi def link dBoolean Boolean
hi def link dUnicode Special
hi def link dTokenStringBrack String
hi def link dHereString String
hi def link dNestString String
hi def link dDelimString String
hi def link dRawString String
hi def link dString String
hi def link dHexString String
hi def link dCharacter Character
hi def link dEscSequence SpecialChar
hi def link dSpecialCharError Error
hi def link dOctalError Error
hi def link dOperator Operator
hi def link dOpOverload Identifier
hi def link dConstant Constant
hi def link dTypedef Typedef
hi def link dEnum Structure
hi def link dStructure Structure
hi def link dTodo Todo
hi def link dType Type
hi def link dLineComment Comment
hi def link dBlockComment Comment
hi def link dNestedComment Comment
hi def link dExternal Include
hi def link dPragma PreProc
hi def link dAnnotation PreProc
hi def link dBinary Number
hi def link dDec Number
hi def link dHex Number
hi def link dOctal Number
hi def link dFloat Float
hi def link dHexFloat Float
hi def link dDebug Debug
hi def link dBranch Conditional
hi def link dConditional Conditional
hi def link dLabel Label
hi def link dUserLabel Label
hi def link dRepeat Repeat
hi def link dExceptions Exception
hi def link dAssert Statement
hi def link dStatement Statement
hi def link dScopeDecl dStorageClass
hi def link dStorageClass StorageClass
hi def link dBoolean Boolean
hi def link dUnicode Special
hi def link dTokenStringBrack String
hi def link dHereString String
hi def link dNestString String
hi def link dDelimString String
hi def link dRawString String
hi def link dString String
hi def link dHexString String
hi def link dCharacter Character
hi def link dEscSequence SpecialChar
hi def link dSpecialCharError Error
hi def link dOctalError Error
hi def link dOperator Operator
hi def link dOpOverload Identifier
hi def link dConstant Constant
hi def link dTypedef Typedef
hi def link dEnum Structure
hi def link dStructure Structure
hi def link dTodo Todo
hi def link dType Type
hi def link dLineComment Comment
hi def link dBlockComment Comment
hi def link dNestedComment Comment
hi def link dExternal Include
hi def link dPragma PreProc
hi def link dAnnotation PreProc
hi def link dSharpBang PreProc
hi def link dAttribute StorageClass
hi def link dIdentifier Identifier
hi def link dVersionIdentifier Identifier
hi def link dVersion dStatement
hi def link dScopeIdentifier dStatement
hi def link dScope dStorageClass
let b:current_syntax = "d"
" vim: ts=8 noet
" Marks contents of the asm statment body as special
syn match dAsmStatement "\<asm\>"
syn region dAsmBody start="asm[\n]*\s*{"hs=e+1 end="}"he=e-1 contains=dAsmStatement,dAsmOpCode
hi def link dAsmBody dUnicode
hi def link dAsmStatement dStatement
hi def link dAsmOpCode Identifier
syn keyword dAsmOpCode contained aaa aad aam aas adc
syn keyword dAsmOpCode contained add addpd addps addsd addss
syn keyword dAsmOpCode contained and andnpd andnps andpd andps
syn keyword dAsmOpCode contained arpl bound bsf bsr bswap
syn keyword dAsmOpCode contained bt btc btr bts call
syn keyword dAsmOpCode contained cbw cdq clc cld clflush
syn keyword dAsmOpCode contained cli clts cmc cmova cmovae
syn keyword dAsmOpCode contained cmovb cmovbe cmovc cmove cmovg
syn keyword dAsmOpCode contained cmovge cmovl cmovle cmovna cmovnae
syn keyword dAsmOpCode contained cmovnb cmovnbe cmovnc cmovne cmovng
syn keyword dAsmOpCode contained cmovnge cmovnl cmovnle cmovno cmovnp
syn keyword dAsmOpCode contained cmovns cmovnz cmovo cmovp cmovpe
syn keyword dAsmOpCode contained cmovpo cmovs cmovz cmp cmppd
syn keyword dAsmOpCode contained cmpps cmps cmpsb cmpsd cmpss
syn keyword dAsmOpCode contained cmpsw cmpxch8b cmpxchg comisd comiss
syn keyword dAsmOpCode contained cpuid cvtdq2pd cvtdq2ps cvtpd2dq cvtpd2pi
syn keyword dAsmOpCode contained cvtpd2ps cvtpi2pd cvtpi2ps cvtps2dq cvtps2pd
syn keyword dAsmOpCode contained cvtps2pi cvtsd2si cvtsd2ss cvtsi2sd cvtsi2ss
syn keyword dAsmOpCode contained cvtss2sd cvtss2si cvttpd2dq cvttpd2pi cvttps2dq
syn keyword dAsmOpCode contained cvttps2pi cvttsd2si cvttss2si cwd cwde
syn keyword dAsmOpCode contained da daa das db dd
syn keyword dAsmOpCode contained de dec df di div
syn keyword dAsmOpCode contained divpd divps divsd divss dl
syn keyword dAsmOpCode contained dq ds dt dw emms
syn keyword dAsmOpCode contained enter f2xm1 fabs fadd faddp
syn keyword dAsmOpCode contained fbld fbstp fchs fclex fcmovb
syn keyword dAsmOpCode contained fcmovbe fcmove fcmovnb fcmovnbe fcmovne
syn keyword dAsmOpCode contained fcmovnu fcmovu fcom fcomi fcomip
syn keyword dAsmOpCode contained fcomp fcompp fcos fdecstp fdisi
syn keyword dAsmOpCode contained fdiv fdivp fdivr fdivrp feni
syn keyword dAsmOpCode contained ffree fiadd ficom ficomp fidiv
syn keyword dAsmOpCode contained fidivr fild fimul fincstp finit
syn keyword dAsmOpCode contained fist fistp fisub fisubr fld
syn keyword dAsmOpCode contained fld1 fldcw fldenv fldl2e fldl2t
syn keyword dAsmOpCode contained fldlg2 fldln2 fldpi fldz fmul
syn keyword dAsmOpCode contained fmulp fnclex fndisi fneni fninit
syn keyword dAsmOpCode contained fnop fnsave fnstcw fnstenv fnstsw
syn keyword dAsmOpCode contained fpatan fprem fprem1 fptan frndint
syn keyword dAsmOpCode contained frstor fsave fscale fsetpm fsin
syn keyword dAsmOpCode contained fsincos fsqrt fst fstcw fstenv
syn keyword dAsmOpCode contained fstp fstsw fsub fsubp fsubr
syn keyword dAsmOpCode contained fsubrp ftst fucom fucomi fucomip
syn keyword dAsmOpCode contained fucomp fucompp fwait fxam fxch
syn keyword dAsmOpCode contained fxrstor fxsave fxtract fyl2x fyl2xp1
syn keyword dAsmOpCode contained hlt idiv imul in inc
syn keyword dAsmOpCode contained ins insb insd insw int
syn keyword dAsmOpCode contained into invd invlpg iret iretd
syn keyword dAsmOpCode contained ja jae jb jbe jc
syn keyword dAsmOpCode contained jcxz je jecxz jg jge
syn keyword dAsmOpCode contained jl jle jmp jna jnae
syn keyword dAsmOpCode contained jnb jnbe jnc jne jng
syn keyword dAsmOpCode contained jnge jnl jnle jno jnp
syn keyword dAsmOpCode contained jns jnz jo jp jpe
syn keyword dAsmOpCode contained jpo js jz lahf lar
syn keyword dAsmOpCode contained ldmxcsr lds lea leave les
syn keyword dAsmOpCode contained lfence lfs lgdt lgs lidt
syn keyword dAsmOpCode contained lldt lmsw lock lods lodsb
syn keyword dAsmOpCode contained lodsd lodsw loop loope loopne
syn keyword dAsmOpCode contained loopnz loopz lsl lss ltr
syn keyword dAsmOpCode contained maskmovdqu maskmovq maxpd maxps maxsd
syn keyword dAsmOpCode contained maxss mfence minpd minps minsd
syn keyword dAsmOpCode contained minss mov movapd movaps movd
syn keyword dAsmOpCode contained movdq2q movdqa movdqu movhlps movhpd
syn keyword dAsmOpCode contained movhps movlhps movlpd movlps movmskpd
syn keyword dAsmOpCode contained movmskps movntdq movnti movntpd movntps
syn keyword dAsmOpCode contained movntq movq movq2dq movs movsb
syn keyword dAsmOpCode contained movsd movss movsw movsx movupd
syn keyword dAsmOpCode contained movups movzx mul mulpd mulps
syn keyword dAsmOpCode contained mulsd mulss neg nop not
syn keyword dAsmOpCode contained or orpd orps out outs
syn keyword dAsmOpCode contained outsb outsd outsw packssdw packsswb
syn keyword dAsmOpCode contained packuswb paddb paddd paddq paddsb
syn keyword dAsmOpCode contained paddsw paddusb paddusw paddw pand
syn keyword dAsmOpCode contained pandn pavgb pavgw pcmpeqb pcmpeqd
syn keyword dAsmOpCode contained pcmpeqw pcmpgtb pcmpgtd pcmpgtw pextrw
syn keyword dAsmOpCode contained pinsrw pmaddwd pmaxsw pmaxub pminsw
syn keyword dAsmOpCode contained pminub pmovmskb pmulhuw pmulhw pmullw
syn keyword dAsmOpCode contained pmuludq pop popa popad popf
syn keyword dAsmOpCode contained popfd por prefetchnta prefetcht0 prefetcht1
syn keyword dAsmOpCode contained prefetcht2 psadbw pshufd pshufhw pshuflw
syn keyword dAsmOpCode contained pshufw pslld pslldq psllq psllw
syn keyword dAsmOpCode contained psrad psraw psrld psrldq psrlq
syn keyword dAsmOpCode contained psrlw psubb psubd psubq psubsb
syn keyword dAsmOpCode contained psubsw psubusb psubusw psubw punpckhbw
syn keyword dAsmOpCode contained punpckhdq punpckhqdq punpckhwd punpcklbw punpckldq
syn keyword dAsmOpCode contained punpcklqdq punpcklwd push pusha pushad
syn keyword dAsmOpCode contained pushf pushfd pxor rcl rcpps
syn keyword dAsmOpCode contained rcpss rcr rdmsr rdpmc rdtsc
syn keyword dAsmOpCode contained rep repe repne repnz repz
syn keyword dAsmOpCode contained ret retf rol ror rsm
syn keyword dAsmOpCode contained rsqrtps rsqrtss sahf sal sar
syn keyword dAsmOpCode contained sbb scas scasb scasd scasw
syn keyword dAsmOpCode contained seta setae setb setbe setc
syn keyword dAsmOpCode contained sete setg setge setl setle
syn keyword dAsmOpCode contained setna setnae setnb setnbe setnc
syn keyword dAsmOpCode contained setne setng setnge setnl setnle
syn keyword dAsmOpCode contained setno setnp setns setnz seto
syn keyword dAsmOpCode contained setp setpe setpo sets setz
syn keyword dAsmOpCode contained sfence sgdt shl shld shr
syn keyword dAsmOpCode contained shrd shufpd shufps sidt sldt
syn keyword dAsmOpCode contained smsw sqrtpd sqrtps sqrtsd sqrtss
syn keyword dAsmOpCode contained stc std sti stmxcsr stos
syn keyword dAsmOpCode contained stosb stosd stosw str sub
syn keyword dAsmOpCode contained subpd subps subsd subss sysenter
syn keyword dAsmOpCode contained sysexit test ucomisd ucomiss ud2
syn keyword dAsmOpCode contained unpckhpd unpckhps unpcklpd unpcklps verr
syn keyword dAsmOpCode contained verw wait wbinvd wrmsr xadd
syn keyword dAsmOpCode contained xchg xlat xlatb xor xorpd
syn keyword dAsmOpCode contained xorps
syn keyword dAsmOpCode contained addsubpd addsubps fisttp haddpd haddps
syn keyword dAsmOpCode contained hsubpd hsubps lddqu monitor movddup
syn keyword dAsmOpCode contained movshdup movsldup mwait
syn keyword dAsmOpCode contained pavgusb pf2id pfacc pfadd pfcmpeq
syn keyword dAsmOpCode contained pfcmpge pfcmpgt pfmax pfmin pfmul
syn keyword dAsmOpCode contained pfnacc pfpnacc pfrcp pfrcpit1 pfrcpit2
syn keyword dAsmOpCode contained pfrsqit1 pfrsqrt pfsub pfsubr pi2fd
syn keyword dAsmOpCode contained pmulhrw pswapd
+155
View File
@@ -0,0 +1,155 @@
" Vim syntax file
" Language: Falcon
" Maintainer: Steven Oliver <oliver.steven@gmail.com>
" Website: http://github.com/steveno/vim-files/blob/master/syntax/falcon.vim
" Credits: Thanks the ruby.vim authors, I borrowed a lot!
" -------------------------------------------------------------------------------
" GetLatestVimScripts: 2745 1 :AutoInstall: falcon.vim
" When wanted, highlight the trailing whitespace.
if exists("c_space_errors")
if !exists("c_no_trail_space_error")
syn match falconSpaceError "\s\+$"
endif
if !exists("c_no_tab_space_error")
syn match falconSpaceError " \+\t"me=e-1
endif
endif
" Symbols
syn match falconSymbol "\(;\|,\|\.\)"
syn match falconSymbolOther "\(#\|@\)" display
" Operators
syn match falconOperator "\(+\|-\|\*\|/\|=\|<\|>\|\*\*\|!=\|\~=\)"
syn match falconOperator "\(<=\|>=\|=>\|\.\.\|<<\|>>\|\"\)"
" Clusters
syn region falconSymbol start="[]})\"':]\@<!:\"" end="\"" skip="\\\\\|\\\"" contains=@falconStringSpecial fold
syn case match
" Keywords
syn keyword falconKeyword all allp any anyp as attributes brigade cascade catch choice class const
syn keyword falconKeyword continue def directive do list dropping enum eq eval exit export from function
syn keyword falconKeyword give global has hasnt in init innerfunc lambda launch launch len List list
syn keyword falconKeyword load notin object pass print printl provides raise return self sender static to
syn keyword falconKeyword try xamp
" Error Type Keywords
syn keyword falconKeyword CloneError CodeError Error InterruprtedError IoError MathError
syn keyword falconKeyword ParamError RangeError SyntaxError TraceStep TypeError
" Todo
syn keyword falconTodo DEBUG FIXME NOTE TODO XXX
" Conditionals
syn keyword falconConditional and case default else end if iff
syn keyword falconConditional elif or not switch select
syn match falconConditional "end\s\if"
" Loops
syn keyword falconRepeat break for loop forfirst forlast formiddle while
" Booleans
syn keyword falconBool true false
" Constants
syn keyword falconConst PI E nil
" Comments
syn match falconCommentSkip contained "^\s*\*\($\|\s\+\)"
syn region falconComment start="/\*" end="\*/" contains=@falconCommentGroup,falconSpaceError,falconTodo
syn region falconCommentL start="//" end="$" keepend contains=@falconCommentGroup,falconSpaceError,falconTodo
syn match falconSharpBang "\%^#!.*" display
syn sync ccomment falconComment
" Numbers
syn match falconNumbers transparent "\<[+-]\=\d\|[+-]\=\.\d" contains=falconIntLiteral,falconFloatLiteral,falconHexadecimal,falconOctal
syn match falconNumbersCom contained transparent "\<[+-]\=\d\|[+-]\=\.\d" contains=falconIntLiteral,falconFloatLiteral,falconHexadecimal,falconOctal
syn match falconHexadecimal contained "\<0x\x\+\>"
syn match falconOctal contained "\<0\o\+\>"
syn match falconIntLiteral contained "[+-]\<d\+\(\d\+\)\?\>"
syn match falconFloatLiteral contained "[+-]\=\d\+\.\d*"
syn match falconFloatLiteral contained "[+-]\=\d*\.\d*"
" Includes
syn keyword falconInclude load import
" Expression Substitution and Backslash Notation
syn match falconStringEscape "\\\\\|\\[abefnrstv]\|\\\o\{1,3}\|\\x\x\{1,2}" contained display
syn match falconStringEscape "\%(\\M-\\C-\|\\C-\\M-\|\\M-\\c\|\\c\\M-\|\\c\|\\C-\|\\M-\)\%(\\\o\{1,3}\|\\x\x\{1,2}\|\\\=\S\)" contained display
syn region falconSymbol start="[]})\"':]\@<!:\"" end="\"" skip="\\\\\|\\\"" contains=falconStringEscape fold
" Normal String and Shell Command Output
syn region falconString matchgroup=falconStringDelimiter start="\"" end="\"" skip="\\\\\|\\\"" contains=falconStringEscape fold
syn region falconString matchgroup=falconStringDelimiter start="'" end="'" skip="\\\\\|\\'" fold
syn region falconString matchgroup=falconStringDelimiter start="`" end="`" skip="\\\\\|\\`" contains=falconStringEscape fold
" Generalized Single Quoted String, Symbol and Array of Strings
syn region falconString matchgroup=falconStringDelimiter start="%[qw]\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" fold
syn region falconString matchgroup=falconStringDelimiter start="%[qw]{" end="}" skip="\\\\\|\\}" fold contains=falconDelimEscape
syn region falconString matchgroup=falconStringDelimiter start="%[qw]<" end=">" skip="\\\\\|\\>" fold contains=falconDelimEscape
syn region falconString matchgroup=falconStringDelimiter start="%[qw]\[" end="\]" skip="\\\\\|\\\]" fold contains=falconDelimEscape
syn region falconString matchgroup=falconStringDelimiter start="%[qw](" end=")" skip="\\\\\|\\)" fold contains=falconDelimEscape
syn region falconSymbol matchgroup=falconSymbolDelimiter start="%[s]\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" fold
syn region falconSymbol matchgroup=falconSymbolDelimiter start="%[s]{" end="}" skip="\\\\\|\\}" fold contains=falconDelimEscape
syn region falconSymbol matchgroup=falconSymbolDelimiter start="%[s]<" end=">" skip="\\\\\|\\>" fold contains=falconDelimEscape
syn region falconSymbol matchgroup=falconSymbolDelimiter start="%[s]\[" end="\]" skip="\\\\\|\\\]" fold contains=falconDelimEscape
syn region falconSymbol matchgroup=falconSymbolDelimiter start="%[s](" end=")" skip="\\\\\|\\)" fold contains=falconDelimEscape
" Generalized Double Quoted String and Array of Strings and Shell Command Output
syn region falconString matchgroup=falconStringDelimiter start="%\z([~`!@#$%^&*_\-+|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" contains=falconStringEscape fold
syn region falconString matchgroup=falconStringDelimiter start="%[QWx]\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" contains=falconStringEscape fold
syn region falconString matchgroup=falconStringDelimiter start="%[QWx]\={" end="}" skip="\\\\\|\\}" contains=falconStringEscape,falconDelimEscape fold
syn region falconString matchgroup=falconStringDelimiter start="%[QWx]\=<" end=">" skip="\\\\\|\\>" contains=falconStringEscape,falconDelimEscape fold
syn region falconString matchgroup=falconStringDelimiter start="%[QWx]\=\[" end="\]" skip="\\\\\|\\\]" contains=falconStringEscape,falconDelimEscape fold
syn region falconString matchgroup=falconStringDelimiter start="%[QWx]\=(" end=")" skip="\\\\\|\\)" contains=falconStringEscape,falconDelimEscape fold
syn region falconString start=+\%(\%(class\s*\|\%([]})"'.]\|::\)\)\_s*\|\w\)\@<!<<\z(\h\w*\)\ze+hs=s+2 matchgroup=falconStringDelimiter end=+^\z1$+ contains=falconStringEscape fold keepend
syn region falconString start=+\%(\%(class\s*\|\%([]})"'.]\|::\)\)\_s*\|\w\)\@<!<<"\z([^"]*\)"\ze+hs=s+2 matchgroup=falconStringDelimiter end=+^\z1$+ contains=falconStringEscape fold keepend
syn region falconString start=+\%(\%(class\s*\|\%([]})"'.]\|::\)\)\_s*\|\w\)\@<!<<'\z([^']*\)'\ze+hs=s+2 matchgroup=falconStringDelimiter end=+^\z1$+ fold keepend
syn region falconString start=+\%(\%(class\s*\|\%([]})"'.]\|::\)\)\_s*\|\w\)\@<!<<`\z([^`]*\)`\ze+hs=s+2 matchgroup=falconStringDelimiter end=+^\z1$+ contains=falconStringEscape fold keepend
syn region falconString start=+\%(\%(class\s*\|\%([]}).]\|::\)\)\_s*\|\w\)\@<!<<-\z(\h\w*\)\ze+hs=s+3 matchgroup=falconStringDelimiter end=+^\s*\zs\z1$+ contains=falconStringEscape fold keepend
syn region falconString start=+\%(\%(class\s*\|\%([]}).]\|::\)\)\_s*\|\w\)\@<!<<-"\z([^"]*\)"\ze+hs=s+3 matchgroup=falconStringDelimiter end=+^\s*\zs\z1$+ contains=falconStringEscape fold keepend
syn region falconString start=+\%(\%(class\s*\|\%([]}).]\|::\)\)\_s*\|\w\)\@<!<<-'\z([^']*\)'\ze+hs=s+3 matchgroup=falconStringDelimiter end=+^\s*\zs\z1$+ fold keepend
syn region falconString start=+\%(\%(class\s*\|\%([]}).]\|::\)\)\_s*\|\w\)\@<!<<-`\z([^`]*\)`\ze+hs=s+3 matchgroup=falconStringDelimiter end=+^\s*\zs\z1$+ contains=falconStringEscape fold keepend
" Syntax Synchronizing
syn sync minlines=10 maxlines=100
" Define the default highlighting
if !exists("did_falcon_syn_inits")
command -nargs=+ HiLink hi def link <args>
HiLink falconKeyword Keyword
HiLink falconCommentString String
HiLink falconTodo Todo
HiLink falconConditional Keyword
HiLink falconRepeat Repeat
HiLink falconcommentSkip Comment
HiLink falconComment Comment
HiLink falconCommentL Comment
HiLink falconConst Constant
HiLink falconOperator Operator
HiLink falconSymbol Normal
HiLink falconSpaceError Error
HiLink falconHexadecimal Number
HiLink falconOctal Number
HiLink falconIntLiteral Number
HiLink falconFloatLiteral Float
HiLink falconStringEscape Special
HiLink falconStringDelimiter Delimiter
HiLink falconString String
HiLink falconBool Constant
HiLink falconSharpBang PreProc
HiLink falconInclude Include
HiLink falconSymbol Constant
HiLink falconSymbolOther Delimiter
delcommand HiLink
endif
let b:current_syntax = "falcon"
" vim: set sw=4 sts=4 et tw=80 :
+22 -16
View File
@@ -1,9 +1,10 @@
" Vim syntax file
" Language: NASM - The Netwide Assembler (v0.98)
" Maintainer: Manuel M.H. Stol <mmh.stol@gmx.net>
" Last Change: 2003 May 11
" Vim URL: http://www.vim.org/lang.html
" NASM Home: http://www.cryogen.com/Nasm/
" Maintainer: Andriy Sokolov <andriy145@gmail.com>
" Original Author: Manuel M.H. Stol <Manuel.Stol@allieddata.nl>
" Former Maintainer: Manuel M.H. Stol <Manuel.Stol@allieddata.nl>
" Last Change: 2010 Sep 24
" NASM Home: http://www.nasm.us/
@@ -160,6 +161,7 @@ syn region nasmInMacStrucDef contained transparent matchgroup=nasmStructure kee
"syn region nasmInMacStrucDef contained transparent matchgroup=nasmStructure keepend start="^\s*UNION\>"hs=e-4 end="^\s*ENDUNION\>"re=e-8 contains=@nasmGrpCntnMacro
"syn region nasmInMacStrucDef contained transparent matchgroup=nasmStructure keepend start="\<IUNION\>" end="\<IEND\(UNION\)\=\>" contains=@nasmGrpCntnMacro,nasmInStructure
syn region nasmInMacPreConDef contained transparent matchgroup=nasmInMacPreCondit start="^\s*%ifnidni\>"hs=e-7 start="^\s*%if\(idni\|n\(ctx\|def\|idn\|num\|str\)\)\>"hs=e-6 start="^\s*%if\(ctx\|def\|idn\|nid\|num\|str\)\>"hs=e-5 start="^\s*%ifid\>"hs=e-4 start="^\s*%if\>"hs=e-2 end="%endif\>" contains=@nasmGrpCntnMacro,nasmInMacPreCondit,nasmInPreCondit
" Todo: allow STRUC/ISTRUC to be used inside preprocessor conditional block
syn match nasmInMacPreCondit contained transparent "ctx\s"lc=3 skipwhite nextgroup=@nasmGrpNxtCtx
syn match nasmInMacPreCondit contained "^\s*%elifctx\>"hs=e-7 skipwhite nextgroup=@nasmGrpNxtCtx
syn match nasmInMacPreCondit contained "^\s*%elifnctx\>"hs=e-8 skipwhite nextgroup=@nasmGrpNxtCtx
@@ -210,15 +212,17 @@ syn cluster nasmGrpInPreCondits contains=nasmPreCondit,nasmInPreCondit,nasmCtxPr
syn cluster nasmGrpPreCondits contains=nasmPreConditDef,@nasmGrpInPreCondits,nasmCtxPreProc,nasmCtxLocLabel
" Other pre-processor statements
syn match nasmPreProc "^\s*%rep\>"hs=e-3
syn match nasmPreProc "^\s*%\(rep\|use\)\>"hs=e-3
syn match nasmPreProc "^\s*%line\>"hs=e-4
syn match nasmPreProc "^\s*%\(clear\|error\)\>"hs=e-5
syn match nasmPreProc "^\s*%endrep\>"hs=e-6
syn match nasmPreProc "^\s*%exitrep\>"hs=e-7
syn match nasmPreProc "^\s*%\(clear\|error\|fatal\)\>"hs=e-5
syn match nasmPreProc "^\s*%\(endrep\|strlen\|substr\)\>"hs=e-6
syn match nasmPreProc "^\s*%\(exitrep\|warning\)\>"hs=e-7
syn match nasmDefine "^\s*%undef\>"hs=e-5
syn match nasmDefine "^\s*%\(assign\|define\)\>"hs=e-6
syn match nasmDefine "^\s*%i\(assign\|define\)\>"hs=e-7
syn match nasmDefine "^\s*%unmacro\>"hs=e-7
syn match nasmInclude "^\s*%include\>"hs=e-7
" Todo: Treat the line tail after %fatal, %error, %warning as text
" Multiple pre-processor instructions on single line detection (obsolete)
"syn match nasmPreProcError +^\s*\([^\t "%';][^"%';]*\|[^\t "';][^"%';]\+\)%\a\+\>+
@@ -231,6 +235,7 @@ syn cluster nasmGrpPreProcs contains=nasmMacroDef,@nasmGrpInMacros,@nasmGrpPreCo
syn match nasmGen08Register "\<[A-D][HL]\>"
syn match nasmGen16Register "\<\([A-D]X\|[DS]I\|[BS]P\)\>"
syn match nasmGen32Register "\<E\([A-D]X\|[DS]I\|[BS]P\)\>"
syn match nasmGen64Register "\<R\([A-D]X\|[DS]I\|[BS]P\|[89]\|1[0-5]\|[89][WD]\|1[0-5][WD]\)\>"
syn match nasmSegRegister "\<[C-GS]S\>"
syn match nasmSpcRegister "\<E\=IP\>"
syn match nasmFpuRegister "\<ST\o\>"
@@ -298,20 +303,21 @@ syn match nasmStdInstruction "\<\(CMOV\|J\|SET\)\(N\=\([ABGL]E\=\|[CEOSZ]\)\|P
syn match nasmStdInstruction "\<POP\>"
syn keyword nasmStdInstruction AAA AAD AAM AAS ADC ADD AND
syn keyword nasmStdInstruction BOUND BSF BSR BSWAP BT[C] BTR BTS
syn keyword nasmStdInstruction CALL CBW CDQ CLC CLD CMC CMP CMPSB CMPSD CMPSW
syn keyword nasmStdInstruction CMPXCHG CMPXCHG8B CPUID CWD[E]
syn keyword nasmStdInstruction CALL CBW CDQ CLC CLD CMC CMP CMPSB CMPSD CMPSW CMPSQ
syn keyword nasmStdInstruction CMPXCHG CMPXCHG8B CPUID CWD[E] CQO
syn keyword nasmStdInstruction DAA DAS DEC DIV ENTER
syn keyword nasmStdInstruction IDIV IMUL INC INT[O] IRET[D] IRETW
syn keyword nasmStdInstruction IDIV IMUL INC INT[O] IRET[D] IRETW IRETQ
syn keyword nasmStdInstruction JCXZ JECXZ JMP
syn keyword nasmStdInstruction LAHF LDS LEA LEAVE LES LFS LGS LODSB LODSD
syn keyword nasmStdInstruction LAHF LDS LEA LEAVE LES LFS LGS LODSB LODSD LODSQ
syn keyword nasmStdInstruction LODSW LOOP[E] LOOPNE LOOPNZ LOOPZ LSS
syn keyword nasmStdInstruction MOVSB MOVSD MOVSW MOVSX MOVZX MUL NEG NOP NOT
syn keyword nasmStdInstruction OR POPA[D] POPAW POPF[D] POPFW
syn keyword nasmStdInstruction PUSH[AD] PUSHAW PUSHF[D] PUSHFW
syn keyword nasmStdInstruction MOVSB MOVSD MOVSW MOVSX MOVSQ MOVZX MUL NEG NOP NOT
syn keyword nasmStdInstruction OR POPA[D] POPAW POPF[D] POPFW POPFQ
syn keyword nasmStdInstruction PUSH[AD] PUSHAW PUSHF[D] PUSHFW PUSHFQ
syn keyword nasmStdInstruction RCL RCR RETF RET[N] ROL ROR
syn keyword nasmStdInstruction SAHF SAL SAR SBB SCASB SCASD SCASW
syn keyword nasmStdInstruction SHL[D] SHR[D] STC STD STOSB STOSD STOSW SUB
syn keyword nasmStdInstruction SHL[D] SHR[D] STC STD STOSB STOSD STOSW STOSQ SUB
syn keyword nasmStdInstruction TEST XADD XCHG XLATB XOR
syn keyword nasmStdInstruction LFENCE MFENCE SFENCE
" System Instructions: (usually privileged)
+3 -3
View File
@@ -1,10 +1,10 @@
" Vim syntax file
" Language: po (gettext)
" Maintainer: Dwayne Bailey <dwayne@translate.org.za>
" Last Change: 2008 Sep 17
" Last Change: 2010 Sep 21
" Contributors: Dwayne Bailey (Most advanced syntax highlighting)
" Leonardo Fontenelle (Spell checking)
" SungHyun Nam <goweol@gmail.com> (Original maintainer)
" Nam SungHyun <namsh@kldp.org> (Original maintainer)
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
@@ -39,7 +39,7 @@ syn region poStringSTR start=+"+ skip=+\\\\\|\\"+ end=+"+ contained
\ contains=@Spell,poSpecial,poFormat,poHeaderItem,poCommentKDEError,poHeaderUndefined,poPluralKDEError,poMsguniqError,poKDEdesktopFile,poHtml,poAcceleratorStr,poHtmlNot,poVariable
" Header and Copyright
syn match poHeaderItem "\(Project-Id-Version\|Report-Msgid-Bugs-To\|POT-Creation-Date\|PO-Revision-Date\|Last-Translator\|Language-Team\|MIME-Version\|Content-Type\|Content-Transfer-Encoding\|Plural-Forms\|X-Generator\): " contained
syn match poHeaderItem "\(Project-Id-Version\|Report-Msgid-Bugs-To\|POT-Creation-Date\|PO-Revision-Date\|Last-Translator\|Language-Team\|Language\|MIME-Version\|Content-Type\|Content-Transfer-Encoding\|Plural-Forms\|X-Generator\): " contained
syn match poHeaderUndefined "\(PACKAGE VERSION\|YEAR-MO-DA HO:MI+ZONE\|FULL NAME <EMAIL@ADDRESS>\|LANGUAGE <LL@li.org>\|CHARSET\|ENCODING\|INTEGER\|EXPRESSION\)" contained
syn match poCopyrightUnset "SOME DESCRIPTIVE TITLE\|FIRST AUTHOR <EMAIL@ADDRESS>, YEAR\|Copyright (C) YEAR Free Software Foundation, Inc\|YEAR THE PACKAGE\'S COPYRIGHT HOLDER\|PACKAGE" contained
+9 -1
View File
@@ -1,7 +1,7 @@
" Vim syntax file
" Language: Python
" Maintainer: Neil Schemenauer <nas@python.ca>
" Last Change: 2009-10-13
" Last Change: 2010 Sep 21
" Credits: Zvezdan Petkovic <zpetkovic@acm.org>
" Neil Schemenauer <nas@python.ca>
" Dmitry Vasiliev
@@ -45,6 +45,11 @@ elseif exists("b:current_syntax")
finish
endif
" We need nocompatible mode in order to continue lines with backslashes.
" Original setting will be restored.
let s:cpo_save = &cpo
set cpo&vim
" Keep Python keywords in alphabetical order inside groups for easy
" comparison with the table in the 'Python Language Reference'
" http://docs.python.org/reference/lexical_analysis.html#keywords.
@@ -292,4 +297,7 @@ endif
let b:current_syntax = "python"
let &cpo = s:cpo_save
unlet s:cpo_save
" vim:set sw=2 sts=2 ts=8 noet:
+161 -61
View File
@@ -1,86 +1,186 @@
" Vim syntax file
" Language: YAML (YAML Ain't Markup Language)
" Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2010-08-12
" Language: YAML (YAML Ain't Markup Language) 1.2
" Maintainer: Nikolai Pavlov <zyx.vim@gmail.com>
" First author: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2010-09-16
if exists("b:current_syntax")
finish
if exists('b:current_syntax')
finish
endif
let s:cpo_save = &cpo
set cpo&vim
let s:ns_char = '\%(\%([\n\r\uFEFF \t]\)\@!\p\)'
let s:ns_word_char = '\%(\w\|-\)'
let s:ns_uri_char = '\%(%\x\x\|'.s:ns_word_char.'\|[#/;?:@&=+$,.!~*''()\[\]]\)'
let s:ns_tag_char = '\%(%\x\x\|'.s:ns_word_char.'\|[#/;?:@&=+$.~*''()]\)'
let s:c_ns_anchor_char = '\%(\%([\n\r\uFEFF \t,\[\]{}]\)\@!\p\)'
let s:c_indicator = '[\-?:,\[\]{}#&*!|>''"%@`]'
let s:c_flow_indicator = '[,\[\]{}]'
let s:c_verbatim_tag = '!<'.s:ns_uri_char.'\+>'
let s:c_named_tag_handle = '!'.s:ns_word_char.'\+!'
let s:c_secondary_tag_handle = '!!'
let s:c_primary_tag_handle = '!'
let s:c_tag_handle = '\%('.s:c_named_tag_handle.
\ '\|'.s:c_secondary_tag_handle.
\ '\|'.s:c_primary_tag_handle.'\)'
let s:c_ns_shorthand_tag = s:c_tag_handle . s:ns_tag_char.'\+'
let s:c_non_specific_tag = '!'
let s:c_ns_tag_property = s:c_verbatim_tag.
\ '\|'.s:c_ns_shorthand_tag.
\ '\|'.s:c_non_specific_tag
let s:c_ns_anchor_name = s:c_ns_anchor_char.'\+'
let s:c_ns_anchor_property = '&'.s:c_ns_anchor_name
let s:c_ns_alias_node = '\*'.s:c_ns_anchor_name
let s:ns_directive_name = s:ns_char.'\+'
let s:ns_local_tag_prefix = '!'.s:ns_uri_char.'*'
let s:ns_global_tag_prefix = s:ns_tag_char.s:ns_uri_char.'*'
let s:ns_tag_prefix = s:ns_local_tag_prefix.
\ '\|'.s:ns_global_tag_prefix
let s:ns_plain_safe_out = s:ns_char
let s:ns_plain_safe_in = '\%('.s:c_flow_indicator.'\@!'.s:ns_char.'\)'
let s:ns_plain_first_in = '\%('.s:c_indicator.'\@!'.s:ns_char.'\|[?:\-]\%('.s:ns_plain_safe_in.'\)\@=\)'
let s:ns_plain_first_out = '\%('.s:c_indicator.'\@!'.s:ns_char.'\|[?:\-]\%('.s:ns_plain_safe_out.'\)\@=\)'
let s:ns_plain_char_in = '\%('.s:ns_char.'#\|:'.s:ns_plain_safe_in.'\|[:#]\@!'.s:ns_plain_safe_in.'\)'
let s:ns_plain_char_out = '\%('.s:ns_char.'#\|:'.s:ns_plain_safe_out.'\|[:#]\@!'.s:ns_plain_safe_out.'\)'
let s:ns_plain_out = s:ns_plain_first_out . s:ns_plain_char_out.'*'
let s:ns_plain_in = s:ns_plain_first_in . s:ns_plain_char_in.'*'
syn keyword yamlTodo contained TODO FIXME XXX NOTE
syn region yamlComment display oneline start='\%(^\|\s\)#' end='$'
\ contains=yamlTodo,@Spell
syn region yamlComment display oneline start='\%\(^\|\s\)#' end='$'
\ contains=yamlTodo
syn match yamlNodeProperty '!\%(![^\\^% ]\+\|[^!][^:/ ]*\)'
execute 'syn region yamlDirective oneline start='.string('^\ze%'.s:ns_directive_name.'\s\+').' '.
\ 'end="$" '.
\ 'contains=yamlTAGDirective,'.
\ 'yamlYAMLDirective,'.
\ 'yamlReservedDirective '.
\ 'keepend'
syn match yamlAnchor '&.\+'
syn match yamlTAGDirective '%TAG\s\+' contained nextgroup=yamlTagHandle
execute 'syn match yamlTagHandle contained nextgroup=yamlTagPrefix '.string(s:c_tag_handle.'\s\+')
execute 'syn match yamlTagPrefix contained nextgroup=yamlComment ' . string(s:ns_tag_prefix)
syn match yamlAlias '\*.\+'
syn match yamlYAMLDirective '%YAML\s\+' contained nextgroup=yamlYAMLVersion
syn match yamlYAMLVersion '\d\+\.\d\+' contained nextgroup=yamlComment
syn match yamlDelimiter '[-,:]'
syn match yamlBlock '[\[\]{}>|]'
syn match yamlOperator '[?+-]'
syn match yamlKey '\w\+\(\s\+\w\+\)*\ze\s*:'
execute 'syn match yamlReservedDirective contained nextgroup=yamlComment '.
\string('%\%(\%(TAG\|YAML\)\s\)\@!'.s:ns_directive_name)
syn region yamlString matchgroup=yamlStringDelimiter
\ start=+"+ skip=+\\"+ end=+"+
\ contains=yamlEscape
syn region yamlString matchgroup=yamlStringDelimiter
\ start=+'+ skip=+''+ end=+'+
\ contains=yamlSingleEscape
syn match yamlEscape contained display +\\[\\"abefnrtv^0_ NLP]+
syn match yamlEscape contained display '\\x\x\{2}'
syn match yamlEscape contained display '\\u\x\{4}'
syn match yamlEscape contained display '\\U\x\{8}'
" TODO: how do we get 0x85, 0x2028, and 0x2029 into this?
syn match yamlEscape display '\\\%(\r\n\|[\r\n]\)'
syn match yamlSingleEscape contained +''+
syn region yamlFlowString matchgroup=yamlFlowStringDelimiter start='"' skip='\\"' end='"'
\ contains=yamlEscape
\ nextgroup=yamlKeyValueDelimiter
syn region yamlFlowString matchgroup=yamlFlowStringDelimiter start="'" skip="''" end="'"
\ contains=yamlSingleEscape
\ nextgroup=yamlKeyValueDelimiter
syn match yamlEscape contained '\\\%([\\"abefnrtv\^0_ NLP\n]\|x\x\x\|u\x\{4}\|U\x\{8}\)'
syn match yamlSingleEscape contained "''"
" TODO: sexagecimal and fixed (20:30.15 and 1,230.15)
syn match yamlNumber display
\ '\<[+-]\=\d\+\%(\.\d\+\%([eE][+-]\=\d\+\)\=\)\='
syn match yamlNumber display '0\o\+'
syn match yamlNumber display '0x\x\+'
syn match yamlNumber display '([+-]\=[iI]nf)'
syn match yamlNumber display '(NaN)'
syn match yamlBlockScalarHeader contained '\s\+\zs[|>]\%([+-]\=[1-9]\|[1-9]\=[+-]\)\='
syn match yamlConstant '\<[~yn]\>'
syn keyword yamlConstant true True TRUE false False FALSE
syn keyword yamlConstant yes Yes on ON no No off OFF
syn keyword yamlConstant null Null NULL nil Nil NIL
syn cluster yamlFlow contains=yamlFlowString,yamlFlowMapping,yamlFlowCollection
syn cluster yamlFlow add=yamlFlowMappingKey,yamlFlowMappingMerge
syn cluster yamlFlow add=yamlConstant,yamlPlainScalar,yamlFloat
syn cluster yamlFlow add=yamlTimestamp,yamlInteger,yamlMappingKeyStart
syn cluster yamlFlow add=yamlComment
syn region yamlFlowMapping matchgroup=yamlFlowIndicator start='{' end='}' contains=@yamlFlow
syn region yamlFlowCollection matchgroup=yamlFlowIndicator start='\[' end='\]' contains=@yamlFlow
syn match yamlTimestamp '\d\d\d\d-\%(1[0-2]\|\d\)-\%(3[0-2]\|2\d\|1\d\|\d\)\%( \%([01]\d\|2[0-3]\):[0-5]\d:[0-5]\d.\d\d [+-]\%([01]\d\|2[0-3]\):[0-5]\d\|t\%([01]\d\|2[0-3]\):[0-5]\d:[0-5]\d.\d\d[+-]\%([01]\d\|2[0-3]\):[0-5]\d\|T\%([01]\d\|2[0-3]\):[0-5]\d:[0-5]\d.\dZ\)\='
execute 'syn match yamlPlainScalar /'.s:ns_plain_out.'/'
execute 'syn match yamlPlainScalar contained /'.s:ns_plain_in.'/'
syn region yamlDocumentHeader start='---' end='$' contains=yamlDirective
syn match yamlDocumentEnd '\.\.\.'
syn match yamlMappingKeyStart '?\ze\s'
syn match yamlMappingKeyStart '?' contained
syn match yamlDirective contained '%[^:]\+:.\+'
execute 'syn match yamlFlowMappingKey /'.s:ns_plain_in.'\ze\s*:/ contained '.
\'nextgroup=yamlKeyValueDelimiter'
syn match yamlFlowMappingMerge /<<\ze\s*:/ contained nextgroup=yamlKeyValueDelimiter
hi def link yamlTodo Todo
hi def link yamlComment Comment
hi def link yamlDocumentHeader PreProc
hi def link yamlDocumentEnd PreProc
hi def link yamlDirective Keyword
hi def link yamlNodeProperty Type
hi def link yamlAnchor Type
hi def link yamlAlias Type
hi def link yamlDelimiter Delimiter
hi def link yamlBlock Operator
hi def link yamlOperator Operator
hi def link yamlKey Identifier
hi def link yamlString String
hi def link yamlStringDelimiter yamlString
hi def link yamlEscape SpecialChar
hi def link yamlSingleEscape SpecialChar
hi def link yamlNumber Number
hi def link yamlConstant Constant
hi def link yamlTimestamp Number
syn match yamlBlockCollectionItemStart '^\s*\zs-\%(\s\+-\)*\s' nextgroup=yamlBlockMappingKey,yamlBlockMappingMerge
execute 'syn match yamlBlockMappingKey /^\s*\zs'.s:ns_plain_out.'\ze\s*:\%(\s\|$\)/ '.
\'nextgroup=yamlKeyValueDelimiter'
execute 'syn match yamlBlockMappingKey /\s*\zs'.s:ns_plain_out.'\ze\s*:\%(\s\|$\)/ contained '.
\'nextgroup=yamlKeyValueDelimiter'
syn match yamlBlockMappingMerge /^\s*\zs<<\ze:\%(\s\|$\)/ nextgroup=yamlKeyValueDelimiter
syn match yamlBlockMappingMerge /<<\ze\s*:\%(\s\|$\)/ nextgroup=yamlKeyValueDelimiter contained
syn match yamlKeyValueDelimiter /\s*:/ contained
syn match yamlKeyValueDelimiter /\s*:/ contained
syn keyword yamlConstant true True TRUE false False FALSE
syn keyword yamlConstant null Null NULL
syn match yamlConstant '\<\~\>'
syn match yamlTimestamp /\%([\[\]{}, \t]\@!\p\)\@<!\%(\d\{4}-\d\d\=-\d\d\=\%(\%([Tt]\|\s\+\)\%(\d\d\=\):\%(\d\d\):\%(\d\d\)\%(\.\%(\d*\)\)\=\%(\s*\%(Z\|[+-]\d\d\=\%(:\d\d\)\=\)\)\=\)\=\)\%([\[\]{}, \t]\@!\p\)\@!/
syn match yamlInteger /\%([\[\]{}, \t]\@!\p\)\@<!\%([+-]\=\%(0\%(b[0-1_]\+\|[0-7_]\+\|x[0-9a-fA-F_]\+\)\=\|\%([1-9][0-9_]*\%(:[0-5]\=\d\)\+\)\)\)\%([\[\]{}, \t]\@!\p\)\@!/
syn match yamlFloat /\%([\[\]{}, \t]\@!\p\)\@<!\%([+-]\=\%(\%(\d[0-9_]*\)\.[0-9_]*\%([eE][+-]\d\+\)\=\|\.[0-9_]\+\%([eE][-+][0-9]\+\)\=\|\d[0-9_]*\%(:[0-5]\=\d\)\+\.[0-9_]*\|\.\%(inf\|Inf\|INF\)\)\|\%(\.\%(nan\|NaN\|NAN\)\)\)\%([\[\]{}, \t]\@!\p\)\@!/
execute 'syn match yamlNodeTag '.string(s:c_ns_tag_property)
execute 'syn match yamlAnchor '.string(s:c_ns_anchor_property)
execute 'syn match yamlAlias '.string(s:c_ns_alias_node)
syn match yamlDocumentStart '^---\ze\%(\s\|$\)'
syn match yamlDocumentEnd '^\.\.\.\ze\%(\s\|$\)'
hi def link yamlTodo Todo
hi def link yamlComment Comment
hi def link yamlDocumentStart PreProc
hi def link yamlDocumentEnd PreProc
hi def link yamlDirectiveName Keyword
hi def link yamlTAGDirective yamlDirectiveName
hi def link yamlTagHandle String
hi def link yamlTagPrefix String
hi def link yamlYAMLDirective yamlDirectiveName
hi def link yamlReservedDirective Error
hi def link yamlYAMLVersion Number
hi def link yamlString String
hi def link yamlFlowString yamlString
hi def link yamlFlowStringDelimiter yamlString
hi def link yamlEscape SpecialChar
hi def link yamlSingleEscape SpecialChar
hi def link yamlBlockCollectionItemStart Label
hi def link yamlBlockMappingKey Identifier
hi def link yamlBlockMappingMerge Special
hi def link yamlFlowMappingKey Identifier
hi def link yamlFlowMappingMerge Special
hi def link yamlMappingKeyStart Special
hi def link yamlFlowIndicator Special
hi def link yamlKeyValueDelimiter Special
hi def link yamlConstant Constant
hi def link yamlAnchor Type
hi def link yamlAlias Type
hi def link yamlNodeTag Type
hi def link yamlInteger Number
hi def link yamlFloat Float
hi def link yamlTimestamp Number
let b:current_syntax = "yaml"
unlet s:ns_word_char s:ns_uri_char s:c_verbatim_tag s:c_named_tag_handle s:c_secondary_tag_handle s:c_primary_tag_handle s:c_tag_handle s:ns_tag_char s:c_ns_shorthand_tag s:c_non_specific_tag s:c_ns_tag_property s:c_ns_anchor_char s:c_ns_anchor_name s:c_ns_anchor_property s:c_ns_alias_node s:ns_char s:ns_directive_name s:ns_local_tag_prefix s:ns_global_tag_prefix s:ns_tag_prefix s:c_indicator s:ns_plain_safe_out s:c_flow_indicator s:ns_plain_safe_in s:ns_plain_first_in s:ns_plain_first_out s:ns_plain_char_in s:ns_plain_char_out s:ns_plain_out s:ns_plain_in
let &cpo = s:cpo_save
unlet s:cpo_save
+1 -1
View File
@@ -33,7 +33,7 @@ DEL = del
endif
endif
CXX := $(CROSS_COMPILE)g++
WINDRES := $(CROSS_COMPILE)windres
WINDRES := $(CROSS_COMPILE)windres --preprocessor="$(CXX) -E -xc" -DRC_INVOKED
LIBS := -luuid
RES := gvimext.res
DEFFILE = gvimext_ming.def
+4
View File
@@ -34,6 +34,8 @@ Jonathon Mah\
\pard\pardeftab720\ql\qnatural
\cf0 Kazuki Sakamoto\
Vincent Berthoux\
Nikola Kne\'9eevi\uc0\u263 \
Dmitry Vazhov\
\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural
\i0 \cf0 \
@@ -44,6 +46,8 @@ Thank you to {\field{\*\fldinst{HYPERLINK "http://www.positivespinmedia.com"}}{\
\
Toolbar icons by {\field{\*\fldinst{HYPERLINK "http://www.mattballdesign.com/"}}{\fldrslt Matt Ball}} (free Developer Icons), {\field{\*\fldinst{HYPERLINK "http://www.jonasraskdesign.com/"}}{\fldrslt Jonas Rask}} (Danish Royalty Free icon set), and {\field{\*\fldinst{HYPERLINK "http://www.everaldo.com"}}{\fldrslt Everaldo Coelho}} (Crystal Project Icons, released under LGPL license).\
\
Revamped MacVim icon by RIC.\
\
Thanks to Andy Matuschak for {\field{\*\fldinst{HYPERLINK "http://sparkle.andymatuschak.org/"}}{\fldrslt Sparkle}}.\
\
Thanks to Damien Guard for {\field{\*\fldinst{HYPERLINK "http://damieng.com/blog/2008/05/26/envy-code-r-preview-7-coding-font-released"}}{\fldrslt Envy Code R}} (used in MacVim's 16x16 document icons).}
+1 -1
View File
@@ -1202,7 +1202,7 @@
</dict>
</array>
<key>CFBundleVersion</key>
<string>53</string>
<string>54</string>
<key>NSMainNibFile</key>
<string>MainMenu</string>
<key>NSPrincipalClass</key>
+13 -9
View File
@@ -1734,8 +1734,12 @@ fsEventCallback(ConstFSEventStreamRef streamRef,
// 3. Extract Spotlight search text (if any)
NSAppleEventDescriptor *spotlightdesc =
[desc paramDescriptorForKeyword:keyAESearchText];
if (spotlightdesc)
[dict setObject:[spotlightdesc stringValue] forKey:@"searchText"];
if (spotlightdesc) {
NSString *s = [[spotlightdesc stringValue]
stringBySanitizingSpotlightSearch];
if (s && [s length] > 0)
[dict setObject:s forKey:@"searchText"];
}
return dict;
}
@@ -2257,14 +2261,14 @@ fsEventCallback(ConstFSEventStreamRef streamRef,
NSMutableArray *a = [NSMutableArray array];
NSMutableDictionary *d = [[args mutableCopy] autorelease];
// Search for text using "+/text".
// Search for text and highlight it (this Vim script avoids warnings in
// case there is no match for the search text).
NSString *searchText = [args objectForKey:@"searchText"];
if (searchText) {
// TODO: If the search pattern is not found an error is shown when
// starting. Figure out a way to get rid of this message (The help
// says to use ':silent exe "normal /pat\<CR>"' but this does not
// work.)
[a addObject:[NSString stringWithFormat:@"+/%@", searchText]];
if (searchText && [searchText length] > 0) {
[a addObject:@"-c"];
NSString *s = [NSString stringWithFormat:@"if search('\\V\\c%@','cW')"
"|let @/='\\V\\c%@'|set hls|endif", searchText, searchText];
[a addObject:s];
[d removeObjectForKey:@"searchText"];
}
+97 -57
View File
@@ -197,6 +197,9 @@ extern GuiFont gui_mch_retain_font(GuiFont font);
- (void)redrawScreen;
- (void)handleFindReplace:(NSDictionary *)args;
- (void)handleMarkedText:(NSData *)data;
#if (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6)
- (void)handleGesture:(NSData *)data;
#endif
#ifdef FEAT_BEVAL
- (void)bevalCallback:(id)sender;
#endif
@@ -1190,23 +1193,36 @@ extern GuiFont gui_mch_retain_font(GuiFont font);
- (oneway void)processInput:(int)msgid data:(in bycopy NSData *)data
{
// Look for Ctrl-C immediately instead of waiting until the input queue is
// processed since that only happens in waitForInput: (and Vim regularly
// checks for Ctrl-C in between waiting for input). Note that the flag
// ctrl_c_interrupts is 0 e.g. when the user has mappings to something like
// <C-c>g. Also it seems the flag intr_char is 0 when MacVim was started
// from Finder whereas it is 0x03 (= Ctrl_C) when started from Terminal.
//
// This is a DO method which is called from inside MacVim to add new input
// to this Vim process. It may get called when the run loop is updated.
//
// Add keyboard input to Vim's input buffer immediately. We have to do
// this because in many places Vim polls the input buffer whilst waiting
// for keyboard input (so Vim may lock up forever otherwise).
//
// Similarly, TerminateNowMsgID must be checked immediately otherwise code
// which waits on the run loop will fail to detect this message (e.g. in
// waitForConnectionAcknowledgement).
//
// All other input is processed when processInputQueue is called (typically
// this happens in waitForInput:).
//
// TODO: Process mouse events here as well? Anything else?
//
if (KeyDownMsgID == msgid && data != nil && ctrl_c_interrupts) {
if (KeyDownMsgID == msgid) {
if (!data) return;
const void *bytes = [data bytes];
/*unsigned mods = *((unsigned*)bytes);*/ bytes += sizeof(unsigned);
/*unsigned code = *((unsigned*)bytes);*/ bytes += sizeof(unsigned);
unsigned mods = *((unsigned*)bytes); bytes += sizeof(unsigned);
unsigned code = *((unsigned*)bytes); bytes += sizeof(unsigned);
unsigned len = *((unsigned*)bytes); bytes += sizeof(unsigned);
if (1 == len) {
if (ctrl_c_interrupts && 1 == len) {
// NOTE: the flag ctrl_c_interrupts is 0 e.g. when the user has
// mappings to something like <C-c>g. Also it seems the flag
// intr_char is 0 when MacVim was started from Finder whereas it is
// 0x03 (= Ctrl_C) when started from Terminal.
char_u *str = (char_u*)bytes;
if (str[0] == Ctrl_C || (str[0] == intr_char && intr_char != 0)) {
ASLogDebug(@"Got INT, str[0]=%#x ctrl_c_interrupts=%d "
@@ -1216,6 +1232,24 @@ extern GuiFont gui_mch_retain_font(GuiFont font);
return;
}
}
// The lowest bit of the modifiers is set if this key is a repeat.
BOOL isKeyRepeat = (mods & 1) != 0;
// Ignore key press if the input buffer has something in it and this
// key is a repeat (since this means Vim can't keep up with the speed
// with which new input is being received).
if (!isKeyRepeat || vim_is_input_buf_empty()) {
NSString *key = [[NSString alloc] initWithBytes:bytes
length:len
encoding:NSUTF8StringEncoding];
mods = eventModifierFlagsToVimModMask(mods);
[self doKeyDown:key keyCode:code modifiers:mods];
[key release];
} else {
ASLogDebug(@"Dropping repeated keyboard input");
}
} else if (TerminateNowMsgID == msgid) {
// Terminate immediately (the frontend is about to quit or this process
// was aborted). Don't preserve modified files since the user would
@@ -1223,45 +1257,27 @@ extern GuiFont gui_mch_retain_font(GuiFont font);
// modified files when we get here.
isTerminating = YES;
getout(0);
return;
}
// Remove all previous instances of this message from the input queue, else
// the input queue may fill up as a result of Vim not being able to keep up
// with the speed at which new messages are received.
// Keyboard input is never dropped, unless the input represents an
// auto-repeated key.
BOOL isKeyRepeat = NO;
BOOL isKeyboardInput = NO;
if (data && KeyDownMsgID == msgid) {
isKeyboardInput = YES;
// The lowest bit of the first int is set if this key is a repeat.
int flags = *((int*)[data bytes]);
if (flags & 1)
isKeyRepeat = YES;
}
// Keyboard input is not removed from the queue; repeats are ignored if
// there already is keyboard input on the input queue.
if (isKeyRepeat || !isKeyboardInput) {
} else {
// First remove previous instances of this message from the input
// queue, else the input queue may fill up as a result of Vim not being
// able to keep up with the speed at which new messages are received.
// TODO: Remove all previous instances (there could be many)?
int i, count = [inputQueue count];
for (i = 1; i < count; i+=2) {
for (i = 1; i < count; i += 2) {
if ([[inputQueue objectAtIndex:i-1] intValue] == msgid) {
if (isKeyRepeat)
return;
ASLogDebug(@"Input queue filling up, remove message: %s",
MessageStrings[msgid]);
[inputQueue removeObjectAtIndex:i];
[inputQueue removeObjectAtIndex:i-1];
break;
}
}
}
[inputQueue addObject:[NSNumber numberWithInt:msgid]];
[inputQueue addObject:(data ? (id)data : [NSNull null])];
// Now add message to input queue. Add null data if necessary to
// ensure that input queue has even length.
[inputQueue addObject:[NSNumber numberWithInt:msgid]];
[inputQueue addObject:(data ? (id)data : [NSNull null])];
}
}
- (id)evaluateExpressionCocoa:(in bycopy NSString *)expr
@@ -1829,20 +1845,7 @@ static void netbeansReadCallback(CFSocketRef s,
- (void)handleInputEvent:(int)msgid data:(NSData *)data
{
if (KeyDownMsgID == msgid) {
if (!data) return;
const void *bytes = [data bytes];
unsigned mods = *((unsigned*)bytes); bytes += sizeof(unsigned);
unsigned code = *((unsigned*)bytes); bytes += sizeof(unsigned);
unsigned len = *((unsigned*)bytes); bytes += sizeof(unsigned);
NSString *key = [[NSString alloc] initWithBytes:bytes
length:len
encoding:NSUTF8StringEncoding];
mods = eventModifierFlagsToVimModMask(mods);
[self doKeyDown:key keyCode:code modifiers:mods];
[key release];
} else if (ScrollWheelMsgID == msgid) {
if (ScrollWheelMsgID == msgid) {
if (!data) return;
const void *bytes = [data bytes];
@@ -2067,6 +2070,10 @@ static void netbeansReadCallback(CFSocketRef s,
winposX = *((int*)bytes); bytes += sizeof(int);
winposY = *((int*)bytes); bytes += sizeof(int);
ASLogDebug(@"SetWindowPositionMsgID: x=%d y=%d", winposX, winposY);
} else if (GestureMsgID == msgid) {
#if (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6)
[self handleGesture:data];
#endif
} else {
ASLogWarn(@"Unknown message received (msgid=%d)", msgid);
}
@@ -2814,8 +2821,11 @@ static void netbeansReadCallback(CFSocketRef s,
NSString *searchText = [args objectForKey:@"searchText"];
if (searchText) {
[self addInput:[NSString stringWithFormat:@"<C-\\><C-N>gg/\\c%@/e<CR>",
searchText]];
// NOTE: This command may be overkill to simply search for some text,
// but it is consistent with what is used in MMAppController.
[self addInput:[NSString stringWithFormat:@"<C-\\><C-N>:if search("
"'\\V\\c%@','cW')|let @/='\\V\\c%@'|set hls|endif<CR>",
searchText, searchText]];
}
}
@@ -2944,6 +2954,36 @@ static void netbeansReadCallback(CFSocketRef s,
}
}
#if (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6)
- (void)handleGesture:(NSData *)data
{
const void *bytes = [data bytes];
int flags = *((int*)bytes); bytes += sizeof(int);
int gesture = *((int*)bytes); bytes += sizeof(int);
int modifiers = eventModifierFlagsToVimModMask(flags);
char_u string[6];
string[3] = CSI;
string[4] = KS_EXTRA;
switch (gesture) {
case MMGestureSwipeLeft: string[5] = KE_SWIPELEFT; break;
case MMGestureSwipeRight: string[5] = KE_SWIPERIGHT; break;
case MMGestureSwipeUp: string[5] = KE_SWIPEUP; break;
case MMGestureSwipeDown: string[5] = KE_SWIPEDOWN; break;
default: return;
}
if (modifiers == 0) {
add_to_input_buf(string + 3, 3);
} else {
string[0] = CSI;
string[1] = KS_MODIFIER;
string[2] = modifiers;
add_to_input_buf(string, 6);
}
}
#endif
#ifdef FEAT_BEVAL
- (void)bevalCallback:(id)sender
{
+8
View File
@@ -519,6 +519,14 @@ defaultAdvanceForFont(CTFontRef fontRef)
[helper mouseMoved:event];
}
// Gesture event are new for OS X 10.6
#if (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6)
- (void)swipeWithEvent:(NSEvent *)event
{
[helper swipeWithEvent:event];
}
#endif
- (NSMenu*)menuForEvent:(NSEvent *)event
{
// HACK! Return nil to disable default popup menus (Vim provides its own).
+8
View File
@@ -770,6 +770,14 @@
[helper mouseMoved:event];
}
// Gesture event are new for OS X 10.6
#if (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6)
- (void)swipeWithEvent:(NSEvent *)event
{
[helper swipeWithEvent:event];
}
#endif
- (NSMenu*)menuForEvent:(NSEvent *)event
{
// HACK! Return nil to disable NSTextView's popup menus (Vim provides its
+3
View File
@@ -74,6 +74,9 @@ enum {
- (void)mouseUp:(NSEvent *)event;
- (void)mouseDragged:(NSEvent *)event;
- (void)mouseMoved:(NSEvent *)event;
#if (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6)
- (void)swipeWithEvent:(NSEvent *)event;
#endif
- (BOOL)performDragOperation:(id <NSDraggingInfo>)sender;
- (NSDragOperation)draggingEntered:(id <NSDraggingInfo>)sender;
- (NSDragOperation)draggingUpdated:(id <NSDraggingInfo>)sender;
+31
View File
@@ -45,6 +45,9 @@ static float MMDragAreaSize = 73.0f;
- (BOOL)inputManagerHandleMouseEvent:(NSEvent *)event;
- (void)sendMarkedText:(NSString *)text position:(int32_t)pos;
- (void)abandonMarkedText;
#if (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6)
- (void)sendGestureEvent:(int)gesture flags:(int)flags;
#endif
@end
@@ -466,6 +469,22 @@ KeyboardInputSourcesEqual(TISInputSourceRef a, TISInputSourceRef b)
[[self vimController] sendMessage:MouseMovedMsgID data:data];
}
#if (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6)
- (void)swipeWithEvent:(NSEvent *)event
{
CGFloat dx = [event deltaX];
CGFloat dy = [event deltaY];
int type;
if (dx > 0) type = MMGestureSwipeLeft;
else if (dx < 0) type = MMGestureSwipeRight;
else if (dy > 0) type = MMGestureSwipeUp;
else if (dy < 0) type = MMGestureSwipeDown;
else return;
[self sendGestureEvent:type flags:[event modifierFlags]];
}
#endif
- (BOOL)performDragOperation:(id <NSDraggingInfo>)sender
{
NSPasteboard *pboard = [sender draggingPasteboard];
@@ -1124,4 +1143,16 @@ KeyboardInputSourcesEqual(TISInputSourceRef a, TISInputSourceRef b)
[[NSInputManager currentInputManager] markedTextAbandoned:self];
}
#if (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6)
- (void)sendGestureEvent:(int)gesture flags:(int)flags
{
NSMutableData *data = [NSMutableData data];
[data appendBytes:&flags length:sizeof(int)];
[data appendBytes:&gesture length:sizeof(int)];
[[self vimController] sendMessage:GestureMsgID data:data];
}
#endif
@end // MMTextViewHelper (Private)
+3
View File
@@ -358,6 +358,7 @@
filename = @"";
[decoratedWindow setRepresentedFilename:filename];
[fullscreenWindow setRepresentedFilename:filename];
}
- (void)setToolbar:(NSToolbar *)toolbar
@@ -610,6 +611,8 @@
initWithWindow:decoratedWindow view:vimView backgroundColor:back];
[fullscreenWindow enterFullscreen:fuoptions];
[fullscreenWindow setDelegate:self];
[fullscreenWindow setRepresentedFilename:
[decoratedWindow representedFilename]];
fullscreenEnabled = YES;
// The resize handle disappears so the vim view needs to update the
+9
View File
@@ -188,6 +188,7 @@ enum {
DeleteSignMsgID,
SetTooltipMsgID,
SetTooltipDelayMsgID,
GestureMsgID,
LastMsgID // NOTE: MUST BE LAST MESSAGE IN ENUM!
};
@@ -226,6 +227,13 @@ enum {
MMTabInfoCount
};
enum {
MMGestureSwipeLeft,
MMGestureSwipeRight,
MMGestureSwipeUp,
MMGestureSwipeDown,
};
// Create a string holding the labels of all messages in message queue for
// debugging purposes (condense some messages since there may typically be LOTS
@@ -263,6 +271,7 @@ extern NSString *VimFindPboardType;
@interface NSString (MMExtras)
- (NSString *)stringByEscapingSpecialFilenameCharacters;
- (NSString *)stringByRemovingFindPatterns;
- (NSString *)stringBySanitizingSpotlightSearch;
@end
+34
View File
@@ -98,6 +98,7 @@ char *MessageStrings[] =
"DeleteSignMsgID",
"SetTooltipMsgID",
"SetTooltipDelayMsgID",
"GestureMsgID",
"END OF MESSAGE IDs" // NOTE: Must be last!
};
@@ -233,6 +234,39 @@ debugStringForMessageQueue(NSArray *queue)
return [string autorelease];
}
- (NSString *)stringBySanitizingSpotlightSearch
{
// Limit length of search text
NSUInteger len = [self length];
if (len > 1024) len = 1024;
else if (len == 0) return self;
NSMutableString *string = [[[self substringToIndex:len] mutableCopy]
autorelease];
// Ignore strings with control characters
NSCharacterSet *controlChars = [NSCharacterSet controlCharacterSet];
NSRange r = [string rangeOfCharacterFromSet:controlChars];
if (r.location != NSNotFound)
return nil;
// Replace ' with '' since it is used as a string delimeter in the command
// that we pass on to Vim to perform the search.
[string replaceOccurrencesOfString:@"'"
withString:@"''"
options:NSLiteralSearch
range:NSMakeRange(0, [string length])];
// Replace \ with \\ to avoid Vim interpreting it as the beginning of a
// character class.
[string replaceOccurrencesOfString:@"\\"
withString:@"\\\\"
options:NSLiteralSearch
range:NSMakeRange(0, [string length])];
return string;
}
@end // NSString (MMExtras)
+2 -2
View File
@@ -621,7 +621,7 @@
buildSettings = {
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 53;
CURRENT_PROJECT_VERSION = 54;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
@@ -651,7 +651,7 @@
buildSettings = {
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
COPY_PHASE_STRIP = YES;
CURRENT_PROJECT_VERSION = 53;
CURRENT_PROJECT_VERSION = 54;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
+8 -4
View File
@@ -248,13 +248,17 @@ gui_mch_update(void)
// here to avoid reduced frame-rates but then it would not be possible to
// interrupt Vim by presssing Ctrl-C during lengthy operations (e.g. after
// entering "10gs" it would not be possible to bring Vim out of the 10 s
// sleep prematurely). As a compromise we check for Ctrl-C only once per
// second. Note that Cmd-. sends SIGINT so it has higher success rate at
// interrupting Vim.
// sleep prematurely). Furthermore, Vim sometimes goes into a loop waiting
// for keyboard input (e.g. during a "more prompt") where not checking for
// input could cause Vim to lock up indefinitely.
//
// As a compromise we check for new input only every now and then. Note
// that Cmd-. sends SIGINT so it has higher success rate at interrupting
// Vim than Ctrl-C.
static CFAbsoluteTime lastTime = 0;
CFAbsoluteTime nowTime = CFAbsoluteTimeGetCurrent();
if (nowTime - lastTime > 1.0) {
if (nowTime - lastTime > 0.2) {
[[MMBackend sharedInstance] update];
lastTime = nowTime;
}
-804
View File
@@ -1,804 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:sparkle="http://www.andymatuschak.org/xml-namespaces/sparkle">
<channel>
<title>MacVim Cutting Edge</title>
<link>http://bjorn.winckler.googlepages.com/macvim_latest.xml</link>
<description>Most recent changes with links to updates.</description>
<!--
To add a new release:
* add a new <item> below (copy an old one)
* Adapt the <title>
* Adapt the <description>
* Adapt the <pubDate> (format 'Day, dd Mon yyyy hh:mm CET')
* Adapte <enclosure>, make sure to update the url, length, saprkle:version
and sparkle:shortVersionString attributes.
Sparkle honors the following user defaults:
* SUFeedURL overrides the value in Info.plist (if we want to offer several
appcasts in the preferences one day ("latest", "stable" for example).
This means that for testing you can do
defaults read org.vim.MacVim SUFeedURL # note this down
defaults write org.vim.MacVim SUFeedURL file:///Users/you/testcast.xml
# !!! note the three '/' after 'file:
# test test test
defaults write org.vim.MacVim SUFeedURL previousvalue
# or, to use some default setting for the url,
defaults delete org.vim.MacVim SUFeedURL
Sparkle usually assumes a naming scheme of name_versionnumber.tar.bz2 .
Instead, you can also provide a sparkle:version="2.0_rc2" attribute on
the enclosure and name the package as you like. You can (and should) also
provide a sparkle:shortVersionString="User-facing version string"
attribute that corresponds to CFBundleShortVersionString. Sparkle uses
CFBundleVersion to determine the current application version.
Sparkle supports updates in zip, tar, tbz, tgz, or dmg format.
-->
<item>
<title>Snapshot 49 released</title>
<description><![CDATA[
<h1>MacVim snapshot 49 released</h1>
<p> Changes since snapshot 47:
<ul>
<li> ATSUI clips text to display cell to avoid "bleeding" </li>
<li> The pwd is set properly when dropping a folder on the Dock </li>
<li> Add Vimball (.vba) as a supported filetype </li>
<li> Refactored input code (e.g. can now bind to numeric keypad) </li>
<li> Improved IM support (separate keyboard layouts in normal/insert modes using the 'noimd' option, see ":h macvim-international") </li>
<li> Draw marked text inline (listed as +xim in ":ver") </li>
<li> Add user default MMUseInlineIm (use to disable above feature) </li>
<li> Update Vim source and runtime files </li>
</ul>
</p>
]]></description>
<pubDate>Sun, 16 Aug 2009 01:17 CET</pubDate>
<enclosure type="application/octet-stream"
url="http://newmacvim.muskokamug.org/mirror/files/MacVim-snapshot-49.tbz"
length="8212194"
sparkle:version="49"
sparkle:shortVersionString="7.2"
/>
</item>
<item>
<title>Snapshot 47 released</title>
<description><![CDATA[
<h1>MacVim snapshot 47 released</h1>
<p> Changes since snapshot 45:
<ul>
<li> Markdown (Nico Weber) and reStructuredText (Travis Jeffery) are supported file types </li>
<li> The forever bouncing Dock icon bug should now really really be fixed (Kazuki Sakamoto) </li>
<li> Fixed bug when file name contained decomposed UTF8 characters </li>
<li> Quick Look should work for most/all supported filetypes now (although the preview is simple text and is not syntax highlighted) </li>
<li> Update the help file </li>
<li> 'guifontwide' is updated on Cmd-+/Cmd-- </li>
<li> The titles of the next/previous tab menu items now match other apps </li>
<li> Add NetBeans support (Kazuki Sakamoto) </li>
<li> Add simple logging facility </li>
<li> Fix a bug which could cause a crash when a dialog sheet was used </li>
<li> Update to latest Vim patches and runtime files </li>
</ul>
</p>
]]></description>
<pubDate>Fri, 16 Jul 2009 19:43 CET</pubDate>
<enclosure type="application/octet-stream"
url="http://newmacvim.muskokamug.org/mirror/files/MacVim-snapshot-47.tbz"
length="8200839"
sparkle:version="47"
sparkle:shortVersionString="7.2"
/>
</item>
<item>
<title>Snapshot 45 released</title>
<description><![CDATA[
<h1>MacVim snapshot 45 released</h1>
<p> Changes since snapshot 44:
<ul>
<li> The toolbar is not hidden by default again (if you prefer having the toolbar hidden, then add the line "set go-=T" to your ~/.gvimrc file) </li>
<li> The ATSUI renderer honors the 'guisp' highlighting color </li>
<li> Fix the forever bouncing Dock icon bug (Kazuki Sakamoto) </li>
<li> Add the "Show Hidden Files" checkbox button to the Save dialog whenever the file browser is expanded </li>
<li> Frontend refactoring </li>
</ul>
</p>
]]></description>
<pubDate>Mon, 13 Apr 2009 19:19 CET</pubDate>
<enclosure type="application/octet-stream"
url="http://newmacvim.muskokamug.org/mirror/files/MacVim-snapshot-45.tbz"
length="8135831"
sparkle:version="45"
sparkle:shortVersionString="7.2"
/>
</item>
<item>
<title>Snapshot 44 released</title>
<description><![CDATA[
<h1>MacVim snapshot 44 released</h1>
<p> Changes since snapshot 43:
<ul>
<li> The color table had many erroneous entries which have been corrected (Zvezdan Petkovic) </li>
<li> Ctrl+tab works again </li>
<li> Tab labels only show file tail by default to make them more legible (reset to default by adding "set guitablabel&" to .gvimrc) </li>
<li> The number of columns does not change on ":set go+=rT" </li>
<li> Fixed problems with view not maximizing when entering full-screen and the Dock was visible </li>
<li> Fix various problems related to having windows on a screen that got unplugged (fixes Issue 162) </li>
<li> Latest source code version and runtime files (e.g. the Python syntax file is fixed, fixes Issue 160) </li>
</ul>
</p>
]]></description>
<pubDate>Sun, 29 Mar 2009 16:56 CET</pubDate>
<enclosure type="application/octet-stream"
url="http://newmacvim.muskokamug.org/mirror/files/MacVim-snapshot-44.tbz"
length="8139075"
sparkle:version="44"
sparkle:shortVersionString="7.2"
/>
</item>
<item>
<title>Snapshot 43 released</title>
<description><![CDATA[
<h1>MacVim snapshot 43 released</h1>
<p><b>The automatic updating feature is broken in snapshots 39 and 40. If the automatic updating never finishes extracting then you are affected by this bug and will have to upgrade manually. To do so, simply go to the <a href="http://code.google.com/p/macvim/wiki/Snapshot">Snapshot page</a> to download the latest version.</b></p>
<p> Changes since snapshot 42:
<ul>
<li> Do inclusive search when opening files (Jonathon Mah) </li>
<li> Respect layout prefs when double-clicking an already open file </li>
<li> Fix two minor memory leaks </li>
<li> Ctrl-] works on German keyboard layout </li>
<li> The .viminfo file is written on Cmd-q </li>
<li> New 16x16 icons (Nico Weber) </li>
<li> Untitled window again opens on reopen event if requested in prefs </li>
<li> Fork earlier; fixes bug with 'autochdir', faster startup, "f" no longer supported in 'guioptions' </li>
<li> Some other minor bug fixes </li>
<li> Use latest runtime files and Vim patches </li>
</ul>
</p>
]]></description>
<pubDate>Fri, 20 Feb 2009 13:49 CET</pubDate>
<enclosure type="application/octet-stream"
url="http://newmacvim.muskokamug.org/mirror/files/MacVim-snapshot-43.tbz"
length="8136440"
sparkle:version="43"
sparkle:shortVersionString="7.2"
/>
</item>
<item>
<title>Snapshot 42 released</title>
<description><![CDATA[
<h1>MacVim snapshot 42 released</h1>
<p><b>The automatic updating feature is broken in snapshots 39 and 40. If the automatic updating never finishes extracting then you are affected by this bug and will have to upgrade manually. To do so, simply go to the <a href="http://code.google.com/p/macvim/wiki/Snapshot">Snapshot page</a> to download the latest version.</b></p>
<p> Changes since snapshot 40:
<ul>
<li> The menu bar behaves better when using full-screen and switching Spaces (Nico Weber) </li>
<li> Don't switch Spaces when using "mvim" on one Space and a MacVim window is open on another Space </li>
<li> Add user default to toggle the "add tab" button on the tabline (to disable, enter "defaults org.vim.MacVim MMShowAddTabButton 0" in Terminal) </li>
<li> Avoid the "Press ENTER..." prompt when dragging and dropping </li>
<li> Faster startup (and shutdown, but you're not likely to notice that unless you are me ;-) </li>
<li> Automatic updating works again </li>
<li> Possible to interrupt external commands (e.g. you can Ctrl-C during a lenghty :grep now) </li>
<li> The output from external commands is displayed "interactively" (i.e. you don't have to wait for the command to finish before any output is drawn; try ":!ls -l /usr/lib" and compare with snap 40 to see what I mean) </li>
<li> Cmd-. sends SIGINT (so that if a Vim process is stuck you should always be able to interrupt it with Cmd-. even if Ctrl-C doesn't work) </li>
<li> Fix crashing bug: e.g. with snap 40 if you go to the src/ folder of Vim and type ":grep a *.c" MacVim would crash </li>
<li> Toggle loading of default font with user default MMLoadDefaultFont </li>
</ul>
</p>
]]></description>
<pubDate>Sat, 12 Jan 2009 16:12 CET</pubDate>
<enclosure type="application/octet-stream"
url="http://newmacvim.muskokamug.org/mirror/files/MacVim-snapshot-42.tbz"
length="8131516"
sparkle:version="42"
sparkle:shortVersionString="7.2"
/>
</item>
<item>
<title>Snapshot 40 released</title>
<description><![CDATA[
<h1>MacVim snapshot 40 released</h1>
<p> Changes since snapshot 39:
<ul>
<li> Fix problems with Quickstart "leaking" Vim processes </li>
<li> 'imdisable' now on by default (i.e. IM is disabled by default) </li>
<li> Clipboard support in non-GUI mode (Kent Sibilev) </li>
<li> New document icons, more filetype associations (Nico Weber) </li>
<li> Add support for 'guitabtooltip' (hint: add the line "set gtl=%t gtt=%F" to your .gvimrc to make tabs display the name of the file and have the tooltip display the full path) (Jonathon Mah) </li>
<li> Look for toolbar icons in runtime path (plugins such as TVO now display toolbar icons properly) </li>
<li> Show dialog when clicking to close tab with modified buffers </li>
<li> Update documentation </li>
<li> Latest runtime files, and Vim patches </li>
</ul>
</p>
]]></description>
<pubDate>Sun, 28 Dec 2008 17:26 CET</pubDate>
<enclosure type="application/octet-stream"
url="http://newmacvim.muskokamug.org/mirror/files/MacVim-snapshot-40.tbz"
length="8138981"
sparkle:version="40"
sparkle:shortVersionString="7.2"
/>
</item>
<item>
<title>Snapshot 39 released</title>
<description><![CDATA[
<h1>MacVim snapshot 39 released</h1>
<p> Changes since snapshot 36 (snapshots 37 and 38 were skipped):
<ul>
<li> Avoid "Stray process..." warning messages (Ben Schmidt) </li>
<li> Add Cmd-BackSpace and Alt-BackSpace insert mode mappings (Nico Weber) </li>
<li> Dropping multiple files on a window no longer results in an error </li>
<li> Fix "Login shell" problems (Ben Schmidt) </li>
<li> Exit Vim process if connection becomes invalid -- this should avoid the system log filling up with error messages, but please let me know when it happens (and send me the output from Console.app) </li>
<li> Fix bug where Vim would crash when resizing a window with double-width characters </li>
<li> Add option 'macmeta' to use "alt/option" as meta key to allow bindings to &lt;M-..&gt; (see ":h 'macmeta') </li>
<li> Add basic support for AppleScript (Jason Foreman). E.g. to zoom a window:
<pre>
tell application MacVim
set zoomed of first window to true
end tell
</pre>
</li>
<li> Fix various bugs relating to initial window positioning </li>
<li> Keep window is visible on ":set lines=..." and "set columns=..." </li>
<li> Inserting text from "Special Characters" palette works again </li>
<li> Remove the functionality to use a modifier key as Esc (use the PCKeyboardHack app instead, see ":h macvim-hints | /esc") </li>
<li> More help on keyboard shortcuts (":h macvim-shortcuts") and the mvim script (see ":h mvim") </li>
<li> Speed up live resize </li>
<li> Support mvim script symlinks to [m|g]ex and rmvim (see ":h mvim") </li>
<li> Tentative support for receiving input from system services (Try this: insert "2+3", select the text, then hit Cmd-*. Result: "2+3" is replaced with "5". Sometimes it seems you have to choose "MacVim-&gt;Services-&gt;Script Editor-&gt;Get Result of AppleScript" instead of pressing Cmd-* for this to work.) </li>
<li> No more Vim zombie processes </li>
<li> Add "Reload"/"Ignore All" buttons to the file changed dialog </li>
<li> Latest runtime files, and Vim patches </li>
</ul>
</p>
]]></description>
<pubDate>Sun, 23 Nov 2008 18:09 CET</pubDate>
<enclosure type="application/octet-stream"
url="http://newmacvim.muskokamug.org/mirror/files/MacVim-snapshot-39.tbz"
length="8012682"
sparkle:version="39"
sparkle:shortVersionString="7.2"
/>
</item>
<item>
<title>Snapshot 36 released</title>
<description><![CDATA[
<h1>MacVim snapshot 36 released</h1>
<p> This snapshot fixes a problem with dropped characters that was introduced with snapshot 35. Other changes since snapshot 35:
<ul>
<li> More help file updates </li>
<li> Fixed memory leak (Jonathon Mah) </li>
<li> Tool tips for truncated tab labels (Jonathon Mah) </li>
<li> Support drag and drop on tabs and on tabline (Jonathon Mah) </li>
<li> Modifier key can be used as Esc (useful for turning Caps Lock into Esc, see ":h macvim-esc") </li>
<li> Added "Find & Replace" dialog box (Cmd-f) </li>
</ul>
</p>
]]></description>
<pubDate>Sat, 04 Oct 2008 18:38 CET</pubDate>
<enclosure type="application/octet-stream"
url="http://newmacvim.muskokamug.org/mirror/files/MacVim-snapshot-36.tbz"
length="8005820"
sparkle:version="36"
sparkle:shortVersionString="7.2"
/>
</item>
<item>
<title>Snapshot 35 released</title>
<description><![CDATA[
<h1>MacVim snapshot 35 released</h1>
<p> With this snapshot I have focused on making MacVim faster, fixing bugs, and updating the documentation. As a result MacVim now feels snappier, flickers less, takes less time to startup from Terminal, and in some cases there are tremendous speed increases. </p>
<p> Here is a summary of the changes since snapshot 34:
<ul>
<li> Faster startup times </li>
<li> Overall faster drawing </li>
<li> Quicker response to key presses </li>
<li> Fix bug where key presses were ignored when mouse was moved simultaneously </li>
<li> Update ":h macvim" docs </li>
<li> Add mvim:// URL handler support (Nico Weber) </li>
<li> The VimLeave autocommand works with :maca (see ":h macvim-hints") </li>
<li> Multiple files opened from Finder are sorted </li>
<li> Don't shift new windows downwards if they are vertically maximized </li>
<li> Add option to hide MacVim when last window closes </li>
<li> The "Save changes" dialog conforms to the Apple HIG (works with Cmd-D) </li>
<li> Fix problems with 'fullscreen' and :mksession (Nico Weber) </li>
<li> Cmd-e copies selection to Find Pasteboard without searching </li>
<li> Fix bug with blurry text in full-screen with ATSUI (Jjgod Jiang) </li>
<li> Cmd-. can be used to interrupt Vim (and to exit insert mode) </li>
<li> Add "New Document Here" system service (Ron Olson) </li>
<li> Simplify system services menu (honors the "Open files..." pref) </li>
<li> Full-screen background color is updated immediately when 'fuopt' changes </li>
<li> Cursor no longer escapes the command line on Cmd-=/Cmd-- </li>
<li> Add Input Manager support to ATSUI renderer (Kaoru Yoshida) </li>
<li> Use latest Vim source code and runtime files </li>
<li> Minor bug fixes </li>
</ul>
</p>
]]></description>
<pubDate>Fri, 26 Sep 2008 20:29 CET</pubDate>
<enclosure type="application/octet-stream"
url="http://newmacvim.muskokamug.org/mirror/files/MacVim-snapshot-35.tbz"
length="7986836"
sparkle:version="35"
sparkle:shortVersionString="7.2"
/>
</item>
<item>
<title>Snapshot 34 released</title>
<description><![CDATA[
<h1>MacVim snapshot 34 released</h1>
<p> Notice that there are now two prebuilt binaries of MacVim: a stable build and the snapshot build. The snapshot build will be updated fairly often whereas the stable build will not. If you want to use the stable build you will have to download it manually from <a href="http://code.google.com/p/macvim">http://code.google.com/p/macvim</a>.</p>
<p> This snapshot is based on the recently released Vim 7.2 and it contains some new features and bug fixes. Here's a partial list of changes since snapshot 33:
<ul>
<li> More options on how new files should open (in tabs/splits/etc.): Open the preferences to check this out. </li>
<li> Quickstart: With this feature enabled new windows open instantaneously (but _not_ if you use the 'mvim' script). It is disabled by default so go to the Advanced preferences to enable it (and be sure to read the "disclaimer"...note that any changes to ~/.vim or its subdirectories are automatically detected on Leopard). </li>
<li> The ATSUI renderer has received a few bug fixes and it now includes mouse support (it can be enabled in the Advanced prefs). (bug fixes by Jjgod Jiang) </li>
<li> Some of the old toolbar icons have been resurrected. </li>
<li> The current directory is handled more consistently: New windows always have the user's home directory set as current. Opening a file in the Finder results in the current directory being set to the directory the file is in (unless the file opened in a window with other files already open). </li>
<li> Windows opened from the Dock menu are in focus. </li>
<li> Menu item to toggle the Plug-in drawer (Matt Tolton). </li>
<li> Now possible to set 'linespace' in [g]vimrc. </li>
<li> Help file cleanup (Michael Wookey). </li>
<li> Problems with ptys on Leopard fixed (Ben Schmidt). </li>
<li> (Hopefully) no more annoying "dropping incoming DO message ..." warnings. </li>
<li> Scroll wheel (track pad) should behave better with fast machines (Issue 100) </li>
<li> Various bug fixes...
</ul>
</p>
]]></description>
<pubDate>Sat, 16 Aug 2008 16:59 CET</pubDate>
<enclosure type="application/octet-stream"
url="http://newmacvim.muskokamug.org/mirror/files/MacVim-snapshot-34.tbz"
length="7959893"
sparkle:version="34"
sparkle:shortVersionString="7.2"
/>
</item>
<item>
<title>Snapshot 33 released</title>
<description><![CDATA[
<h1>MacVim snapshot 33 released</h1>
<p> This snapshot includes contributions from three new MacVim developers: Kyle Lippincott has added support for proxy icons, Matt Tolton has implemented a Plug-In architecture, and Kaoru Yoshida has rewritten the Input Manager support. Let me just say that I find it very encouraging to get more help with this project! While we're on the topic of MacVim development; if you are interested in getting started with the source code you should take a look at the newly updated file "src/MacVim/README". I have also written some documentation on how to contribute with patches using Git, see <a href="http://code.google.com/p/macvim/wiki/Contributing">here</a>.
<p> If you want to get started with plug-in development you should take a look at the example plug-in (FileBrowser.tgz) that Matt posted to vim_mac (the thread is called "Initial Plugin Architecture patch"). I'm sure Matt will be happy to help out with any question you may have (as will I). </p>
<p> I think that the new Input Manager support is a big improvement, but we need feedback from more IM users to let us know exactly how well it works. Kaoru seems to be on top of fixing bugs as they are reported, so if you have any problems or comments please make yourself heard. </p>
<p> More changes since snapshot 32:
<ul>
<li> The file open dialog has a check-box to show hidden files (patch by Nico Weber) </li>
<li> Cmd-? now works </li>
<li> Partial printing support: Cmd-p opens up Preview.app (Nico Weber) </li>
<li> Uses Vim 7.2a BETA source code </li>
<li> Latest runtime files </li>
<li> Minor bug fixes (see <a href="http://repo.or.cz/w/MacVim.git">here</a>) </li>
</p>
]]></description>
<pubDate>Sat, 05 Jul 2008 20:14 CET</pubDate>
<enclosure type="application/octet-stream"
url="http://macvim.googlecode.com/files/MacVim-snapshot-33.tbz"
length="8467287"
sparkle:version="33"
sparkle:shortVersionString="7.1"
/>
</item>
<item>
<title>Snapshot 32 released</title>
<description><![CDATA[
<h1>MacVim snapshot 32 released</h1>
<p><em> This snapshot contains fixes for several severe bugs; I strongly suggest
that you update now! </em></p>
<p> Changes since snapshot 31:
<ul>
<li> Fix several bugs that caused MacVim to crash </li>
<li> Console dialogs work once again (set go+=c) </li>
<li> Background processes work (:! ... &) (fix by Ben Schmidt)</li>
<li> Ctrl-Shift can be used for modeless selection </li>
<li> No crashes with HTML plugin </li>
<li> Toolbar is a bit better at finding icons (this still needs some work)
</li>
<li> Latest Vim source code and runtime files merged </li>
</ul>
</p>
]]></description>
<pubDate>Fri, 22 Jun 2008 13:13 CET</pubDate>
<enclosure type="application/octet-stream"
url="http://macvim.googlecode.com/files/MacVim-snapshot-32.tbz"
length="8194915"
sparkle:version="32"
sparkle:shortVersionString="7.1"
/>
</item>
<item>
<title>Snapshot 31 released</title>
<description><![CDATA[
<h1>MacVim snapshot 31 released</h1>
<p> Changes since snapshot 30:
<ul>
<li> Fixed problems with menus on OS X 10.4 and a related crash. </li>
<li> Dialog box handling has been updated. This fixes a problem where the
"swap file warning" dialog would pop up before the informational text in
the editor window updated. Hopefully this will also cure various other
problems with dialogs (e.g. nothing happening when opening files from a
dialog box). </li>
<li> Added dock menu with "New Window" item. This is useful with "Spaces" on
OS X 10.5 since you can use this menu to open a new MacVim window on any
"space" when another editor window is already open. (Also, now there is
always a way to open a new window, even if the menus are customized,
or if "-u NONE" is used.) </li>
<li> I have started trying to fix "modeless selection" and it sort of works
on my machine, but I've had one report stating that its not quite
working so you mileage may vary. Make sure to let me know what works
and doesn't so that I can fix this properly. (Try selecting text from
the command line.) </li>
<li> The default font (DejaVu Sans Mono) has been updated to version 2.25.
</li>
<li> Latest Vim source code merged </li>
</ul>
</p>
]]></description>
<pubDate>Fri, 13 Jun 2008 16:00 CET</pubDate>
<enclosure type="application/octet-stream"
url="http://macvim.googlecode.com/files/MacVim-snapshot-31.tbz"
length="8182620"
sparkle:version="31"
sparkle:shortVersionString="7.1"
/>
</item>
<item>
<title>Snapshot 30 released</title>
<description><![CDATA[
<h1>MacVim snapshot 30 released</h1>
<p> Changes since snapshot 28:
<ul>
<li> copy&paste and other "Edit" menu items now work as expected with dialogs
(such as open/save). </li>
<li> some menus (such as the "Window" menu) has got some new items </li>
<li> general menu improvements when no editor window is open </li>
<li> ability to access some OS X default Cmd-keys even if menus are
completely altered (e.g. when starting with "-u NONE") </li>
<li> QuickLook works with .vim files (patch by Nico Weber) </li>
<li> insert mode cursor honors the 'rightleft' option </li>
<li> no more "freezes" during :shell </li>
<li> no beeping on Cmd-q </li>
<li> Cmd-w works in full-screen again </li>
<li> window dimensions properly restored when leaving full-screen when
"maxvert" is in 'fuoptions' </li>
<li> support for 'mousehide' option </li>
<li> latest vim patches and runtime files </li>
</ul>
</p>
<p> The only difference between snapshot 29 and 30 is that the former did not
handle window cycling very well with international keyboard layouts. </p>
]]></description>
<pubDate>Sun, 8 Jun 2008 16:43 CET</pubDate>
<enclosure type="application/octet-stream"
url="http://macvim.googlecode.com/files/MacVim-snapshot-30.tbz"
length="8137308"
sparkle:version="30"
sparkle:shortVersionString="7.1"
/>
</item>
<item>
<title>Snapshot 28 released</title>
<description><![CDATA[
<h1>MacVim snapshot 28 released</h1>
<p><em>The ":macmenukey" command is now deprecated. Please update your .gvimrc
file to use the ":macmenu" command instead (if you use ":macmenukey").</em></p>
<p> Changes since snapshot 27:
<ul>
<li> Added the ":macmenu" commmand (see ":h macmenu") and deprecated
":macmenukey"</li>
<li> Cmd-w now works even when mappings to &lt;-\&gt; are present </li>
<li> Added "File.Save All" menu item (Cmd-Alt-s) </li>
<li> The Logitech Control Center no longer causes any problems </li>
<li> "Edit" menu items now work better with open and save dialogs </li>
<li> The 'backspace' option now includes "indent,eol,start" by default </li>
<li> Open and save dialogs track the present working directory </li>
</ul>
</p>
]]></description>
<pubDate>Sun, 25 May 2008 19:40 CET</pubDate>
<enclosure type="application/octet-stream"
url="http://macvim.googlecode.com/files/MacVim-snapshot-28.tbz"
length="8124499"
sparkle:version="28"
sparkle:shortVersionString="7.1"
/>
</item>
<item>
<title>Snapshot 27 released</title>
<description><![CDATA[
<h1>MacVim snapshot 27 released</h1>
<p> This is the first snapshot compiled on the new Mac I bought with money
donated from MacVim users! There were problems with compiling universal
binaries with Ruby and Perl support on PPC/Tiger so I was hoping to be able
to include these now that I have Intel/Leopard. The good news is that Ruby
support is now included, but Perl still is problematic and I had to drop
TCL support. I will try to get these working in a future snapshot.
</p>
<p> Here is the list of changes since snapshot 26:
<ul>
<li> 'fuoptions' now support setting the background color while in
full-screen mode, check ":h 'fuopt'" (patch by Enno Lübbers) </li>
<li> &lt;D-w&gt; shows confirmation dialog when buffer is modified </li>
<li> setting 'antialias' from gvimrc now works </li>
<li> zooming a window no longer causes it to move downwards </li>
<li> the File menu now contains a "Recent Files" submenu; note that only
files opened from Finder or with the ":browse" command are added to this
list, and not files opened with e.g. ":e" (patch by Nico Weber) </li>
<li> includes latest Vim patches and runtime files </li>
</ul>
</p>
]]></description>
<pubDate>Mon, 12 May 2008 22:05 CET</pubDate>
<enclosure type="application/octet-stream"
url="http://macvim.googlecode.com/files/MacVim-snapshot-27-fixed.tbz"
length="8102568"
sparkle:version="27"
sparkle:shortVersionString="7.1"
/>
</item>
<item>
<title>Snapshot 26 released</title>
<description><![CDATA[
<h1>MacVim snapshot 26 released</h1>
<p> This snapshot contains a fix to the bug which caused the first window to
open in the wrong position as well as an initial version of the new MacVim
icon. </p>
]]></description>
<pubDate>Fri, 11 Apr 2008 20:37 CET</pubDate>
<enclosure type="application/octet-stream"
url="http://macvim.googlecode.com/files/MacVim-snapshot-26.tbz"
length="8147362"
sparkle:version="26"
sparkle:shortVersionString="7.1"
/>
</item>
<item>
<title>Snapshot 25 released</title>
<description><![CDATA[
<h1>MacVim snapshot 25 released</h1>
<p> This snapshot adds support for two new options: 'antialias' and
'fuoptions'. The former lets you turn text antialiasing on or off (it's
on by default), the latter can be used to make the view maximize when
full-screen is entered. See the built-in help for more information (:h
'anti' and :h 'fuopt'). </p>
<p> Another minor addition is that &lt;C-c&gt; and &lt;C-v&gt; work with
block-wise selections (do note that &lt;C-v&gt; behaves like "P", not "p").
Also, &lt;D-w&gt; now works in ex-mode and in a command-line window. </p>
<p> Here is the list of changes since snapshot 24:
<ul>
<li> support 'antialias' option (Jjgod Jiang) </li>
<li> add option 'fuoptions' to control resizing when full-screen is entered
(Nico Weber) </li>
<li> fixed bug where transparency setting was lost after leaving full-screen
(Nico Weber) </li>
<li> help menu contains MacVim help and website link </li>
<li> &lt;D-w&gt; now works in ex-mode and in command-line window </li>
<li> :macaction command supports command-line completion (Nico Weber) </li>
<li> copy/paste respects block selections (requested by George Harker) </li>
<li> window no longer cascades from preferences panel </li>
</ul>
</p>
]]></description>
<pubDate>Fri, 06 Apr 2008 19:11 CET</pubDate>
<enclosure type="application/octet-stream"
url="http://macvim.googlecode.com/files/MacVim-snapshot-25.tbz"
length="8042440"
sparkle:version="25"
sparkle:shortVersionString="7.1"
/>
</item>
<item>
<title>Snapshot 24 released</title>
<description><![CDATA[
<h1>MacVim snapshot 24 released</h1>
<p><em> The input manager bundled with snapshot 23 contained a bug which could
lead to other apps crashing on startup. If you have installed the input
manager, then you are strongly advised to update now and install the new input
manager (via the Integration preference pane). </em></p>
<p> Changes since snapshot 23:
<ul>
<li> The mouse cursor has higher contrast in insert mode (when bg=dark). </li>
<li> The layout of the Integration preference pane has been updated. </li>
</ul>
</p>
]]></description>
<pubDate>Fri, 14 Mar 2008 20:44 CET</pubDate>
<enclosure type="application/octet-stream"
url="http://macvim.googlecode.com/files/MacVim-snapshot-24.tbz"
length="8036815"
sparkle:version="24"
sparkle:shortVersionString="7.1"
/>
</item>
<item>
<title>Snapshot 23 released</title>
<description><![CDATA[
<h1>MacVim snapshot 23 released</h1>
Changes since snapshot 22:
<ul>
<li> The preferences panel has been updated with an "Integration pane". This
can be used to easily install (and uninstall) the "Edit in ODBEditor"
input manager. The input manager enables you to use MacVim to edit text
in any Cocoa text field (e.g. you can use MacVim to edit emails in Mail).
Please read the warning on the Integration pane before installing the
input manager. (Patch by Nico Weber.) </li>
<li> The "Login Shell" preference has been updated so it should now work with
most shells. This option ensures that environment variables (e.g. $PATH)
are set properly. You should enable it if you ever need to issue shell
commands from within MacVim. (Patch by Ben Schmidt.) </li>
<li> Added MMZoomBoth user default. Enable this if you prefer the window to
maximize in both directions when you press the green "maximize button"
(hold down Cmd to temporarily restrict resizing to the vertical direction
only). (Requested by Brian McKee.) </li>
<li> Added Cmd-Ctrl-z as key equivalent for "Window->Zoom" (this is the same
key equivalent as in iTunes) </li>
<li> The Vim runtime files have been updated to the latest version </li>
<li> MacVim recognizes files with .patch and .diff extension </li>
<li> The mouse cursor in insert mode has higher contrast (when used with dark
backgrounds). (Requested by Enno et al.) </li>
<li> Line numbers (:h 'number') are brighter when bakground=dark. (Requested
by Ted Pavlic) </li>
</ul>
<p>
Like MacVim? Go to <a href="http://code.google.com/p/macvim/">
http://code.google.com/p/macvim/</a> to see how you can show your
support.
</p>
]]></description>
<pubDate>Sun, 9 Mar 2008 16:43 CET</pubDate>
<enclosure type="application/octet-stream"
url="http://macvim.googlecode.com/files/MacVim-snapshot-23.tbz"
length="8037899"
sparkle:version="23"
sparkle:shortVersionString="7.1"
/>
</item>
<item>
<title>Snapshot 22 released</title>
<description><![CDATA[
<h1>MacVim snapshot 22 released</h1>
<p><em>This snapshot replaces the broken snapshot 21. If you installed build 21
then please update immediately.</em></p>
<p>Changes since snapshot 20:</p>
<ul>
<li>Fix forking bug which caused snapshot 21 to lock up OS X</li>
<li>The macvim color scheme changed so that line numbers look better when
the background is dark (enable line numbers with :set number; set dark
background with :set bg=dark)</li>
<li>Improved support for Voice Over (enable with &lt;D-F5&gt;)</li>
<li>System bell support (see :h 'vb' on how to turn it off)</li>
<li>MacVim no longer associates to .plist and .dict since these may well be
in binary format</li>
<li>Added Find Next &lt;D-g&gt;, Find Previous &lt;D-G&gt; and Use Selection
for Find &lt;D-e&gt; menu items</li>
<li>Track pad scrolling is now force sensitive</li>
<li>Added help section on preferences</li>
<li>Preferences panel updated (also no longer hides when MacVim loses focus)
</li>
</ul>
<p>The most exciting new addition in this snapshot is support for &lt;D-g&gt;.
It repeats the last search you made in any other application (that supports the
Find Pasteboard).</p>
<p>This is very useful if you have several windows open in MacVim...try
searching for something in one window (using "/"), then switching to another
window and hitting &lt;D-g&gt; for an example (after having pressed &lt;D-g&gt;
once you can of course use "n" to repeat the search).</p>
]]></description>
<pubDate>Wed, 13 Feb 2008 19:36 CET</pubDate>
<enclosure type="application/octet-stream"
url="http://macvim.googlecode.com/files/MacVim-snapshot-22.tbz"
length="7812907"
sparkle:version="22"
sparkle:shortVersionString="7.1"
/>
</item>
<item>
<title>Snapshot 20 released</title>
<description><![CDATA[
<h1>MacVim snapshot 20 released</h1>
<ul>
<li>Automatic updates via Sparkle (Nico Weber)</li>
<li>Preferences panel</li>
<li>Fix ^C^W bug (Issue 48)</li>
<li>Make sure window is ordered front when new files are opened</li>
<li>Warn when quitting with multiple tabs or windows open</li>
<li>&lt;D-w&gt; can now be used to close dialogs (such as the About dialog)</li>
</ul>
]]></description>
<pubDate>Sun, 03 Feb 2008 16:39 CET</pubDate>
<enclosure type="application/octet-stream"
url="http://macvim.googlecode.com/files/MacVim-snapshot-20.tbz"
length="7805678"
sparkle:version="20"
sparkle:shortVersionString="snapshot 20"
/>
</item>
</channel>
</rss>
+1 -1
View File
@@ -303,7 +303,7 @@ DIRSLASH = \\
endif
endif
CC := $(CROSS_COMPILE)gcc
WINDRES := $(CROSS_COMPILE)windres
WINDRES := $(CROSS_COMPILE)windres --preprocessor="$(CC) -E -xc" -DRC_INVOKED
#>>>>> end of choices
###########################################################################
+6 -5
View File
@@ -1292,9 +1292,12 @@ do_buffer(action, start, dir, count, forceit)
/* Go to the other buffer. */
set_curbuf(buf, action);
#if defined(FEAT_LISTCMDS) && defined(FEAT_SCROLLBIND)
#if defined(FEAT_LISTCMDS) \
&& (defined(FEAT_SCROLLBIND) || defined(FEAT_CURSORBIND))
if (action == DOBUF_SPLIT)
curwin->w_p_scb = FALSE; /* reset 'scrollbind' */
{
RESET_BINDING(curwin); /* reset 'scrollbind' and 'cursorbind' */
}
#endif
#if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL)
@@ -1921,9 +1924,7 @@ buflist_getfile(n, lnum, options, forceit)
tabpage_new();
else if (win_split(0, 0) == FAIL) /* Open in a new window */
return FAIL;
# ifdef FEAT_SCROLLBIND
curwin->w_p_scb = FALSE;
# endif
RESET_BINDING(curwin);
}
}
#endif
+5 -6
View File
@@ -1127,11 +1127,13 @@ diff_win_options(wp, addbuf)
# endif
wp->w_p_diff = TRUE;
/* Use 'scrollbind' and 'cursorbind' when available */
#ifdef FEAT_SCROLLBIND
wp->w_p_scb = TRUE;
#endif
#ifdef FEAT_CURSORBIND
/* Use cursorbind if it's available */
wp->w_p_crb = TRUE;
#endif
wp->w_p_scb = TRUE;
wp->w_p_wrap = FALSE;
# ifdef FEAT_FOLDING
curwin = wp;
@@ -1177,10 +1179,7 @@ ex_diffoff(eap)
{
/* Set 'diff', 'scrollbind' off and 'wrap' on. */
wp->w_p_diff = FALSE;
#ifdef FEAT_CURSORBIND
wp->w_p_crb = FALSE;
#endif
wp->w_p_scb = FALSE;
RESET_BINDING(wp);
wp->w_p_wrap = TRUE;
#ifdef FEAT_FOLDING
curwin = wp;
+16 -1
View File
@@ -1123,6 +1123,15 @@ doESCkey:
case K_MOUSERIGHT: /* Scroll wheel right */
ins_mousescroll(MSCR_RIGHT);
break;
# ifdef FEAT_GUI_MACVIM
/* Gestures are ignored */
case K_SWIPELEFT:
case K_SWIPERIGHT:
case K_SWIPEUP:
case K_SWIPEDOWN:
break;
# endif
#endif
#ifdef FEAT_GUI_TABLINE
case K_TABLINE:
@@ -1134,6 +1143,7 @@ doESCkey:
case K_IGNORE: /* Something mapped to nothing */
break;
#ifdef FEAT_AUTOCMD
case K_CURSORHOLD: /* Didn't type something for a while. */
apply_autocmds(EVENT_CURSORHOLDI, NULL, NULL, FALSE, curbuf);
@@ -3509,7 +3519,12 @@ ins_compl_prep(c)
/* Ignore end of Select mode mapping and mouse scroll buttons. */
if (c == K_SELECT || c == K_MOUSEDOWN || c == K_MOUSEUP
|| c == K_MOUSELEFT || c == K_MOUSERIGHT)
|| c == K_MOUSELEFT || c == K_MOUSERIGHT
# ifdef FEAT_GUI_MACVIM
|| c == K_SWIPELEFT || c == K_SWIPERIGHT || c == K_SWIPEUP
|| c == K_SWIPEDOWN
# endif
)
return retval;
/* Set "compl_get_longest" when finding the first matches. */
+10 -2
View File
@@ -7076,7 +7076,7 @@ dict_add_nr_str(d, key, nr, str)
}
/*
* Add a list entry to dictionary "d".
* Add a list entry to dictionary "d".
* Returns FAIL when out of memory and when key already exists.
*/
int
@@ -7098,6 +7098,7 @@ dict_add_list(d, key, list)
dictitem_free(item);
return FAIL;
}
++list->lv_refcount;
return OK;
}
@@ -10951,7 +10952,14 @@ f_getchar(argvars, rettv)
|| n == K_MOUSELEFT
|| n == K_MOUSERIGHT
|| n == K_MOUSEDOWN
|| n == K_MOUSEUP)
|| n == K_MOUSEUP
# ifdef FEAT_GUI_MACVIM
|| n == K_SWIPELEFT
|| n == K_SWIPERIGHT
|| n == K_SWIPEUP
|| n == K_SWIPEDOWN
# endif
)
{
int row = mouse_row;
int col = mouse_col;
+3 -6
View File
@@ -3498,9 +3498,7 @@ do_ecmd(fnum, ffname, sfname, eap, newlnum, flags, oldwin)
curbuf->b_p_bin = FALSE; /* reset 'bin' before reading file */
curwin->w_p_nu = 0; /* no line numbers */
curwin->w_p_rnu = 0; /* no relative line numbers */
#ifdef FEAT_SCROLLBIND
curwin->w_p_scb = FALSE; /* no scroll binding */
#endif
RESET_BINDING(curwin); /* no scroll or cursor binding */
#ifdef FEAT_ARABIC
curwin->w_p_arab = FALSE; /* no arabic mode */
#endif
@@ -5471,9 +5469,8 @@ prepare_tagpreview(undo_sync)
return FALSE;
curwin->w_p_pvw = TRUE;
curwin->w_p_wfh = TRUE;
# ifdef FEAT_SCROLLBIND
curwin->w_p_scb = FALSE; /* don't take over 'scrollbind' */
# endif
RESET_BINDING(curwin); /* don't take over 'scrollbind'
and 'cursorbind' */
# ifdef FEAT_DIFF
curwin->w_p_diff = FALSE; /* no 'diff' */
# endif
+1 -3
View File
@@ -2238,9 +2238,7 @@ do_argfile(eap, argn)
{
if (win_split(0, 0) == FAIL)
return;
# ifdef FEAT_SCROLLBIND
curwin->w_p_scb = FALSE;
# endif
RESET_BINDING(curwin);
}
else
#endif
+6 -5
View File
@@ -3472,7 +3472,8 @@ set_one_cmd_context(xp, buff)
case CMD_find:
case CMD_sfind:
case CMD_tabfind:
xp->xp_context = EXPAND_FILES_IN_PATH;
if (xp->xp_context == EXPAND_FILES)
xp->xp_context = EXPAND_FILES_IN_PATH;
break;
case CMD_cd:
case CMD_chdir:
@@ -6916,9 +6917,7 @@ handle_drop(filec, filev, split)
# ifdef FEAT_WINDOWS
if (win_split(0, 0) == FAIL)
return;
# ifdef FEAT_SCROLLBIND
curwin->w_p_scb = FALSE;
# endif
RESET_BINDING(curwin);
/* When splitting the window, create a new alist. Otherwise the
* existing one is overwritten. */
@@ -7318,7 +7317,9 @@ ex_splitview(eap)
|| cmdmod.browse
# endif
)
curwin->w_p_scb = FALSE;
{
RESET_BINDING(curwin);
}
else
do_check_scrollbind(FALSE);
# endif
+33 -11
View File
@@ -1340,6 +1340,14 @@ getcmdline(firstc, count, indent)
case K_X2RELEASE:
goto cmdline_not_changed;
# ifdef FEAT_GUI_MACVIM
/* Gestures are ignored */
case K_SWIPELEFT:
case K_SWIPERIGHT:
case K_SWIPEUP:
case K_SWIPEDOWN:
goto cmdline_not_changed;
# endif
#endif /* FEAT_MOUSE */
#ifdef FEAT_GUI
@@ -2342,15 +2350,31 @@ redraw:
windgoto(msg_row, msg_col);
pend = (char_u *)(line_ga.ga_data) + line_ga.ga_len;
/* we are done when a NL is entered, but not when it comes after a
* backslash */
if (line_ga.ga_len > 0 && pend[-1] == '\n'
&& (line_ga.ga_len <= 1 || pend[-2] != '\\'))
/* We are done when a NL is entered, but not when it comes after an
* odd number of backslashes, that results in a NUL. */
if (line_ga.ga_len > 0 && pend[-1] == '\n')
{
--line_ga.ga_len;
--pend;
*pend = NUL;
break;
int bcount = 0;
while (line_ga.ga_len - 2 >= bcount && pend[-2 - bcount] == '\\')
++bcount;
if (bcount > 0)
{
/* Halve the number of backslashes: "\NL" -> "NUL", "\\NL" ->
* "\NL", etc. */
line_ga.ga_len -= (bcount + 1) / 2;
pend -= (bcount + 1) / 2;
pend[-1] = '\n';
}
if ((bcount & 1) == 0)
{
--line_ga.ga_len;
--pend;
*pend = NUL;
break;
}
}
}
@@ -6153,9 +6177,7 @@ ex_window()
curwin->w_p_rl = cmdmsg_rl;
cmdmsg_rl = FALSE;
# endif
# ifdef FEAT_SCROLLBIND
curwin->w_p_scb = FALSE;
# endif
RESET_BINDING(curwin);
# ifdef FEAT_AUTOCMD
/* Do execute autocommands for setting the filetype (load syntax). */
+1 -1
View File
@@ -2400,7 +2400,7 @@ gui_outstr_nowrap(s, len, flags, fg, bg, back)
if (draw_sign)
/* Draw the sign on top of the spaces. */
gui_mch_drawsign(gui.row, col, gui.highlight_mask);
# if defined(FEAT_NETBEANS_INTG) && (defined(FEAT_GUI_MOTIF) \
# if defined(FEAT_NETBEANS_INTG) && (defined(FEAT_GUI_X11) \
|| defined(FEAT_GUI_GTK) || defined(FEAT_GUI_W32))
if (multi_sign)
netbeans_draw_multisign_indicator(gui.row);
+13 -13
View File
@@ -1480,7 +1480,7 @@ GetFontPanelSelection(char_u *outName)
*
* Returns the index inside the menu wher
*/
short /* Shoulde we return MenuItemIndex? */
short /* Should we return MenuItemIndex? */
gui_mac_get_menu_item_index(vimmenu_T *pMenu)
{
short index;
@@ -1823,7 +1823,7 @@ gui_mac_doInZoomClick(EventRecord *theEvent, WindowPtr whichWindow)
p.h += gui.scrollbar_width;
if (gui.which_scrollbars[SBAR_RIGHT])
p.h += gui.scrollbar_width;
/* ideal height is as heigh as we can get */
/* ideal height is as high as we can get */
p.v = 15 * 1024;
thePart = IsWindowInStandardState(whichWindow, &p, &r)
@@ -4481,7 +4481,7 @@ gui_mch_wait_for_chars(int wtime)
* event arrives. No need to check for input_buf_full because we are
* returning as soon as it contains a single char.
*/
/* TODO: reduce wtime accordinly??? */
/* TODO: reduce wtime accordingly??? */
if (wtime > -1)
sleeppyTick = 60 * wtime / 1000;
else
@@ -5723,13 +5723,13 @@ gui_mch_dialog(
iconDITL = GetResource('DITL', 131);
switch (type)
{
case VIM_GENERIC: useIcon = kNoteIcon;
case VIM_ERROR: useIcon = kStopIcon;
case VIM_WARNING: useIcon = kCautionIcon;
case VIM_INFO: useIcon = kNoteIcon;
case VIM_QUESTION: useIcon = kNoteIcon;
default: useIcon = kStopIcon;
};
case VIM_GENERIC:
case VIM_INFO:
case VIM_QUESTION: useIcon = kNoteIcon; break;
case VIM_WARNING: useIcon = kCautionIcon; break;
case VIM_ERROR: useIcon = kStopIcon; break;
default: useIcon = kStopIcon;
}
AppendDITL(theDialog, iconDITL, overlayDITL);
ReleaseResource(iconDITL);
GetDialogItem(theDialog, iconItm.idx, &itemType, &itemHandle, &box);
@@ -5892,7 +5892,7 @@ gui_mch_dialog(
return itemHit;
/*
* Usefull thing which could be used
* Useful thing which could be used
* SetDialogTimeout(): Auto click a button after timeout
* SetDialogTracksCursor() : Get the I-beam cursor over input box
* MoveDialogItem(): Probably better than SetDialogItem
@@ -6100,7 +6100,7 @@ gui_mch_settitle(char_u *title, char_u *icon)
#endif
/*
* Transfered from os_mac.c for MacOS X using os_unix.c prep work
* Transferred from os_mac.c for MacOS X using os_unix.c prep work
*/
int
@@ -6543,7 +6543,7 @@ getTabLabel(tabpage_T *page)
static ControlRef dataBrowser = NULL;
// when the tabline is hidden, vim doesn't call update_tabline(). When
// the tabline is shown again, show_tabline() is called before upate_tabline(),
// the tabline is shown again, show_tabline() is called before update_tabline(),
// and because of this, the tab labels and vims internal tabs are out of sync
// for a very short time. to prevent inconsistent state, we store the labels
// of the tabs, not pointers to the tabs (which are invalid for a short time).
+1 -3
View File
@@ -1274,9 +1274,7 @@ cs_find_common(opt, pat, forceit, verbose, use_ll, cmdline)
{
win_split(postponed_split > 0 ? postponed_split : 0,
postponed_split_flags);
# ifdef FEAT_SCROLLBIND
curwin->w_p_scb = FALSE;
# endif
RESET_BINDING(curwin);
postponed_split = 0;
}
# endif
+23 -51
View File
@@ -34,6 +34,7 @@ Python_Release_Vim(void)
static PyObject *OutputWrite(PyObject *, PyObject *);
static PyObject *OutputWritelines(PyObject *, PyObject *);
/* Function to write a line, points to either msg() or emsg(). */
typedef void (*writefn)(char_u *);
static void writer(writefn fn, char_u *str, PyInt n);
@@ -122,52 +123,19 @@ OutputWritelines(PyObject *self, PyObject *args)
return Py_None;
}
static char_u *buffer = NULL;
static PyInt buffer_len = 0;
static PyInt buffer_size = 0;
/* Buffer IO, we write one whole line at a time. */
static garray_T io_ga = {0, 0, 1, 80, NULL};
static writefn old_fn = NULL;
static void
buffer_ensure(PyInt n)
{
PyInt new_size;
char_u *new_buffer;
if (n < buffer_size)
return;
new_size = buffer_size;
while (new_size < n)
new_size += 80;
if (new_size != buffer_size)
{
new_buffer = alloc((unsigned)new_size);
if (new_buffer == NULL)
return;
if (buffer)
{
memcpy(new_buffer, buffer, buffer_len);
vim_free(buffer);
}
buffer = new_buffer;
buffer_size = new_size;
}
}
static void
PythonIO_Flush(void)
{
if (old_fn && buffer_len)
if (old_fn != NULL && io_ga.ga_len > 0)
{
buffer[buffer_len] = 0;
old_fn(buffer);
((char_u *)io_ga.ga_data)[io_ga.ga_len] = NUL;
old_fn((char_u *)io_ga.ga_data);
}
buffer_len = 0;
io_ga.ga_len = 0;
}
static void
@@ -175,30 +143,34 @@ writer(writefn fn, char_u *str, PyInt n)
{
char_u *ptr;
if (fn != old_fn && old_fn != NULL)
/* Flush when switching output function. */
if (fn != old_fn)
PythonIO_Flush();
old_fn = fn;
/* Write each NL separated line. Text after the last NL is kept for
* writing later. */
while (n > 0 && (ptr = memchr(str, '\n', n)) != NULL)
{
PyInt len = ptr - str;
buffer_ensure(buffer_len + len + 1);
if (ga_grow(&io_ga, len + 1) == FAIL)
break;
memcpy(buffer + buffer_len, str, len);
buffer_len += len;
buffer[buffer_len] = 0;
fn(buffer);
mch_memmove(((char *)io_ga.ga_data) + io_ga.ga_len, str, (size_t)len);
((char *)io_ga.ga_data)[io_ga.ga_len + len] = NUL;
fn((char_u *)io_ga.ga_data);
str = ptr + 1;
n -= len + 1;
buffer_len = 0;
io_ga.ga_len = 0;
}
/* Put the remaining text into the buffer for later printing */
buffer_ensure(buffer_len + n + 1);
memcpy(buffer + buffer_len, str, n);
buffer_len += n;
/* Put the remaining text into io_ga for later printing. */
if (n > 0 && ga_grow(&io_ga, n + 1) == OK)
{
mch_memmove(((char *)io_ga.ga_data) + io_ga.ga_len, str, (size_t)n);
io_ga.ga_len += n;
}
}
/***************/
+30 -6
View File
@@ -4,6 +4,7 @@
*
* Ruby interface by Shugo Maeda
* with improvements by SegPhault (Ryan Paul)
* with improvements by Jon Maken
*
* Do ":help uganda" in Vim to read copying and usage conditions.
* Do ":help credits" in Vim to see a list of people who contributed.
@@ -26,12 +27,12 @@
# define RUBYEXTERN extern
#endif
#ifdef DYNAMIC_RUBY
/*
* This is tricky. In ruby.h there is (inline) function rb_class_of()
* definition. This function use these variables. But we want function to
* use dll_* variables.
*/
#ifdef DYNAMIC_RUBY
# define rb_cFalseClass (*dll_rb_cFalseClass)
# define rb_cFixnum (*dll_rb_cFixnum)
# define rb_cNilClass (*dll_rb_cNilClass)
@@ -46,8 +47,21 @@
*/
# define RUBY_EXPORT
# endif
#if !(defined(WIN32) || defined(_WIN64))
# include <dlfcn.h>
# define HANDLE void*
# define load_dll(n) dlopen((n), RTLD_LAZY|RTLD_GLOBAL)
# define symbol_from_dll dlsym
# define close_dll dlclose
#else
# define load_dll LoadLibrary
# define symbol_from_dll GetProcAddress
# define close_dll FreeLibrary
#endif
#endif /* ifdef DYNAMIC_RUBY */
/* suggested by Ariya Mizutani */
#if (_MSC_VER == 1200)
# undef _WIN32_WINNT
@@ -170,7 +184,6 @@ static void ruby_vim_init(void);
#define rb_obj_as_string dll_rb_obj_as_string
#define rb_obj_id dll_rb_obj_id
#define rb_raise dll_rb_raise
#define rb_str2cstr dll_rb_str2cstr
#define rb_str_cat dll_rb_str_cat
#define rb_str_concat dll_rb_str_concat
#define rb_str_new dll_rb_str_new
@@ -182,10 +195,13 @@ static void ruby_vim_init(void);
# define rb_str_new2 dll_rb_str_new2
#endif
#if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
# define rb_string_value dll_rb_string_value
# define rb_string_value_ptr dll_rb_string_value_ptr
# define rb_float_new dll_rb_float_new
# define rb_ary_new dll_rb_ary_new
# define rb_ary_push dll_rb_ary_push
#else
# define rb_str2cstr dll_rb_str2cstr
#endif
#ifdef RUBY19_OR_LATER
# define rb_errinfo dll_rb_errinfo
@@ -250,7 +266,11 @@ static VALUE (*dll_rb_obj_alloc) (VALUE);
static VALUE (*dll_rb_obj_as_string) (VALUE);
static VALUE (*dll_rb_obj_id) (VALUE);
static void (*dll_rb_raise) (VALUE, const char*, ...);
#if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
static VALUE (*dll_rb_string_value) (volatile VALUE*);
#else
static char *(*dll_rb_str2cstr) (VALUE,int*);
#endif
static VALUE (*dll_rb_str_cat) (VALUE, const char*, long);
static VALUE (*dll_rb_str_concat) (VALUE, VALUE);
static VALUE (*dll_rb_str_new) (const char*, long);
@@ -351,7 +371,11 @@ static struct
{"rb_obj_as_string", (RUBY_PROC*)&dll_rb_obj_as_string},
{"rb_obj_id", (RUBY_PROC*)&dll_rb_obj_id},
{"rb_raise", (RUBY_PROC*)&dll_rb_raise},
#if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
{"rb_string_value", (RUBY_PROC*)&dll_rb_string_value},
#else
{"rb_str2cstr", (RUBY_PROC*)&dll_rb_str2cstr},
#endif
{"rb_str_cat", (RUBY_PROC*)&dll_rb_str_cat},
{"rb_str_concat", (RUBY_PROC*)&dll_rb_str_concat},
{"rb_str_new", (RUBY_PROC*)&dll_rb_str_new},
@@ -403,7 +427,7 @@ end_dynamic_ruby()
{
if (hinstRuby)
{
FreeLibrary(hinstRuby);
close_dll(hinstRuby);
hinstRuby = 0;
}
}
@@ -420,7 +444,7 @@ ruby_runtime_link_init(char *libname, int verbose)
if (hinstRuby)
return OK;
hinstRuby = LoadLibrary(libname);
hinstRuby = load_dll(libname);
if (!hinstRuby)
{
if (verbose)
@@ -430,10 +454,10 @@ ruby_runtime_link_init(char *libname, int verbose)
for (i = 0; ruby_funcname_table[i].ptr; ++i)
{
if (!(*ruby_funcname_table[i].ptr = GetProcAddress(hinstRuby,
if (!(*ruby_funcname_table[i].ptr = symbol_from_dll(hinstRuby,
ruby_funcname_table[i].name)))
{
FreeLibrary(hinstRuby);
close_dll(hinstRuby);
hinstRuby = 0;
if (verbose)
EMSG2(_(e_loadfunc), ruby_funcname_table[i].name);
+14
View File
@@ -261,6 +261,13 @@ enum key_extra
, KE_NOP /* doesn't do something */
, KE_FOCUSGAINED /* focus gained */
, KE_FOCUSLOST /* focus lost */
#ifdef FEAT_GUI_MACVIM
, KE_SWIPELEFT /* Swipe trackpad left */
, KE_SWIPERIGHT /* Swipe trackpad right */
, KE_SWIPEUP /* Swipe trackpad up */
, KE_SWIPEDOWN /* Swipe trackpad down */
#endif
};
/*
@@ -459,6 +466,13 @@ enum key_extra
#define K_CURSORHOLD TERMCAP2KEY(KS_EXTRA, KE_CURSORHOLD)
#ifdef FEAT_GUI_MACVIM
# define K_SWIPELEFT TERMCAP2KEY(KS_EXTRA, KE_SWIPELEFT)
# define K_SWIPERIGHT TERMCAP2KEY(KS_EXTRA, KE_SWIPERIGHT)
# define K_SWIPEUP TERMCAP2KEY(KS_EXTRA, KE_SWIPEUP)
# define K_SWIPEDOWN TERMCAP2KEY(KS_EXTRA, KE_SWIPEDOWN)
#endif
/* Bits for modifier mask */
/* 0x01 cannot be used, because the modifier must be 0x02 or higher */
#define MOD_MASK_SHIFT 0x02
+14
View File
@@ -285,3 +285,17 @@
#else
# define DO_AUTOCHDIR
#endif
#if defined(FEAT_SCROLLBIND) && defined(FEAT_CURSORBIND)
# define RESET_BINDING(wp) (wp)->w_p_scb = FALSE; (wp)->w_p_crb = FALSE
#else
# if defined(FEAT_SCROLLBIND)
# define RESET_BINDING(wp) (wp)->w_p_scb = FALSE
# else
# if defined(FEAT_CURSORBIND)
# define RESET_BINDING(wp) (wp)->w_p_crb = FALSE
# else
# define RESET_BINDING(wp)
# endif
# endif
#endif
+1 -1
View File
@@ -989,7 +989,7 @@ main
if (netbeansArg != NULL && strncmp("-nb", netbeansArg, 3) == 0)
{
# ifdef FEAT_GUI
# if !defined(FEAT_GUI_MOTIF) && !defined(FEAT_GUI_GTK) \
# if !defined(FEAT_GUI_X11) && !defined(FEAT_GUI_GTK) \
&& !defined(FEAT_GUI_W32) && !defined(FEAT_GUI_MACVIM)
if (gui.in_use)
{
+8 -8
View File
@@ -5239,16 +5239,16 @@ im_set_position(row, col)
void
xim_set_preedit()
{
if (xic == NULL)
return;
xim_set_focus(TRUE);
XVaNestedList attr_list;
XRectangle spot_area;
XPoint over_spot;
int line_space;
if (xic == NULL)
return;
xim_set_focus(TRUE);
if (!xim_has_focus)
{
/* hide XIM cursor */
@@ -5626,12 +5626,12 @@ im_get_status()
void
xim_set_status_area()
{
if (xic == NULL)
return;
XVaNestedList preedit_list = 0, status_list = 0, list = 0;
XRectangle pre_area, status_area;
if (xic == NULL)
return;
if (input_style & XIMStatusArea)
{
if (input_style & XIMPreeditArea)
+4
View File
@@ -996,6 +996,10 @@ wait_return(redraw)
|| c == K_RIGHTMOUSE
|| c == K_X1MOUSE
|| c == K_X2MOUSE))
# ifdef FEAT_GUI_MACVIM
|| c == K_SWIPELEFT || c == K_SWIPERIGHT
|| c == K_SWIPEUP || c == K_SWIPEDOWN
# endif
#endif
);
ui_breakcheck();
+8 -1
View File
@@ -3152,6 +3152,12 @@ get_keystroke()
|| n == K_VER_SCROLLBAR
|| n == K_HOR_SCROLLBAR
# endif
# ifdef FEAT_GUI_MACVIM
|| K_SWIPELEFT
|| K_SWIPERIGHT
|| K_SWIPEUP
|| K_SWIPEDOWN
# endif
#endif
)
{
@@ -9317,7 +9323,8 @@ is_unique(maybe_unique, gap, i)
continue; /* it's different when it's shorter */
rival = other_paths[j] + other_path_len - candidate_len;
if (fnamecmp(maybe_unique, rival) == 0)
if (fnamecmp(maybe_unique, rival) == 0
&& (rival == other_paths[j] || vim_ispathsep(*(rival - 1))))
return FALSE; /* match */
}
+6
View File
@@ -2389,6 +2389,12 @@ static struct key_name_entry
{K_SNR, (char_u *)"SNR"},
#endif
{K_PLUG, (char_u *)"Plug"},
#ifdef FEAT_GUI_MACVIM
{K_SWIPELEFT, (char_u *)"SwipeLeft"},
{K_SWIPERIGHT, (char_u *)"SwipeRight"},
{K_SWIPEUP, (char_u *)"SwipeUp"},
{K_SWIPEDOWN, (char_u *)"SwipeDown"},
#endif
{0, NULL}
};
+18 -8
View File
@@ -87,7 +87,7 @@ static int getConnInfo __ARGS((char *file, char **host, char **port, char **pass
static void nb_init_graphics __ARGS((void));
static void coloncmd __ARGS((char *cmd, ...));
static void nb_set_curbuf __ARGS((buf_T *buf));
#ifdef FEAT_GUI_MOTIF
#ifdef FEAT_GUI_X11
static void messageFromNetbeans __ARGS((XtPointer, int *, XtInputId *));
#endif
#ifdef FEAT_GUI_GTK
@@ -112,7 +112,7 @@ typedef int NBSOCK;
static NBSOCK nbsock = -1; /* socket fd for Netbeans connection */
#define NETBEANS_OPEN (nbsock != -1)
#ifdef FEAT_GUI_MOTIF
#ifdef FEAT_GUI_X11
static XtInputId inputHandler = (XtInputId)NULL; /* Cookie for input */
#endif
#ifdef FEAT_GUI_GTK
@@ -147,7 +147,7 @@ netbeans_close(void)
netbeans_send_disconnect();
#ifdef FEAT_GUI_MOTIF
#ifdef FEAT_GUI_X11
if (inputHandler != (XtInputId)NULL)
{
XtRemoveInput(inputHandler);
@@ -722,7 +722,7 @@ netbeans_parse_messages(void)
/*
* Read a command from netbeans.
*/
#ifdef FEAT_GUI_MOTIF
#ifdef FEAT_GUI_X11
static void
messageFromNetbeans(XtPointer clientData UNUSED,
int *unused1 UNUSED,
@@ -2801,6 +2801,16 @@ ex_nbkey(eap)
ex_nbstart(eap)
exarg_T *eap;
{
#ifdef FEAT_GUI
# if !defined(FEAT_GUI_X11) && !defined(FEAT_GUI_GTK) \
&& !defined(FEAT_GUI_W32) && !defined(FEAT_GUI_MACVIM)
if (gui.in_use)
{
EMSG(_("E838: netbeans is not supported with this GUI"));
return;
}
# endif
#endif
netbeans_open((char *)eap->arg, FALSE);
}
@@ -2965,7 +2975,7 @@ netbeans_gui_register(void)
if (!NB_HAS_GUI || !NETBEANS_OPEN)
return;
# ifdef FEAT_GUI_MOTIF
# ifdef FEAT_GUI_X11
/* tell notifier we are interested in being called
* when there is input on the editor connection socket
*/
@@ -3061,7 +3071,7 @@ netbeans_send_disconnect()
}
}
#if defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_W32) || defined(PROTO)
#if defined(FEAT_GUI_X11) || defined(FEAT_GUI_W32) || defined(PROTO)
/*
* Tell netbeans that the window was moved or resized.
*/
@@ -3492,7 +3502,7 @@ netbeans_is_guarded(linenr_T top, linenr_T bot)
return FALSE;
}
#if defined(FEAT_GUI_MOTIF) || defined(PROTO)
#if defined(FEAT_GUI_X11) || defined(PROTO)
/*
* We have multiple signs to draw at the same location. Draw the
* multi-sign indicator instead. This is the Motif version.
@@ -3521,7 +3531,7 @@ netbeans_draw_multisign_indicator(int row)
XDrawPoint(gui.dpy, gui.wid, gui.text_gc, x+3, y++);
XDrawPoint(gui.dpy, gui.wid, gui.text_gc, x+2, y);
}
#endif /* FEAT_GUI_MOTIF */
#endif /* FEAT_GUI_X11 */
#if defined(FEAT_GUI_GTK) && !defined(PROTO)
/*
+3
View File
@@ -3868,6 +3868,9 @@ add_to_showcmd(c)
K_MOUSEDOWN, K_MOUSEUP, K_MOUSELEFT, K_MOUSERIGHT,
K_X1MOUSE, K_X1DRAG, K_X1RELEASE, K_X2MOUSE, K_X2DRAG, K_X2RELEASE,
K_CURSORHOLD,
# ifdef FEAT_GUI_MACVIM
K_SWIPELEFT, K_SWIPERIGHT, K_SWIPEUP, K_SWIPEDOWN,
# endif
0
};
#endif
+43 -17
View File
@@ -1123,6 +1123,30 @@ sigcont_handler SIGDEFARG(sigarg)
}
#endif
# if defined(FEAT_CLIPBOARD) && defined(FEAT_X11)
static void loose_clipboard __ARGS((void));
/*
* Called when Vim is going to sleep or execute a shell command.
* We can't respond to requests for the X selections. Lose them, otherwise
* other applications will hang. But first copy the text to cut buffer 0.
*/
static void
loose_clipboard()
{
if (clip_star.owned || clip_plus.owned)
{
x11_export_final_selection();
if (clip_star.owned)
clip_lose_selection(&clip_star);
if (clip_plus.owned)
clip_lose_selection(&clip_plus);
if (x11_display != NULL)
XFlush(x11_display);
}
}
#endif
/*
* If the machine has job control, use it to suspend the program,
* otherwise fake it by starting a new shell.
@@ -1137,19 +1161,7 @@ mch_suspend()
out_flush(); /* needed to disable mouse on some systems */
# if defined(FEAT_CLIPBOARD) && defined(FEAT_X11)
/* Since we are going to sleep, we can't respond to requests for the X
* selections. Lose them, otherwise other applications will hang. But
* first copy the text to cut buffer 0. */
if (clip_star.owned || clip_plus.owned)
{
x11_export_final_selection();
if (clip_star.owned)
clip_lose_selection(&clip_star);
if (clip_plus.owned)
clip_lose_selection(&clip_plus);
if (x11_display != NULL)
XFlush(x11_display);
}
loose_clipboard();
# endif
# if defined(_REENTRANT) && defined(SIGCONT)
@@ -3712,6 +3724,10 @@ mch_call_shell(cmd, options)
if (options & SHELL_COOKED)
settmode(TMODE_COOK); /* set to normal mode */
# if defined(FEAT_CLIPBOARD) && defined(FEAT_X11)
loose_clipboard();
# endif
# ifdef __EMX__
if (cmd == NULL)
x = system(""); /* this starts an interactive shell in emx */
@@ -3820,13 +3836,17 @@ mch_call_shell(cmd, options)
# endif
int did_settmode = FALSE; /* settmode(TMODE_RAW) called */
newcmd = vim_strsave(p_sh);
if (newcmd == NULL) /* out of memory */
goto error;
out_flush();
if (options & SHELL_COOKED)
settmode(TMODE_COOK); /* set to normal mode */
newcmd = vim_strsave(p_sh);
if (newcmd == NULL) /* out of memory */
goto error;
# if defined(FEAT_CLIPBOARD) && defined(FEAT_X11)
loose_clipboard();
# endif
/*
* Do this loop twice:
@@ -4154,7 +4174,9 @@ mch_call_shell(cmd, options)
# ifdef FEAT_GUI
if (pty_master_fd >= 0)
{
close(pty_slave_fd); /* close slave side of pty */
# ifndef FEAT_GUI_MACVIM
close(pty_slave_fd); /* close slave side of pty */
# endif
fromshell_fd = pty_master_fd;
toshell_fd = dup(pty_master_fd);
}
@@ -4627,6 +4649,10 @@ finished:
break;
}
#ifdef FEAT_GUI_MACVIM
if (pty_slave_fd >= 0)
close(pty_slave_fd); /* close slave side of pty */
#endif
/* Make sure the child that writes to the external program is
* dead. */
if (wpid > 0)
+35
View File
@@ -1615,6 +1615,35 @@ executable_exists(char *name)
return TRUE;
}
#if ((defined(__MINGW32__) || defined (__CYGWIN32__)) && \
__MSVCRT_VERSION__ >= 0x800) || (defined(_MSC_VER) && _MSC_VER >= 1400)
/*
* Bad parameter handler.
*
* Certain MS CRT functions will intentionally crash when passed invalid
* parameters to highlight possible security holes. Setting this function as
* the bad parameter handler will prevent the crash.
*
* In debug builds the parameters contain CRT information that might help track
* down the source of a problem, but in non-debug builds the arguments are all
* NULL/0. Debug builds will also produce assert dialogs from the CRT, it is
* worth allowing these to make debugging of issues easier.
*/
static void
bad_param_handler(const wchar_t *expression,
const wchar_t *function,
const wchar_t *file,
unsigned int line,
uintptr_t pReserved)
{
}
# define SET_INVALID_PARAM_HANDLER \
((void)_set_invalid_parameter_handler(bad_param_handler))
#else
# define SET_INVALID_PARAM_HANDLER
#endif
#ifdef FEAT_GUI_W32
/*
@@ -1627,6 +1656,9 @@ mch_init(void)
extern int _fmode;
#endif
/* Silently handle invalid parameters to CRT functions */
SET_INVALID_PARAM_HANDLER;
/* Let critical errors result in a failure, not in a dialog box. Required
* for the timestamp test to work on removed floppies. */
SetErrorMode(SEM_FAILCRITICALERRORS);
@@ -2103,6 +2135,9 @@ mch_init(void)
extern int _fmode;
#endif
/* Silently handle invalid parameters to CRT functions */
SET_INVALID_PARAM_HANDLER;
/* Let critical errors result in a failure, not in a dialog box. Required
* for the timestamp test to work on removed floppies. */
SetErrorMode(SEM_FAILCRITICALERRORS);
+3 -6
View File
@@ -1656,9 +1656,7 @@ win_found:
opened_window = TRUE; /* close it when fail */
p_swb = empty_option; /* don't split again */
swb_flags = 0;
# ifdef FEAT_SCROLLBIND
curwin->w_p_scb = FALSE;
# endif
RESET_BINDING(curwin);
if (ll_ref != NULL)
{
/* The new window should use the location list from the
@@ -2125,6 +2123,7 @@ qf_free(qi, idx)
--qi->qf_lists[idx].qf_count;
}
vim_free(qi->qf_lists[idx].qf_title);
qi->qf_lists[idx].qf_title = NULL;
}
/*
@@ -2333,9 +2332,7 @@ ex_copen(eap)
win_goto(lastwin);
if (win_split(height, WSP_BELOW | WSP_NEWLOC) == FAIL)
return; /* not enough room for window */
#ifdef FEAT_SCROLLBIND
curwin->w_p_scb = FALSE;
#endif
RESET_BINDING(curwin);
if (eap->cmdidx == CMD_lopen || eap->cmdidx == CMD_lwindow)
{
+1
View File
@@ -3538,6 +3538,7 @@ vim_regexec_both(line, col, tm)
regline = line;
reglnum = 0;
reg_toolong = FALSE;
/* Simplest case: Anchored match need be tried only once. */
if (prog->reganch)
+1 -3
View File
@@ -5084,9 +5084,7 @@ search_line:
if (win_split(0, 0) == FAIL)
#endif
break;
#ifdef FEAT_SCROLLBIND
curwin->w_p_scb = FALSE;
#endif
RESET_BINDING(curwin);
}
if (depth == -1)
{
+7 -5
View File
@@ -4679,7 +4679,7 @@ spell_free_all()
buf_T *buf;
char_u fname[MAXPATHL];
/* Go through all buffers and handle 'spelllang'. */ //<VN>
/* Go through all buffers and handle 'spelllang'. <VN> */
for (buf = firstbuf; buf != NULL; buf = buf->b_next)
ga_clear(&buf->b_s.b_langp);
@@ -4951,7 +4951,7 @@ typedef struct spellinfo_S
char_u *si_info; /* info text chars or NULL */
int si_region_count; /* number of regions supported (1 when there
are no regions) */
char_u si_region_name[16]; /* region names; used only if
char_u si_region_name[17]; /* region names; used only if
* si_region_count > 1) */
garray_T si_rep; /* list of fromto_T entries from REP lines */
@@ -9530,7 +9530,8 @@ init_spellfile()
if (aspath)
/* Use directory of an entry with path, e.g., for
* "/dir/lg.utf-8.spl" use "/dir". */
vim_strncpy(buf, curbuf->b_s.b_p_spl, lstart - curbuf->b_s.b_p_spl - 1);
vim_strncpy(buf, curbuf->b_s.b_p_spl,
lstart - curbuf->b_s.b_p_spl - 1);
else
/* Copy the path from 'runtimepath' to buf[]. */
copy_option_part(&rtp, buf, MAXPATHL, ",");
@@ -9539,13 +9540,14 @@ init_spellfile()
/* Use the first language name from 'spelllang' and the
* encoding used in the first loaded .spl file. */
if (aspath)
vim_strncpy(buf, curbuf->b_s.b_p_spl, lend - curbuf->b_s.b_p_spl);
vim_strncpy(buf, curbuf->b_s.b_p_spl,
lend - curbuf->b_s.b_p_spl);
else
{
/* Create the "spell" directory if it doesn't exist yet. */
l = (int)STRLEN(buf);
vim_snprintf((char *)buf + l, MAXPATHL - l, "/spell");
if (!filewritable(buf) != 2)
if (filewritable(buf) != 2)
vim_mkdir(buf, 0755);
l = (int)STRLEN(buf);
+2 -2
View File
@@ -7601,10 +7601,10 @@ do_highlight(line, forceit, init)
/*
* Copy characters from arg[] to buf[], translating <> codes.
*/
for (p = arg, off = 0; off < 100 && *p; )
for (p = arg, off = 0; off < 100 - 6 && *p; )
{
len = trans_special(&p, buf + off, FALSE);
if (len) /* recognized special char */
if (len > 0) /* recognized special char */
off += len;
else /* copy as normal char */
buf[off++] = *p++;
+1 -3
View File
@@ -3143,9 +3143,7 @@ jumpto_tag(lbuf, forceit, keep_help)
{
win_split(postponed_split > 0 ? postponed_split : 0,
postponed_split_flags);
# ifdef FEAT_SCROLLBIND
curwin->w_p_scb = FALSE;
# endif
RESET_BINDING(curwin);
}
#endif
+1 -1
View File
@@ -44,7 +44,7 @@ report:
$(SCRIPTS) $(SCRIPTS_GUI): $(VIMPROG)
clean:
-rm -rf *.out *.failed *.rej *.orig test.log tiny.vim small.vim mbyte.vim mzscheme.vim test.ok X* valgrind.pid* viminfo
-rm -rf *.out *.failed *.rej *.orig test.log tiny.vim small.vim mbyte.vim mzscheme.vim test.ok X* valgrind.* viminfo
test1.out: test1.in
-rm -f $*.failed tiny.vim small.vim mbyte.vim mzscheme.vim test.ok X* viminfo
+2 -2
View File
@@ -1,6 +1,6 @@
" Vim script language tests
" Author: Servatius Brandt <Servatius.Brandt@fujitsu-siemens.com>
" Last Change: 2006 Apr 28
" Last Change: 2010 Sep 29
"-------------------------------------------------------------------------------
" Test environment {{{1
@@ -8711,7 +8711,7 @@ try
endif
else
if cmd == "let"
let match = MATCH(0, thrmsg, 'E106', "Unknown variable")
let match = MATCH(0, thrmsg, 'E121', "Undefined variable")
elseif cmd == "unlet"
let match = MATCH(0, thrmsg, 'E108', "No such variable")
endif
+4
View File
@@ -3,6 +3,10 @@ Since this script is sourced we need to explicitly break changes up in
undo-able pieces. Do that by setting 'undolevels'.
Also tests :earlier and :later.
STARTTEST
:echo undotree().entries
ENDTEST
STARTTEST
:" Delete three characters and undo
Gx:set ul=100
+34 -13
View File
@@ -485,7 +485,7 @@ clip_own_selection(cbd)
*/
#ifdef FEAT_X11
/* Always own the selection, we might have lost it without being
* notified. */
* notified, e.g. during a ":sh" command. */
if (cbd->available)
{
int was_owned = cbd->owned;
@@ -1964,10 +1964,9 @@ x11_setup_atoms(dpy)
*/
static Boolean clip_x11_convert_selection_cb __ARGS((Widget, Atom *, Atom *, Atom *, XtPointer *, long_u *, int *));
static void clip_x11_lose_ownership_cb __ARGS((Widget, Atom *));
static void clip_x11_timestamp_cb __ARGS((Widget w, XtPointer n, XEvent *event, Boolean *cont));
static void clip_x11_request_selection_cb __ARGS((Widget, XtPointer, Atom *, Atom *, XtPointer, long_u *, int *));
/*
* Property callback to get a timestamp for XtOwnSelection.
@@ -2005,8 +2004,17 @@ clip_x11_timestamp_cb(w, n, event, cont)
return;
/* Get the selection, using the event timestamp. */
XtOwnSelection(w, xproperty->atom, xproperty->time,
clip_x11_convert_selection_cb, clip_x11_lose_ownership_cb, NULL);
if (XtOwnSelection(w, xproperty->atom, xproperty->time,
clip_x11_convert_selection_cb, clip_x11_lose_ownership_cb,
NULL) == OK)
{
/* Set the "owned" flag now, there may have been a call to
* lose_ownership_cb in between. */
if (xproperty->atom == clip_plus.sel_atom)
clip_plus.owned = TRUE;
else
clip_star.owned = TRUE;
}
}
void
@@ -2017,8 +2025,6 @@ x11_setup_selection(w)
/*(XtEventHandler)*/clip_x11_timestamp_cb, (XtPointer)NULL);
}
static void clip_x11_request_selection_cb __ARGS((Widget, XtPointer, Atom *, Atom *, XtPointer, long_u *, int *));
static void
clip_x11_request_selection_cb(w, success, sel_atom, type, value, length,
format)
@@ -2356,7 +2362,7 @@ clip_x11_lose_ownership_cb(w, sel_atom)
void
clip_x11_lose_selection(myShell, cbd)
Widget myShell;
Widget myShell;
VimClipboard *cbd;
{
XtDisownSelection(myShell, cbd->sel_atom, CurrentTime);
@@ -2364,14 +2370,29 @@ clip_x11_lose_selection(myShell, cbd)
int
clip_x11_own_selection(myShell, cbd)
Widget myShell;
Widget myShell;
VimClipboard *cbd;
{
/* Get the time by a zero-length append, clip_x11_timestamp_cb will be
* called with the current timestamp. */
if (!XChangeProperty(XtDisplay(myShell), XtWindow(myShell), cbd->sel_atom,
timestamp_atom, 32, PropModeAppend, NULL, 0))
/* When using the GUI we have proper timestamps, use the one of the last
* event. When in the console we don't get events (the terminal gets
* them), Get the time by a zero-length append, clip_x11_timestamp_cb will
* be called with the current timestamp. */
#ifdef FEAT_GUI
if (gui.in_use)
{
if (XtOwnSelection(myShell, cbd->sel_atom,
XtLastTimestampProcessed(XtDisplay(myShell)),
clip_x11_convert_selection_cb, clip_x11_lose_ownership_cb,
NULL) == False)
return FAIL;
}
else
#endif
{
if (!XChangeProperty(XtDisplay(myShell), XtWindow(myShell),
cbd->sel_atom, timestamp_atom, 32, PropModeAppend, NULL, 0))
return FAIL;
}
/* Flush is required in a terminal as nothing else is doing it. */
XFlush(XtDisplay(myShell));
return OK;
+38
View File
@@ -729,6 +729,44 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
19,
/**/
18,
/**/
17,
/**/
16,
/**/
15,
/**/
14,
/**/
13,
/**/
12,
/**/
11,
/**/
10,
/**/
9,
/**/
8,
/**/
7,
/**/
6,
/**/
5,
/**/
4,
/**/
3,
/**/
2,
/**/
1,
/**/
0
};
+4 -10
View File
@@ -525,9 +525,7 @@ wingotofile:
setpcmark();
if (win_split(0, 0) == OK)
{
# ifdef FEAT_SCROLLBIND
curwin->w_p_scb = FALSE;
# endif
RESET_BINDING(curwin);
(void)do_ecmd(0, ptr, NULL, NULL, ECMD_LASTL,
ECMD_HIDE, NULL);
if (nchar == 'F' && lnum >= 0)
@@ -3282,9 +3280,7 @@ win_alloc_aucmd_win()
if (aucmd_win != NULL)
{
win_init_some(aucmd_win, curwin);
# ifdef FEAT_SCROLLBIND
aucmd_win->w_p_scb = FALSE;
# endif
RESET_BINDING(aucmd_win);
new_frame(aucmd_win);
}
}
@@ -3325,10 +3321,8 @@ win_alloc_firstwin(oldwin)
/* First window in new tab page, initialize it from "oldwin". */
win_init(curwin, oldwin, 0);
# ifdef FEAT_SCROLLBIND
/* We don't want scroll-binding in the first window. */
curwin->w_p_scb = FALSE;
# endif
/* We don't want cursor- and scroll-binding in the first window. */
RESET_BINDING(curwin);
}
#endif
+2 -2
View File
@@ -55,8 +55,8 @@ Here are guidelines for removing Vim by hand:
skip the next step.
5. Delete the distributed files. If you followed the directions, these will
be located in a directory like "C:\vim\vim72". If the $VIM environment
variable is set, the directory will be $VIM\vim72. Delete the "vim72"
be located in a directory like "C:\vim\vim73". If the $VIM environment
variable is set, the directory will be $VIM\vim73. Delete the "vim73"
directory and all that is in it. Warning: If you changed any of the
distributed files, or added some of your own files, you might want to save
these first. But normally you would not have changed or added files here.