[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