[vim-scripts] 02/11: Updated surround to 2.0

James McCoy jamessan at debian.org
Thu Aug 15 04:03:09 UTC 2013


This is an automated email from the git hooks/post-receive script.

jamessan pushed a commit to branch master
in repository vim-scripts.

commit afa38094e126c57e6403b49596ed2a7f266075a7
Author: James McCoy <jamessan at debian.org>
Date:   Thu Jan 17 21:54:54 2013 -0500

    Updated surround to 2.0
    
    Signed-off-by: James McCoy <jamessan at debian.org>
---
 debian/changelog              |    1 +
 debian/vim-scripts.status     |    2 +-
 doc/surround.txt              |   45 ++++-------
 html/index.html               |    2 +-
 html/plugin_surround.vim.html |  164 +++++++++++++++++++++--------------------
 plugin/surround.vim           |  160 ++++++++++++++--------------------------
 6 files changed, 158 insertions(+), 216 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index 154e918..989973d 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -3,6 +3,7 @@ vim-scripts (20121008) UNRELEASED; urgency=low
   * Updated addons:
     - supertab: Updated to 2.0  (Closes: #698168)
       + Remove patch disabledby-supertab.diff, merged upstream.
+    - surround: Updated to 2.0
 
  -- James McCoy <jamessan at debian.org>  Thu, 17 Jan 2013 21:32:43 -0500
 
diff --git a/debian/vim-scripts.status b/debian/vim-scripts.status
index 7882cc2..176325e 100644
--- a/debian/vim-scripts.status
+++ b/debian/vim-scripts.status
@@ -368,7 +368,7 @@ email:       vimNOSPAM at tpope.org
 license:     Vim's license [4], see below
 extras:      doc/surround.txt
 disabledby:  let loaded_surround = 1
-version:     1.90
+version:     2.0
 
 script_name: plugin/detectindent.vim
 addon:       detectindent
diff --git a/doc/surround.txt b/doc/surround.txt
index 4387fa2..30a642a 100644
--- a/doc/surround.txt
+++ b/doc/surround.txt
@@ -1,6 +1,6 @@
 *surround.txt*  Plugin for deleting, changing, and adding "surroundings"
 
-Author:  Tim Pope <vimNOSPAM at tpope.info>        *surround-author*
+Author:  Tim Pope <http://tpo.pe/>
 License: Same terms as Vim itself (see |license|)
 
 This plugin is only available if 'compatible' is not set.
@@ -20,7 +20,7 @@ examples.  An asterisk (*) is used to denote the cursor position.
   [123+4*56]/2              cs])        (123+456)/2
   "Look ma, I'm *HTML!"     cs"<q>      <q>Look ma, I'm HTML!</q>
   if *x>3 {                 ysW(        if ( x>3 ) {
-  my $str = *whee!;         vlllls'     my $str = 'whee!';
+  my $str = *whee!;         vllllS'     my $str = 'whee!';
 
 While a few features of this plugin will work in older versions of Vim,
 Vim 7 is recommended for full functionality.
@@ -50,8 +50,8 @@ below in |surround-replacements|.  Once again, examples are in order.
   <div>Yo!*</div>           cst<p>      <p>Yo!</p>
 
 *ys* takes a valid Vim motion or text object as the first object, and wraps
-it using the second argument as with |cs|.  (Unfortunately there's no good
-mnemonic for "ys".)
+it using the second argument as with |cs|.  (It's a stretch, but a good
+mnemonic for "ys" is "you surround".)
 
   Old text                  Command     New text ~
   Hello w*orld!             ysiw)       Hello (world)!
@@ -65,28 +65,19 @@ whitespace.
 There is also *yS* and *ySS* which indent the surrounded text and place it
 on a line of its own.
 
-In visual mode, a simple "s" with an argument wraps the selection.  This is
+In visual mode, a simple "S" with an argument wraps the selection.  This is
 referred to as the *vS* mapping, although ordinarily there will be
-additional keystrokes between the v and s.  In linewise visual mode, the
+additional keystrokes between the v and S.  In linewise visual mode, the
 surroundings are placed on separate lines and indented.  In blockwise visual
 mode, each line is surrounded.
 
 A "gS" in visual mode, known as *vgS* , behaves similarly.  In linewise visual
-mode, the automatic indenting is surpressed.  In blockwise visual mode, this
-enables surrounding past the end of the like with 'virtualedit' set (there
+mode, the automatic indenting is suppressed.  In blockwise visual mode, this
+enables surrounding past the end of the line with 'virtualedit' set (there
 seems to be no way in Vim Script to differentiate between a jagged end of line
 selection and a virtual block selected past the end of the line, so two maps
 were needed).
 
-Additionally, there is a legacy "s" or *vs* mapping which is basically the
-same as |vS|.  Due to popular demand of wanting to use "s" as Vim does to mean
-replacing the selection (also available as "c"), this mapping is going away.
-If you were one of these people and would like to disable "s" with the current
-release, indicate this to surround.vim by assigning the "s" mapping to
-something else.
->
-  xmap <Leader>s <Plug>Vsurround
-<
                                                 *i_CTRL-G_s* *i_CTRL-G_S*
 Finally, there is an experimental insert mode mapping on <C-G>s and <C-S>.
 Beware that the latter won't work on terminals with flow control (if you
@@ -100,13 +91,11 @@ TARGETS                                         *surround-targets*
 
 The |ds| and |cs| commands both take a target as their first argument.  The
 possible targets are based closely on the |text-objects| provided by Vim.
-In order for a target to work, the corresponding text object must be
-supported in the version of Vim used (Vim 7 adds several text objects, and
-thus is highly recommended).  All targets are currently just one character.
+All targets are currently just one character.
 
 Eight punctuation marks, (, ), {, }, [, ], <, and >, represent themselves
 and their counterparts.  If the opening mark is used, contained whitespace is
-also trimmed.  The targets b, B, r, and a are aliases for ), }, ], and >
+also trimmed.  The targets b, B, r, and a are aliases for ), }, ], and > 
 (the first two mirror Vim; the second two are completely arbitrary and
 subject to change).
 
