この日記は私的なものであり所属会社の見解とは無関係です。 GitHub: takahashikzn

AtomのCoreキーバインディングを無理やり変更

つい先ほどAtomを0.208.0へ更新したら、"ctrl-/"キーの動作がeditor:toggle-commentsにすり替わっていました。

僕はatomic-emacsをインストールしているのでcore:undoになるはずなんですが…


どうもAtomのコアキーバインディングが優先されてしまうように見えます。バグじゃないのかコレ? しかも、keymac.csonに以下のように記述してもダメ。

'atom-workspace atom-text-editor:not([mini])':
    'ctrl-/': 'core:undo'

無理やりCoreキーバインディングを無効化

というわけで、どうにかCoreキーバインディングを無効化する手段がないか探した所、 init.coffeeで以下の通りにすれば出来ました。

atom.keymaps.keyBindings = atom.keymaps.keyBindings.filter(
    (binding) ->
        if (binding.keystrokes == 'ctrl-/') && (binding.command != 'core:undo')
            console.info 'discard keybinding!!', binding
            false
        else
            true
)

true,falseリテラルのところがダサいですが、人生初coffeeなので見なかったことにして下さい。 console.infoをどうしても入れたかったんや…


ちなみに、atom.keymapsbinding.keystrokesのようなプロパティの解説文書はどこにも無いっぽい。

むしろドキュメントを探すのが面倒だったので、毎度おなじみソースリーディングで探しました。 このへんが該当箇所。

http://github.com/atom/atom-keymap/blob/master/src/keymap-manager.coffee http://github.com/atom/atom/blob/master/src/atom.coffee


ま、個人的にはRuby系構文がキライ肌に合わないのでアレでしたが…