banner
粥粥

质数人生

Prime Life

ゼロから始める:マウスひげ管入力法の設定完全解析

前言#

Rime は単純に入力法として分類できるものではなく、正確には入力法のフレームワークであり、「鼠鬚管」はその MacOS システム上のアプリケーションです。具体的なオペレーティングシステムと入力法については、以下の表を参照してください。

オペレーティングシステム対応する入力法github
Windows小狼毫https://github.com/rime/weasel
macOS鼠鬚管https://github.com/rime/squirrel
Ubuntu中州韵https://github.com/rime/ibus-rime
iOS仓入力法https://github.com/imfuxiao/Hamster
Android同文入力法https://github.com/osfans/trime

これらのアプリは入力方案の設定と対応する方案を基に動作するため、このフレームワークの下では、理論的には異なる設定ファイルを統合することで、実際にカスタマイズされた入力法を実現できます。

説明が必要なのは、市場にはすでに多くの成熟した入力法ソフトウェアが存在し、Rime のカスタマイズには一定の習得のハードルがあることです。日常生活で入力法に対して特に高い要求がない場合や、仕事でカスタマイズされた辞書を使用して生産性を向上させる必要がない場合、この記事の大部分はあなたにとって無効かもしれません。

この記事は資料を調べる際に作成したメモであり、個人的に関連知識を振り返る際の参考として使用されます。
私の主なプラットフォームは macOS+iOS であるため、内容は主に鼠鬚管と仓入力法に焦点を当てています。しかし、前述のように、プラットフォームのアプリケーションが異なるだけで、実際の基盤は Rime というカスタマイズされた設定と辞書の組み合わせです。Rime のようなカスタマイズ入力法に興味がある場合は、関連資料を調べるためにこの記事が一定の参考になるでしょう。

市場にはすでに多くの成熟した入力法アプリがあり、高度にカスタマイズされた入力法を選ぶことは一見面倒なことのように思えます。私は幼少期から五筆字形を主要な入力法として使用しており、辞書への依存度が非常に高いため、また早年のインターンシップ中に固定辞書に高度に依存した仕事の経験があったため、カスタマイズ入力法に特別な思い入れがあります。

主流の入力法が使いやすくなるためには、辞書の拡張とより豊富なインターフェースのカスタマイズが必要です。製品を「使いやすく」するために、多くの機能はネットワーク接続を必要とし、いわゆる製品の最適化が行われます。個人の重要な情報を入力する際には、常に覗かれている不快感があるため、Rime は私にとって優先選択肢となりました。

近年、Apple がサードパーティの入力法アプリに対して開放的になったため、ようやく望みがかなったので、ここに記録します。

最後に、この記事の内容は時間の経過とともに更新される可能性があり、私は個人のブログで継続的に更新します。もしあなたが公式アカウントでこの記事を読んでいる場合、記事の最後に原文のアドレスと更新情報を見つけることができます。

この記事の目次

  • 設定ファイル
  • 入力方案(Schema)
  • 辞書の拡張
  • その他の補足
  • 参考

設定ファイル#

システム設定ディレクトリ#

  • "/Library/Input Methods/Squirrel.app/Contents/SharedSupport/"
    このディレクトリには Rime のプリセット設定が格納されており、ソフトウェアの更新時に自動的にこのディレクトリ内のファイルが更新されるため、手動での変更は不要です。

ユーザー設定ディレクトリ#

私たちが行う変更は通常~/Library/Rime/ディレクトリ内で行われます。Rime はユーザーによる高度なカスタマイズをサポートしているため、このディレクトリ内のファイルの主な用途を理解する必要があります。

  • installion.yaml ファイルには現在の Rime プログラムのバージョン情報が記録されています。その中にあるフィールド installation_id は、ユーザー辞書を同期する際に現在の Rime プログラムを一意に識別するために使用されます。

  • user.yaml ファイルにはユーザーの使用状況が記録されています。たとえば、最後の「再デプロイ」のタイムスタンプや、最後に選択した入力方案などです。

  • build ディレクトリには、毎回「再デプロイ」後に生成されるファイルが格納されています。辞書ファイルがコンパイルされた後に生成される「.bin」ファイルや、カスタム設定と統合された後に生成されるさまざまな yaml 設定ファイルが含まれています。

  • xxx.userdb ディレクトリには、対応する入力方案のユーザー辞書が格納されています。つまり、ユーザーが使用中に選択したフレーズや頻度などの動的情報が含まれており、このディレクトリはリアルタイムで更新されます。

  • sync ディレクトリはユーザーデータの同期に使用されます。つまり、鼠鬚管のユーザーデータを同期するためにクリックすると、ユーザー設定ディレクトリ内の内容がこのディレクトリに同期コピーされます。各 sync/installation_id ディレクトリは、異なるデバイス上の Rime プログラムのユーザーデータに対応しています。

