Symbols Input & Configuration
Oh-my-rime includes a rich set of symbol input features. Through the symbols.yaml configuration file, users can use the / leader key to quickly input various special symbols, including math symbols, arrows, stars, currencies, Greek letters, and more.
Basic Usage
In Chinese input mode, type / followed by the corresponding abbreviation code to bring up the symbol candidate list. For example:
| Input | Category | Example Symbols |
|---|---|---|
/fh | Symbols/Computer | ©, ®, ☎, ☯, ♻ |
/dn | Computer Keys | ⌘, ⌥, ⇧, ⌫, ⏏ |
/xq | Chess | ♔, ♕, ♖, ♗, ♘, ♙ |
/pk | Poker | ♠, ♡, ♢, ♣, ♤, ♥ |
/bq | Emoticons | ☻, ☺, ☹ |
/tq | Weather | ☀, ☁, ⛅, ☂, ☔ |
/yy | Music | 𝄞, ♩, ♪, ♫, ♬ |
/jt | Arrows | ←, →, ↑, ↓, ↔, ⇐, ⇒ |
/sx | Math | ±, ÷, ×, √, ∞, ∑ |
/xh | Stars | ★, ☆, ✡, ❋, ✿ |
/jh | Geometry | ■, □, ▲, △, ●, ○ |
/fk | Blocks | ▀, ▁, ▂, ░, ▒, ▓ |
Numbers & Numbering Symbols
Oh-my-rime supports quick input of various number variants:
| Input | Category | Examples |
|---|---|---|
/0 ~ /10 | Number Variants | 〇/零/⓪, 一/壹/①/❶ |
/szq | Circled Numbers | ⓪, ①, ②, ③ ... ㊿ |
/szh | Parenthesized Numbers | ⑴, ⑵, ⑶ ... ⒇ |
/szd | Numbers with Period | ⒈, ⒉, ⒊ ... ⒛ |
/zmq | Circled Letters | ⓐ, Ⓐ, ⓑ, Ⓑ ... |
/zmh | Parenthesized Letters | ⒜, ⒝, ⒞ ... ⒵ |
/fs | Fractions | ½, ⅓, ¼, ⅕ ... |
/lm | Roman Numerals (lower) | ⅰ, ⅱ, ⅲ ... ⅿ |
/lmd | Roman Numerals (upper) | Ⅰ, Ⅱ, Ⅲ ... Ⅿ |
Cultural Symbols
| Input | Category | Examples |
|---|---|---|
/bg | Bagua Trigrams | ☰, ☱, ☲, ☳, ☴, ☵, ☶, ☷ |
/tg | Heavenly Stems | 甲, 乙, 丙, 丁 ... 癸 |
/dz | Earthly Branches | 子, 丑, 寅, 卯 ... 亥 |
/gz | Stems and Branches | 甲子, 乙丑 ... 癸亥 |
/jq | Solar Terms | 立春, 雨水, 惊蛰 ... 大寒 |
/xz | Zodiac Signs | ♈, ♉, ♊ ... ♓ |
/xzm | Zodiac Names | 白羊座, 金牛座 ... 双鱼座 |
Language & Script Symbols
| Input | Category | Examples |
|---|---|---|
/xl | Greek (lower) | α, β, γ, δ ... ω |
/xld | Greek (upper) | Α, Β, Γ, Δ ... Ω |
/ey | Russian (lower) | а, б, в, г ... я |
/eyd | Russian (upper) | А, Б, В, Г ... Я |
/py | Pinyin Tones | ā, á, ǎ, à, ō, ó ... |
/zy | Zhuyin | ㄅ, ㄆ, ㄇ, ㄈ ... |
/jm | Japanese Hiragana | あ, い, う, え, お ... |
/pjm | Japanese Katakana | ア, イ, ウ, エ, オ ... |
/hw | Korean | ㄱ, ㄴ, ㄷ, ㄹ ... |
Latin Extended Characters
Type /a through /z or /A through /Z to input various variants of the corresponding letter (with diacritics, accents, etc.), for example:
/a: ā, á, ǎ, à, â, ä, å, ã .../e: ē, é, ě, è, ê, ë, ẽ .../u: ū, ú, ǔ, ù, û, ü, ǖ, ǘ, ǚ, ǜ ...
Ligatures are also supported:
/ae: æ, ǣ, ǽ/oe: œ/fi: fi,/fl: fl
Other Useful Symbols
| Input | Category | Examples |
|---|---|---|
/sb | Superscript | ⁰, ¹, ², ³, ᵃ, ᵇ ... |
/xb | Subscript | ₀, ₁, ₂, ₃, ₐ, ₑ ... |
/dw | Units | Å, ℃, ‰, ㎏, ㎡, ㎝ ... |
/hb | Currency | ¥, $, €, £, ₩, ₹ ... |
/bd | Punctuation | ―, ‼, ¿, 々, 〃, 〆 ... |
/jg | CJK Structure | ⿰, ⿱, ⿲, ⿳ ... |
/pp | Radicals | 亻, 冫, 氵, 扌, 忄 ... |
/kx | Kangxi Radicals | 一, 丨, 丶, 丿, 乙 ... |
/bh | Strokes | ㇀, ㇁, ㇂ ... |
Half-width Punctuation Configuration
Oh-my-rime defines half-width punctuation mappings in symbols.yaml. In the schema file, it is referenced as follows:
punctuator:
import_preset: symbols
half_shape:
"#": "#"
"*": "*"
'.' : { commit: 。 }
"`": "`"
"~": "~"
"@": "@"
"=": "="
"/": ["/", "÷"]
'\': "、"
"'": {pair: ["「", "」"]}
"[": ["【", "["]
"]": ["】", "]"]import_preset: symbols imports punctuation settings from symbols.yaml and merges the schema's definitions into them. Strings and lists can replace existing values; maps such as { commit: … } are merged recursively by default, so changing a value's type can cause a conflict.
By default, pressing apostrophe ' directly follows the half-width punctuation mapping and outputs Chinese quotation marks 「」. To make apostrophe output a literal ASCII apostrophe, override it in the corresponding schema .custom.yaml:
patch:
"punctuator/half_shape/'": "'"Note
Manual pinyin segmentation while composing is controlled by speller/delimiter, which is separate from punctuator/half_shape. For example, Mint full-pinyin can override "speller/delimiter": " `" in rime_mint.custom.yaml to adjust the pinyin delimiter.
Output a Literal /
To make a standalone / keypress output / immediately in Chinese half-width mode, without offering /, ÷, or other candidates, add the following to the corresponding schema's .custom.yaml:
patch:
"punctuator/half_shape/+":
"/": "/"
"_": "_"The /+ suffix merges these two changes while preserving other half-width punctuation settings. Omit the _ line if you do not need to change the underscore. If you already have a complete punctuator/half_shape: block, change the corresponding entries to these string values instead of defining the same key again.
Once / commits immediately, it can no longer start symbol codes such as /fh or /sx. Keep the default candidate list if you need those features.
commit is valid, but preset merging can encounter a type conflict
"/": { commit: "/" } is a valid Rime punctuation definition. However, / is a list and _ is a string in the current symbols.yaml. When using import_preset: symbols, changing these values to { commit: … } maps can produce incompatible node type: commit and failed to merge tree: symbols:punctuator during recursive merging, preventing the new schema configuration from being built.
This is not a YAML indentation error or a lack of support for commit. The punctuation component has not received the new configuration yet. The string values above meet the standalone-key requirement without this merge conflict.
A string definition confirms the current punctuation candidate, while a commit definition commits the current composition. They are not equivalent in every input context. See the implementations of Rime configuration merging and punctuation handling.
After redeploying, inspect the actual punctuator/half_shape values in build/<schema-name>.schema.yaml. If the old configuration remains, check the deployment log. Deployment finishing alone does not prove the patch was applied successfully.
Custom Symbols
If you want to add your own symbol mappings, you can override them through a custom file. Taking Mint Pinyin as an example, create rime_mint.custom.yaml:
patch:
# Add custom symbols
"punctuator/symbols//email": [📧, ✉, 📨, 📩]
"punctuator/symbols//phone": [📱, ☎, 📞, 📲]Now typing /email or /phone will bring up the corresponding symbol candidates.
To modify existing half-width punctuation mappings, e.g., changing \ to output /:
patch:
"punctuator/half_shape/\\": "/"Note
Symbol input requires the punct rule in recognizer. Oh-my-rime has this configured by default:
recognizer:
patterns:
punct: "^/([0-9]0?|[a-zA-Z]+)$"This means only / followed by numbers (0-90) or letters will trigger symbol input mode.
Complete Symbol Reference
Click to expand the full symbol code list
| Code | Category | Code | Category |
|---|---|---|---|
/fh | Symbols/Computer | /dn | Computer Keys |
/xq | Chess | /mj | Mahjong |
/sz | Dice | /pk | Poker |
/bq | Emoticons | /tq | Weather |
/yy | Music | /lx | Gender |
/bg | Bagua | /bgm | Bagua Names |
/lssg | 64 Hexagrams | /lssgm | 64 Hexagram Names |
/txj | Taixuanjing | /tt | Celestial Bodies |
/xz | Zodiac | /xzm | Zodiac Names |
/seg | 12 Houses | /xh | Stars |
/fk | Blocks | /jh | Geometry |
/jt | Arrows | /sx | Math |
/szq | Circled Numbers | /szh | Parenthesized Numbers |
/szd | Dotted Numbers | /zmq | Circled Letters |
/zmh | Parenthesized Letters | /fs | Fractions |
/0~/10 | Number Variants | /szm | Suzhou Numerals |
/lm | Roman (lower) | /lmd | Roman (upper) |
/a~/z | Latin (lower) | /A~/Z | Latin (upper) |
/sb | Superscript | /xb | Subscript |
/xl | Greek (lower) | /xld | Greek (upper) |
/ey | Russian (lower) | /eyd | Russian (upper) |
/yf | Months | /rq | Dates |
/yr | Days of Week | /sj | Time |
/tg | Heavenly Stems | /dz | Earthly Branches |
/gz | Stems & Branches | /jq | Solar Terms |
/dw | Units | /hb | Currency |
/jg | CJK Structure | /pp | Radicals |
/kx | Kangxi Radicals | /bh | Strokes |
/bd | Punctuation | /bdz | Vertical Punctuation |
/py | Pinyin | /zy | Zhuyin |
/sd | Tone Marks | /hzq | Circled CJK |
/hzh | Parenthesized CJK | /jm | Hiragana |
/pjm | Katakana | /jmq | Circled Kana |
/jmbj | Half-width Kana | /hw | Korean |
/hwq | Circled Korean | /hwh | Parenthesized Korean |