gpt4 book ai didi

ruby - 如何在终端中为 Ruby 输入提示捕获一些特殊按键(并让其他人正常通过)

转载 作者:行者123 更新时间:2023-12-04 03:00:36 24 4
gpt4 key购买 nike

我在一个类似 Ruby 的脚本中:

something = gets      # or STDIN.gets
puts something

def arrow_pressed
puts "arrow totally pressed"
end

一旦出现用户提示,我希望所有键盘输入都正常发生除了方向键。如果按下这些按钮,我不希望终端中出现任何内容(例如 ^[[A)。我只想执行我的 arrow_pressed 方法。我想在用户不需要点击 Return

的情况下执行它

我已经试过了 gist - 效果很好,除了即使在将其更改为允许大多数击键正常通过之后,我仍然无法让 Backspace(或其他特殊功能)工作。

我很乐意使用 gets 以外的东西(图书馆或其他)。任何帮助将不胜感激!

最佳答案

我是 tty-reader 的作者它提供了一个更高级别的 API 来处理键盘输入。使用它,您可以阅读单个按键、整行或多行内容。它还允许您监听不同的按键事件,例如向上键或退格键。

例如,提示用户输入并在按下箭头或退格键时执行操作:

require "tty-reader"

reader = TTY::Reader.new

reader.on(:keydown) { puts "down we go" }
.on(:keyup) { puts "up we go" }
.on(:keybackspace) { puts "backspace pressed" }

answer = reader.read_line

该 gem 已经过测试,可以在包括 Windows 在内的所有主要平台上运行。

关于ruby - 如何在终端中为 Ruby 输入提示捕获一些特殊按键(并让其他人正常通过),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49541348/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com