Vimium: Vimium 捕获的 Escape 键

创建于 2012-03-06  ·  28评论  ·  资料来源: philc/vimium

Vimium 捕捉按键以进行转义,即使在输入模式之外。 显示这一点的最简单方法是在 Facebook 聊天中,在旧版本中,您可以按两次退出键并关闭聊天。

最有用的评论

那么解决这个问题的方法是什么?
我尝试添加map <c-]><esc> passNextKeymap <c-]> passNextKey ,但在编辑单元格后我仍然无法在谷歌表格中 Esc 。

所有28条评论

嗯,在旧版本中按 esc _once_ 会关闭聊天窗口,我经常发现自己不想那样做。 我同意从不关闭窗户也有点烦人。 也许我们应该为此创建某种传递模式。

关于什么, Esc - 它会类似于 Vim 的透传模式吗?

制作怎么样各种映射? 我发现自己设置“取消映射“试图解决这个问题,计划使用

当然,它没有用。 但这对我来说很直观。

+1 对于此错误修复,因为它破坏了文本编辑器选择减少,例如CodeMirror Sublime

上帝这很烦人,现在已经多次遇到它。 如果可以修复它会很酷,没有http://stackoverflow.com/questions/12927752/keydown-keyup-events-not-detecting-the-escape-key-being-pressed-on-input-text-fi我会丢失的。

您希望从Esc中看到什么行为?

Vimium 不允许传播任何网页的 Escape 键绑定
事件。 如果您没有参与 Vimium 活动(例如f用于查找链接)
那么它似乎只会抑制用户的能力。

2015 年 1 月 6 日星期二上午 8:18,Stephen Blott [email protected]
写道:

您希望从 Esc 中看到什么行为?


直接回复此邮件或在 GitHub 上查看
https://github.com/philc/vimium/issues/499#issuecomment -68870014。

Vimium 不允许传播任何网页的 Escape 键绑定
事件

真的吗?

测试:

watch = (type) ->
  document.addEventListener type, (event) ->
    para = document.createElement "p"
    para.innerHTML = type
    document.body.appendChild para

watch "keydown"
watch "keypress"
watch "keyup"

跑到这里。 无论有没有 Vimium,对我来说都是一样的。

重复...

您希望从 Esc 中看到什么行为?

如果您可以将我们指向特定页面,也许会有所帮助,因此我们都有一个特定的用例。

我现在正在看你的演示,这是一个特别的例子
休息: http ://codemirror.net/demo/sublime.html

它可能与重点输入有关。

2015 年 1 月 6 日星期二上午 8:44,Stephen Blott通知@github.com
写道:

Vimium 不允许传播任何网页的 Escape 键绑定
事件

真的吗?

测试:

手表=(类型)->
document.addEventListener 类型,(事件)->
para = document.createElement "p"
para.innerHTML = 类型
document.body.appendChild 段

看“keydown”
看“按键”
看“键位”

在这里运行http://smblott.computing.dcu.ie/escape.html。 看起来
无论有没有 Vimium,我都一样。

重复...

您希望从 Esc 中看到什么行为?

如果您可以将我们指向特定页面,也许会有所帮助,所以
我们都有一个特定的用例。


直接回复此邮件或在 GitHub 上查看
https://github.com/philc/vimium/issues/499#issuecomment -68873282。

它确实与被聚焦的输入有关。
http://codepen.io/ZombieHippie/pen/zxoXwW

2015 年 1 月 6 日星期二上午 8:49,Cole Lawrence [email protected]写道:

我现在正在看你的演示,这是一个特别的例子
休息: http ://codemirror.net/demo/sublime.html

它可能与重点输入有关。

2015 年 1 月 6 日星期二上午 8:44,Stephen Blott通知@github.com
写道:

Vimium 不允许传播任何网页的 Escape 键绑定
事件

真的吗?

测试:

手表=(类型)->
document.addEventListener 类型,(事件)->
para = document.createElement "p"
para.innerHTML = 类型
document.body.appendChild 段

看“keydown”
看“按键”
看“键位”

在这里运行http://smblott.computing.dcu.ie/escape.html。 看起来
无论有没有 Vimium,我都一样。

重复...

您希望从 Esc 中看到什么行为?

如果您可以将我们指向特定页面,也许会有所帮助,所以
我们都有一个特定的用例。


直接回复此邮件或在 GitHub 上查看
https://github.com/philc/vimium/issues/499#issuecomment -68873282。

我不确定你要我做什么。

我去哪个页面?
我做什么?
发生什么了?
你想发生什么?

抱歉没有解释:-)

如果你去我的代码笔http://codepen.io/ZombieHippie/pen/zxoXwW
包括你的 escape.coffe 代码,你会看到
在输入聚焦时按转义键,而当它没有聚焦时。

在codepen中点击输入聚焦,然后比较行为
按 Escape:

无 Vimium:输入不会在按 Esc 时失去焦点。
Vimium:输入确实会在按下 Escape 时失去焦点。

在 Chrome 39 上测试

2015 年 1 月 6 日星期二上午 8:56,Stephen Blott通知@github.com
写道:

我不确定你要我做什么。

我去哪个页面?
我做什么?
发生什么了?
你想发生什么?


直接回复此邮件或在 GitHub 上查看
https://github.com/philc/vimium/issues/499#issuecomment -68874993。

