[](https://www.npmjs.com/package/@fushihara/box-select-cui) [](https://www.npmjs.com/package/@fushihara/box-select-
npm install @fushihara/box-select-cui  
https://www.npmjs.com/package/@fushihara/box-select-cui
以下の nyagos を参考にした
https://github.com/nyaosorg/go-box
denoでも動作確認。
nyagos を使う事を想定
zsh で動作確認。以下の内容をプロファイルに記載
``sh`
function box_select_demo() {
node demo.js <"$TTY"
zle reset-prompt
}
zle -N box_select_demo
bindkey '^Z' box_select_demo
zle は stdin を null にリダイレクトするので、<"$TTY"が必要。以下の issue より
https://github.com/junegunn/fzf/issues/2167
文字の幅はsrc\string-width.mjsのStringWidthクラスで計算している。[...str]`で分割し ASCII の英数字と半角カナのみ 1 文字幅と定義している。
ZWJ の絵文字は分割した状態で表示される(windows terminal が対応していなかったので)