@@ -128,7 +117,7 @@ however, newlines are sometimes added and/or removed.
 REPLACEMENTS                                    *surround-replacements*
 
 A replacement argument is a single character, and is required by |cs|, |ys|,
-and |vs|.  Undefined replacement characters (with the exception of alphabetic
+and |vS|.  Undefined replacement characters (with the exception of alphabetic
 characters) default to placing themselves at the beginning and end of the
 destination, which can be useful for characters like / and |.
 
@@ -144,15 +133,9 @@ attributes here and they will be stripped from the closing tag.  End your
 input by pressing <CR> or >.  If <C-T> is used, the tags will appear on lines
 by themselves.
 
-A deprecated replacement of a LaTeX environment is provided on \ and l.  The
-name of the environment and any arguments will be input from a prompt.  This
-will be removed once a more fully functional customization system is
-implemented.  The following shows the resulting environment from
-csp\tabular}{lc<CR>
->
-  \begin{tabular}{lc}
-  \end{tabular}
-<
+If s is used, a leading but not trailing space is added.  This is useful for
+removing parentheses from a function call with csbs.
+
 CUSTOMIZING                                     *surround-customizing*
 
 The following adds a potential replacement on "-" (ASCII 45) in PHP files.
diff --git a/html/index.html b/html/index.html
index 6547db3..42b61b9 100644
--- a/html/index.html
+++ b/html/index.html
@@ -49,7 +49,7 @@
    <li><a href="syntax_CVSAnnotate.vim.html">syntax/CVSAnnotate.vim.html</a></li>
   </ul>
   <p>
-  Page generated on Thu, 17 Jan 2013 21:38:34 -0500
+  Page generated on Thu, 17 Jan 2013 21:52:50 -0500
 .
   </p>
  </body>
diff --git a/html/plugin_surround.vim.html b/html/plugin_surround.vim.html
index c2cec89..a2b9507 100644
--- a/html/plugin_surround.vim.html
+++ b/html/plugin_surround.vim.html
@@ -102,7 +102,7 @@
             <td class="sidebarheader"><a href="/docs.php">Documentation</a></td>
         </tr>
         <tr>
-            <td class="sidebarheader"><a href="/download.php">Download</a></td>
+            <td class="sidebarheader download"><a href="/download.php">Download</a></td>
         </tr>
     <tr>
         <td><img src="/images/spacer.gif" alt="" border="0" width="1" height="7"></td>
@@ -135,6 +135,8 @@
             <td class="sidebarheader"><a href="/huh.php">Site Help</a></td>
         </tr>
 </table>
+<br>
+<g:plusone></g:plusone>
 
             <table width="172" cellpadding="0" cellspacing="0" border="0">
               <tr><td><img src="/images/spacer.gif" alt="" border="0" width="1" height="8"></td></tr>
@@ -166,8 +168,10 @@
 <tr>
   <td class="lightbg"><b> script karma </b></td>
   <td>
-    Rating <b>1594/475</b>,
-    Downloaded by 26763  </td>
+    Rating <b>2158/653</b>,
+    Downloaded by 38153     
+    <g:plusone></g:plusone>
+  </td>
   <td class="lightbg">
   <b> Comments, bugs, improvements </b>
   </td>
@@ -186,28 +190,13 @@
 <tr><td>utility</td></tr>
 <tr><td> </td></tr>
 <tr><td class="prompt">description</td></tr>
-<tr><td>Surround.vim is all about "surroundings": parentheses, brackets, quotes, XML tags, and more.  The plugin provides mappings to easily delete, change and add such surroundings in pairs.  While it works under Vim 6, much of the functionality requires Vim 7.
<br>
<br>Examples follow.  It is difficult to provide good examples in the variable width font of this site; check the documentation for more.
<br>
<br>Press cs"' (that's c, s, double quote, single quote) inside
<br>
<br>"Hello world!"
<br>
<br>to change it to
<br>
<br>'Hello world!'
<br>
<br>Now press cs'<q> to change it to
<br>
<br><q>Hello world!</q>
<br>
<br>To go full circle, press cst" to get
<br>
<br>"Hello world!"
<br>
<br>To remove the delimiters entirely, press ds" .
<br>
<br>Hello world!
<br>
<br>Now with the cursor on "Hello", press ysiw] (iw is a text object).
<br>
<br>[Hello] world!
<br>
<br>Let's make that braces and add some space (use "}" instead of "{" for no space): cs]{
<br>
<br>{ Hello } world!
<br>
<br>Now wrap the entire line in parentheses with yssb or yss) .
<br>
<br>({ Hello } world!)
<br>
<br>Revert to the original text: ds{ds)
<br>
<br>Hello world!
<br>
<br>Emphasize hello: ysiw<em>
<br>
<br><em>Hello</em> world!
<br>
<br>Finally, let's try out visual mode. Press a capital V (for linewise visual mode)
<br>followed by S<p class="important">.
<br>
<br><p class="important">
<br>  <em>Hello</em> world!
<br></p>
<br>
<br>This plugin is very powerful for HTML and XML editing, a niche which currently seems underfilled in Vim land.  (As opposed to HTML/XML *inserting*, for which many plugins are available).  Adding, changing, and removing pairs of tags simultaneously is a breeze.
<br>
<br>The "." command will work with ds, cs, and yss if you install repeat.vim, <a href="/scripts/script.php?script_id=2136">vimscript #2136</a>.
<br>
<br>All feedback appreciated.  I am particularly interested to hear back on the following topics:
<br>
<br>How exactly should indenting be handled?  Is the current s/S distinction useful, or should we just always reindent with =?
<br>
<br>Is the s mapping annoying in visual mode? While you can just use c to get the original s function, does it still interfere with motor memory?  This can be disabled if you provide your own map instead, but would this be a good default?
<br>
<br>Is the open/closing brace == add/don't add whitespace worth maintaining, or would it be better to just type an extra space before the brace to get said whitespace?
<br>
<br><a target="_blank" href="http://github.com/tpope/vim-surround">http://github.com/tpope/vim-surround</A></td></tr>
+<tr><td>Surround.vim is all about "surroundings": parentheses, brackets, quotes, XML tags, and more.  The plugin provides mappings to easily delete, change and add such surroundings in pairs.  While it works under Vim 6, much of the functionality requires Vim 7.
<br>
<br>Examples follow.  It is difficult to provide good examples in the variable width font of this site; check the documentation for more.
<br>
<br>Press cs"' (that's c, s, double quote, single quote) inside
<br>
<br>"Hello world!"
<br>
<br>to change it to
<br>
<br>'Hello world!'
<br>
<br>Now press cs' to change it to
<br>
<br>Hello world!
<br>
<br>To go full circle, press cst" to get
<br>
<br>"Hello world!"
<br>
<br>To remove the delimiters entirely, press ds" .
<br>
<br>Hello world!
<br>
<br>Now with the cursor on "Hello", press ysiw] (iw is a text object).
<br>
<br>[Hello] world!
<br>
<br>Let's make that braces and add some space (use "}" instead of "{" for no space): cs]{
<br>
<br>{ Hello } world!
<br>
<br>Now wrap the entire line in parentheses with yssb or yss) .
<br>
<br>({ Hello } world!)
<br>
<br>Revert to the original text: ds{ds)
<br>
<br>Hello world!
<br>
<br>Emphasize hello: ysiw
<br>
<br>Hello world!
<br>
<br>Finally, let's try out visual mode. Press a capital V (for linewise visual mode)
<br>followed by S.
<br>
<br>
<br>  Hello world!
<br>
<br>
<br>This plugin is very powerful for HTML and XML editing, a niche which currently seems underfilled in Vim land.  (As opposed to HTML/XML *inserting*, for which many plugins are available).  Adding, changing, and removing pairs of tags simultaneously is a breeze.
<br>
<br>The "." command will work with ds, cs, and yss if you install repeat.vim, <a href="/scripts/script.php?script_id=2136">vimscript #2136</a>.
<br>
<br>All feedback appreciated.
<br>
<br><a target="_blank" href="http://github.com/tpope/vim-surround">http://github.com/tpope/vim-surround</A></td></tr>
 <tr><td> </td></tr>
 <tr><td class="prompt">install details</td></tr>
 <tr><td>Extract to ~/.vim, or ~\vimfiles (Windows).  You'll need to regenerate helptags (fill in the install path below)
