交互式外壳中的退格行为

  • 本文关键字:外壳 交互式 scala
  • 更新时间 :
  • 英文 :


我正在尝试使用 Scala 交互式 shell,但退格键的行为很奇怪。 我发现退格键似乎确实删除了以前的字符,但它在我键入的行上没有以这种方式显示......光标向前移动而不是向后移动。 这使得无法看到当前输入行的外观。

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

作为一种解决方法,是否有任何控制字符告诉 Scala 重新显示当前行? (如果没记错的话,旧操作系统曾经支持执行该功能的角色,但它们已经有几十年左右了。

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

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

例:

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

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

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

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

最新更新