如何在 Elixir 中不按 Enter 键获取单个字符?

Posted

技术标签:

【中文标题】如何在 Elixir 中不按 Enter 键获取单个字符?【英文标题】:How to get a single character without pressing Enter in Elixir? 【发布时间】:2017-01-08 16:45:12 【问题描述】:

与 Ruby 的 STDIN#getch 类似。

Elixir 的IO.gets/2 需要回车才能获取角色。有没有办法在 Elixir 中不按 Enter 来获取单个字符?

【问题讨论】:

有一个 Elixir Sips 剧集涵盖了这个 elixirsips.com/episodes/…。不幸的是,它只是订户。我能找到的所有灵丹妙药代码似乎都使用了这个魔法` Port.open(:spawn, "tty_sl -c -e", [:binary, :eof])` iex(1)> Port.open(:spawn, "tty_sl -c -e", [:binary, :eof]) ** (ErlangError) erlang 错误: :einval :erlang .open_port(:spawn, "tty_sl -c -e", [:binary, :eof]) 【参考方案1】:

每当我尝试用几乎任何语言实现与 stdio 的重要交互时,都会弹出 ncurses。所以我会看看这个 NIF https://github.com/jfreeze/ex_ncurses

【讨论】:

以上是关于如何在 Elixir 中不按 Enter 键获取单个字符?的主要内容,如果未能解决你的问题,请参考以下文章

组合键与 ENTER 键

如何保持 JTextArea 的大小不变?

如何在extjs组合框中按Enter键获取所选结果的值

除非我在shell窗口中按ENTER键,否则不会使用python创建新的文本文件

为啥 plotly 条形图在 R 中不按顺序使用我指定的颜色,我如何强制它按顺序使用我的颜色?

在 React Router Dom 中,如果我不按 Enter 或刷新页面,重定向将不起作用