Wednesday, February 14, 2018

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

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 <nivaemail@gmail.com>:
> 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 vim_use+unsubscribe@googlegroups.com.
> 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 vim_use+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

No comments: