4

这一直困扰着我很长时间。我喜欢使用 wildmenu 在命令模式下浏览目录。问题是要进入子目录,我需要使用<down>总是遥不可及的密钥。我试图做一些映射来克服这个问题,但没有成功。例如:

cnoremap <C-j> <DOWN>

但是如果我<C-j>想在wildmenu中输入子目录时按下,菜单就会消失并^I出现在命令行的末尾。知道如何解决这个问题吗?

4

3 回答 3

5

Christian Brabandt 在 vi​​m_dev 上提出了一个不同的解决方案:为了使您的原始映射正常工作,您需要设置'wildcharm'为与以下相同的值'wildchar'

:let &wildcharm = &wildchar
:cnoremap <C-j> <DOWN>
于 2013-02-14T08:51:00.993 回答
4

我可以重现这个。看起来命令行映射(与 相同<Tab>,而不仅仅是<Down>)不是在 wildmenu 模式下解释的,而是退出它并插入'wildchar'字面意思。您可以将此报告给vim_dev 邮件列表。我认为还需要一个wildmenuvisible()类似的功能pumvisible(),以便映射可以根据野菜单当前是否处于活动状态而表现不同。

不过,您可以使用 解决此问题feedkeys()

function! EnterSubdir()
    call feedkeys("\<Down>", 't')
    return ''
endfunction
cnoremap <expr> <C-j> EnterSubdir()
于 2013-02-13T08:22:17.730 回答
0

这可能是 Vim 补丁8.2.2221修复的错误。

于 2020-12-26T14:41:08.433 回答