デフォルト設定の変更#

Warning

注意
設定を変更したい場合は、既存の default.yaml ファイルを直接変更するのではなく、新しい default.custom.yaml ファイルを作成することをお勧めします。その際、xxx は元のファイル名と同じである必要があります。これは、異なる入力方案が同名のデフォルト設定を使用する場合があるため、カスタマイズ設定が失われないように新しい設定を使用する必要があります。

デフォルトでどの設定が必要か分からない場合は、他の人がすでに作成した入力方案と設定リストをインポートすることができます。
Awesome-rime というオープンソースプロジェクトは、市場に出回っている主流の形音、声音、中国語および少数言語の方案を統合しています。@ayaka 14732 の整理に感謝します。
GitHub - ayaka14732 Awesome Rime 輸入方案和配置列表

方案切り替え#

設定内のショートカットキーを確認して、異なる入力方案を切り替えたり、切り替え方法や候補詞などの関連設定を確認できます。


patch:
  # メニューで選択可能な方案リスト。好みに応じて順序を調整できます。最初の項目がデフォルトの方案です。
  schema_list:
    - schema: numbers # 大文字の数字
    # - schema: wubi86_jidian_trad        # 五筆 - 簡入繁出
    # - schema: wubi86_jidian_trad_pinyin # 五筆拼音混輸 - 簡入繁出
    - schema: wubi86_jidian # 五筆
    - schema: wubi86_jidian_pinyin # 五筆拼音混輸
    - schema: pinyin_simp # 普通拼音


menu:
  page_size: 8 # 候補詞の数。最大で10個までサポート
switcher:
  hotkeys: # メニューを表示するためのショートカットキー
    - "Control+0"
    - "Shift+Control+0"
  abbreviate_options: true
  caption: "【 入力法設定 】"
  option_list_separator: "|"

配色外観#

配色外観の設定ファイルはsquirrel.yamlであり、ユーザー設定ディレクトリ内に新しいsquirrel.custom.yamlファイルを作成する必要があります。

このファイルは鼠鬚管の外観設定ファイルであり、設定内容には配色、レイアウト方式、フォントなどが含まれます。

入力方案(Schema)#

一つの方案は、方案定義ファイル(.schema.yaml)と辞書ファイル(.dict.yaml)を含む必要があります。

方案定義ファイル (.schema.yaml)#

ファイル名のプレフィックスは <schema_id> で、例えば wubi86_jidian のように、ファイルの設定には方案 ID、方案名、バージョン番号、著者辞書の依存関係などの基本情報が含まれています。
また、その方案におけるコアコンポーネントも含まれています。

Rime エンジンのコアとコンポーネントの紹介#

Rime のコアコンポーネントと動作原理を概略的に示した図を描きました。
Obsidian-20241120-1457-nxxItUCP.png

辞書ファイル (.dict.yaml)#

私が使用している極点五筆 86 の方案を例に示します:

---
name: wubi86_jidian  # 辞書名。入力方案の識別子(`schema_id`)と同じにすることもできますし、異なることもできます。
version: "4.3"  # 辞書のバージョン
sort: by_weight # by_weight=重み original=元の順序
import_tables: # ここはユーザー定義の辞書を追加する場所です。
  - wubi86_jidian_user # 個人のプライベート辞書
  - wubi86_jidian_user_hamster # Hamster辞書
  - wubi86_jidian_extra # 拡張辞書

use_preset_covabulary: true # これはシステム設定ディレクトリ内のessay.txtをインポートします。

# 以下はコード表

入力方案のコンパイル#

