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

问题描述 投票:0回答:1

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

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

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

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

ksh: bind: not found
ksh
1个回答
1
投票

很抱歉打破这个消息,但你已经注意到这是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。

© www.soinside.com 2019 - 2024. All rights reserved.