Vimperator 按键绑定,需要额外按键

Vimperator 按键绑定,需要额外按键

我对 Vim/Vimscript 还很陌生,我正在尝试配置我的 .vimperatorrc 以执行与运行时相同的操作:open google search-term

从阅读来看,我似乎需要nnoremap g :open google<Space>。它几乎可以工作,但直到我按下另一个键,窗口才会出现。

我还需要做其他事情吗?明确地说,我希望它基本上做同样的事情,但不需要额外按下按键来打开搜索窗口。

答案1

当您尝试使用映射时,在命令行中显示内容之前会犹豫一下,这可能表明 Vimperator 除了您迄今为止按下的选项之外还有更多选项。它正在等待更多按键,以查看是否可以通过以下方式解决歧义:A) 匹配具有更多字符的映射(不存在剩余歧义)或 B) 不匹配任何其他内容,从而使用匹配的较短映射。我将首先使用带有引导键的示例进行演示,然后再回到您的具体问题。

假设您的.vimperatorrc文件中有以下内容(并假设您的 leader 键是默认键,\(请参阅:h mapleader)):

nnoremap <leader>g :open google<space>

一旦输入完毕\g:open google就会如预期那样出现。但是,假设您的 中有以下内容.vimperatorrc

nnoremap <leader>g :open google<space>
nnoremap <leader>gw :open google wiki<space>

现在,输入 后\g,没有任何明显的变化(除非您仔细查看当前 URL 的左侧,它会显示您输入的命令模式按键)。这是因为 Vimperator 不确定您是否需要该\g映射,或者您是否打算同时按下 aw来完成\gw映射。在这种情况下,您可以输入命令:nmap \g(先不要按<enter>),然后您会看到这两个映射。

但是,在您的场景中,您正在映射字符g。 Vimperator 有许多与以字母 开头的键组合相关的操作g。例如,gt&gT表示“移动到下一个/上一个选项卡”。 (由于这些是默认键绑定,因此在您键入命令 时不会显示它们:nmap g。)可能可以取消所有默认g[another character]映射,但这是不合常规的,可能也不健康。为了防止与默认键绑定发生冲突,惯例会鼓励您将 Leader 键与自定义映射一起使用,如上所示。

相关内容