共有ディレクトリ内の build には、プログラムリリース時に事前コンパイルされた「.bin」ファイルが格納されており、ユーザーディレクトリ内の build には、ユーザーが「再デプロイ」をクリックした後に生成された「.bin」ファイルが格納されています。

以下は生成された主要なバイナリファイルとその用途です。

  • 「Rime プリズム」 <方案标识>.prism.bin
    辞書ソースファイルと方案定義内のスペル運算ルールを組み合わせて生成されたバイナリファイルです。(私の推測ですが、辞書ソースファイル内で定義された音節コーディングに基づいて、スペル運算ルールに従って、元の音節と置き換え可能な音節の対応関係を生成するものだと思います。例えば、元の音節「lue」+ スペル運算ルール”derive/^([nl])ve$/$1ue/“により、対応関係「lve」→「lue」が生成されます。これにより、ユーザーが「lve」と入力すると、その対応関係に基づいて「lue」の字を探すことができます。)
  • 「Rime 固体辞書」 <方案标识>.table.bin
    辞書ソースファイル .dict.yaml から直接生成されたものです。
  • 「Rime 逆引き辞書」 <方案标识>.reverse.bin
    逆引き辞書のバイナリファイルです。例えば、私は五筆を主要な入力法として使用していますが、文字を分解する方法を忘れた場合には、ピンインと組み合わせて使用します。ピンインで文字を入力すると、その文字の後に五筆のコーディングが表示されます。

スペル運算#

スペル運算を使用して、インテリジェントな誤字訂正や曖昧音の機能を実現します。これを無効にすると、辞書ファイル内の定義に厳密に従う必要があります。五筆方案ではあまりこの機能を使用しないため、この点についてのメモは残しません。興味がある方は、文末の参考文献をお読みください。

句読点の変更#

半角 / 全角モードで、ターゲットキーを押すと関連する候補が表示されます。例えば、/を押すと÷などの候補が表示されます。これは方案設定で変更できます。

  • 参考例
    punctuato	r:
    	full_shape:
    		# ... 省略 ...
    		"/": ["/", "÷"]
    	half_shape:
    		"/": [	"、", "、", "/", "/", "÷"]
    

辞書の拡張#

新しい<name>.extended.dict.yamlファイルを作成し、設定内の name は辞書の接尾辞前と一致する必要があります。*.extendedは必須ではなく、拡張された辞書であることを区別するためのものです。例えば、私は自分の習慣で<name>.extra.dict.yamlを使用します。

対応する入力方案の辞書設定内で、import_tablesを使用してこの辞書をその入力方案にインポートできます。異なる使用シーンに応じて設定できます。
例:国や地域の辞書を新たに作成し、china_district.extra.dict.yamlと名付け、使用しているwubi86_jidian.dict.yamlの設定内でこの辞書を調整します。

# この設定は `wubi86_jidian.dict.yaml`です。
name: wubi86_jidian
version: "2.0"
sort: by_weight # by_weight=重み original=元の順序
import_tables: # ここはユーザー定義の辞書を追加する場所です。
  - wubi86_jidian_2357 # 個人のプライベート辞書
  - wubi86_jidian_user_hamster # モバイル端末のHamster辞書
  - china_district_extra # カスタム拡張の国や地域の辞書

カスタムフレーズ (参考)#

ピンインユーザーの場合、英単語や頭文字の略語をピンイン辞書のコーディングとして使用することはお勧めしません。Rime のスライスメカニズムにより、必要な他の候補詞が上書きされる可能性があります。このようなマッピングが必要な単語、例えばmsd->马上到に関しては、カスタムフレーズを使用するのが一般的です。

五筆入力にはこのようなスライスのメカニズムがないため、カスタムフレーズを使用せずに直接コーディングを設定できます。以下の例はピンインユーザーが参考にできます。

カスタムフレーズは辞書とは独立しており、候補詞の優先度が非常に高いため、慎重に使用してください。より具体的なカスタムフレーズについては、文末のハウ王の記事を参考にしてください。彼は公式文書よりも詳細に説明しています。

## custom_phrase.txtの例
custom_phrase:
  dictionary: ""
  user_dict: custom_phrase # カスタムフレーズファイルと同名である必要があります
  db_class: stabledb
  enable_completion: false
  enable_sentence: false
  initial_quality: 1

手動での造語#

