Status: Work in Progress
Minimalist Neovim plugin SKK implementation aiming to be functional on DM250.
Being minimalist, the plugin is mostly non-configurable and works out of the box with a sticky-shift setting.
This plugin is written using Rust for the dictionary related part and Lua for the rest, and works on an environment where Rust is available including Debian 11 on DM250.
- Hiragana entry
- Katakana entry
- Half-width (hankaku) alphanumeric character entry
- Full-width (zenkaku) alphanumeric character entry
- Kanji conversion (with remaining issues)
- Gzipped dictionary support
- De/serialization w/ gzip of once-loaded dictionary
- Candidate selection dialog
- User dictionary
- C-g
- Multiple dictionary support
- Word completion
- Plugin manager support (vimplug at least)
- macOS or Linux
- rustup
Currently this plugin has to be installed manually as follows.
$ mkdir -p ~/.config/nvim/pack/plugins/start
$ cd ~/.config/nvim/pack/plugins/start
$ git clone https://github.com/exfinen/minskk.git
$ cd rust
$ cargo build --releaseAlso the plugin expects SKK-JISHO.L to exist under ~/.skk. This can be overridden using minskk_override explained below.
-
minskk_statuslineis exposed to provide the current state of the plugin outside. e.g. the following adds the minskk state to the status line.set statusline+=%{v:lua.minskk_statusline()}
-
use
minskk_overrideglobal variable to override the default settings. e.g. add the following toinit.vimlua << EOF vim.g.minskk_override = { dict_file_path = '~/.skk/SKK-JISYO.S', } EOF
This plugin serializes and gzips a dictionary the first time it is loaded. From the second time onward, the plugin loads the dictionary from the serialized file.
Below is a measurement of dicitonary load time for each dictionary type and file category on DM250.
| SKK-JISYO.S | SKK-JISHO.M | SKK-JISYO.L | |
|---|---|---|---|
| Not compressed | 201 ms | 503 ms | 12,102 ms |
| Gzipped | 186 ms | 484 ms | 11,152 ms |
| Serialize-and-gzipped | 39 ms | 97 ms | 2,304 ms |