Vim 地图:E到:在命令模式下探索?
如何将Vim 地图:E到:在命令模式下探索?,vim,Vim,如何将:E映射到:Explore?我安装了一个扩展,如果我现在安装了:E,就会导致用户定义命令的使用不明确,但我的手指不会忘记该命令 我尝试了map:E:Explore,但这很难看,因为它使访问其他命令变得困难 我试过这些: cmap :E<CR> :Explore<CR> cmap :E^M :Explore^M cmap:E:Explore cmap:E^M:探索^M (其中^M=control-v+enter)但除非我快速按enter键,否则这些命令不起作用。:
:E
映射到:Explore
?我安装了一个扩展,如果我现在安装了:E
,就会导致用户定义命令的使用不明确,但我的手指不会忘记该命令
我尝试了map:E:Explore
,但这很难看,因为它使访问其他命令变得困难
我试过这些:
cmap :E<CR> :Explore<CR>
cmap :E^M :Explore^M
cmap:E:Explore
cmap:E^M:探索^M
(其中
^M
=control-v+enter)但除非我快速按enter键,否则这些命令不起作用。:E
通常就足够了,就像:Explore
是唯一定义的以E
开头的命令一样。显然,您定义了多个这样的命令,因此:E
不明确并导致错误
:cmap
会立即导致文字替换,因此会产生不必要的副作用。稍微好一点的替代方法是:cabbrev
,它可用于定义命令模式的缩写:
cabbrev E Explore
这会在EEnter或ESpace之后触发。前者是需要的,因为键入:EEnter将调用:Explore
,但后者在命令模式下也有副作用
为了将:E
正确地别名为:Explore
,必须将其定义为单独的命令:
command! E Explore
但是,:command E
列出了所有以E
开头的已定义命令,显示:E
和:Explore
具有不同的属性。例如,不可能执行:E~
,因为:E
不接受任何参数。此外,与:Explore
不同,:E
不会自动完成目录
为了弥补这些缺陷,:E
的定义方式必须与:Explore
完全相同。执行:verbose命令Explore
显示定义:Explore
的脚本的位置<代码>:E可以用相同的方式定义,添加
:
命令-nargs=*-bar-bang-count=0-complete=dir E Explore
虽然可以从:command Explore
提供的信息推断出这些属性中的大多数,但仍可能存在差异,例如在这种情况下的-bar
注意:如果定义了
:Explore
和:Example
,:Exp
和:Exa
是可以使用的最短的明确命令。如上所述,显式地将:E
别名化到其中一个,覆盖Vim的默认行为并允许消除歧义。但是,:Ex
仍然是不明确的。另一种打开浏览器的快速方法是使用:e.
。这将:浏览当前目录。这还有一个很好的好处,就是不需要shift键。@PeterRincker整洁,但用于完全不同的用例。对于完整的n00b,请输入命令!E Explore
在~/.vimrc
文件中,然后:E将正确地别名为:Explore。
command! -nargs=* -bar -bang -count=0 -complete=dir E Explore <args>