Replace v:val by v:key in a list if patter matches

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Replace v:val by v:key in a list if patter matches

Ni Va
Hi,


How can I change list item's value by list index using map(.


let list = ['foo', 'bar']
let pattern = 'oo'
let mappedlist = [0, 'bar']

map(copy(s:xml), '(stridx(v:val,'.pattern.')>-1) ? v:key : v:val ')


Thank you

--
--
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: Replace v:val by v:key in a list if patter matches

tyru-2
Hi Ni Va,

You can choose what you like.

let list = ['foo', 'bar']
let pattern = 'oo'

echo map(copy(list), 'v:val =~# pattern ? v:key : v:val')
" or
echo map(copy(list), 'v:val =~# '.string(pattern).' ? v:key : v:val')
" or (Vim 8 or higher)
echo map(copy(list), {i,v -> v =~# pattern ? i : v})

2018-02-09 3:17 GMT+09:00 Ni Va <[hidden email]>:

> Hi,
>
>
> How can I change list item's value by list index using map(.
>
>
> let list = ['foo', 'bar']
> let pattern = 'oo'
> let mappedlist = [0, 'bar']
>
> map(copy(s:xml), '(stridx(v:val,'.pattern.')>-1) ? v:key : v:val ')
>
>
> Thank you
>
> --
> --
> 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.



--
Takuya Fujiwara

--
--
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: Replace v:val by v:key in a list if patter matches

Ni Va
Le mercredi 14 février 2018 11:53:11 UTC+1, tyru a écrit :

> Hi Ni Va,
>
> You can choose what you like.
>
> let list = ['foo', 'bar']
> let pattern = 'oo'
>
> echo map(copy(list), 'v:val =~# pattern ? v:key : v:val')
> " or
> echo map(copy(list), 'v:val =~# '.string(pattern).' ? v:key : v:val')
> " or (Vim 8 or higher)
> echo map(copy(list), {i,v -> v =~# pattern ? i : v})
>
> 2018-02-09 3:17 GMT+09:00 Ni Va <[hidden email]>:
> > Hi,
> >
> >
> > How can I change list item's value by list index using map(.
> >
> >
> > let list = ['foo', 'bar']
> > let pattern = 'oo'
> > let mappedlist = [0, 'bar']
> >
> > map(copy(s:xml), '(stridx(v:val,'.pattern.')>-1) ? v:key : v:val ')
> >
> >
> > Thank you
> >
> > --
> > --
> > 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.
>
>
>
> --
> Takuya Fujiwara
Thank you very much Takuya Fujiwara  !

--
--
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.