LoginSignup
3
2

More than 5 years have passed since last update.

keymap.csonに頼らずキーバインドを削除する

Posted at

キーマップの削除

通常、Atomのキーバインドを削除するにはkeymap.csonにてunset!と書く。

keymap.cson
"atom-text-editor:not([mini])":
  "tab": "unset!"

この場合、ユーザー自身でCoreのキーバインドを削除する分にはいいが、パッケージでCoreのキーバインドを変更したい場合、keymaps/[package].csonに書いてしまうと顰蹙もののように思える。
README.mdに書いてユーザーに設定を促すのもひとつの方法だと思うが、プログラムで制御してオプションのオン/オフでキーバインドの変更が出来ると便利ではないだろうか。

キーマップを扱うには?

キーマップを扱うKeymapManagerオブジェクトにはatom.keymapsでアクセスできる。
キーマップを追加するにはatom.keymaps.addメソッドを利用するが、削除はどうするのだろうか?
例のごとくAtomのソースコードを彷徨っているとmenu-manager-spec.coffeeにこのような記載があった。

menu-manager-spec.coffee
atom.keymaps.add 'test', 'atom-text-editor': 'ctrl-b': 'unset!'

keymap.csonに書くときと同じようにunset!を渡せばよいようだ。
試しにデベロッパーツールのコンソールから下記の通り実行してテキストエディターでタブキーを押すとeditor:indentではなくcore:focus-nextが実行されてフォーカスがどこかに飛んでいった。

atom.keymaps.add("Core", {"atom-text-editor:not([mini])": {"tab": "unset!"}});
3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2