I want to write a conditional imap that will only be active when the OMNI
completion popup window is active.

I can't quite get this to work.

I have tried a few combinations of imaps:
imap <buffer> <c-right>
<C-R>=pumvisible()?"\<lt>C-Y>\<lt>C-\>\<lt>C-O>:call
sqlcomplete#Map('column')\<lt>CR>\<lt>C-X>\<lt>C-O>\<lt>CR>":""<CR>
imap <buffer> <c-right>  <C-R>=pumvisible()?"\<lt>C-Y><C-\><C-O>:call
sqlcomplete#Map('column')<CR><C-X><C-O>":""<CR>
imap <buffer> <c-right>  if pumvisible()|<C-Y><C-\><C-O>:call
sqlcomplete#Map('column')<CR><C-X><C-O>|endif

I can't use the if since that starts adding literal characters.
I found a post by Georg Dahn which indicated he was using the \<lt>, not
sure why, but I tried it as well.

Net result, nothing is working so far, the above either do nothing or result
in unexpected behaviour.

The imap I use (which works exactly as I want) when the popup is visible is:
imap <buffer> <c-right>  <C-Y><C-\><C-O>:call
sqlcomplete#Map('column')<CR><C-X><C-O>

Thanks in advance for any suggestions.

Dave






Reply via email to