首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >rlwrap可以使用包装命令自己的TAB完成功能吗?

rlwrap可以使用包装命令自己的TAB完成功能吗?
EN

Stack Overflow用户
提问于 2012-02-09 20:35:02
回答 2查看 3.1K关注 0票数 13

我想使用带有自定义erlang repl的rlwrap。

如果我将其作为"rlwrap“运行,它将运行得很好。

问题是myrepl有内置的制表符补全功能,这会被rlwrap所践踏。

我想使用rlwrap来释放Tab键

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-10 05:50:04

你不能同时使用rlwrap的行编辑/历史记录和你的repl的TAB完成。

rlwrap为没有它的命令提供行编辑、历史记录和(非常简单的)完成功能。一个像TAB补全这样奇特的命令不应该需要rlwrap来编辑它的行,不是吗?

-a (--always-readline)选项是一种相当粗糙的方式,可以用rlwrap的行编辑行为代替命令的行编辑行为。它主要用于具有非常简单的行编辑器的命令,而没有命令历史记录

如果您希望使用-a选项,因为您更喜欢rlwrap的功能(如持久历史记录或彩色提示),而不是命令的功能(如制表符完成),请继续使用,但不可能在保留某些功能的同时保留其中的一些功能。

这是程序(和它们的用户)为避免使用readline库和随附的GPL许可证而必须付出的(小)代价。

Hans (rlwrap作者)

编辑(2017年4月):

在许多情况下,可以使用filter来恢复完成。有关这方面的示例,请参阅A node shell based on readline

票数 22
EN

Stack Overflow用户

发布于 2017-04-13 08:40:34

Rlwrap很可爱。但在Erlang中,它只提供持久的历史记录,同时打破了erl的制表符补全。

最根本的问题是Erlang的erl REPL太旧了,而且没有遵循正常的*nix约定。此外,他们拒绝修复它,因为他们害怕随机的,发牢骚的系统管理员不能接受任何更改。再多的rlwrap“管道胶带”攻击也无法修复糟糕的UX REPL。

最好是从头开始编写一个REPL,比如pry/ipython等,它可以完成可配置的颜色、制表符补全、持久历史记录、分页、CLI观察器、插件等。

Rlwrap在具有原始shell的程序上大放异彩。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9210931

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档