在我的tcshrc中,我可以设置 ctrl+right_arrow/left_arrow 来在终端中向前/向后跳过一个单词。我想在tcl shell中设置相同的行为(例如在Fusion Compiler或Prime Time中),可以吗?在tcshrc中,我使用了:
bindkey "^[[1;5C" forward-word bindkey "^[[1;5D" backward-word
bindkey在tcl shell中不起作用
zed5wv101#
Tcl shell(无论是tclsh,还是某些平台上的wish)使用简单的cooked模式来处理输入,这不允许您所描述的任何类型的复杂绑定;在它从终端接收输入时,已经输入了一整行。2确切地说,支持什么样的编辑取决于终端实现的提供者,但这通常是极其简单的。你可以尝试一些替代品。* 一些 * 这些我已经尝试过:
tclsh
wish
rlwrap
chan configure
stdin
raw
1条答案
按热度按时间zed5wv101#
Tcl shell(无论是
tclsh
,还是某些平台上的wish
)使用简单的cooked模式来处理输入,这不允许您所描述的任何类型的复杂绑定;在它从终端接收输入时,已经输入了一整行。2确切地说,支持什么样的编辑取决于终端实现的提供者,但这通常是极其简单的。你可以尝试一些替代品。* 一些 * 这些我已经尝试过:
rlwrap
在Tcl shell周围 Package 一个readline实现。我没有这方面的经验,但我知道其他人已经这样做了。(也可能有其他方法来完成readline/editline库集成。)chan configure
stdin
通道进入raw
模式,并访问实际按下的键(尽管你还需要处理向用户显示正在发生的事情,如果相关的话),我不知道是否有人 Package 了它来制作一个可编辑的命令行系统,但这应该是可能的。