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 --release
Also the plugin expects SKK-JISHO.L to exist under ~/.skk
. This can be overridden using minskk_override
explained below.
-
minskk_statusline
is 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_override
global variable to override the default settings. e.g. add the following toinit.vim
lua << 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 |