I'm using "set wrap". I'd like to come up with a remap of dd that would does the follwing:
If the current line is wrapped, it then performs g0dg$
Else, it performs the conventional dd.
The problem is this. if i just use:
vnoremap dd g0dg$
nnoremap dd g0dg$
whenever i have non wrapped lines, such as:
a
b
c
And I "dd" line two, it will end up with sth like:
a
(blank line)
c
Instead of this expecting result:
a
c
Thanks in advance
Check whether virtcol('$') is greater then winwidth(0): something like this:
nnoremap <expr> dd (virtcol('$') > winwidth(0)) ? 'g0dg$' : 'dd'
> --
> --
> 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 vim_use+u...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
On Jul 14, 2013 1:53 AM, "Leonardo Barbosa" <barbosa....@gmail.com> wrote:
>
> Thanks Nikolay. That did the job. I was wondering if i could pass an
> argument to the map so that i can do something like : 2dd, 3dd, and so
> on...
Count is accessible via v:count and v:count1. You will have to write function that handles it properly though in the case of lengthy lines.