On 27/04/09 23:41 +0300, Agathoklis D. Hatzimanikas wrote:
> I don't think that is possible, everything after the prompt will be
> discarded with auto-completion, since this what you require from the
> input() function (completion).
> 
> A simple way to overcome this problem, is to use twice the input()
> function, one for to get the command and the other for the completion
> for your object, something like:
> 
> fun! MyFileComplete(ArgLead, CmdLine, CursorPos)
>     let ret=["file1", "file2", "file3"]
>     ".... A lot more other processing
>     return ret
> endfun
> let prompt = "Talking to shell> "
> 
> let cmd = input(prompt, '')." ".input(printf("%s%s ", prompt, 
>       \histget("@", -1)), "", "customlist,MyFileComplete")
> 
> Then if you want to use <space> instead of <enter> you can map
> temporally <enter> to <space>, like:
> 
> cnoremap <buffer> <silent> <space> <Char-0x0d>
> 
> So the whole procedure will be like this:
> 
>     Talking to shell> cp<space> <tab>
> 
> That's an idea, there might be better ways, but its quite usable like
> this, not robust but usable if you are careful.

That is a good idea, but it still has a problem, that is after
"cp<space> <tab>", the "cp" part cannot be changed. It seems that
there's a lot to do if implementing this feature via input(), I'll try
another way. 

Thank you.

-- 
Dasn


--~--~---------~--~----~------------~-------~--~----~
You received this message from the "vim_use" maillist.
For more information, visit http://www.vim.org/maillist.php
-~----------~----~----~----~------~----~------~--~---

Reply via email to