[Mac][Emacs] [Mac][Emacs] ライブ変換をマイナーモードに変更した

[Mac][Emacs] [Mac][Emacs] ライブ変換をマイナーモードに変更した

以前Macのライブ変換をEmacsで利用する云々の記事を書きました。

そして実際ライブ変換を利用してみましたが、まだ慣れない事もあり面倒に感じることがありました。特に急いでいる時にライブ変換が有効になってしまいタイプミスというケースなど。というわけでマイナーモード化して必要に応じてライブ変換を利用する形に変更しました。この記事はその辺の話です。

スポンサーリンク
スポンサーリンク

概要

状況によりライブ変換を使いたくないこともあるので「M-x global-live-henkan-mode」で切り替えられるようにした。

「"C-\" (M-x toggle-input-method)」の動作を通常時(モード無効時)は「半角英語 <-> 日本語」、ライブ変換モード有効時は「半角英語 -> 日本語 -> ライブ変換」のトグルで動作する形に。

グローバルマイナーモードの定義を追加

下記のグローバルマイナーモードの定義を追加。

<span style="color: #7C7C7C;">;; </span><span style="color: #7C7C7C;">&#12521;&#12452;&#12502;&#22793;&#25563;&#12398;&#12464;&#12525;&#12540;&#12496;&#12523;&#12510;&#12452;&#12490;&#12540;&#12514;&#12540;&#12489;&#23450;&#32681;
</span><span style="color: #8c8c8c;">(</span><span style="color: #96CBFE;">define-minor-mode</span> <span style="color: #FFD2A7;">global-live-henkan-mode</span>
  <span style="color: #8AE234;">"Mac&#12398;&#12521;&#12452;&#12502;&#22793;&#25563;&#12434;&#21033;&#29992;&#21487;&#33021;&#12395;&#12377;&#12427;"</span>
  <span style="color: #DAD085;">:global</span> t
  <span style="color: #DAD085;">:init-value</span> nil
  <span style="color: #DAD085;">:lighter</span> <span style="color: #8AE234;">" LiveIME"</span>
  <span style="color: #93a8c6;">(</span><span style="color: #96CBFE;">if</span> global-live-henkan-mode
      <span style="color: #b0b1a3;">(</span><span style="color: #96CBFE;">progn</span>
          <span style="color: #97b098;">(</span>advice-add 'toggle-input-method <span style="color: #DAD085;">:override</span> 'my/toggle-input-method<span style="color: #97b098;">)</span>
          <span style="color: #97b098;">(</span>add-hook 'minibuffer-setup-hook 'my/minibuffer-setup-hook<span style="color: #97b098;">)</span>
          <span style="color: #97b098;">(</span><span style="color: #96CBFE;">if</span> <span style="color: #aebed8;">(</span><span style="color: #96CBFE;">featurep</span> '<span style="color: #99CC99;">cursor-chg</span><span style="color: #aebed8;">)</span>
              <span style="color: #aebed8;">(</span><span style="color: #96CBFE;">setq</span> curchg-change-cursor-on-input-method-flag nil<span style="color: #aebed8;">)</span><span style="color: #97b098;">)</span><span style="color: #b0b1a3;">)</span>
    <span style="color: #b0b1a3;">(</span><span style="color: #96CBFE;">progn</span>
      <span style="color: #97b098;">(</span>advice-remove 'toggle-input-method 'my/toggle-input-method<span style="color: #97b098;">)</span>
      <span style="color: #97b098;">(</span>remove-hook 'minibuffer-setup-hook 'my/minibuffer-setup-hook<span style="color: #97b098;">)</span>
      <span style="color: #97b098;">(</span><span style="color: #96CBFE;">if</span> <span style="color: #aebed8;">(</span><span style="color: #96CBFE;">featurep</span> '<span style="color: #99CC99;">cursor-chg</span><span style="color: #aebed8;">)</span>
          <span style="color: #aebed8;">(</span><span style="color: #96CBFE;">setq</span> curchg-change-cursor-on-input-method-flag t<span style="color: #aebed8;">)</span><span style="color: #97b098;">)</span><span style="color: #b0b1a3;">)</span>
      <span style="color: #93a8c6;">)</span>
  <span style="color: #8c8c8c;">)</span>

利用方法

これでライブ変換を使いたい時だけ使えるようになりました。「M-x global-live-henkan-mode」を実行することで通常モードとライブ変換モードのトグルが可能です。コマンド実行毎に有効/無効が切り替わります。またライブ変換有効時はモードラインに「LiveIME」の表示がでるので現在有効か否かを確認できます。

ダウンロード

下記からソースをダウンロードしてload-pathの通った所に置いて (require 'live-henkan) としても利用可能です。
https://www.inabamasaki.com/arc/live-henkan.el

例えばelispにload-pathを通していれば

$ cd ~/emacs.d/elisp
$ wget https://www.inabamasaki.com/arc/live-henkan.el

でダウンロードして

<span style="color: #8c8c8c;">(</span><span style="color: #96CBFE;">require</span> '<span style="color: #99CC99;">live-henkan</span><span style="color: #8c8c8c;">)</span>

こんな感じで。