tclsh交互shell(Ubuntu14.04)中如何使用左右方向键?
How to use the left and right arrow keys in the tclsh interactive shell (Ubuntu 14.04)?
为什么我不能使用左右箭头键(实际上,向上和向下键也一样)在 tclsh
交互中当前所在的行上移动shell?如果我尝试按其中任何一个,我会得到一堆咒语而不是来回移动。这不是那么方便,例如,当您输入错误,但您不能将光标移回以更改它时。您必须使用退格键擦除您在打字错误所在位置之后键入的所有内容,从而破坏您的所有工作。坦率地说,是否可以解决这个错误行为?
该行为没有错误。不方便是的。
要在 shell 中进行编辑,通常使用 GNU readline
库。如果程序不使用该库,则您没有该功能。
对于 tclsh
存在许可原因(GPL 与 BSD 风格的 Tcl 许可),这使得在 readline
的所有平台上直接向 tclsh
添加 readline 支持不方便不是操作系统的一部分(几乎所有东西,但 Linux)。
您可以使用 Ubuntu rlwrap 包来仍然获得您想要的编辑。
安装 rlwrap:
sudo apt-get install rlwrap
并通过命令行编辑将其用于 运行 tclsh:
rlwrap -c tclsh
另一种选择是使用基于 Tk 的 shell tkcon
,它作为 Tcl shell 提供了更多选项,它作为 ubuntu 包提供也是。
扩展我自己的答案:您还可以构建和使用 tclreadline,作为 .tclshrc
中的一个包。
您可以使用 schlenk 建议的通用 rlwrap,或者您可以使用 tclreadline:
安装 tclreadline(例如,使用 debian/ubuntu 的以下命令):
sudo apt install tclreadline
通过将其添加到您的 ~/.tclshrc
:
来自动加载它
if {$tcl_interactive} {
package require tclreadline
::tclreadline::Loop
}
使用 tclreadline
不仅提供基本的编辑功能,还包括制表符补全功能,rlwrap
由于其通用性而无法做到这一点。
为什么我不能使用左右箭头键(实际上,向上和向下键也一样)在 tclsh
交互中当前所在的行上移动shell?如果我尝试按其中任何一个,我会得到一堆咒语而不是来回移动。这不是那么方便,例如,当您输入错误,但您不能将光标移回以更改它时。您必须使用退格键擦除您在打字错误所在位置之后键入的所有内容,从而破坏您的所有工作。坦率地说,是否可以解决这个错误行为?
该行为没有错误。不方便是的。
要在 shell 中进行编辑,通常使用 GNU readline
库。如果程序不使用该库,则您没有该功能。
对于 tclsh
存在许可原因(GPL 与 BSD 风格的 Tcl 许可),这使得在 readline
的所有平台上直接向 tclsh
添加 readline 支持不方便不是操作系统的一部分(几乎所有东西,但 Linux)。
您可以使用 Ubuntu rlwrap 包来仍然获得您想要的编辑。 安装 rlwrap:
sudo apt-get install rlwrap
并通过命令行编辑将其用于 运行 tclsh:
rlwrap -c tclsh
另一种选择是使用基于 Tk 的 shell tkcon
,它作为 Tcl shell 提供了更多选项,它作为 ubuntu 包提供也是。
扩展我自己的答案:您还可以构建和使用 tclreadline,作为 .tclshrc
中的一个包。
您可以使用 schlenk 建议的通用 rlwrap,或者您可以使用 tclreadline:
安装 tclreadline(例如,使用 debian/ubuntu 的以下命令):
sudo apt install tclreadline
通过将其添加到您的 ~/.tclshrc
:
if {$tcl_interactive} {
package require tclreadline
::tclreadline::Loop
}
使用 tclreadline
不仅提供基本的编辑功能,还包括制表符补全功能,rlwrap
由于其通用性而无法做到这一点。