6

可能重复:
为什么以及在哪里将 \n 换行符引入 c()?

我在 GNOME 终端(版本 3.4.1.1)的外壳(版本 4.2.36(1))中运行R(版本 2.15.1 )。bash有时我将我的代码写在一个文本文件中,然后将其直接粘贴到控制台中(运行时R)。在我粘贴的脚本变长之前,我没有遇到任何问题。现在,任何大于 4206 个字符(包括\n)的代码似乎都被拒绝(即,前 4206 个字符被接受,其余代码被截断;截断伴随着终端“铃”声)。此字符限制并非特定于bashGNOME 终端,因为我在粘贴到例如vi. 因此,我怀疑字符限制是由R,但不知道如何更改它,假设它是用户可配置的参数。可以更改粘贴限制吗?如果可以,控制它的参数是什么?

4

1 回答 1

9

看起来您遇到了控制台的已知限制。正如它在介绍 R的第 1.8 节 - R 命令、区分大小写等中所说:

在控制台输入的命令行被限制 [3] 到大约 4095 个字节(不是字符)。

[3] 一些控制台不允许您输入更多内容,其中一些会默默丢弃多余的部分,而另一些则会将其用作下一行的开始。

要么将命令放在一个文件中source,要么将代码分成多行,方法是在适当的点(逗号之间)插入您自己的换行符。

该值是硬编码在src/include/Defn.h:中的#define CONSOLE_BUFFER_SIZE 4096,因此您需要重新编译 R 来更改它。

于 2012-11-04T06:39:15.813 回答