Engnese
approvedby xxxgeorge
This plugin has not been manually reviewed by Obsidian staff. input Chinese in English input method to avoid frequently input method switching.
Engnese
Engnese is an Obsidian desktop plugin for English-first pinyin completion.
It allows users to keep typing English letters in the editor while treating the current token as pinyin in the background. When a candidate is accepted, the already inserted English token is replaced in place with Chinese text.
What It Does
- Keeps the normal English typing flow and avoids inline preedit.
- Reads local Rime
.dict.yamldictionaries, includingimport_tables. - Falls back to the longest valid prefix when a full pinyin stream has no direct match.
- Supports configurable candidate shortcuts and paging.
- Supports optional double-space to accept the first candidate.
- Avoids triggering inside fenced code blocks, inline code, and math contexts.
Examples
woaini->我爱你ni+ double-space ->你chunfengyichui-> select春风, then continue withyichui
If a full-token match does not exist, Engnese uses the longest available prefix and leaves the remaining suffix in the editor so the next completion cycle can continue from there.
Requirements
- Obsidian desktop
- A local Rime dictionary file
- Node.js and npm if building from source
The plugin is desktop-only because it reads dictionaries from the local filesystem.
Install From Source
git clone https://github.com/xXxGeorge/obsidian-engnese.git
cd obsidian-engnese
npm install
npm run build
Copy the build output into:
<vault>/.obsidian/plugins/engnese/
Required files:
manifest.jsonmain.jsstyles.css
Then enable Engnese in Obsidian Community Plugins.
Development
Run the watcher:
npm run dev
Build a production bundle:
npm run build
The plugin ID is engnese, so the target plugin directory should also be named engnese.
Dictionary Path
Default path:
~/Library/Rime/rime_ice.dict.yaml
If path expansion causes issues, use an absolute path such as:
/Users/<user>/Library/Rime/rime_ice.dict.yaml
Settings
General
Enable plugin: turn Engnese on or offRime dictionary path: main dictionary entry fileRebuild dictionary index: re-parse the configured dictionary and refresh the in-memory index
Candidate behavior
Double Space selects first candidateDouble Space timeoutKeep space after Double Space selection
Selection shortcuts
Selection keys: candidate 1Select candidate 2Select candidate 3Select candidate 4Select candidate 5Previous pageNext page
Default shortcuts:
Tab: candidate 1Ctrl-;: candidate 2Ctrl-': candidate 3Ctrl-/: candidate 4Ctrl-[: candidate 5Ctrl-,: previous pageCtrl-.: next page
In some environments, Ctrl-[ is interpreted as Escape. If that happens, remap Select candidate 5 in plugin settings.
Context guards
Disable in code blocksDisable in inline codeDisable in math
Limitations
- The dictionary index is currently kept in memory only and is rebuilt on demand.
- Candidate ranking is dictionary-weight based with a few simple heuristics; there is no adaptive learning yet.
- The plugin currently targets desktop usage only.
Troubleshooting
- Dictionary load error: verify the configured path and try an absolute path.
- Dictionary changed but results did not update: click
Rebuild dictionary index. Ctrl-[behaves likeEscape: remap candidate 5 to another shortcut.- Double-space keeps a trailing space unexpectedly: disable
Keep space after Double Space selection.
License
This project is licensed under MIT. See LICENSE.
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.