2010-01-30 102 views
1

我已经得到Fsi.exe在Mono的Mac OS X(雪豹)上按预期工作。我只是注意到剪切和粘贴的一些奇怪的行为,我想知道是否有人看到这一点。复制/粘贴到FSI的奇怪行为在Mac上

我已经定义了以下别名FSI:

alias fsi='ledit mono ~/FSharp-1.9.7.8_2/bin/fsi.exe --gui-' 

ledit是Ocaml程序编写工具,它似乎正确地使键盘输入工作 - 没有它,FSI只是似乎永远不会读取输入。要明白我的意思,尽量不Fsi.exe和ledit进入

let square x = x * x;; 

没有ledit,它只是似乎永远不会解析输入。我的意思是,输入字符串后,它永远不会回到“>”提示符。使用ledit,“>”提示立即返回。

当然的--gui-保持FSI从显示有关System.Drawing中缺乏等

所以,这一切似乎工作的所有消息。奇怪的是,当我将代码复制并粘贴到FSI中时,某些字符似乎一遍又一遍地重复。它似乎受到我粘贴的缓冲区大小的限制。当我粘贴小片段时,似乎没有问题。但是,如果我粘贴更大的块,这是奇怪的。

如果我做到以下几点:

open System.IO;; 

然后粘贴在FSI这个代码片段:

let buildFileList basepath filespec = 
    seq { 
     yield! Directory.GetFiles(basepath, filespec, System.IO.SearchOption.AllDirectories) 
     } 

这工作正常。但是,如果我复制并粘贴一个更大的代码块,它会重复该部分,直到收益率!一遍又一遍地。它似乎与fsi试图在代码被粘贴时解析代码有关,因为粘贴相同的代码会导致解析错误(如FS0010),当它粘贴到一个长块的末尾时,但不会导致错误它是孤立的。

如果我#加载整个文件,它解析正确,所以我认为我的代码是好的。

复制/粘贴中的这种奇怪现象似乎在命令行上有或没有ledit的情况下发生。我不介意自己研究这个问题,但我对我应该从哪里开始处理这件事感到困惑。我从GVim复制,如果这有所作为,但任何人有任何想法,我可以继续试图隔离这种奇怪的行为的原因?我想我可以先采取额外的步骤复制到TextEdit,然后尝试复制到fsi,但除此之外的任何想法?

至此底线:是否有人看到过这种奇怪的行为?如果没有,对于我如何着手试图隔离这种奇怪行为的原因有什么建议?

+0

在http:// cs。hubfs.net/forums/thread/12999.aspx – Brian 2010-01-30 18:34:25

+0

谢谢Brian。我意识到这是一个狭窄的问题,但我在两个地方张贴,希望得到我接下来可能检查的一些想法。这有点烦人,但不是世界末日。 – 2010-01-30 20:32:58

回答

2

当我在我的Mac上遇到这种行为时,我走了一条不同的路线。我没有使用ledit,而是使用fsi--readline选项,如下所示(其中${FSHARP}是我的安装路径)。

mono ${FSHARP}/fsi.exe --readline+ --gui- 

您可能还想检查您的终端设置。我的终端(例如)被宣布为xterm-color,我没有选中delete sends CTRL-H。我认为这些是唯一相关的设置,但不要拘泥于此。

+0

我也在HubFS回复了你的crosspost。 – pblasucci 2010-01-31 03:08:48

+0

我认为你说得对;我认为 - 线程是要走的路。 – 2010-01-31 04:06:07