: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
仍然会模棱两可。