quotation text object consternation

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

quotation text object consternation

Tim Chase
One of the oddball frustrations I find with vim is that the
outer-quotation objects eats leading space.

To demonstrate the inconsistency, use the following document

  (parens)
  [square brackets]
  {braces}
  "double quotes"
  'single quotes"

and indent it (unless you copied the leading whitespace too)

  :%>

then, on each line, use the associated outer-text-object to change it:

  ca(xxx<esc>
  ca[xxx<esc>
  ca{xxx<esc>
  ca"xxx<esc>
  ca'xxx<esc>

Note how the ones with quotes also get un-indented while the others
don't.  I encounter this most frequently when coding in Python where
I have something like

  my_map = {
    "foo": "bar",
    "baz": "whinge",
    "fred": "barney",
    }

and I want to change the keys to constants:

  FOO = "foo"
  my_map = {
    FOO: "bar",
    # ...
    }

so I go to the quote object and do

  ca"FOO<esc>

only to then need to re-indent it back to the original level (not so
bad if it's single indent, but when it's multiple levels, it's a
pain). I've *never* had the eating-of-leading-whitespace as a desired
behavior.

Is there a way to make this consistent with the other "a" text
objects?  Some option I've missed?

-tim







--
--
You received this message from the "vim_use" 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_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: quotation text object consternation

Christian Brabandt
Hi Tim!

On Fr, 29 Mai 2015, Tim Chase wrote:

> One of the oddball frustrations I find with vim is that the
> outer-quotation objects eats leading space.
>
> To demonstrate the inconsistency, use the following document
>
>   (parens)
>   [square brackets]
>   {braces}
>   "double quotes"
>   'single quotes"
>
> and indent it (unless you copied the leading whitespace too)
>
>   :%>
>
> then, on each line, use the associated outer-text-object to change it:
>
>   ca(xxx<esc>
>   ca[xxx<esc>
>   ca{xxx<esc>
>   ca"xxx<esc>
>   ca'xxx<esc>
>
> Note how the ones with quotes also get un-indented while the others
> don't.  I encounter this most frequently when coding in Python where
> I have something like
>
>   my_map = {
>     "foo": "bar",
>     "baz": "whinge",
>     "fred": "barney",
>     }
>
> and I want to change the keys to constants:
>
>   FOO = "foo"
>   my_map = {
>     FOO: "bar",
>     # ...
>     }
>
> so I go to the quote object and do
>
>   ca"FOO<esc>
>
> only to then need to re-indent it back to the original level (not so
> bad if it's single indent, but when it's multiple levels, it's a
> pain). I've *never* had the eating-of-leading-whitespace as a desired
> behavior.
>
> Is there a way to make this consistent with the other "a" text
> objects?  Some option I've missed?

I am not sure. But let's look at the documentation:

,----[ :h text-object (and scroll down a bit) ]-
| For non-block objects:
| For the "a" commands: The operator applies to the object and the white
| space after the object.  If there is no white space after the object
| or when the cursor was in the white space before the object, the white
| space before the object is included.
`----

Here is an idea:
Perhaps you can try to always put some whitespace after the quotes, so
that accessing the objects won't use the whitespace in front of it.

Then doing ca' will not un-indent the object. Perhaps, you could even
map that to a function that first adds whitespace before trying to
access that object?

Best,
Christian
--
Was zugunsten des Staates begonnen wird, geht oft zuungunsten der Welt
aus.
                -- Karl Kraus

--
--
You received this message from the "vim_use" 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_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: quotation text object consternation

Eric Christopherson
In reply to this post by Tim Chase


--
--
You received this message from the "vim_use" 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_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: quotation text object consternation

Eric Christopherson
On Tue, Jun 02, 2015, Eric Christopherson wrote:
>

Whoops; sorry about the empty posting.

--
        Eric Christopherson

--
--
You received this message from the "vim_use" 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_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.