やりたいこと: 方向キーでカーソルとか動かしたい (※画像はイメージです) キー入力を得る ターミナルでユーザーの入力を得る際、getsやgetcではエンターが押されるまでキーの入力状況を得ることができません。 なので、カーソル移動等の操作には使えません。 cursesライブラリは色々とめんどいので使わない方法を調べました。 IO#getch (io/console) require 'io/console'するとIO#getchが使えるようになります。 これでキーが押されるたびに標準入力から文字を得ることができます。 ただしControl + Cの終了もできなくなるので、Control + Cが押されたらループを抜けるようにします。 require 'io/console' i = 0 while (key = STDIN.getch) != "\C-c" puts " #{i += 1
![ターミナルのキー入力を得てカーソル移動とかする (curses無し) - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/48b9c93fed4773d70ba84d5c0f41eac21f74d58d/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9JUUzJTgyJUJGJUUzJTgzJUJDJUUzJTgzJTlGJUUzJTgzJThBJUUzJTgzJUFCJUUzJTgxJUFFJUUzJTgyJUFEJUUzJTgzJUJDJUU1JTg1JUE1JUU1JThBJTlCJUUzJTgyJTkyJUU1JUJFJTk3JUUzJTgxJUE2JUUzJTgyJUFCJUUzJTgzJUJDJUUzJTgyJUJEJUUzJTgzJUFCJUU3JUE3JUJCJUU1JThCJTk1JUUzJTgxJUE4JUUzJTgxJThCJUUzJTgxJTk5JUUzJTgyJThCJTIwJTI4Y3Vyc2VzJUU3JTg0JUExJUUzJTgxJTk3JTI5JnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LWNsaXA9ZWxsaXBzaXMmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz03MzViMzljZTkyNGJkZmFkYjFhMGM2MDEyMmI5ZWRmOA%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwemFrdXJvaXNoaWt1cm8mdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPWQyY2UwYTg4OTRlOTgwMTU0NWRmYmEyOWY1YTM3MzYw%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3D0a5289e14c31ecbe80bb77884c6dd908)