Spacemacs/EmacsにSKK導入

SKKはかな漢字変換ツールの1つで、漢字とかなの区切りを手動で指定することで変換精度を高めているのが特徴です。

また、副次的な効果としてターミナル上のemacsで動作するメリットがあります。典型的にはLinuxサーバのようなコンパクトな編集環境でも日本語を不自由なく利用できます。近年では、スマートデバイスからSSHなどでサーバ接続する機会が増えていますが、このような構成でもデバイス側のIMEを一切用いずに日本語入力できます。
じっさいに使ってみると分かりますが、IMEはOSごとに日本語/英語切替のキーバインドが異なるため、SKKによるインターフェースの統一で利便性は大きく向上します。

なお、 Spacemacsを前提として記述していますが、.spacemacsの書き方以外はEmacs共通です。

インストール

ddskkがMELPAから提供されているため、以下のように.spacemacsの追加パッケージに指定して起動するだけでインストールできます。

   dotspacemacs-additional-packages
   '(
     ddskk
     )

このインストール方法の場合、SKK-modeの起動設定が入らないため、.spacemacsuser-configにキーバインドを設定します。これにより、Ctrl-X Ctrl-JでSKKを起動して各種機能を利用できます。
また、使い始めの段階で辞書の文字コードをUTF-8に指定しておきます。

(defun dotspacemacs/user-config ()
  (global-set-key (kbd "C-x C-j") 'skk-mode)
  (setq skk-jisyo-code 'utf-8)
  )

個人辞書のデフォルトPATHは~/.skk-jisyoです。UTF-8で作成すると一般的な環境でテキストファイルとして開いて内容を確認できます。

起動時の設定はメジャーモードへのhookを利用すると自動起動も可能です。
以下のようにtext-mode-hookを利用すると、markdown-modeなどtext-mode-hookを実装しているメジャーモードで最初からSKKが有効になる一方、ruby-modeなどプログラミング用のメジャーモードでは適切に無効な状態でファイルを開きます。

(defun dotspacemacs/user-config ()
  (add-hook 'text-mode-hook 'skk-mode)
  ; 英数字モードで起動する場合は以下の設定
  ; (add-hook 'text-mode-hook (lambda () (skk-mode) (skk-latin-mode-on)))
  )

SKKモードはデフォルトで「かな」状態ですが、上のコメントのように続けてskk-latin-mod-onを実行しておくことで、英数字モードで起動することも可能です。SKKの英数字入力モードはIMEオフと同様の挙動であるため、YAMLの編集など日本語をあまり書かないケースでも無難です。

追加設定

SKKの標準設定では送り仮名変換の際、「多きい」「大い」という紛れが起きます。
ddskkドキュメントの 送り仮名関連の設定を追加すると送りがなの文字に応じて変換精度が上がります。

チュートリアル

SKKの利用開始時のポイントは、最低限のキーバインドを覚えるためにチュートリアルを利用することでしょう。

MELPAからインストールした場合、どうやらチュートリアルが含まれていないようなので、ダウンロードします。
チュートリアルファイルの置き場は任意の場所で構いませんが、一時的に利用するだけのケースが多いでしょうから、ひとまずホームディレクトリの想定で説明します。

チュートリアルのファイルはGitHubにあります。ブラウザでダウンロードする方法などでも問題ありません。

$ cd
$ curl -OL https://raw.githubusercontent.com/skk-dev/ddskk/master/etc/SKK.tut

.spacemacsのuser-configに以下のような設定を追加するとチュートリアルコンテンツを指定できます。

(defun dotspacemacs/user-config ()
  (setq skk-tut-file "~/SKK.tut")
  )

emacs起動後にM-x skk-tutorialを実行すると、チュートリアルが始まります。Spacemacsの場合、*spacemacs*バッファが進行を干渉する挙動だったため、必要に応じてC-x kで不要なバッファを削除しておいた方が使いやすいかもしれません。

リファレンス

チュートリアルよりも詳細な説明は マニュアルに掲載されています。マニュアルに紹介されている便利な機能の例として以下のようなものがあります。

⁋ 2020/08/08↻ 2024/12/18
中馬崇尋
Chuma Takahiro