我正在使用 RLWrap 来“驯服”一个非常好的 REPL,即 Dyalog APL,不幸的是,它起源于 Windows 领域,因此不符合 UNIX 约定。此外,作为一个封闭源代码的产品,它不能被修改为这样做。
我设法实现了我的大部分目标,但是Ctrl-D 仍然会导致它发出错误并继续运行,而我希望它能够像任何其他 REPL 一样优雅地退出。
我查看了 rlwrap 选项以及它的过滤器 API,以获取一种拦截来自用户的 EOF 并将其转换为自定义退出命令的方法,这就是)off
我的情况,但我找不到这样做的方法.
我目前的别名:
alias dyalog='rlwrap -a -H ~/.dyalog_history /opt/mdyalog/17.0/64/unicode/dyalog -b -s'
相关选项是:
-s
告诉 Dyalog 以简单的 REPL 模式启动,而不控制屏幕;-a
告诉 RLWrap 始终保持在 readline 模式,忽略 Dyalog 逐个字符读取输入的尝试。