在我的 macOS 和 Linux 系统上,我使用 运行 ed alias ed='rlwrap ed'
。在 macOS 上使用 rlwrap 0.46.1 (2022),我可以自由创建带有标签的文件,例如:
$ ed
a
foo<TAB>bar
但是在我的 Linux 系统上安装了 rlwrap 0.43 (2016) 我无法使用标签,除非我像这样退出:
$ ed
a
foo<ESCAPE><TAB>bar
我知道我应该着手升级我的 Linux 服务器;但根据 apt 的说法,rlwrap 目前是最晚的。是否有一些 rlwrap 选项可以让我恢复我的标签?我尝试在 rlwrap 手册页中搜索“tab”;但没有找到任何东西。
我不知道您当前的 Readline 配置是什么样的,所以我会稍微挥挥手,给您一些可能有用的东西。
在
emacs
编辑模式下,该Tab键与 Readline 函数绑定self-insert
,该函数的作用是当您按下Tab键盘时插入实际的制表符。这是该键的默认键绑定,但它也可能被重新绑定到可能会删除其自插入功能的某个键。在emacs
编辑模式下, Escape+Tab与该函数绑定tab-insert
,该函数会插入制表符。在
vi
编辑模式下,Tab与 功能绑定complete
,这对于插入制表符也没有帮助。我们可以通过确保Tab将绑定到
self-insert
或的tab-insert
函数来解决这个问题ed
。我们通过将以下内容添加到我们的~/.inputrc
文件来实现这一点。tab-insert
如果您想设置其他组合键(除 之外Tab)来插入标签,此功能很有用。