如何映射:E到:探索?我已经安装了一个导致E464的扩展:如果我这样做,模糊使用用户定义的命令:现在,但我的手指不会忘记命令!
我试图:E:探索,但这是丑的,因为它访问其他命令困难。
我试过这些:
cmap :E<CR> :Explore<CR> cmap :E^M :Explore^M
(其中^ M =控制v输入),但这些不工作,除非我真的快速进入真正的进入。
:E通常就足够了,如果:Explore是唯一一个以E开头的定义的命令。你显然有多个这样的命令定义,所以:E是不明确的并且导致一个错误。
原文链接:/bash/387329.html:cmap导致立即字面替代,因此有不良副作用。一个更好的选择是:cabbrev,可用于定义命令模式的缩写:
cabbrev E Explore
这将触发EEnter或ESpace。前者是希望的,因为键入:EEnter将调用:Explore,但后者在命令模式下再次具有副作用。
为了:E被正确地别名为:浏览,它必须被定义为单独的命令:
command! E Explore
但是,命令E列出了以E开头的所有定义的命令,它显示:E和:Explore具有不同的属性。例如,不可能执行:E〜因为:E不接受任何参数。另外,不同于:探索:E不会自动完成目录。
为了弥补这些缺陷:E必须以完全相同的方式定义:探索。执行:verbose命令Explore显示脚本的位置,其中:定义了Explore; :然后可以以相同的方式定义E,添加< args>:
command! -nargs=* -bar -bang -count=0 -complete=dir E Explore <args>
虽然可以从以下命令推导出这些属性的大部分属性:command Explore,但在这种情况下仍然可能存在差异,例如-bar。
注:如果:Explore::定义示例:Exp和:Exa是可以使用的最短的明确的命令。明确的别名:E到其中一个,如上所述,覆盖了Vim的默认行为,并允许消歧。但是,Ex仍然是模糊的。