2017-02-12 100 views
6

我尝试在Ubuntu下玩fsharp(是的,我慢慢发现它比痛苦更痛苦),我已经安装了Mono,VSCode和Ionide扩展,我可以创建和构建F#项目。不幸的是,当我运行通过F#互动简单的F#脚本:VSCode中的奇怪字符FSharp交互式终端

printfn "bar" 

在终端窗口中,我得到:

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

奇怪序列^?^?看起来无法识别的终端转义代码,但是当我使用bash从内部VSCode没有这样的事情。

在FSI执行的每个命令之后更重要的是陌生的顺序重新出现:

> let j = 9;; 

val j : int = 9 

> printfn "foo";; 
foo 
val it : unit =() 
> ^?^? 

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

编辑:当我通过Ionide Alt +执行命令,回车快捷

+1

我遇到同样的问题,我试过单色和fsharp的差异版本,问题依然存在。启动后代码分析也很快失败。我认为这个问题是与vscode而不是纯粹的ionide。我希望这是一个快速解决方案。 –

+0

请提交Ionide扩展的错误:https://github.com/ionide/ionide-vscode-fsharp –

+1

@ Mr.Mr。 - 我想我对这个问题的回答也应该适合你。我通过评论来抨击你,因为Stack Overflow不一定会通知你一个新的答案。 – rmunn

回答

4

这看起来像https://github.com/Microsoft/vscode/issues/19766错误出现问题居多。 VS Code 1.9引入了新设置terminal.integrated.flowControl,默认为true。您看到的^?字符(以及可能显示的任何^S^Q个字符)都来自此“流量控制”功能,该功能在F#Interactive中效果不佳。更改您的VS Code设置,将terminal.integrated.flowControl设置为false,您的问题应该消失。

+0

感谢您的支持,它为我解决了这个问题,向您表示敬意。 –

+0

@rmunn感谢像你这样的人我真的很喜欢stackoverflow! – csharpfolk