VSCode FSharp交互式终端中的奇怪字符

csh*_*olk 6 mono f# visual-studio-code

我尝试在Ubuntu下使用fsharp(是的,我慢慢发现它更有痛苦而不是乐趣),我已经安装了Mono,VSCode和Ionide扩展,我可以创建和构建F#项目.不幸的是,当我通过F#Interactive运行简单的F#脚本时:

printfn "bar"
Run Code Online (Sandbox Code Playgroud)

在终端窗口我得到:

>
- printfn "bar"
-
- ;;
bar
val it : unit = () F# 4.0 (Open Source Edition)
> ^?^?414;3R^?^?^?^?^?^? the Apache 2.0 Open Source License
Run Code Online (Sandbox Code Playgroud)

奇怪的序列^?^?看起来像无法识别的终端转义码,但是当我在VSCode中使用bash时,没有这样的东西.

在FSI中执行的每个命令之后,更奇怪的序列再次出现:

> let j = 9;;

val j : int = 9

> printfn "foo";;
foo
val it : unit = ()
> ^?^? 
Run Code Online (Sandbox Code Playgroud)

有没有人有同样的问题并且知道解决方案(或者只是知道解决方案)?

编辑:问题主要发生在我通过Ionide Alt + Enter快捷键执行命令时

rmu*_*unn 4

这看起来像https://github.com/Microsoft/vscode/issues/19766错误。VS Code 1.9 引入了一个新设置 ,terminal.integrated.flowControl默认为true^?您看到的字符(以及可能出现的任何字符^S^Q来自此“流控制”功能,该功能与 F# Interactive 配合不佳。将 VS Code 设置更改为 设置terminal.integrated.flowControlfalse您的问题就会消失。