Friday, November 27, 2020

Re: help with map(), please!

Dr. Chip,

I may be trivializing what's happening, but have you considered using \_s instead of just \s?

Or passing it to another map that calls trim before?

Something like split -> mapWithTrim -> yourOriginalMap

I'm sure I'm missing something obvious because someone with your experience wouldn't ask a question if it were this simple. Also, I'm using my mobile phone right now so I can't actually type the full syntax.

I would've used a join instead of the last map and just wrap the result in a <> pair. 

--

Salman

On Fri, Nov 27, 2020, 19:05 Charles Campbell <campbell@drchip.org> wrote:
I'm having a bit of a problem with map(). I've had problems with map() before, and consequently I really really hate to use it.
Here goes:

1: construct a comment:
"   Testing: one two | three four | five | six |
"            seven | eight |;
2. grab characters:
fo<ctrl-v>j$"ay

3. convert to list:
let list= split(@a,'\s*|\s*;\=',' ')
4. Now, try to use map():
call map(list,"substitute(v:val,'<&>','','ge')")

Intent: to put <...> around every argument. Now, this isn't really my final intent for this, but if I could get that substitute to work, it'd be a nice start. Please note, the request is on how to get a substitute() to work with map(), not to put angle brackets around every list element, for which :help map() already has an example.
5. Bonus request: my construction above carefully gets a newline into the list. Using :echo string(list):
['one two', 'three four', 'five', 'six', '
seven', 'eight', '                    ']
    I cannot seem to get rid of the newline, but its probably due to my lack of success with substitute().

I've spent about three hours on this so far, with multiple attempts, all unsuccessful. Perhaps an extra example in help map() illustrating how to do this would be of use?

Thank you,
Chip Campbell

--
--
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+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/vim_use/91e26ba3-9e1b-19ad-3c43-ff7b42a0de3c%40drchip.org.

--
--
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+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/vim_use/CANuxnEfkwDiTgaC9e2zDNCo6-nhch4N3A9B59EV6JbAdws1U8A%40mail.gmail.com.

No comments:

Post a Comment