Re: substitute() regex trim last newline from register ?

2020-01-18 Thread M Kelly
Tony, hi

I ended up using getregtype("*") along with the @*=substitute() to get a 
perfect solution for my use.
Thank you again for this info.

take care,
-m

On Wednesday, January 15, 2020 at 11:53:24 PM UTC-5, Tony Mechelynck wrote:
>
> On Thu, Jan 16, 2020 at 3:08 AM M Kelly > 
> wrote: 
> > 
> > Tony, hi 
> > 
> > ok, thanks.  I can use 0 v $ y.  But V y is handy/quick ... 
> > Inside of vim its all great, V works perfectly - its just I wanted to 
> automatically remove the last newline from "* if possible, 
> > so that a V y and then outside of vim paste doesn't have the extra 
> newline. 
> > I just wondered if I could regex trim the last newline of "* or of "a 
> and put it into "* 
> > 
> > thanks always for your help, 
> > -m 
>
> What's wrong with 
> :call setreg('*', getreg('*'), 'c') 
> (see "see also" at he end of my previous message)? 
>
> Best regards, 
> Tony. 
> > 
> > On Wednesday, January 15, 2020 at 8:44:44 PM UTC-5, Tony Mechelynck 
> wrote: 
> >> 
> >> On Thu, Jan 16, 2020 at 2:29 AM M Kelly  wrote: 
> >> > 
> >> > Hi, 
> >> > 
> >> > In visual-line mode when I yank to the * register and then outside of 
> vim paste - I am getting a newline at the end of the selection. 
> >> > This does not happen in visual block or char mode. 
> >> > Does anyone know of a way to load into * reg the same selection but 
> have the last newline trimmed off ? 
> >> > ie something like: 
> >> > let @* = substitute(@a, "\(.*\)\\n/\1/", "", "") 
> >> > 
> >> > thx for everything vim, 
> >> > -m 
> >> 
> >> When yanking linewise, what you get is lines, and each of them has a 
> >> proper end-of-line. This way, when you paste it, it will be pasted 
> >> linewise, with line breaks between it and whatever happens before and 
> >> after it. 
> >> 
> >> To yank without an end-of-line at the end, yank characterwise from the 
> >> first character of the first desired line (or from the first character 
> >> you want to yank even if it is in the middle of a line) to the last 
> >> character you want to yank. This way, if you paste in the middle of a 
> >> line, you won't get line breaks before and after the pasted text. 
> >> 
> >> See also :help setreg() 
> >> 
> >> Best regards, 
> >> Tony. 
> > 
> > -- 
> > -- 
> > 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...@googlegroups.com . 
> > To view this discussion on the web visit 
> https://groups.google.com/d/msgid/vim_use/9b5f482a-1037-4c4d-8ed3-252cf2f2b501%40googlegroups.com.
>  
>
>

-- 
-- 
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+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_use/df776c0a-bee4-4171-a456-0fa3cfff06fa%40googlegroups.com.


Re: substitute() regex trim last newline from register ?

2020-01-15 Thread Tony Mechelynck
On Thu, Jan 16, 2020 at 3:08 AM M Kelly  wrote:
>
> Tony, hi
>
> ok, thanks.  I can use 0 v $ y.  But V y is handy/quick ...
> Inside of vim its all great, V works perfectly - its just I wanted to 
> automatically remove the last newline from "* if possible,
> so that a V y and then outside of vim paste doesn't have the extra newline.
> I just wondered if I could regex trim the last newline of "* or of "a and put 
> it into "*
>
> thanks always for your help,
> -m

What's wrong with
:call setreg('*', getreg('*'), 'c')
(see "see also" at he end of my previous message)?

Best regards,
Tony.
>
> On Wednesday, January 15, 2020 at 8:44:44 PM UTC-5, Tony Mechelynck wrote:
>>
>> On Thu, Jan 16, 2020 at 2:29 AM M Kelly  wrote:
>> >
>> > Hi,
>> >
>> > In visual-line mode when I yank to the * register and then outside of vim 
>> > paste - I am getting a newline at the end of the selection.
>> > This does not happen in visual block or char mode.
>> > Does anyone know of a way to load into * reg the same selection but have 
>> > the last newline trimmed off ?
>> > ie something like:
>> > let @* = substitute(@a, "\(.*\)\\n/\1/", "", "")
>> >
>> > thx for everything vim,
>> > -m
>>
>> When yanking linewise, what you get is lines, and each of them has a
>> proper end-of-line. This way, when you paste it, it will be pasted
>> linewise, with line breaks between it and whatever happens before and
>> after it.
>>
>> To yank without an end-of-line at the end, yank characterwise from the
>> first character of the first desired line (or from the first character
>> you want to yank even if it is in the middle of a line) to the last
>> character you want to yank. This way, if you paste in the middle of a
>> line, you won't get line breaks before and after the pasted text.
>>
>> See also :help setreg()
>>
>> Best regards,
>> Tony.
>
> --
> --
> 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+unsubscr...@googlegroups.com.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/vim_use/9b5f482a-1037-4c4d-8ed3-252cf2f2b501%40googlegroups.com.

-- 
-- 
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+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_use/CAJkCKXsvqS_awyNOLXxb3WzsKWPw%3Do4-%3Dh6qwY%3D6t4H4qkyUSQ%40mail.gmail.com.


Re: substitute() regex trim last newline from register ?

2020-01-15 Thread Tim Chase
On 2020-01-15 18:08, M Kelly wrote:
> V y is handy/quick

Just in case you haven't encountered it, you can make that even
quicker by just using

  Y

:-)

-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 vim_use+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_use/20200115203902.368cf2b4%40bigbox.attlocal.net.


Re: substitute() regex trim last newline from register ?