<br>
<br>:helptags ~/.vim/doc</td></tr>
 <tr><td> </td></tr>
 </table>
 
-<!-- rating table -->
-<form name="rating">
-<input type="hidden" name="script_id" value="1697">
-<table cellpadding="4" cellspacing="0" border="1" bordercolor="#000066">
-<tr>
-  <td class="lightbg"><b>rate this script</b></td>
-  <td valign="middle">
-    <input type="radio" name="rating" value="life_changing">Life Changing
-    <input type="radio" name="rating" value="helpful">Helpful
-    <input type="radio" name="rating" value="unfulfilling">Unfulfilling 
-    <input type="submit" value="rate">
-  </td>
-</tr>
-</table>
-</form>
 <span class="txth2">script versions</span> (<a href="add_script_version.php?script_id=1697">upload new version</a>)
 <p>
 Click on the package to download.
@@ -223,116 +212,124 @@ Click on the package to download.
     <th valign="top">release notes</th>
 </tr>
 <tr>
-        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=12566">surround.zip</a></td>
-    <td class="rowodd" valign="top" nowrap><b>1.90</b></td>
-    <td class="rowodd" valign="top" nowrap><i>2010-03-06</i></td>
-    <td class="rowodd" valign="top" nowrap>6.0</td>
+        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=19287">surround.zip</a></td>
+    <td class="rowodd" valign="top" nowrap><b>2.0</b></td>
+    <td class="rowodd" valign="top" nowrap><i>2013-01-01</i></td>
+    <td class="rowodd" valign="top" nowrap>7.0</td>
     <td class="rowodd" valign="top"><i><a href="/account/profile.php?user_id=9012">Tim Pope</a></i></td>
-    <td class="rowodd" valign="top" width="2000">Completely eliminate wonky % mapping in prompts. 
<br>Workaround for user remapped d. [Christian Oudard] 
<br>Introduce vgS and begin phasing out vs.</td>
+    <td class="rowodd" valign="top" width="2000">Fix vs with selection=exclusive.
<br>Remove `unnamedplus' from clipboard in addition to `unnamed'.
<br>Kill vs.
<br>Bump to Vim 7.
<br>Add support for repeating ys commands.
<br>Add support for repeating tags.
<br>Don't save deleted surrounding in unnamed register.
<br>Fix deletion of delimiters on their own lines.</td>
 </tr>
 <tr>
-        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=8283">surround.zip</a></td>
-    <td class="roweven" valign="top" nowrap><b>1.34</b></td>
-    <td class="roweven" valign="top" nowrap><i>2008-02-15</i></td>
+        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=12566">surround.zip</a></td>
+    <td class="roweven" valign="top" nowrap><b>1.90</b></td>
+    <td class="roweven" valign="top" nowrap><i>2010-03-06</i></td>
     <td class="roweven" valign="top" nowrap>6.0</td>
     <td class="roweven" valign="top"><i><a href="/account/profile.php?user_id=9012">Tim Pope</a></i></td>
