在Keymando中重新映射Capslock Key?

时间:2011-09-24 13:41:29

标签: ruby macruby remap keymando

您可以重新映射Keymando中的CapsLock密钥吗?

CapsLocklisted as an available key但是当我尝试像以下测试时一样:

map "<CapsLock-j>" { alert("CapsLock-j") }

...并在Keymando菜单中点击Reload Config,我收到一个错误对话框,上面写着:

  

解析Keymando配置文件时出错

     

未定义的方法`ctrl'代表nil:NilClass

是否有CapsLock的缩写?例如,在可用键中,Control键仅列为Control,但在示例代码中为ctrlCapsLock是否有类似的缩写?

如果可能,我想使用CapsLock键作为模式键来实现如下逻辑:

if <CapsLock>
  map <j>, <Down>
  map <k>, <Up>
  # ...etc
end

2 个答案:

答案 0 :(得分:2)

很抱歉,我们在网站上列出了Capslock的错误。目前它只能通过“Modifer Keys ..”下的Keyboard.prefPane重新映射到Control,Option或Command,现在我们无法检测它是否被按下了。

我们会睁大眼睛寻求解决方案,但截至目前,它不会做你想要的。抱歉。

该网站已经修复,以避免混淆。

答案 1 :(得分:1)

虽然您无法重新映射大写锁定,但您可以通过向keymandorc文件添加一些基本状态来实现几乎相同的功能。我无法弄清楚如何将某些东西单独映射到选项键,但除此之外,这应该是你的目标:

在keymandorc的顶部放置:

@caps = false

然后在你定义绑定的任何地方放下类似下面的内容

map "j" do
  if @caps then
    send("<Down>")
  else
    send("j")
  end
end
map "<Option-v>" do
  @caps = !@caps;
  alert("Vim Mode: " + @caps.to_s)
end

如果@caps为true,您还可以绑定escape以退出模式,依此类推。