やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

cursesの入力が貧弱

 マルチバイト文字、Shift+UP/DOWNなどの入力ができない。

概要

  • 日本語をふくむマルチバイト文字の入力ができない
  • Shift+UP/DOWNなどキーの組み合わせが自由に使えない

入力方法

種類 概要
window.getch() キーをintで取得
window.getkey() キーを文字で取得
curses.echo() window.getstr()で入力したテキストを取得。カーソル移動すると文字が消える。
curses.textpad.Textbox(window) emacs風。日本語入力できない。

Shift+UP/DOWNなどキーの組み合わせが自由に使えない

 これはもうどうしようもない。少なくとも環境によって差異のない単純なAPI呼出によって解決することはできない。

マルチバイト文字を入力するには

 自前でエンコードせねばならない。

所感

 そうまでしてTUIにこだわる必要があるか? と思ってしまうレベルで致命的。これならGUIのほうがいいやって思う。

対象環境

$ uname -a
Linux raspberrypi 5.4.83-v7l+ #1379 SMP Mon Dec 14 13:11:54 GMT 2020 armv7l GNU/Linux