-    <td class="roweven" valign="top" width="2000">One more regression fix.
<br>This is really really planned as the last release with partial Vim 6.0 compatibility  (third time's the charm).</td>
+    <td class="roweven" valign="top" width="2000">Completely eliminate wonky % mapping in prompts. 
<br>Workaround for user remapped d. [Christian Oudard] 
<br>Introduce vgS and begin phasing out vs.</td>
 </tr>
 <tr>
-        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=8229">surround.zip</a></td>
-    <td class="rowodd" valign="top" nowrap><b>1.33</b></td>
-    <td class="rowodd" valign="top" nowrap><i>2008-02-03</i></td>
-    <td class="rowodd" valign="top" nowrap>7.0</td>
+        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=8283">surround.zip</a></td>
+    <td class="rowodd" valign="top" nowrap><b>1.34</b></td>
+    <td class="rowodd" valign="top" nowrap><i>2008-02-15</i></td>
+    <td class="rowodd" valign="top" nowrap>6.0</td>
     <td class="rowodd" valign="top"><i><a href="/account/profile.php?user_id=9012">Tim Pope</a></i></td>
-    <td class="rowodd" valign="top" width="2000">Fixed regressions from previous release.
<br>This is really planned as the last release with partial Vim 6.0 compatibility.</td>
+    <td class="rowodd" valign="top" width="2000">One more regression fix.
<br>This is really really planned as the last release with partial Vim 6.0 compatibility  (third time's the charm).</td>
 </tr>
 <tr>
-        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=8185">surround.zip</a></td>
-    <td class="roweven" valign="top" nowrap><b>1.30</b></td>
-    <td class="roweven" valign="top" nowrap><i>2008-01-27</i></td>
+        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=8229">surround.zip</a></td>
+    <td class="roweven" valign="top" nowrap><b>1.33</b></td>
+    <td class="roweven" valign="top" nowrap><i>2008-02-03</i></td>
     <td class="roweven" valign="top" nowrap>7.0</td>
     <td class="roweven" valign="top"><i><a href="/account/profile.php?user_id=9012">Tim Pope</a></i></td>
-    <td class="roweven" valign="top" width="2000">Fixed edge case where ds could move a multiline inner text down one line.
<br>This is planned as the last release with partial Vim 6.0 compatibility.</td>
+    <td class="roweven" valign="top" width="2000">Fixed regressions from previous release.
<br>This is really planned as the last release with partial Vim 6.0 compatibility.</td>
 </tr>
 <tr>
-        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=7744">surround.zip</a></td>
-    <td class="rowodd" valign="top" nowrap><b>1.27</b></td>
-    <td class="rowodd" valign="top" nowrap><i>2007-10-03</i></td>
+        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=8185">surround.zip</a></td>
+    <td class="rowodd" valign="top" nowrap><b>1.30</b></td>
+    <td class="rowodd" valign="top" nowrap><i>2008-01-27</i></td>
     <td class="rowodd" valign="top" nowrap>7.0</td>
     <td class="rowodd" valign="top"><i><a href="/account/profile.php?user_id=9012">Tim Pope</a></i></td>
-    <td class="rowodd" valign="top" width="2000">Fixed multiline surrounds in insert mode 
<br></td>
+    <td class="rowodd" valign="top" width="2000">Fixed edge case where ds could move a multiline inner text down one line.
<br>This is planned as the last release with partial Vim 6.0 compatibility.</td>
 </tr>
 <tr>
-        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=7434">surround.vim</a></td>
-    <td class="roweven" valign="top" nowrap><b>1.26</b></td>
-    <td class="roweven" valign="top" nowrap><i>2007-07-31</i></td>
+        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=7744">surround.zip</a></td>
+    <td class="roweven" valign="top" nowrap><b>1.27</b></td>
+    <td class="roweven" valign="top" nowrap><i>2007-10-03</i></td>
     <td class="roweven" valign="top" nowrap>7.0</td>
     <td class="roweven" valign="top"><i><a href="/account/profile.php?user_id=9012">Tim Pope</a></i></td>
-    <td class="roweven" valign="top" width="2000">Added a /* C style comment */ target.
<br>Insert mode indenting limited to multiline insertions.</td>
+    <td class="roweven" valign="top" width="2000">Fixed multiline surrounds in insert mode 
<br></td>
 </tr>
 <tr>
-        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=7093">surround.zip</a></td>
-    <td class="rowodd" valign="top" nowrap><b>1.24</b></td>
-    <td class="rowodd" valign="top" nowrap><i>2007-05-10</i></td>
+        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=7434">surround.vim</a></td>
+    <td class="rowodd" valign="top" nowrap><b>1.26</b></td>
+    <td class="rowodd" valign="top" nowrap><i>2007-07-31</i></td>
     <td class="rowodd" valign="top" nowrap>7.0</td>
     <td class="rowodd" valign="top"><i><a href="/account/profile.php?user_id=9012">Tim Pope</a></i></td>
-    <td class="rowodd" valign="top" width="2000">surround_indent now works in insert mode.
<br>Added <C-]> to add braces on separate lines.</td>
+    <td class="rowodd" valign="top" width="2000">Added a /* C style comment */ target.
<br>Insert mode indenting limited to multiline insertions.</td>
 </tr>
 <tr>
-        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=6747">surround.zip</a></td>
-    <td class="roweven" valign="top" nowrap><b>1.23</b></td>
-    <td class="roweven" valign="top" nowrap><i>2007-02-16</i></td>
+        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=7093">surround.zip</a></td>
+    <td class="roweven" valign="top" nowrap><b>1.24</b></td>
+    <td class="roweven" valign="top" nowrap><i>2007-05-10</i></td>
     <td class="roweven" valign="top" nowrap>7.0</td>
     <td class="roweven" valign="top"><i><a href="/account/profile.php?user_id=9012">Tim Pope</a></i></td>
-    <td class="roweven" valign="top" width="2000">xmap rather than vmap, to avoid interfering with select mode.
<br>surround_insert_tail to specify a universal suffix for use in insert mode.</td>
+    <td class="roweven" valign="top" width="2000">surround_indent now works in insert mode.
<br>Added <C-]> to add braces on separate lines.</td>
 </tr>
 <tr>