是的,这是对的。 因为,当输入被聚焦时,Vimium 会抓取并使用Esc 。 那是一个特点。

现在,你想要发生什么? 一种可能性是:

  • 如果页面处理Esc ,Vimium 不会。
  • 否则,它会。

但这也有问题。

  • 目前,Vimium 在页面有机会看到它之前处理Esc 。 这几乎总是正确的做法。 如果不是这样,Vimium UX 在不同的页面上会有所不同。
  • 我们可以等着看页面是否使用了该事件。 但是,尚不清楚我们是否可以可靠地检测到这一点。

事实上,以 CodeMirror 为例,我们无法知道Esc是否被处理。 他们的处理程序返回true ,不管它做了什么。

我可以看到这个功能在哪里(非常)可取(如果不需要的话)
键盘专用浏览),我认为没有明显的
除了可调整的用户偏好之外的解决方案。

2015 年 1 月 6 日星期二上午 9:16,Stephen Blott [email protected]
写道:

事实上,以 CodeMirror 为例,我们无从得知是否
Esc 是否被处理。 他们的处理程序
https://github.com/codemirror/CodeMirror/blob/master/keymap/vim.js#L667
无论它做了什么,都返回 true。


直接回复此邮件或在 GitHub 上查看
https://github.com/philc/vimium/issues/499#issuecomment -68877784。

即使您可以判断 CodeMirror 是否处理了您的 Escape 事件,我们
没有其他方法可以通过键盘使 CodeMirror 失焦。

2015 年 1 月 6 日星期二上午 9:22,Cole Lawrence [email protected]写道:

我可以看到这个功能在哪里(非常)可取(如果不需要的话)
键盘专用浏览),我认为没有明显的
除了可调整的用户偏好之外的解决方案。

2015 年 1 月 6 日星期二上午 9:16,Stephen Blott [email protected]
写道:

事实上,以 CodeMirror 为例,我们无从得知是否
Esc 是否被处理。 他们的处理程序
https://github.com/codemirror/CodeMirror/blob/master/keymap/vim.js#L667
无论它做了什么,都返回 true。


直接回复此邮件或在 GitHub 上查看
https://github.com/philc/vimium/issues/499#issuecomment -68877784。

为此建议 #1372,因此<esc>可以作为密码。

为此建议#1372,所以可以是万能钥匙。

我不这么认为。 我们处于插入模式,因此没有任何密钥代码起作用。

我不这么认为。

我专门为这个用例设计了它,它向exitInsertMode添加了密码检查。

使用 Hangouts 扩展程序时,Vimium 会阻止按 Esc 键关闭聊天窗口。 我会添加“排除的 URL 和键”规则,但我不知道聊天窗口的“URL”。 解决此问题的最佳方法是什么? 谢谢。

我以为这会起作用,但它没有......

  1. 打开chrome://extensions/并点击环聊扩展下的“选项”
  2. 记下 URL,类似于chrome-extension://sadkjfhaklsjdhfkjhasdfkjh/settingsdialog.html
  3. 点击 Vimium 按钮
  4. 从第一个框中的 URL 中删除 settingsdialog.html,保留 *
  5. 单击添加规则按钮
  1. 记下 URL,类似于chrome-extension://sadkjfhaklsjdhfkjhasdfkjh/settingsdialog.html
  2. 点击 Vimium 按钮
  3. 从第一个框中的 URL 中删除 settingsdialog.html,保留 *

Vimium 无法在chrome-extension:// URL 上运行其他扩展,因此这将无效。 如果聊天窗口确实有chrome-extension:// URL,那么我们无论如何都不会阻止<esc> (或做任何其他事情)。

  1. 不要按文字 Esc 键,而是在第二个框中键入三个字母 Esc

这使我们将Esc传递给页面。

目前,我们不支持“排除的 URL 和键”规则中的<esc>键(或任何不是单个字符的键)。 我为此目的创建了#1372,但目前不可用。 如果/当它是,输入<esc> (由空格与任何其他密钥分隔)应该阻止<esc>密钥。

解决此问题的最佳方法是什么?

如果您发现聊天窗口 URL 是什么,您可以完全阻止 Vimium(假设它们不是chrome-extension:// URL)。 我们目前没有提供任何其他有用的选项。

谢谢,马特。 真可惜。 所以这里没有解决方案。 希望看到环聊扩展聊天窗口的内置忽略。 干杯。

我也想看看路过想要忽略时忽略的键列表在某些网站上。 (或者也许将它普遍重新映射到其他东西......)

+1 支持“取消映射””。捕捉 ESC 会使使用 Google 电子表格非常烦人:当您在单元格中输入内容并想要中止时,您需要按回车键然后撤消,因为按 ESC 键的正常方式不会传播。对于其他应用程序也是如此。

鉴于这个问题已经很老了,也许现在我还没有找到一种解决方法?

@zieren。 下一个(完整)版本将有一个passNextKey命令。 参见#1985。
那应该抓住你的用例。
关闭。

那么解决这个问题的方法是什么?
我尝试添加map <c-]><esc> passNextKeymap <c-]> passNextKey ,但在编辑单元格后我仍然无法在谷歌表格中 Esc 。

这是允许传递更多密钥的另一个想法: https ://github.com/philc/vimium/issues/3272#issuecomment -475296695。

此页面是否有帮助?
0 / 5 - 0 等级