交互式shell中的退格行为

时间:2018-01-03 17:48:29

标签: scala

我试图使用Scala交互式shell,但退格键的行为很奇怪。我发现退格似乎删除了前一个字符,但它并没有在我输入的那一行显示...光标向前移动而不是向后移动。这使得无法看到当前输入行的样子。

我使用的是Scala 2.11.12。我在Linux系统的终端窗口工作,但xrdp从Windows 10笔记本电脑进入Linux主机。退格键在Scala外部工作正常(在zsh中)。

作为一种解决方法,是否有任何控制字符告诉Scala重新显示当前行? (旧操作系统用于支持执行该功能的角色,如果内存有效,但在几十年左右的时间里它们是必需的。)

2 个答案:

答案 0 :(得分:2)

我也遇到了同样的问题,并通过更改pyenv的设置进行了改进。

如果pyenv的全局设置不是系统,请尝试更改为系统。

示例:

$ pyenv versions
* system (set by /Users/*****/.pyenv/version)
  2.7.10
  3.5.0
  anaconda3-5.2.0

答案 1 :(得分:1)

也许是JLine的错误,scala用来代替readline。但是,如果我清空文件夹~/.pyenv/shims,scala可以正常工作。然后我执行pyenv rehash(将带回shims下的文件),scala失败了!

然后我将~/.pyenv/shims中的文件删除一半,这是一个名为 infocmp 的文件。而且不是内容,而是重要的exec权限,即chmod a-x ~/.pyenv/shims/infocmp将使scala正常工作,但是chmod a+x ~/.pyenv/shims/infocmp,即使infocmp为空,也会出现问题!

也许我很接近事实,但是现在我们可以使用chmod a-x ~/.pyenv/shims/infocmp来解决。而且它只需要运行一次,因为pyenv rehash不会覆盖文件(如果已经存在)。