On Tue, Feb 10, at 07:32 Agathoklis D. Hatzimanikas wrote:
> On Tue, Feb 10, at 09:00 Tom Link wrote:
> >
> > > For example, with a such entry in my aliases file :
> > > alias chuck Chuck Nurris <[email protected]>
> > > could have a (case insensitive) completion based on the alias, the first
> > > name, name or the email.
> >
> > The simplest solution would be to keep the e-mails in a dictionary but
> > that wouldn't meet your requirements. I think you could write a
> > completefunc, that reads the file with readfile() and returns a list
> > of lines (but without the alias part) that match the arglead.
> >
>
> Here is one I use, (substitute the path to your aliases file):
>
> function! Reademailaddress(A,L,P)
> let list = readfile(expand("$HOME")."/.mutt/aliases")
> call map(list, 'substitute(v:val, ''.*<\(.*\)>'', ''\1'', ''g'')')
> return filter(list[0:-2], 'v:val =~ "^".a:A')
> endfunction
>
> call input("To: ", "", "customlist,Reademailaddress")
>
Here is another most complete example, it will complete aliases entries
based on the alias (adjust accordingly to match your preferences, just
change the 'key' variable with another line[index]):
(save those two functions in ~/.vim/autoload/mail.vim and substitute
the path to your aliases)
function! mail#read(A,L,P)
let list = readfile(expand("$HOME")."/.mutt/aliases")
let s:dic = {}
let keylist = []
for alias in list
let line = split(alias)
let key = line[1]
let s:dic[key] = line[2:]
call add(keylist, key)
endfor
return filter(keylist, 'v:val =~ "^".a:A')
endfunction
function! mail#alias()
let to = input("To: ", "", "customlist,mail#read")
return join(s:dic[to])
endfunction
To use it - let's say while you are in insert mode, use the expression
register, like e.g.,
<C-R>=mail#alias()
Then type the first alias letter for auto completion.
You can add some tests, like filereadable('path/to/aliases') to make it
more robust.
Regards,
Ag.
--~--~---------~--~----~------------~-------~--~----~
You received this message from the "vim_use" maillist.
For more information, visit http://www.vim.org/maillist.php
-~----------~----~----~----~------~----~------~--~---