Re: command line mappings in wildmenu

134 views
Skip to first unread message

Christian Brabandt

unread,
Feb 13, 2013, 2:19:55 PM2/13/13
to vim...@googlegroups.com
Hi clime!

On Mi, 13 Feb 2013, clime wrote:

> With respect to this thread on so:
> http://stackoverflow.com/questions/14842987/vim-wildmenu-move-into-subdirectory-with-a-different-key-than-down
>
> It seems like command-line mappings aren't interpreted in wildmenu
> mode, and instead exit it and insert the 'wildchar' literally.
>
> Would it be possible to interpret these mappings and potentially add
> wildmenuvisible() - a function analog to the pumvisible()?

Looks like a bug to me. However, I think, if you set wildcharm=<Tab> you
can make your mapping work:

:set wildcharm=<Tab>
:cnoremap <C-j> <DOWN><Tab>

I agree, this is not really useful, without a wildmodevisual() function,
so you could do:
:cnoremap <expr> <C-j> wildmodevisible() ? "\<Down>\<Tab>" : "\<c-j>"

Attached patch enables this. Probably needs a test, but not sure how.

regards,
Christian
--
Eine dumme, einf�ltige Frau ist ein Segen des Himmels.
-- Fran�ois Marie Voltaire
wildmodevisible.diff

Ingo Karkat

unread,
Feb 14, 2013, 3:58:12 AM2/14/13
to vim...@googlegroups.com
On 13-Feb-13 20:19:55 +0100, Christian Brabandt wrote:

> Hi clime!
>
> On Mi, 13 Feb 2013, clime wrote:
>
>> With respect to this thread on so:
>> http://stackoverflow.com/questions/14842987/vim-wildmenu-move-into-subdirectory-with-a-different-key-than-down
>>
>> It seems like command-line mappings aren't interpreted in wildmenu
>> mode, and instead exit it and insert the 'wildchar' literally.
>>
>> Would it be possible to interpret these mappings and potentially add
>> wildmenuvisible() - a function analog to the pumvisible()?
>
> Looks like a bug to me. However, I think, if you set wildcharm=<Tab> you
> can make your mapping work:
>
> :set wildcharm=<Tab>
> :cnoremap <C-j> <DOWN><Tab>
>
> I agree, this is not really useful, without a wildmodevisual() function,
> so you could do:
> :cnoremap <expr> <C-j> wildmodevisible() ? "\<Down>\<Tab>" : "\<c-j>"
>
> Attached patch enables this. Probably needs a test, but not sure how.

Thanks for the patch, Christian. This is certainly useful, also for other
command-line mappings.

I didn't know about 'wildcharm'; it looks to me that making it equal to the
'wildchar' value makes sense (and not setting it to an unused key as suggested
by its help), so that one is able to record and replay stuff like :split
~/<Tab><Tab>foo.txt in a macro. I wonder why it's empty by default.

-- regards, ingo
Reply all
Reply to author
Forward
0 new messages