-        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=6737">surround.zip</a></td>
-    <td class="rowodd" valign="top" nowrap><b>1.22</b></td>
-    <td class="rowodd" valign="top" nowrap><i>2007-02-11</i></td>
+        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=6747">surround.zip</a></td>
+    <td class="rowodd" valign="top" nowrap><b>1.23</b></td>
+    <td class="rowodd" valign="top" nowrap><i>2007-02-16</i></td>
     <td class="rowodd" valign="top" nowrap>7.0</td>
     <td class="rowodd" valign="top"><i><a href="/account/profile.php?user_id=9012">Tim Pope</a></i></td>
-    <td class="rowodd" valign="top" width="2000">Function properly when clipboard=unnamed
<br>Very experimental custom prompting for substitution text</td>
+    <td class="rowodd" valign="top" width="2000">xmap rather than vmap, to avoid interfering with select mode.
<br>surround_insert_tail to specify a universal suffix for use in insert mode.</td>
 </tr>
 <tr>
-        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=6411">surround.zip</a></td>
-    <td class="roweven" valign="top" nowrap><b>1.18</b></td>
-    <td class="roweven" valign="top" nowrap><i>2006-11-13</i></td>
+        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=6737">surround.zip</a></td>
+    <td class="roweven" valign="top" nowrap><b>1.22</b></td>
+    <td class="roweven" valign="top" nowrap><i>2007-02-11</i></td>
     <td class="roweven" valign="top" nowrap>7.0</td>
     <td class="roweven" valign="top"><i><a href="/account/profile.php?user_id=9012">Tim Pope</a></i></td>
-    <td class="roweven" valign="top" width="2000">Zip file instead of documentation extraction hack</td>
+    <td class="roweven" valign="top" width="2000">Function properly when clipboard=unnamed
<br>Very experimental custom prompting for substitution text</td>
 </tr>
 <tr>
-        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=6399">surround.vim</a></td>
-    <td class="rowodd" valign="top" nowrap><b>1.17</b></td>
-    <td class="rowodd" valign="top" nowrap><i>2006-11-09</i></td>
-    <td class="rowodd" valign="top" nowrap>6.0</td>
+        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=6411">surround.zip</a></td>
+    <td class="rowodd" valign="top" nowrap><b>1.18</b></td>
+    <td class="rowodd" valign="top" nowrap><i>2006-11-13</i></td>
+    <td class="rowodd" valign="top" nowrap>7.0</td>
     <td class="rowodd" valign="top"><i><a href="/account/profile.php?user_id=9012">Tim Pope</a></i></td>
-    <td class="rowodd" valign="top" width="2000">Insert mode mapping that doesn't conflict with flow control.
<br>Fixed edge case with ys where one too many characters would be grabbed.</td>
+    <td class="rowodd" valign="top" width="2000">Zip file instead of documentation extraction hack</td>
 </tr>
 <tr>
-        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=6379">surround.vim</a></td>
-    <td class="roweven" valign="top" nowrap><b>1.16</b></td>
-    <td class="roweven" valign="top" nowrap><i>2006-11-05</i></td>
-    <td class="roweven" valign="top" nowrap>7.0</td>
+        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=6399">surround.vim</a></td>
+    <td class="roweven" valign="top" nowrap><b>1.17</b></td>
+    <td class="roweven" valign="top" nowrap><i>2006-11-09</i></td>
+    <td class="roweven" valign="top" nowrap>6.0</td>
     <td class="roweven" valign="top"><i><a href="/account/profile.php?user_id=9012">Tim Pope</a></i></td>
-    <td class="roweven" valign="top" width="2000">S in blockwise visual mode strips trailing whitespace.</td>
+    <td class="roweven" valign="top" width="2000">Insert mode mapping that doesn't conflict with flow control.
<br>Fixed edge case with ys where one too many characters would be grabbed.</td>
 </tr>
 <tr>
-        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=6357">surround.vim</a></td>
-    <td class="rowodd" valign="top" nowrap><b>1.12</b></td>
-    <td class="rowodd" valign="top" nowrap><i>2006-10-31</i></td>
+        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=6379">surround.vim</a></td>
+    <td class="rowodd" valign="top" nowrap><b>1.16</b></td>
+    <td class="rowodd" valign="top" nowrap><i>2006-11-05</i></td>
     <td class="rowodd" valign="top" nowrap>7.0</td>
     <td class="rowodd" valign="top"><i><a href="/account/profile.php?user_id=9012">Tim Pope</a></i></td>
-    <td class="rowodd" valign="top" width="2000">Lots of tiny bug fixes and cleanup.
<br>"S" mappings to force surroundings onto a separate line.
<br>Support for blockwise visual mode.</td>
+    <td class="rowodd" valign="top" width="2000">S in blockwise visual mode strips trailing whitespace.</td>
 </tr>
 <tr>
-        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=6348">surround.vim</a></td>
-    <td class="roweven" valign="top" nowrap><b>1.6</b></td>
-    <td class="roweven" valign="top" nowrap><i>2006-10-29</i></td>
+        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=6357">surround.vim</a></td>
+    <td class="roweven" valign="top" nowrap><b>1.12</b></td>
+    <td class="roweven" valign="top" nowrap><i>2006-10-31</i></td>
     <td class="roweven" valign="top" nowrap>7.0</td>
     <td class="roweven" valign="top"><i><a href="/account/profile.php?user_id=9012">Tim Pope</a></i></td>
