gpt4 book ai didi

vim - map :E to :Explore in command mode?

转载 作者:行者123 更新时间:2023-12-03 03:36:02 24 4
gpt4 key购买 nike

如何将 :E 映射到 :Explore?我已经安装了一个扩展,如果我现在执行 :E,会导致 E464: Ambigously use of user-defined command,但我的手指不会忘记该命令!

我尝试了 map :E :Explore,但这很丑陋,因为它使访问其他命令变得困难。

我尝试过这些:

cmap :E<CR> :Explore<CR>
cmap :E^M :Explore^M

(其中^M = control-v + Enter)但是除非我非常非常快地按回车键,否则这些不起作用。

最佳答案

:E通常就足够了,如果 :Explore是唯一以 E 开头的已定义命令。显然您定义了多个此类命令,因此 :E不明确并导致错误。

:cmap导致立即的文字替换,从而产生不需要的副作用。稍微好一点的替代方案是 :cabbrev ,可用于定义命令模式的缩写:

cabbrev E Explore

这会触发以下EEnterESpace。需要前者,因为输入 :EEnter 将调用 :Explore ,但后者在命令模式下同样有副作用。

为了:E正确地别名为 :Explore ,它必须被定义为一个单独的命令:

command! E Explore

但是,:command E ,其中列出了所有以 E 开头的已定义命令,揭示 :E:Explore具有不同的属性。例如,不可能执行 :E ~因为:E不接受任何论据。另外,与 :Explore 不同, :E不自动完成目录。

为了弥补这些缺陷,:E必须以与 :Explore 完全相同的方式定义。执行: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仍然是模棱两可的。

关于vim - map :E to :Explore in command mode?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14367440/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com