Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vim 地图:E到:在命令模式下探索?_Vim - Fatal编程技术网

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>