如何更改原子附加组件的键绑定?

How to change the keybindings of atom add-ons?

我已经在 Atom 中安装了 atom-shortcuts 附加组件,但由于我的键盘布局,我无法使用快捷方式切换备忘单,因此我想更改此附加组件的键绑定但是我在 Atom 的键绑定部分找不到它的名称。我在哪里可以找到更改此附加组件的键绑定所需的信息?

这个特定包的问题是它没有遵循分配键绑定的标准方法,即通过在 /keymaps 子文件夹中提供 CSON(或 JSON)文件。相反,包分配键绑定 programmatically。它也不会在其 activate() 方法中注册由键绑定触发的命令。

不幸的是,这种组合使得无法重新分配 “Atom 方式” 的键绑定。除非你能说服作者重新实现命令注册和键绑定分配(或自己 fork 包),否则只有最后一招:使用相同的肮脏技巧来改变包的行为。

您可以将以下 CoffeeScript 片段放入 Atom 的 init script 文件中:

# Get the selector for the atom-shortcuts element
atomShortCuts = document.querySelector "div.atom-shortcuts"

# Assign a custom keydown event
document.body.addEventListener 'keydown', (event) ->

  # Pick a shortcut, Ctrl+Shift+S in this example
  if event.ctrlKey and event.key is 'S'
    atomShortCuts.style.display = 'block'
  return

我建议阅读 MDN 的 KeyboardEvent if you want your keybinding to behave differently. CSS Tricks has a helpful testing tool 键盘事件文档。