org2blog/wp-mode での ddskk の C-j の挙動について

emacsのorg2blogにてブログの記事を書いていると、日本語入力で不思議な動作になることがあった。よく観察すると直接入力モードから C-j をタイプしてかなモードに変更できていないようであった。

検索するとorg2blogではないようだが、同様の現象に悩んでいる方がいたようだ。

  1. Emacs DDSKKの設定メモ – takeokunn’s blog

開発者の方から解決策を提示されたようでその解決策が下記にある dot.skkskk-C-j-key 関数を使用するもの。

  1. ddskk/dot.skk at master · skk-dev/ddskk

下記のように org2blog/wp モードを追加して、 ~/.skk に記述したところ C-j が正常に動作するようになった。

;; ■モードのまま C-j を有効とする
(defun skk-C-j-key (arg)
  (interactive "P")
  (let ((enable-modes '(lisp-interaction-mode ; eval-print-last-sexp
                        emacs-lisp-mode       ; newline-and-indent
                        org2blog/wp           ; org-newline-and-indent?
                        )))
    (cond
     ((and (null (skk-in-minibuffer-p)) 
           (null skk-henkan-mode)
           (member major-mode enable-modes))
      (skk-emulate-original-map arg))
     (t
      (skk-kakutei arg)))))

(add-to-list 'skk-rom-kana-rule-list
             '(skk-kakutei-key nil skk-C-j-key))