2020-01-15 Thread M Kelly
Tim, hi

ok, awesome.
I think this works now -

"aygv:let @* = substitute(@a, "\\_s\\+$", "", "")

thx so much!
-m

On Wednesday, January 15, 2020 at 8:47:54 PM UTC-5, Tim Chase wrote:
>
> On 2020-01-15 17:29, M Kelly wrote: 
> > Hi, 
> > 
> > In visual-line mode when I yank to the * register and then outside 
> > of vim paste - I am getting a newline at the end of the selection. 
> > This does not happen in visual block or char mode. 
> > Does anyone know of a way to load into * reg the same selection but 
> > have the last newline trimmed off ? 
> > ie something like: 
> > let @* = substitute(@a, "\(.*\)\\n/\1/", "", "") 
>
> Pretty sure you're 99% of the way there: 
>
>  let @+ = substitute(@a, '\n\+$', '', '') 
>
> If you want all potential trailing whitespace (spaces, tabs, and 
> newlines) 
>
>  let @+ = substitute(@a, '\_s\+$', '', '') 
>
> should do the trick. 
>
> -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 vim_use+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_use/80727860-1e5c-4c05-9b4f-c4a638d98f32%40googlegroups.com.


Re: substitute() regex trim last newline from register ?

2020-01-15 Thread M Kelly
Tony, hi

ok, thanks.  I can use 0 v $ y.  But V y is handy/quick ...
Inside of vim its all great, V works perfectly - its just I wanted to 
automatically remove the last newline from "* if possible, 
so that a V y and then outside of vim paste doesn't have the extra newline.
I just wondered if I could regex trim the last newline of "* or of "a and 
put it into "*

thanks always for your help,
-m

On Wednesday, January 15, 2020 at 8:44:44 PM UTC-5, Tony Mechelynck wrote:
>
> On Thu, Jan 16, 2020 at 2:29 AM M Kelly > 
> wrote: 
> > 
> > Hi, 
> > 
> > In visual-line mode when I yank to the * register and then outside of 
> vim paste - I am getting a newline at the end of the selection. 
> > This does not happen in visual block or char mode. 
> > Does anyone know of a way to load into * reg the same selection but have 
> the last newline trimmed off ? 
> > ie something like: 
> > let @* = substitute(@a, "\(.*\)\\n/\1/", "", "") 
> > 
> > thx for everything vim, 
> > -m 
>
> When yanking linewise, what you get is lines, and each of them has a 
> proper end-of-line. This way, when you paste it, it will be pasted 
> linewise, with line breaks between it and whatever happens before and 
> after it. 
>
> To yank without an end-of-line at the end, yank characterwise from the 
> first character of the first desired line (or from the first character 
> you want to yank even if it is in the middle of a line) to the last 
> character you want to yank. This way, if you paste in the middle of a 
> line, you won't get line breaks before and after the pasted text. 
>
> See also :help setreg() 
>
> Best regards, 
> Tony. 
>

-- 
-- 
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+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_use/9b5f482a-1037-4c4d-8ed3-252cf2f2b501%40googlegroups.com.


Re: substitute() regex trim last newline from register ?

2020-01-15 Thread Tim Chase
On 2020-01-15 17:29, M Kelly wrote:
> Hi,
> 
> In visual-line mode when I yank to the * register and then outside
> of vim paste - I am getting a newline at the end of the selection.
> This does not happen in visual block or char mode.
> Does anyone know of a way to load into * reg the same selection but
> have the last newline trimmed off ?
> ie something like:
> let @* = substitute(@a, "\(.*\)\\n/\1/", "", "")

Pretty sure you're 99% of the way there:

 let @+ = substitute(@a, '\n\+$', '', '')

If you want all potential trailing whitespace (spaces, tabs, and
newlines)

 let @+ = substitute(@a, '\_s\+$', '', '')

should do the trick.

-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 vim_use+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_use/20200115194741.6171b3b6%40bigbox.attlocal.net.


Re: substitute() regex trim last newline from register ?

2020-01-15 Thread Tony Mechelynck
On Thu, Jan 16, 2020 at 2:29 AM M Kelly  wrote:
>
> Hi,
>
> In visual-line mode when I yank to the * register and then outside of vim 
> paste - I am getting a newline at the end of the selection.
> This does not happen in visual block or char mode.
> Does anyone know of a way to load into * reg the same selection but have the 
> last newline trimmed off ?
> ie something like:
> let @* = substitute(@a, "\(.*\)\\n/\1/", "", "")
>
> thx for everything vim,
> -m

When yanking linewise, what you get is lines, and each of them has a
proper end-of-line. This way, when you paste it, it will be pasted
linewise, with line breaks between it and whatever happens before and
after it.

To yank without an end-of-line at the end, yank characterwise from the
first character of the first desired line (or from the first character
you want to yank even if it is in the middle of a line) to the last
character you want to yank. This way, if you paste in the middle of a
line, you won't get line breaks before and after the pasted text.

See also :help setreg()

Best regards,
Tony.

-- 
-- 
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+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_use/CAJkCKXtFYM-HgyE%3DGUt-kAZJA-RFBPx%3DHaEK9ceGrgy9dTamag%40mail.gmail.com.


substitute() regex trim last newline from register ?

2020-01-15 Thread M Kelly
Hi,

In visual-line mode when I yank to the * register and then outside of vim 
paste - I am getting a newline at the end of the selection.
This does not happen in visual block or char mode.
Does anyone know of a way to load into * reg the same selection but have 
the last newline trimmed off ?
ie something like:
let @* = substitute(@a, "\(.*\)\\n/\1/", "", "")

thx for everything vim,
-m

-- 
-- 
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+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_use/5811a14e-257e-4048-8639-beebcd1c5af6%40googlegroups.com.