如何在 Ksh 中将 clear 绑定到 ^L
How to bind clear to ^L in Ksh
如何在 KornShell 中复制以下 bash 功能:
bind "\C-l":"clear-screen"
我需要 bind
因为我在 bash 中使用 set -o vi
,并且
也计划在 ksh 中使用它。
尝试在 ksh 中使用它会打印出错误:
ksh: bind: not found
很抱歉告诉你这个消息,但正如您所注意到的,ksh 和 bash 之间存在差异:不存在绑定或定义键映射的能力。可编程命令完成也不是。从历史上看,Korn shell 专注于语言设计和功能,而不是交互式终端功能。
GNU bash 通过由同一个人 Chet Ramey 开发和维护的 GNU Readline 库提供键绑定。 ksh
据我所知,即使在最新版本中也没有使用这个库,也没有提供等效的库。
解决方法是查看您是否可以对终端进行编程以提供此类功能。在 tmux 中,如果你把这个放在你的 .tmux.conf
配置文件中:
bind-key C-l send-keys clear
然后 tmux 将在 ksh
有机会看到它之前解释 Control-l 并使用字符串 "clear" 进行扩展。 (下面我打赌 tmux 使用的是 GNU Readline 库)
POSIX 标准(ksh 和 bash 都遵循)定义了一个 "alias" 命令。不过别名isn't defined to allow control characters。一个特定的实现可能会这样做,但 ksh 不会。
如何在 KornShell 中复制以下 bash 功能:
bind "\C-l":"clear-screen"
我需要 bind
因为我在 bash 中使用 set -o vi
,并且
也计划在 ksh 中使用它。
尝试在 ksh 中使用它会打印出错误:
ksh: bind: not found
很抱歉告诉你这个消息,但正如您所注意到的,ksh 和 bash 之间存在差异:不存在绑定或定义键映射的能力。可编程命令完成也不是。从历史上看,Korn shell 专注于语言设计和功能,而不是交互式终端功能。
GNU bash 通过由同一个人 Chet Ramey 开发和维护的 GNU Readline 库提供键绑定。 ksh
据我所知,即使在最新版本中也没有使用这个库,也没有提供等效的库。
解决方法是查看您是否可以对终端进行编程以提供此类功能。在 tmux 中,如果你把这个放在你的 .tmux.conf
配置文件中:
bind-key C-l send-keys clear
然后 tmux 将在 ksh
有机会看到它之前解释 Control-l 并使用字符串 "clear" 进行扩展。 (下面我打赌 tmux 使用的是 GNU Readline 库)
POSIX 标准(ksh 和 bash 都遵循)定义了一个 "alias" 命令。不过别名isn't defined to allow control characters。一个特定的实现可能会这样做,但 ksh 不会。