2010-01-30 75 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