Monday, April 23, 2018

Re: Problem with completefunc and lists

On Monday 23 April 2018 10:06,
Dave Woodfall <dave@dawoodfall.net> put forth the proposition:
>I made a custom completefunc for email addresses from the tip here:
>https://gitlab.com/muttmua/mutt/wikis/ConfigTricks
>
>fun! CompleteEmails(findstart, base)
> if a:findstart
> let line = getline('.')
> let start = col('.') - 1
> while start > 0 && line[start - 1] =~ '[^:,]'
> let start -= 1
> endwhile
> return start
> else
> let res = []
> for m in split(system('completeemails ' . shellescape(a:base)), '\n')
> call add(res, m)
> endfor
> return res
> endif
>endfun
>
>fun! UserComplete(findstart, base)
> let line = getline(line('.'))
> if line =~ '^\(To\|Cc\|Bcc\|From\|Reply-To\):'
> return CompleteEmails(a:findstart, a:base)
> endif
>endfun
>
>And my completer script:
>
>#################################
>#!/bin/sh
>
>afile="$HOME/.mutt/aliases"
>base=$(echo "$@" | sed "s%^ %%g")
>
>aliases=$(cut -d' ' -f2- $afile | grep -iE "^$base" | cut -d' ' -f2- \
> | sed "s%^% %")
>names=$(cut -d' ' -f3- $afile | grep -iE "^$base" \
> | sed "s%^% %")
>addresses=$(cut -d'<' -f2 $afile | cut -d'>' -f1 | grep -iE "^$base" \
> | sed "s%^% %")
>
>printf "%s\n%s\n%s" "$aliases" "$names" "$addresses" | sort -u
>################################
>
>When querying the script it works, but when I select an entry I get
>": &" added to the end of the line.
>
>This even happens if I put this in the top of the script:
>
>echo " a"
>echo " b"
>echo " c"
>exit
>
>It doesn't do this when using a string, like the CompleteMonths()
>example in the docs.
>
>Why is it adding the ": &" to the end?

Hmm I've just run :imap <CR> and this was the output:

i <CR> *@pumvisible() ? "\<C-Y>: &<Tab>" : "\<C-G>u\<CR>"

I've no idea where that is coming from.

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