-    <td class="roweven" valign="top" width="2000">Initial upload</td>
+    <td class="roweven" valign="top" width="2000">Lots of tiny bug fixes and cleanup.
<br>"S" mappings to force surroundings onto a separate line.
<br>Support for blockwise visual mode.</td>
+</tr>
+<tr>
+        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=6348">surround.vim</a></td>
+    <td class="rowodd" valign="top" nowrap><b>1.6</b></td>
+    <td class="rowodd" valign="top" nowrap><i>2006-10-29</i></td>
+    <td class="rowodd" valign="top" nowrap>7.0</td>
+    <td class="rowodd" valign="top"><i><a href="/account/profile.php?user_id=9012">Tim Pope</a></i></td>
+    <td class="rowodd" valign="top" width="2000">Initial upload</td>
 </tr>
 </table>
 <!-- finish off the framework -->
@@ -391,6 +388,15 @@ Click on the package to download.
   </tr>
 </table>
 
+<!-- for Google +1 button -->
+<script type="text/javascript">
+  (function() {
+    var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
+    po.src = 'https://apis.google.com/js/plusone.js';
+    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
+  })();
+</script>
+
 </body>
 </html>
 
diff --git a/plugin/surround.vim b/plugin/surround.vim
index ea28c02..5ed8f64 100644
--- a/plugin/surround.vim
+++ b/plugin/surround.vim
@@ -1,28 +1,13 @@
 " surround.vim - Surroundings
-" Author:       Tim Pope <vimNOSPAM at tpope.org>
-" Version:      1.90
+" Author:       Tim Pope <http://tpo.pe/>
+" Version:      2.0
 " GetLatestVimScripts: 1697 1 :AutoInstall: surround.vim
-"
-" See surround.txt for help.  This can be accessed by doing
-"
-" :helptags ~/.vim/doc
-" :help surround
-"
-" Licensed under the same terms as Vim itself.
 
-" ============================================================================
-
-" Exit quickly when:
-" - this plugin was already loaded or disabled
-" - when 'compatible' is set
-if (exists("g:loaded_surround") && g:loaded_surround) || &cp
+if exists("g:loaded_surround") || &cp || v:version < 700
   finish
 endif
 let g:loaded_surround = 1
 
-let s:cpo_save = &cpo
-set cpo&vim
-
 " Input functions {{{1
 
 function! s:getchar()
@@ -36,10 +21,10 @@ endfunction
 function! s:inputtarget()
   let c = s:getchar()
   while c =~ '^\d\+$'
-    let c = c . s:getchar()
+    let c .= s:getchar()
   endwhile
   if c == " "
-    let c = c . s:getchar()
+    let c .= s:getchar()
   endif
   if c =~ "\<Esc>\|\<C-C>\|\0"
     return ""
@@ -49,10 +34,9 @@ function! s:inputtarget()
 endfunction
 
 function! s:inputreplacement()
-  "echo '-- SURROUND --'
   let c = s:getchar()
   if c == " "
-    let c = c . s:getchar()
+    let c .= s:getchar()
   endif
   if c =~ "\<Esc>" || c =~ "\<C-C>"
     return ""
@@ -91,19 +75,9 @@ function! s:extractafter(str)
   endif
 endfunction
 
-function! s:repeat(str,count)
-  let cnt = a:count
-  let str = ""
-  while cnt > 0
-    let str = str . a:str
-    let cnt = cnt - 1
-  endwhile
-  return str
-endfunction
-
 function! s:fixindent(str,spc)
-  let str = substitute(a:str,'\t',s:repeat(' ',&sw),'g')
-  let spc = substitute(a:spc,'\t',s:repeat(' ',&sw),'g')
+  let str = substitute(a:str,'\t',repeat(' ',&sw),'g')
+  let spc = substitute(a:spc,'\t',repeat(' ',&sw),'g')
   let str = substitute(str,'\(\n\|\%^\).\@=','\1'.spc,'g')
   if ! &et
     let str = substitute(str,'\s\{'.&ts.'\}',"\t",'g')
@@ -113,15 +87,14 @@ endfunction
 
 function! s:process(string)
   let i = 0
-  while i < 7
-    let i = i + 1
+  for i in range(7)
     let repl_{i} = ''
     let m = matchstr(a:string,nr2char(i).'.\{-\}\ze'.nr2char(i))
     if m != ''
       let m = substitute(strpart(m,1),'\r.*','','')
       let repl_{i} = input(substitute(m,':\s*$','','').': ')
     endif
-  endwhile
+  endfor
   let s = ""
   let i = 0
   while i < strlen(a:string)
@@ -129,7 +102,7 @@ function! s:process(string)
     if char2nr(char) < 8
       let next = stridx(a:string,char,i+1)
       if next == -1
-        let s = s . char
+        let s .= char
       else
         let insertion = repl_{char2nr(char)}
         let subs = strpart(a:string,i+1,next-i-1)
@@ -140,13 +113,13 @@ function! s:process(string)
           let r = stridx(sub,"\r")
           let insertion = substitute(insertion,strpart(sub,0,r),strpart(sub,r+1),'')
         endwhile
-        let s = s . insertion
+        let s .= insertion
         let i = next
       endif
     else
-      let s = s . char
+      let s .= char
     endif
-    let i = i + 1
+    let i += 1
   endwhile
   return s
 endfunction
@@ -154,6 +127,7 @@ endfunction
 function! s:wrap(string,char,type,...)
   let keeper = a:string
   let newchar = a:char
+  let s:tag = ""
   let type = a:type
   let linemode = type ==# 'V' ? 1 : 0
   let special = a:0 ? a:1 : 0
@@ -164,7 +138,6 @@ function! s:wrap(string,char,type,...)
   else
     let initspaces = matchstr(getline('.'),'\%^\s*')
   endif
-  " Duplicate b's are just placeholders (removed)
   let pairs = "b()B{}r[]a<>"
   let extraspace = ""
   if newchar =~ '^ '
@@ -186,11 +159,17 @@ function! s:wrap(string,char,type,...)
   elseif newchar ==# "p"
     let before = "\n"
     let after  = "\n\n"
+  elseif newchar ==# 's'
+    let before = ' '
+    let after  = ''
+  elseif newchar ==# ':'
+    let before = ':'
+    let after = ''
   elseif newchar =~# "[tT\<C-T><,]"
     let dounmapp = 0
     let dounmapb = 0
     if !maparg(">","c")
-      let dounmapb= 1
+      let dounmapb = 1
       " Hide from AsNeeded
       exe "cn"."oremap > <CR>"
     endif
@@ -206,8 +185,10 @@ function! s:wrap(string,char,type,...)
     if dounmapb
       silent! cunmap >
     endif
+    let s:tag = tag
     if tag != ""
       let tag = substitute(tag,'>*$','','')
+      let s:tag = tag . '>'
       let before = '<'.tag.'>'
       if tag =~ '/$'
         let after = ''
@@ -216,7 +197,7 @@ function! s:wrap(string,char,type,...)
       endif
       if newchar == "\<C-T>" || newchar == ","
         if type ==# "v" || type ==# "V"
-          let before = before . "\n\t"
+          let before .= "\n\t"
         endif
         if type ==# "v"
           let after  = "\n". after
@@ -227,28 +208,26 @@ function! s:wrap(string,char,type,...)
     " LaTeX
     let env = input('\begin{')
     let env = '{' . env
-    let env = env . s:closematch(env)
+    let env .= s:closematch(env)
     echo '\begin'.env
     if env != ""
       let before = '\begin'.env
       let after  = '\end'.matchstr(env,'[^}]*').'}'
     endif
-    "if type ==# 'v' || type ==# 'V'
-    "let before = before ."\n\t"
-    "endif
-    "if type ==# 'v'
-    "let after  = "\n".initspaces.after
-    "endif
   elseif newchar ==# 'f' || newchar ==# 'F'
     let fnc = input('function: ')
     if fnc != ""
       let before = substitute(fnc,'($','','').'('
       let after  = ')'
       if newchar ==# 'F'
-        let before = before . ' '
-        let after  = ' ' . after
+        let before .= ' '
+        let after = ' ' . after
       endif
     endif
+  elseif newchar ==# "\<C-F>"
+    let fnc = input('function: ')
+    let before = '('.fnc.' '
+    let after = ')'
   elseif idx >= 0
     let spc = (idx % 3) == 1 ? " " : ""
     let idx = idx / 3 * 3
@@ -264,9 +243,7 @@ function! s:wrap(string,char,type,...)
     let before = ''
     let after  = ''
   endif
-  "let before = substitute(before,'\n','\n'.initspaces,'g')
   let after  = substitute(after ,'\n','\n'.initspaces,'g')
-  "let after  = substitute(after,"\n\\s*\<C-U>\\s*",'\n','g')
   if type ==# 'V' || (special && type ==# "v")
     let before = substitute(before,' \+$','','')
     let after  = substitute(after ,'^ \+','','')
@@ -274,14 +251,14 @@ function! s:wrap(string,char,type,...)
       let after  = initspaces.after
     endif
     if keeper !~ '\n$' && after !~ '^\n'
-      let keeper = keeper . "\n"
+      let keeper .= "\n"
     elseif keeper =~ '\n$' && after =~ '^\n'
       let after = strpart(after,1)
     endif
     if before !~ '\n\s*$'
-      let before = before . "\n"
+      let before .= "\n"
       if special
-        let before = before . "\t"
+        let before .= "\t"
       endif
     endif
   endif
@@ -321,21 +298,18 @@ endfunction
 
 function! s:insert(...) " {{{1
   " Optional argument causes the result to appear on 3 lines, not 1
-  "call inputsave()
   let linemode = a:0 ? a:1 : 0
   let char = s:inputreplacement()
   while char == "\<CR>" || char == "\<C-S>"
     " TODO: use total count for additional blank lines
-    let linemode = linemode + 1
+    let linemode += 1
     let char = s:inputreplacement()
   endwhile
-  "call inputrestore()
   if char == ""
     return ""
   endif
-  "call inputsave()
   let cb_save = &clipboard
-  set clipboard-=unnamed
+  set clipboard-=unnamed clipboard-=unnamedplus
   let reg_save = @@
   call setreg('"',"\r",'v')
   call s:wrapreg('"',char,linemode)
@@ -350,9 +324,6 @@ function! s:insert(...) " {{{1
   if exists("g:surround_insert_tail")
     call setreg('"',g:surround_insert_tail,"a".getregtype('"'))
   endif
-  "if linemode
-  "call setreg('"',substitute(getreg('"'),'^\s\+','',''),'c')
-  "endif
   if col('.') >= col('$')
     norm! ""p
   else
@@ -400,7 +371,7 @@ function! s:dosurround(...) " {{{1
     endif
   endif
   let cb_save = &clipboard
-  set clipboard-=unnamed
+  set clipboard-=unnamed clipboard-=unnamedplus
   let append = ""
   let original = getreg('"')
   let otype = getregtype('"')
@@ -454,7 +425,7 @@ function! s:dosurround(...) " {{{1
   else
     let pcmd = "P"
   endif
-  if line('.') < oldlnum && regtype ==# "V"
+  if line('.') + 1 < oldlnum && regtype ==# "V"
     let pcmd = "p"
   endif
   call setreg('"',keeper,regtype)
