mirror of
https://github.com/zoriya/vim.git
synced 2025-12-29 02:18:22 +00:00
Compare commits
15 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d622beb3c3 | ||
|
|
a8fc79895e | ||
|
|
173c98550f | ||
|
|
3967692f9e | ||
|
|
417f5e7f11 | ||
|
|
f9b5ef8c88 | ||
|
|
3c9ab1c0e0 | ||
|
|
006590697c | ||
|
|
62b42181fb | ||
|
|
b05034a4ed | ||
|
|
d32a99a6d9 | ||
|
|
3368ea2152 | ||
|
|
2eea198564 | ||
|
|
24ea3babed | ||
|
|
60bb4e1b46 |
@@ -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>
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.
|
||||
|
||||
|
||||
@@ -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 14
|
||||
|
||||
|
||||
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
|
||||
@@ -6216,7 +6216,7 @@ toolbar Compiled with support for |gui-toolbar|.
|
||||
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.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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*
|
||||
|
||||
@@ -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 15
|
||||
|
||||
|
||||
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.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 Aug 20
|
||||
|
||||
|
||||
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.
|
||||
|
||||
@@ -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
|
||||
@@ -2817,13 +2817,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
|
||||
|
||||
@@ -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/
|
||||
|
||||
@@ -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*
|
||||
|
||||
@@ -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
|
||||
@@ -1091,11 +1091,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)
|
||||
@@ -1377,7 +1377,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
|
||||
|
||||
@@ -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*
|
||||
@@ -869,6 +869,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.
|
||||
|
||||
|
||||
@@ -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 14
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -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: >
|
||||
|
||||
@@ -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 21
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -30,23 +30,85 @@ 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.
|
||||
Patch for Mingw build file (Jon, 2010 Aug 22)
|
||||
Patch for loading different Ruby versions. (Jon, 2010 Aug 23)
|
||||
|
||||
Document cscope and sign completion for user commands. (Peter Odding, 2010 Aug
|
||||
19)
|
||||
|
||||
Problem with \NL in Ex script. (Ray Frish, 2010 Aug 10)
|
||||
|
||||
":e ~br<Tab>" does not complete to ":e /home/bram/". Crash too?
|
||||
|
||||
Runtime file for Falcon. (Steven Oliver, 2010 Sep 14)
|
||||
|
||||
Patch to fix error tags in help files. (Dominique Pelle, 2010 Aug 25)
|
||||
|
||||
Patch to fix :nbstart silently failing. (Xavier de Gaye, 2010 Aug 20)
|
||||
Another one for when Athena has netbeans support.
|
||||
|
||||
patch for 3 bugs reported by smatch. (Dominique Pelle, 2010 Aug 23)
|
||||
|
||||
'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 support netbeans under Athena. (Xavier de Gaye, 2010 Aug 20)
|
||||
|
||||
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 :grep docs. (Britton Kerin, 2010 Aug 31)
|
||||
|
||||
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)
|
||||
|
||||
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)
|
||||
|
||||
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 +117,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 +155,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)
|
||||
|
||||
@@ -162,6 +245,12 @@ line argument -noregister.
|
||||
When a mapping exists both for insert mode and lang-insert mode, the last one
|
||||
doesn't work. (Tyru, 2010 May 6) Or is this intended?
|
||||
|
||||
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)" ?
|
||||
|
||||
Still a problem with ":make" in the wrong directory. Caused by ":bufdo".
|
||||
(Ajit Thakkar, 2009 Jul 1) More information Jul 9, Jul 15.
|
||||
Caused by "doautoall syntaxset BufEnter *" in syntax/nosyntax.vim ?
|
||||
@@ -178,8 +267,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 +382,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 +514,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 +612,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 +665,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 +695,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 +827,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 +908,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 +1096,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 +1419,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 +1561,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 +1771,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 +2677,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 +2850,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 +2901,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 +3034,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 +3270,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 +3320,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 +3796,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 +3815,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 +4467,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 +4552,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 +4629,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 +4702,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).
|
||||
|
||||
@@ -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 14
|
||||
|
||||
|
||||
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.
|
||||
|
||||
@@ -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 14
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -610,7 +610,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
|
||||
|
||||
@@ -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 attribute’s 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'
|
||||
|
||||
@@ -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 9
|
||||
" Version: 0.21
|
||||
"
|
||||
" 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\s*([_a-zA-Z][_a-zA-Z0-9]*\>"he=s+7 contains=dVersionIdentifier
|
||||
syn match dVersion "[^.]\s*\<version\>"
|
||||
syn match dVersion "^\<version\>"
|
||||
|
||||
" 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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
###########################################################################
|
||||
|
||||
11
src/buffer.c
11
src/buffer.c
@@ -1288,9 +1288,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)
|
||||
@@ -1917,9 +1920,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
|
||||
|
||||
11
src/diff.c
11
src/diff.c
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -2165,9 +2165,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
|
||||
|
||||
@@ -6898,9 +6898,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. */
|
||||
@@ -7300,7 +7298,9 @@ ex_splitview(eap)
|
||||
|| cmdmod.browse
|
||||
# endif
|
||||
)
|
||||
curwin->w_p_scb = FALSE;
|
||||
{
|
||||
RESET_BINDING(curwin);
|
||||
}
|
||||
else
|
||||
do_check_scrollbind(FALSE);
|
||||
# endif
|
||||
|
||||
@@ -2342,15 +2342,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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6147,9 +6163,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). */
|
||||
|
||||
@@ -2352,7 +2352,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);
|
||||
|
||||
@@ -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).
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
/***************/
|
||||
|
||||
@@ -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
|
||||
@@ -166,7 +180,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
|
||||
@@ -178,10 +191,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
|
||||
@@ -246,7 +262,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);
|
||||
@@ -347,7 +367,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},
|
||||
@@ -399,7 +423,7 @@ end_dynamic_ruby()
|
||||
{
|
||||
if (hinstRuby)
|
||||
{
|
||||
FreeLibrary(hinstRuby);
|
||||
close_dll(hinstRuby);
|
||||
hinstRuby = 0;
|
||||
}
|
||||
}
|
||||
@@ -416,7 +440,7 @@ ruby_runtime_link_init(char *libname, int verbose)
|
||||
|
||||
if (hinstRuby)
|
||||
return OK;
|
||||
hinstRuby = LoadLibrary(libname);
|
||||
hinstRuby = load_dll(libname);
|
||||
if (!hinstRuby)
|
||||
{
|
||||
if (verbose)
|
||||
@@ -426,10 +450,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
src/macros.h
14
src/macros.h
@@ -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
|
||||
|
||||
@@ -940,7 +940,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)
|
||||
if (gui.in_use)
|
||||
{
|
||||
|
||||
16
src/mbyte.c
16
src/mbyte.c
@@ -5167,16 +5167,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 */
|
||||
@@ -5554,12 +5554,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)
|
||||
|
||||
@@ -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
|
||||
@@ -143,7 +143,7 @@ netbeans_close(void)
|
||||
|
||||
netbeans_send_disconnect();
|
||||
|
||||
#ifdef FEAT_GUI_MOTIF
|
||||
#ifdef FEAT_GUI_X11
|
||||
if (inputHandler != (XtInputId)NULL)
|
||||
{
|
||||
XtRemoveInput(inputHandler);
|
||||
@@ -700,7 +700,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,
|
||||
@@ -2937,7 +2937,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
|
||||
*/
|
||||
@@ -3027,7 +3027,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.
|
||||
*/
|
||||
@@ -3458,7 +3458,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.
|
||||
@@ -3487,7 +3487,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)
|
||||
/*
|
||||
|
||||
@@ -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)
|
||||
@@ -3706,6 +3718,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 */
|
||||
@@ -3814,13 +3830,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:
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
|
||||
@@ -2334,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)
|
||||
{
|
||||
|
||||
@@ -5075,9 +5075,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)
|
||||
{
|
||||
|
||||
12
src/spell.c
12
src/spell.c
@@ -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);
|
||||
|
||||
@@ -7600,10 +7600,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++;
|
||||
|
||||
@@ -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,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
|
||||
|
||||
47
src/ui.c
47
src/ui.c
@@ -469,7 +469,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;
|
||||
@@ -1944,10 +1944,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.
|
||||
@@ -1985,8 +1984,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
|
||||
@@ -1997,8 +2005,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)
|
||||
@@ -2336,7 +2342,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);
|
||||
@@ -2344,14 +2350,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;
|
||||
|
||||
@@ -714,6 +714,32 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
18,
|
||||
/**/
|
||||
17,
|
||||
/**/
|
||||
16,
|
||||
/**/
|
||||
15,
|
||||
/**/
|
||||
14,
|
||||
/**/
|
||||
13,
|
||||
/**/
|
||||
12,
|
||||
/**/
|
||||
11,
|
||||
/**/
|
||||
10,
|
||||
/**/
|
||||
9,
|
||||
/**/
|
||||
8,
|
||||
/**/
|
||||
7,
|
||||
/**/
|
||||
6,
|
||||
/**/
|
||||
5,
|
||||
/**/
|
||||
|
||||
14
src/window.c
14
src/window.c
@@ -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)
|
||||
@@ -3277,9 +3275,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);
|
||||
}
|
||||
}
|
||||
@@ -3320,10 +3316,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
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user