R 粘贴字符限制

R 粘贴字符限制,r,terminal,gnome,R,Terminal,Gnome,可能重复: 我正在GNOME终端(版本3.4.1.1)中的bashshell(版本4.2.36(1))中运行R(版本2.15.1)。有时我将代码写入文本文件,然后将其直接粘贴到控制台中(运行R)。我没有任何问题,直到我粘贴的脚本越来越长。现在,任何大于4206个字符(包括\n)的代码都会被拒绝(即,前4206个字符被接受,剩余的代码被截断;截断时伴随着终端“铃声”)。此字符限制不特定于bash或GNOME终端,因为我在粘贴到例如vi时不遵守字符限制。因此,我怀疑字符限制是由R强加的,但假设它是

可能重复:


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

看起来您遇到了控制台的已知限制。正如书中所说:

在控制台输入的命令行限制为[3]约4095字节(非字符)

[3] 一些控制台将不允许您输入更多内容,而在这些控制台中,一些控制台将默默地丢弃多余的内容,一些控制台将使用它作为下一行的开始

将命令放入文件并
source
它,或者通过在适当的点(逗号之间)插入自己的换行符将代码分成多行


该值是在
src/include/Defn.h
中硬编码的:
定义控制台缓冲区大小4096
,因此您需要重新编译R来更改它。

您不仅知道限制,而且知道是哪个C代码语句造成的。如果我够烦的话,我会重新编译。似乎任意限制为4k。感谢您指出这一点。您也可以在代码中添加一些回车符。这不仅会容易得多,而且任何在5年内维护您的代码的人都会为此感谢您。