Help us understand the problem. What is going on with this article?

Yosemite で Mozc をビルド。当然 Emacs から使う(El Capitan 確認済み)

More than 3 years have passed since last update.

Mozc は Emacs 24.3 から使い始めてたのだが、諸事情で環境が変わってしまい、ビルドしようと思ったら、途中でコケる。

ということで、

を参考に、ビルドが通るようにしてみた。
これをやる気になったのは、10.10.1 が出るまで不安定だった Japanese IM のおかげかもしれない...

環境

  • OSX 10.10.1
  • Xcode 6.1
  • Emacs 24.4

環境 その2

  • OSX 10.11.2
  • Xcode 7.2
  • Emacs 24.5.1

Mozc の trunk を持ってくる

ここは Mozc 公式に従う。

cd
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
export PATH=`pwd`/depot_tools:"$PATH"
mkdir -p ~/src/mozc
cd ~/src/mozc
gclient config http://mozc.googlecode.com/svn/trunk/src
gclient sync

(不要になってたのでここは不要)build_mozc.py にパッチを当てる

build_mozc.py が OSX 対応してた。
インストールページはこちら

mozc_emacs_helper が不要な方は、build_mozc.py.diff の 18 行目だけ適用するっつーことで。

cd src
curl -O https://gist.githubusercontent.com/guehara/856103d2ba2b55dd6789/raw/02262a4ae3f4eab2f3a6bb61d23c303d78ff23c6/build_mozc.py.diff
patch -p0 < build_mozc.py.diff

ビルド

参考にしたサイトから、必要なコマンドのみ抽出。

cd src
GYP_DEFINES="mac_sdk=10.7 mac_deployment_target=10.7" python build_mozc.py gyp --noqt
python build_mozc.py build -c Release mac/mac.gyp:GoogleJapaneseInput mac/mac.gyp:gen_launchd_confs unix/emacs/emacs.gyp:mozc_emacs_helper

マシンスペック次第では時間がかかるので、落ち着いて待つ。

Mozc インストール

公式のまま

sudo cp -r out_mac/Release/Mozc.app /Library/Input\ Methods/
sudo cp out_mac/DerivedSources/Release/mac/org.mozc.inputmethod.Japanese.Converter.plist /Library/LaunchAgents
sudo cp out_mac/DerivedSources/Release/mac/org.mozc.inputmethod.Japanese.Renderer.plist /Library/LaunchAgents

Mozc の動作確認

一旦ログアウトして、
システム設定 -> キーボード -> 入力ソース -> +
と選択する。
英語に、

  • 英数 (Mozc)

日本語に、

  • カタカナ (Mozc)
  • ひらがな (Mozc)
  • 全角英数 (Mozc)
  • 半角カナ (Mozc)

があればインストールは成功しているので、お好きなものを追加するなり、しないなり。

入力ソースに追加しなくても、 mozc_emacs_helper からは使える

環境設定など、Mozc の設定ツールは Qt で書かれているようで、前述のビルド方法では動作しない。 Qt ありでビルドできたらコメントください...

Google日本語入力付属のツール群でカバーするという手法 を教えていただきました。
@minoruGH さんありがとうございます!

mozc_emacs_helper の動作確認

ログアウトしたから ITerm 落としたんですけどな人用にディレクトリ変更から。
echo を実行した結果、3行目以降のelispが出力されればOK。

$ cd ~/src/mozc/src
$ echo -e '(0 CreateSession)\n(1 SendKey 1 97)' | out_mac/Release/mozc_emacs_helper
((mozc-emacs-helper . t)(version . "2.16.1924.101")(config . ((preedit-method . roman))))
((emacs-event-id . 0)(emacs-session-id . 1)(output . ()))
((emacs-event-id . 1)(emacs-session-id . 1)(output . ((id . "4165207393716365928")(mode . hiragana)(consumed . t)(preedit . ((cursor . 1)(segment ((annotation . underline)(value . "あ")(value-length . 1)(key . "あ")))))(candidates . ((size . 1)(candidate ((index . 0)(value . "あ")(annotation . ((description . "ひらがな")))(id . 0)))(position . 0)(category . suggestion)(display-type . main)(footer . ((label . "Tabキーで選択")))))(status . ((activated . t)(mode . hiragana)(comeback-mode . hiragana)))(all-candidate-words . ((candidates ((id . 0)(index . 0)(value . "あ")(annotation . ((description . "ひらがな")))))(category . suggestion))))))

Mozc のインストールを忘れてる(or 一旦ログアウトしてない)と

((mozc-emacs-helper . t)(version . "2.16.1924.101")(config . ((preedit-method . roman))))
((emacs-event-id . 0)(emacs-session-id . 1)(output . ()))
((error . session-error)(message . "Session failed"))

な感じの出力になるはず。

mozc_emacs_helper の設置

インストールは Emacs の exec-path が通った所ならどこでも良いけど、
ここでは /usr/local/bin に

cp out_mac/Release/mozc_emacs_helper /usr/local/bin

mozc.el も必要になるので、 load-path の通った場所にコピー。
(ここでは ~/.emacs.d/lisp/mozc へ)

mkdir -p ~/.emacs.d/lisp/mozc
cp unix/emacs/mozc.el ~/.emacs.d/lisp/mozc

Emacs の設定

(setq default-input-method "japanese-mozc")
(setq mozc-helper-program-name "/usr/local/bin/mozc_emacs_helper")

ac-mozc で更に便利に

入り口と出口を書かれている方が公開されている ac-mozc もセットで使いたいので持ってくる。
(ac-mozc は、 auto-complete, mozc.el が前提条件)

cd ~/.emacs.d/lisp
git clone https://github.com/igjit/ac-mozc.git

最低限の設定は以下。

(require 'ac-mozc)
(define-key ac-mode-map (kbd "C-c C-SPC") 'ac-complete-mozc)

すごく便利!
10年以上愛用してきた SKK 、今までありがとう...

今回から自分でもコピペしやすいように、基本的にはプロンプトの $ は書かないことにしてみた。
過去の記事も余裕があれば統一すr...統一したい...

変更履歴

  • 2015.10.06 build_mozc.py へのパッチが不要になってたので更新
  • 2015.12.14 環境その2追記。ビルドコマンドを公式に合せ更新、環境設定などのツール群について追記
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした