Emacs起動でSKKも起動

日本語は, SKK派.
Emacsが起動したらまず, C-xC-jとする.
そして, これが煩わしい.
どうにかならないかあと思っていた.



SKKの設定でこれがそうだとずっと思ってたけど, 違ったみたい.
(実際望み通り動いてなかったわけだし.)

;; Emacs起動時にskkをロードする
(setq skk-preload t)

これは, SKKの起動速度を高速にする設定みたいだね.


それで, 今日, hookの話をコメント欄で教わったときに思いたった.
hookでskk-modeを起動しちまえば,
いちいちC-xC-jとかする必要なくなるのでは, と.



色々やってみたら望み通り動くようになった.

;; SKK自動起動の設定

;; lisp-interaction-mode
(add-hook 'lisp-interaction-mode-hook
          '(lambda()
             (progn
               (eval-expression (skk-mode) nil)
               )))

;; find-fileで skk-mode になる
(add-hook 'find-file-hooks
          '(lambda()
             (progn
               (eval-expression (skk-mode) nil)
               )))

;; ミニバッファ上でも skk-mode にする
;; skk-latin-mode でアルファベット入力にしておく
(add-hook 'minibuffer-setup-hook
          '(lambda()
             (progn
               (eval-expression (skk-mode) nil)
               (skk-latin-mode (point))
               ;; ミニバッファ上に「nil」と表示させないために, 空文字をミニバッファに表示
               (minibuffer-message "")
               )))

prognは, 必要かどうかよく理解していない.
ずっとこの雛形を利用してるから.
lisp-interaction-modeは, *scratch*バッファのメジャーモードみたい.
これを書いておけば, 起動した直後からSKKがオンになっている.
そして, 一番使うのは, C-xC-fだから, find-fileにhookないか調べたらちゃんとあった.
これで, find-fileでファイルを開くとSKKがオンになってくれる.
最後のは, hook調べててたまたま見付けたので, 設定してみた.
ミニバッファ上でのデフォルトが日本語入力だと使いづらいのでアルファベットにしてある.


起動が遅くなるということもなく,
今のところ特に問題は起きずに動いている.
上記の設定だけだと, バッファ上で M-x ruby-modeとかしたとき, SKKがオンになってくれない.
このときオンにするには, ruby-mode-hookに(eval ...)の設定を入れておく必要がある.
これでまた快適になった.