.dict.yamlに手動で辞書を追加することで、手動での造語が可能です。
@KyleBing のオープンソースプロジェクト五筆码表助手に感謝します。これはグラフィカルな造語インターフェースを提供しています。

五筆码表助手

自動造語#

自動造語は自動上屏とトップ字上屏の機能を無効にします(選択した単語を確認する必要があります)。

wubi86_jidian.schema.yamlの以下の内容を変更する必要があります。

speller:
  # max_code_length: 4                 # 四碼上屏
  auto_select: false                   # 自動上屏

translator:
  enable_sentence: true                # 文章入力モード
  enable_user_dict: true               # ユーザー辞書を有効にするか(ユーザー辞書は動的な字詞頻度やユーザーの単語を記録します)
  enable_encoder: true

単語の重み#

重みの数が大きいほど、重みが高く、順位が上がります。

LUA 拡張スクリプト#

Rime はデフォルトで Lua スクリプトのパスをユーザー設定ディレクトリ/rime.luaに設定しています。
自分で書けない場合は、ネット上で他の人がすでに書いたスクリプトを見つけることもできます。LUA スクリプトを追加した後は、対応する入力方案の設定ファイル内で、engine/translators からそのスクリプトをインポートする必要があります。

インポートの例:

patch:
	engine:
		translators:
		- lua_translator@*<スクリプト名>
# LUAスクリプトを追加

その他の補足#

多端同期#

多端同期の原理は、同じ設定アドレスを使用して同期することです。
私は個人的に Apple プラットフォームを使用しているため、iCloud で同期しています。
また、iOS プラットフォームはデフォルトで iCloud に保存されるため、他のプラットフォームを使用している場合、このストレージアドレスは iOS が優先されます。

最初の同期時には共用の方案を決定する必要がありますが、もちろん必要に応じて、デバイスごとに異なる入力方案をカスタマイズすることもできます。

PC の方案をモバイル端末に送信する場合、モバイル端末で Wi-Fi を有効にして方案のアップロードサービスを開始し、Mac 端の方案設定ディレクトリ RIME をモバイル端の元のディレクトリに置き換えることができます。
モバイル端の方案を PC 端に送信する場合、iCloud 同期を有効にし、アプリケーションファイルを iCloud にコピーします。この場合、同名のファイルが iCloud 内の元のファイルを上書きするため、バックアップに注意が必要です。

参考:一日一技 | 用 iCloud Drive 实现 RIME 输入法配置跨平台同步 - 少数派
参考:多设备同步 | oh-my-rime 输入法

特定のプログラムでデフォルトで英語入力法を使用する#

特定のプログラムの info.plist を確認し、com.apple.Xcodeのようなパッケージ名の文字列を見つけます。具体的な操作は自分で検索するか、公式文書を参照してください:CustomizationGuide · rime/home Wiki · GitHub

  • 例として、terminal と iterm2 で有効にする:
    # --- 特定プログラムの初期状態を英語入力に設定 ---
    app_options:
    	com.termius-dmg.mac: # Terminal - Mac
    		ascii_mode: true
    	com.googlecode.iterm2: # iTerm2 -Mac
    		ascii_mod: true
    

辞書が保存されているが効果がない#

辞書のエントリは...で始まる必要があります。一部のエディタは自動的にフォーマットを調整し、yaml の...---に変換することがあります。このような変更は設定が無効になる原因となります。

---
name: wubi86_jidian_extra
note: "拡張辞書"
version: "2024-01-01"
last_edit_time: "2024-01-1"
dict_grouped: true # 辞書管理アプリが認識:このコード表をグループモードとしてマーク
sort: original
# コード表の並び順:by_weight 重み、original 元の順序

...  # <-<-特に注意が必要なのは、ここが三つの点であり、三本の線ではないことです。
## 自動車
朗逸	yvqk
验车	cwlg

参考#

幫助與反饋 | RIME | 中州韻輸入法引擎 - 公式文書
鼠须管入力法設定 – ハウ。王 - 特に優れた第三者文書で、この記事はこれをメモとして重視しています。
App +1 | 仓入力法:iOS でも快適に Rime を使用できる - 少数派 - iOS 端のメモの同期方法を紹介しています。
Rime 設定:雾凇拼音 - Dvel's Blog

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。