:E通常就足够了,就好像:Explore唯一一个以 . 开头的已定义命令一样E。您显然定义了多个这样的命令,因此:E模棱两可并导致错误。
:cmap导致立即的文字替换,因此具有不需要的副作用。一个稍微好一点的替代方法是:cabbrev,它可以用来定义命令模式的缩写:
cabbrev E Explore
这会触发跟随EEnteror ESpace。前者是需要的,因为键入:EEnter会调用:Explore,但后者在命令模式下再次具有副作用。
为了:E正确地别名为:Explore,它必须定义为一个单独的命令:
command! E Explore
但是,:command E列出了所有以 开头的已定义命令E,揭示了这一点:E并:Explore具有不同的属性。例如,:E ~由于:E不接受任何参数,因此无法执行。此外,与 不同的是:Explore,:E不会自动完成目录。
为了弥补这些缺陷,:E必须以完全相同的方式定义:Explore. Executing显示了在其中定义:verbose command Explore的脚本的位置;然后可以以相同的方式定义,并添加::Explore:E<args>
command! -nargs=* -bar -bang -count=0 -complete=dir E Explore <args>
虽然可以从 提供的信息中推断出大部分这些属性:command Explore,但仍然可能存在差异,例如-bar在这种情况下。
注意 如果:Explore和:Example被定义,:Exp并且:Exa是可以使用的最短的明确命令。:E如上所述,显式别名为其中之一会覆盖 Vim 的默认行为并允许消除歧义。但是,:Ex仍然会模棱两可。