首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Mac上复制/粘贴到FSI的奇怪行为

在Mac上复制/粘贴到FSI的奇怪行为
EN

Stack Overflow用户
提问于 2010-01-31 01:28:42
回答 1查看 273关注 0票数 1

我已经让Fsi.exe在装有Mono的Mac (雪豹)上按预期工作了。我只是注意到了剪切和粘贴的一些奇怪的行为,我想知道是否有人见过这个。

我已经为fsi定义了以下别名:

代码语言:javascript
复制
alias fsi='ledit mono ~/FSharp-1.9.7.8_2/bin/fsi.exe --gui-'

ledit是一个Ocaml实用程序,它似乎可以使键盘输入正确工作--如果没有它,fsi似乎永远无法读取输入。要理解我的意思,可以尝试不带ledit的Fsi.exe,然后输入

代码语言:javascript
复制
let square x = x * x;;

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

当然--gui- -阻止fsi显示所有关于缺少System.Drawing等的消息。

因此,这一切似乎都奏效了。奇怪的是,当我将代码复制并粘贴到FSI中时,某些字符似乎一遍又一遍地重复。它似乎受到我粘贴的缓冲区大小的限制。当我粘贴小的代码片段时,似乎没有问题。但如果我粘贴更大的块,就会出现这种奇怪的情况。

如果我执行以下操作:

代码语言:javascript
复制
open System.IO;;

然后将以下代码片段粘贴到FSI中:

代码语言:javascript
复制
let buildFileList basepath filespec =
    seq {
        yield! Directory.GetFiles(basepath, filespec, System.IO.SearchOption.AllDirectories)
        }

这很好用。但是,如果我复制并粘贴以此结尾的更大的代码块,它会重复该部分,直到输出!一遍又一遍。这似乎与fsi试图在粘贴时解析代码有关,因为当粘贴在长块的末尾时,粘贴的相同代码将导致解析错误(如FS0010),但当它被隔离时不会导致错误。

如果我加载了整个文件,它也能正确解析,所以我认为我的代码没问题。

复制/粘贴中的这种奇怪之处似乎既发生在命令行上使用ledit,也可能不使用ledit。我不介意自己研究这个问题,但我有点困惑于我应该从哪里着手。我正在从GVim复制,如果这有区别的话,但是有人知道我可以从哪里开始尝试隔离这种奇怪行为的原因吗?我想我可以采取额外的步骤,首先复制到TextEdit,然后再尝试复制到fsi,但除此之外还有什么想法吗?

归根结底:还有没有人见过这种奇怪的行为?如果不是,有什么建议可以帮助我找出这种奇怪行为的原因吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-01-31 11:06:51

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

代码语言:javascript
复制
mono ${FSHARP}/fsi.exe --readline+ --gui-

您可能还想检查您的终端设置。例如,我的终端(例如)被声明为xterm-color,而我没有选中delete sends CTRL-H。我认为这些是唯一相关的设置,但不要让我坚持它。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2168713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档