Mozc
来自项目的 主页
- Mozc 是一款日语 输入法编辑器 (IME),旨在支持 Android OS, Apple OS X, Chromium OS, GNU/Linux 和 Microsoft Windows 等多平台。该开源项目源自 Google 日语输入法。
Mozc 与 Google 日语输入法之间的区别在项目的 About Branding 页面有详细描述。简而言之,Mozc 的开源代码不包含 Google 广泛的词汇转换表(即“词典”),因此其转换质量与 Google 品牌产品不相当。不过,这可以通过自定义词典在很大程度上得到缓解(见下文)。
安装
分立包与集成包
作为一款 IME,Mozc 分为两个独立部分:一个负责所有转换工作的服务端 (server),以及一组允许服务端与系统的 输入法框架通信并在屏幕上输出结果的模块 (modules)。对于 IBus, Fcitx5, Fcitx 和 Emacs, each 均需要一个单独的模块。
一些 Mozc 软件包仅包含特定于 IMF 的模块,并将服务端分立 (split)为一个单独的 mozcAUR 包;这允许不同的模块与服务端独立地并存安装(在多用户设置中,不同用户使用不同的 IMF,或在使用 Emacs 时,这会非常有用)。
其他 Mozc 软件包则放弃这种分立,而是将服务端与模块集成 (integrate)在一起。这确实有其优点,但一个显著的缺点是由于文件冲突,无法安装额外的模块(因为有多个软件包在竞争提供服务端的同一文件)。
如果出于某种原因你需要同时安装多个 IMF 模块,解决方案是:要么自行构建非分立包并手动解决文件冲突,要么仅在分立服务端的软件包中进行选择。
UT 词典
如前所述,由于不包含 Google 的广泛转换表,Mozc 的转换质量不如 Google 日语输入法。为此存在一个名为 UT 词典的解决方案。这是一个第三方词典,能增强 Mozc 的转换质量,使其更接近 Google 日语输入法。它通过包含从多个流行在线来源(基于 Google, Yahoo 和 Wikipedia 的页面排名)聚合的数千个额外词汇,以及集成各种专业来源(如 NEologd 词典,其创作者称其包含“从网络许多语言资源中提取的新词”)来实现这一目标。
总结
安装一个或多个 fcitx5-mozc-utAUR, fcitx-mozc-utAUR, ibus-mozcAUR 或 emacs-mozcAUR。
当被询问希望使用哪个版本的 Mozc 时,请选择 mozcAUR(原版 Mozc)或 mozc-utAUR(UT 增强版 Mozc)。
配置
IBus
有关更多信息,请参阅 IBus。
~/.config/mozc/ibus_config.textproto 并追加以下行~/.config/mozc/ibus_config.textproto
... } active_on_launch: True
如果不起作用
- 检查
~/.mozc/ibus_config.textproto是否存在。如果存在(例如因为 Mozc 是从旧版本升级而来的),它将优先于~/.config/mozc/ibus_config.textproto。 - 运行
ibus write-cache; ibus restart命令重启 IBus。
更多信息请参阅 Mozc 文档。
通过运行以下命令打开 IBus 配置工具
$ ibus-setup
在 输入法 选项卡中,点击 添加,然后搜索并添加 Mozc 布局。
你可以使用 Alt+Shift_L 切换到新的 Mozc 布局(按照 IBus 默认设置)。
Fcitx5
更多信息请参阅 Fcitx5。
通过运行以下命令打开 Fcitx5 配置工具
$ fcitx5-configtool
在 输入法 选项卡中,在 添加输入法 菜单中添加 Mozc。你可以在 配置全局选项 中设置切换布局的键盘快捷键。这与普通的 KDE 布局切换器不同,因此可以在 Mozc 映射的日语不同布局之间切换。
类似于 Ibus 的 使用系统键盘布局,你可以在删除按钮左侧选择 Mozc 的布局。这选择的是在进入 Mozc 之前 使用的布局,因此可以使用正确映射到 Mozc 的自定义布局。
Emacs
你可以使用 mozc.el (mozc-mode) 通过 LEIM (Library of Emacs Input Method) 输入日语。要使用 mozc-mode,请将以下内容写入你的 .emacs.d/init.el 或其他 Emacs 自定义文件
(require 'mozc) ; or (load-file "/path/to/mozc.el") (setq default-input-method "japanese-mozc")
mozc.el 在显示候选词的风格中提供了“overlay”模式(自 mozc r77 起),它会在光标附近以方框形式显示候选词窗口。如果你想默认使用它,请添加以下内容
(setq mozc-candidate-style 'overlay)
C-\ (toggle-input-method) 可启用或禁用 mozc-mode。
禁用 XIM
当你在桌面使用输入法并将输入法的启用/禁用分配给 C-SPC 时,你将无法在 Emacs 中将 C-SPC/C-@ 用作 set-mark-command。为了避免这个问题,请将以下内容添加到你的 ~/.Xresources 或 ~/.Xdefaults 中。XIM 将在 Emacs 中被禁用。
Emacs*UseXIM: false
技巧与提示
确认当前使用的 Mozc 版本
在激活 Mozc 时输入 "ばーじょん" ("version") 并进行转换。Mozc 的版本号将如下显示在候选列表中
ばーじょん
バージョン ヴァージョン ばーじょん Mozc-1.6.1187.102 ⇐ Current version of Mozc ...
从命令行启动 Mozc 工具
以下是启动 Mozc 工具的命令
- Mozc 设置:
/usr/lib/mozc/mozc_tool --mode=config_dialog - Mozc 词典工具:
/usr/lib/mozc/mozc_tool --mode=dictionary_tool - Mozc 词汇注册:
/usr/lib/mozc/mozc_tool --mode=word_register_dialog
在 ASCII 布局键盘上将 CapsLock 用作 Eisu_toggle 键
在 Mozc 的所有预设键位风格中,Composition 模式下的 Toggle alphanumeric mode 命令被分配给了 Eisu (Eisu_toggle), Hiragana/Katakana 或 Muhenkan 键,但 ASCII 键盘没有这些键。
一种解决方案是将 Caps Lock 键用作 Eisu_toggle(截至 r124,Mozc 无法识别 Caps Lock 键)。以下是将 Eisu_toggle 分配给 Caps Lock(无修饰键)并将 Caps_Lock 分配给 Shift+CapsLock 的方法,类似于 OADG 键盘布局。
按如下方式编辑 ~/.Xmodmap
keycode 66 = Eisu_toggle Caps_Lock clear Lock
然后,重启 X 或运行 xmodmap 以立即应用更改
$ xmodmap ~/.Xmodmap
在非英语/非日语系统中执行底层日语键位映射
如果你主要使用非英语或非日语系统,且键盘布局不同于 QWERTY(例如德语),并且仅将日语作为辅助输入语言,则键位映射可能会基于此 主键盘语言。这可能会很奇怪,特别是如果你是从 Windows 或 MacOS 或直接从日语电脑迁移过来的。
要在 Ibus 上更改底层键盘布局,请在 ~/.config/mozc/ibus_config.textproto 中将 layout 键设置为 Japanese(或其他 QWERTY 键盘)以更改默认键位图
~/.config/mozc/ibus_config.textproto
engines {
...
layout : "jp"
...
}
故障排除
构建 Mozc 失败(进程被终止)
如果构建过程失败并出现如下错误消息
... /bin/sh: line 1: xxxx killed ... make: *** [xxx/xxx...] error 137 ...
请确保你的内存没有耗尽。
升级 Mozc 并重启 X 或输入法框架(未重启系统)后,新版本 Mozc 未生效
旧版本的 Mozc 可能仍驻留在内存中。尝试杀死现有的 mozc_server 进程
$ killall mozc_server
mozc_server 变为僵尸进程 (defunct)
Mozc 不能在 root 用户下运行。请在普通用户下启动 X。
Emacs 中找不到 mozc_emacs_helper
安装 mozc.el 时,你需要安装一个名为 mozc_emacs_helper 的辅助程序。
你需要安装 emacs-mozcAUR 来获取此辅助程序。
Mozc 工具无法启动
你还可以启动 Mozc 工具并将日志直接发送到控制台,这对于调试很有用。要启用此功能,只需像这样追加 --logtostderr
$ /usr/lib/mozc/mozc_tool --mode=config_dialog --logtostderr
深色模式下候选词窗口白得刺眼
使用以下 环境变量
MOZC_IBUS_CANDIDATE_WINDOW=ibus