如何在Ksh中把clear绑定到^L上?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Ksh中把clear绑定到^L上?相关的知识,希望对你有一定的参考价值。

我如何在KornShell中复制以下bash功能。

bind "C-l":"clear-screen"

我需要这个功能 bind 因为我在使用 set -o vi 在bash中使用,也打算在ksh中使用。

试图在ksh中使用它,却打印出一个错误。

ksh: bind: not found
答案

很抱歉打破这个消息,但你已经注意到这是ksh和bash之间的不同:绑定或定义键映射的能力是不存在的。也没有可编程的命令完成。历史上Korn shell专注于语言设计和功能,而不是交互式终端功能。

GNU bash通过GNU Readline库提供键绑定,该库是由同一个人Chet Ramey开发和维护的。ksh 据我所知,即使在最新的版本中也没有使用这个库,也没有提供一个等价的库。

一个变通的办法是看看你是否可以给终端编程来提供这样的功能。在tmux中,如果你把这个放在你的 .tmux.conf 配置文件。

bind-key C-l send-keys clear

然后tmux会在Control -l之前进行解释。ksh 有机会看到它,并会用 "clear "这个字符串展开。 (下面我打赌tmux使用的是GNU Readline库)

POSIX标准(ksh和bash都遵循这一标准)定义了一个 "别名 "命令。然而一个别名 没有定义为允许控制字符. 一个特定的实现可能会做到这一点,但ksh不会。

也请参见 https:/unix.stackexchange.comquestions82223如何设置键盘快捷键,将预定义的文本输入到x11-xterminal-vi。

以上是关于如何在Ksh中把clear绑定到^L上?的主要内容,如果未能解决你的问题,请参考以下文章

如何在MFC中把程序的运行结果输出到界面上

如何克服 Linux 上的 ksh 与 AIX/Solaris/HPUX 上安装的 ksh 之间的不兼容问题?

如何有条件地将 C 代码片段编译到我的 Perl 模块?

有没有更聪明的方法将布局绑定到片段?

如何将 View 类中的代码片段移动到 OnAppearing() 方法?

在片段中添加 ListView