On Tuesday, November 19, 2013 4:49:07 PM UTC-5, Ernie Rael wrote:
> In the documentation for "im{char}" you use the word "quote". That 
> 
> doesn't bother me, but I wanted to be sure that is what you meant 
> 
> (that's the only use of that word in the patch).
> 
> 
> 
> -ernie
> 
> 
> 
> On 11/19/2013 8:01 AM, Daniel "paradigm" Thau wrote:
> 
> > Attached is a patch (in both the unified and context formats) to make the 
> > discussed "am/im" text-object.
> 
> >

That was not intentional.  Good catch.  Adjusted patches attached.

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to vim_dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
*** a/runtime/doc/motion.txt
--- b/runtime/doc/motion.txt
***************
*** 662,667 **** i`							*v_i`* *i`*
--- 662,687 ----
  			Special case: With a count of 2 the quotes are
  			included, but no extra white space as with a"/a'/a`.
  
+ am{char}						*v_am* *am*
+ 			"a matched {char}".  Selects the text from the
+ 			previous {char} until the next {char}.
+ 			Only works within one line.
+ 			When the cursor starts on a {char}, Vim will figure
+ 			out which {char} pairs are desired by searching from
+ 			the start of the line.
+ 			Any trailing white space is included, unless there is
+ 			none, then leading white space is included.
+ 			When used in Visual mode it is made characterwise.
+ 			Repeating this object in Visual mode another
+ 			{char}..{char} range is included.  A count is
+ 			currently not used.
+ 
+ im{char}						*v_im* *im*
+ 			Like am{char} but exclude the {char} and
+ 			repeating won't extend the Visual selection.
+ 			Special case: With a count of 2 the {char}s are
+ 			included, but no extra white space as with am{char}.
+ 
  When used after an operator:
  For non-block objects:
  	For the "a" commands: The operator applies to the object and the white
*** a/runtime/doc/tags
--- b/runtime/doc/tags
***************
*** 4751,4756 **** aleph	options.txt	/*aleph*
--- 4751,4757 ----
  alt	intro.txt	/*alt*
  alt-input	debugger.txt	/*alt-input*
  alternate-file	editing.txt	/*alternate-file*
+ am	motion.txt	/*am*
  amiga-window	starting.txt	/*amiga-window*
  and()	eval.txt	/*and()*
  anonymous-function	eval.txt	/*anonymous-function*
***************
*** 6520,6525 **** if_ruby.txt	if_ruby.txt	/*if_ruby.txt*
--- 6521,6527 ----
  if_sniff.txt	if_sniff.txt	/*if_sniff.txt*
  if_tcl.txt	if_tcl.txt	/*if_tcl.txt*
  ignore-errors	eval.txt	/*ignore-errors*
+ im	motion.txt	/*im*
  improved-autocmds-5.4	version5.txt	/*improved-autocmds-5.4*
  improved-quickfix	version5.txt	/*improved-quickfix*
  improved-sessions	version5.txt	/*improved-sessions*
***************
*** 8441,8446 **** v_a[	motion.txt	/*v_a[*
--- 8443,8449 ----
  v_a]	motion.txt	/*v_a]*
  v_a`	motion.txt	/*v_a`*
  v_ab	motion.txt	/*v_ab*
+ v_am	motion.txt	/*v_am*
  v_ap	motion.txt	/*v_ap*
  v_aquote	motion.txt	/*v_aquote*
  v_as	motion.txt	/*v_as*
***************
*** 8488,8493 **** v_i[	motion.txt	/*v_i[*
--- 8491,8497 ----
  v_i]	motion.txt	/*v_i]*
  v_i`	motion.txt	/*v_i`*
  v_ib	motion.txt	/*v_ib*
+ v_im	motion.txt	/*v_im*
  v_ip	motion.txt	/*v_ip*
  v_iquote	motion.txt	/*v_iquote*
  v_is	motion.txt	/*v_is*
*** a/src/normal.c
--- b/src/normal.c
***************
*** 9309,9314 **** nv_object(cap)
--- 9309,9319 ----
  		flag = current_quote(cap->oap, cap->count1, include,
  								  cap->nchar);
  		break;
+ 	case 'm': /* "am" = a matching pair of characters */
+ 		cap->extra_char = plain_vgetc();
+ 		flag = current_quote(cap->oap, cap->count1, include,
+ 							      cap->extra_char);
+ 		break;
  #if 0	/* TODO */
  	case 'S': /* "aS" = a section */
  	case 'f': /* "af" = a filename */
diff --git a/runtime/doc/motion.txt b/runtime/doc/motion.txt
index d40d825..8af2b6e 100644
--- a/runtime/doc/motion.txt
+++ b/runtime/doc/motion.txt
@@ -662,6 +662,26 @@ i`							*v_i`* *i`*
 			Special case: With a count of 2 the quotes are
 			included, but no extra white space as with a"/a'/a`.
 
+am{char}						*v_am* *am*
+			"a matched {char}".  Selects the text from the
+			previous {char} until the next {char}.
+			Only works within one line.
+			When the cursor starts on a {char}, Vim will figure
+			out which {char} pairs are desired by searching from
+			the start of the line.
+			Any trailing white space is included, unless there is
+			none, then leading white space is included.
+			When used in Visual mode it is made characterwise.
+			Repeating this object in Visual mode another
+			{char}..{char} range is included.  A count is
+			currently not used.
+
+im{char}						*v_im* *im*
+			Like am{char} but exclude the {char} and
+			repeating won't extend the Visual selection.
+			Special case: With a count of 2 the {char}s are
+			included, but no extra white space as with am{char}.
+
 When used after an operator:
 For non-block objects:
 	For the "a" commands: The operator applies to the object and the white
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 73475a9..405996e 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -4751,6 +4751,7 @@ aleph	options.txt	/*aleph*
 alt	intro.txt	/*alt*
 alt-input	debugger.txt	/*alt-input*
 alternate-file	editing.txt	/*alternate-file*
+am	motion.txt	/*am*
 amiga-window	starting.txt	/*amiga-window*
 and()	eval.txt	/*and()*
 anonymous-function	eval.txt	/*anonymous-function*
@@ -6520,6 +6521,7 @@ if_ruby.txt	if_ruby.txt	/*if_ruby.txt*
 if_sniff.txt	if_sniff.txt	/*if_sniff.txt*
 if_tcl.txt	if_tcl.txt	/*if_tcl.txt*
 ignore-errors	eval.txt	/*ignore-errors*
+im	motion.txt	/*im*
 improved-autocmds-5.4	version5.txt	/*improved-autocmds-5.4*
 improved-quickfix	version5.txt	/*improved-quickfix*
 improved-sessions	version5.txt	/*improved-sessions*
@@ -8441,6 +8443,7 @@ v_a[	motion.txt	/*v_a[*
 v_a]	motion.txt	/*v_a]*
 v_a`	motion.txt	/*v_a`*
 v_ab	motion.txt	/*v_ab*
+v_am	motion.txt	/*v_am*
 v_ap	motion.txt	/*v_ap*
 v_aquote	motion.txt	/*v_aquote*
 v_as	motion.txt	/*v_as*
@@ -8488,6 +8491,7 @@ v_i[	motion.txt	/*v_i[*
 v_i]	motion.txt	/*v_i]*
 v_i`	motion.txt	/*v_i`*
 v_ib	motion.txt	/*v_ib*
+v_im	motion.txt	/*v_im*
 v_ip	motion.txt	/*v_ip*
 v_iquote	motion.txt	/*v_iquote*
 v_is	motion.txt	/*v_is*
diff --git a/src/normal.c b/src/normal.c
index 9349be2..a96e0a6 100644
--- a/src/normal.c
+++ b/src/normal.c
@@ -9309,6 +9309,11 @@ nv_object(cap)
 		flag = current_quote(cap->oap, cap->count1, include,
 								  cap->nchar);
 		break;
+	case 'm': /* "am" = a matching pair of characters */
+		cap->extra_char = plain_vgetc();
+		flag = current_quote(cap->oap, cap->count1, include,
+							      cap->extra_char);
+		break;
 #if 0	/* TODO */
 	case 'S': /* "aS" = a section */
 	case 'f': /* "af" = a filename */

Raspunde prin e-mail lui