【问题标题】:paste character limit [duplicate]粘贴字符限制[重复]
【发布时间】:2012-11-04 06:06:52
【问题描述】:

可能重复:
Why and where are \n newline characters getting introduced to c()?

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

【问题讨论】:

    标签: r terminal gnome


    【解决方案1】:

    您似乎遇到了控制台的已知限制。正如Section 1.8 - R commands, case sensitivity, etc. of An Introduction to R 中所说:

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

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

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

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

    【讨论】:

    • 您不仅知道限制,还知道 C 代码的哪个语句负责。如果我生气了,我会重新编译。似乎任意限制为4k。感谢您指出这一点。
    • 您也可以在代码中添加几个回车符。这不仅会容易得多,而且在 5 年内维护您的代码的人都会感谢您。
    猜你喜欢
    • 2013-10-11
    • 2019-09-30
    • 1970-01-01
    • 1970-01-01
    • 2012-10-16
    • 2015-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多