UserScriptを使って、Confluenceエディタのショートカットを一部無効にする

僕は日本語のかなに切り替える際、Ctrl-Shift-jを使っている。Ctrl-Shift-k、英字なら Ctrl-Shift-;だ。かな・カナ・英字を瞬時に切り替えられてとても便利なのだけど、最近Confluenceを使い始めて困ったことが発生した。それは、 Ctrl-Shift-jのショートカットがConfluenceのエディタにもあり、かなに切り替えるとエディタ側のショートカットも発動してしまうのだ。ショートカットとしてはJiraのチケット検索ダイアログを表示するというもので、これはこれで便利なのだけど僕としてはかな切り替えの方が優先順位が高い。複数のマシンでCtrl-Shift-jをかな切り替えに使っているし、そこは譲れない。

Confluence側の設定でショートカットを無効にできればよかったけどどうもそうはいかないようだったので、10年ぶりくらいにUserScriptを書いて制御することにした。

// ==UserScript==
// @name        Disable ctrl+shift+j in Confluence editor
// @namespace    http://repl.info/
// @version      0.1
// @description  Disable ctrl+shift+j in Confluence editor
// @author       Ryo Takaishi
// @include */editpage.action?*
// @include */createpage.action?*
// @run-at document-idle
// @grant        none
// ==/UserScript==

document.addEventListener('DOMNodeInserted', function() {
    if (tinyMCE) {
        if (tinyMCE.activeEditor) {
            tinyMCE.activeEditor.shortcuts.remove("ctrl+shift+j");
        }
    }
}, false);

tinyMCEを使っているので、このようにショートカットを削除すればOK。JavaScriptを知っているとこういうちょっとした改善をシュッとできるので便利ですね。

Leave a Reply

Your email address will not be published. Required fields are marked *