如何让JShell停止自行换行?

时间:2017-11-20 17:56:20

标签: java windows-7-x64 jline jshell jline2

我在 Windows 7 上使用 JDK 9 build 179。我已经获得了" 屏幕缓冲区大小宽度"我的 Windows 7 命令shell的属性设置为一个很大的数字,因为这是我滚动的方式。这通常很好;当我只是单独使用 Windows shell时。

不幸的是,当我使用 JShell 时,我的" 屏幕缓冲区大小宽度"属性被忽略, JShell 将我的长线包裹起来。当换行时,它不会创建新行。相反,光标会加倍回到同一行的开头并覆盖该行中的字符。

Take a look at this screen recording to see what I mean

似乎是使用窗口实际宽度的最右边尺寸作为包裹线的提示;忽略" 屏幕缓冲区大小宽度"属性。该属性的唯一目的是明确阻止包装并允许长行最多9999个字符。

我已经忍受了this annoying crap,因为 JDK 9 ea + 166 。我耐心地等了好几个月;期望它将在 JDK 9 的一般版本发布时修复。没有这样的运气。

拜托,任何人都可以让我知道how to fix this的秘密吗?

提前致谢。

1 个答案:

答案 0 :(得分:2)

Oracle has officially confirmed that the issue I discovered is indeed a bug以来,我自己对此问题的回答是“Use BeanShell's Interactive Console instead”。

bsh已经满足了我八年或十年的所有个人Java REPL需求。我目前没有使用jshell,因为我不能在bsh中使用jshell;在我看来,更加轻松,更直观。

当然,jshell做了bsh没有做的几件事。但是,如果像我一样,你使用Java REPL就是在命令行上试用代码,那么bsh就不能成为已经成熟的Java REPL选项;数千年(,如果不是数百万)开发人员在很多年(since 1999, in fact)尝试并证明了这一点。{/ p>