@@ -468,13 +439,13 @@ function! s:dosurround(...) " {{{1
   if getline('.') =~ '^\s\+$' && keeper =~ '^\s*\n'
     silent norm! cc
   endif
-  call setreg('"',removed,regtype)
+  call setreg('"',original,otype)
   let s:lastdel = removed
   let &clipboard = cb_save
   if newchar == ""
     silent! call repeat#set("\<Plug>Dsurround".char,scount)
   else
-    silent! call repeat#set("\<Plug>Csurround".char.newchar,scount)
+    silent! call repeat#set("\<Plug>Csurround".char.newchar.s:tag,scount)
   endif
 endfunction " }}}1
 
@@ -499,10 +470,9 @@ function! s:opfunc(type,...) " {{{1
   let sel_save = &selection
   let &selection = "inclusive"
   let cb_save  = &clipboard
-  set clipboard-=unnamed
+  set clipboard-=unnamed clipboard-=unnamedplus
   let reg_save = getreg(reg)
   let reg_type = getregtype(reg)
-  "call setreg(reg,"\n","c")
   let type = a:type
   if a:type == "char"
     silent exe 'norm! v`[o`]"'.reg.'y'
@@ -511,6 +481,7 @@ function! s:opfunc(type,...) " {{{1
     silent exe 'norm! `[V`]"'.reg.'y'
     let type = 'V'
   elseif a:type ==# "v" || a:type ==# "V" || a:type ==# "\<C-V>"
+    let &selection = sel_save
     let ve = &virtualedit
     if !(a:0 && a:1)
       set virtualedit=
@@ -547,7 +518,9 @@ function! s:opfunc(type,...) " {{{1
   let &selection = sel_save
   let &clipboard = cb_save
   if a:type =~ '^\d\+$'
-    silent! call repeat#set("\<Plug>Y".(a:0 && a:1 ? "S" : "s")."surround".char,a:type)
+    silent! call repeat#set("\<Plug>Y".(a:0 && a:1 ? "S" : "s")."surround".char.s:tag,a:type)
+  else
+    silent! call repeat#set("\<Plug>SurroundRepeat".char.s:tag)
   endif
 endfunction
 
@@ -571,6 +544,7 @@ function! s:closematch(str) " {{{1
   endif
 endfunction " }}}1
 
+nnoremap <silent> <Plug>SurroundRepeat .
 nnoremap <silent> <Plug>Dsurround  :<C-U>call <SID>dosurround(<SID>inputtarget())<CR>
 nnoremap <silent> <Plug>Csurround  :<C-U>call <SID>changesurround()<CR>
 nnoremap <silent> <Plug>Yssurround :<C-U>call <SID>opfunc(v:count1)<CR>
@@ -578,48 +552,26 @@ nnoremap <silent> <Plug>YSsurround :<C-U>call <SID>opfunc2(v:count1)<CR>
 " <C-U> discards the numerical argument but there's not much we can do with it
 nnoremap <silent> <Plug>Ysurround  :<C-U>set opfunc=<SID>opfunc<CR>g@
 nnoremap <silent> <Plug>YSurround  :<C-U>set opfunc=<SID>opfunc2<CR>g@
-vnoremap <silent> <Plug>Vsurround  :<C-U>call <SID>opfunc(visualmode())<CR>
 vnoremap <silent> <Plug>VSurround  :<C-U>call <SID>opfunc(visualmode(),visualmode() ==# 'V' ? 1 : 0)<CR>
 vnoremap <silent> <Plug>VgSurround :<C-U>call <SID>opfunc(visualmode(),visualmode() ==# 'V' ? 0 : 1)<CR>
 inoremap <silent> <Plug>Isurround  <C-R>=<SID>insert()<CR>
 inoremap <silent> <Plug>ISurround  <C-R>=<SID>insert(1)<CR>
 
 if !exists("g:surround_no_mappings") || ! g:surround_no_mappings
-  nmap      ds   <Plug>Dsurround
-  nmap      cs   <Plug>Csurround
-  nmap      ys   <Plug>Ysurround
-  nmap      yS   <Plug>YSurround
-  nmap      yss  <Plug>Yssurround
-  nmap      ySs  <Plug>YSsurround
-  nmap      ySS  <Plug>YSsurround
-  if !hasmapto("<Plug>Vsurround","v") && !hasmapto("<Plug>VSurround","v")
-    if exists(":xmap")
-      xmap  s    <Plug>Vsurround
-    else
-      vmap  s    <Plug>Vsurround
-    endif
-  endif
-  if !hasmapto("<Plug>VSurround","v")
-    if exists(":xmap")
-      xmap  S    <Plug>VSurround
-    else
-      vmap  S    <Plug>VSurround
-    endif
-  endif
-  if exists(":xmap")
-    xmap    gS   <Plug>VgSurround
-  else
-    vmap    gS   <Plug>VgSurround
-  endif
+  nmap ds  <Plug>Dsurround
+  nmap cs  <Plug>Csurround
+  nmap ys  <Plug>Ysurround
+  nmap yS  <Plug>YSurround
+  nmap yss <Plug>Yssurround
+  nmap ySs <Plug>YSsurround
+  nmap ySS <Plug>YSsurround
+  xmap S   <Plug>VSurround
+  xmap gS  <Plug>VgSurround
   if !hasmapto("<Plug>Isurround","i") && "" == mapcheck("<C-S>","i")
     imap    <C-S> <Plug>Isurround
   endif
   imap      <C-G>s <Plug>Isurround
   imap      <C-G>S <Plug>ISurround
-  "Implemented internally instead
-  "imap      <C-S><C-S> <Plug>ISurround
 endif
 
-let &cpo = s:cpo_save
-
 " vim:set ft=vim sw=2 sts=2 et:

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-vim/vim-scripts.git



More information about the pkg-vim-maintainers mailing list