2012-11-04 4 views
4

가능한 중복 :
Why and where are \n newline characters getting introduced to c()?붙여 넣기 자 제한

내가 실행하고 R (버전 2.15.1)를 bash 쉘 (버전 4.2.36 (1)) 그놈의 터미널 (버전 3.4.1.1). 때로는 텍스트 파일에 코드를 작성한 다음 콘솔에 직접 붙여 넣습니다 (R 실행시). 붙여 넣기 스크립트가 길어지기까지는 아무런 문제가 없었습니다. 이제 4206 자 (\n 포함)보다 큰 코드는 거부됩니다 (즉, 첫 번째 4206자를 허용하고 나머지 코드는 잘 렸으며 자르기에는 단말기 벨 소리가 함께 표시됨). 이 문자 한도는 에 붙여 넣을 때 글자 수 제한을 준수하지 않으므로 bash 또는 GNOME 터미널에만 해당되지 않습니다. 따라서 글자 수 한도는 R에 의해 부과되지만 사용자가 구성 할 수있는 매개 변수라고 가정하면 글자 수 한도를 변경하는 방법을 알 수 없습니다. 붙여 넣기 한도를 변경할 수 있습니까? 그렇다면 어떤 매개 변수가 그것을 제어합니까?

답변

8

콘솔의 알려진 제한 사항을 실행하는 것처럼 보입니다. 이 An Introduction to RSection 1.8 - R commands, case sensitivity, etc.에서 말하기를 :

명령 줄 콘솔에 입력 된 약 4,095 바이트 (문자가 아니라)에 [3] 제한됩니다.

[3] 콘솔 중 일부는 더 이상 입력 할 수 없으며 일부는 수행 한 작업을 자동으로 무시하고 일부는 다음 행의 시작으로 사용합니다.

중 하나는 파일 및 source 그 안에 명령을 넣어, 또는 (쉼표 사이에) 적절한 지점에서 자신의 줄 바꿈을 삽입하여 여러 줄에 암호를 해독.

이 값은 src/include/Defn.h : #define CONSOLE_BUFFER_SIZE 4096으로 하드 코드되어 있으므로 변경하려면 R을 다시 컴파일해야합니다.

+0

제한 사항에 대해 알고 있었을뿐만 아니라 C 코드의 어떤 부분이 책임이 있는지 알고있었습니다. 내가 화가났다면 다시 컴파일 할 것이다. 4k로 제한되는 것으로 보입니다. 이것을 지적 해 주셔서 감사합니다. – user001

+0

코드에 몇 개의 캐리지 리턴을 추가 할 수도 있습니다. 이 방법은 훨씬 쉬울뿐만 아니라 5 년 후에 코드를 유지 관리하는 사람이라면 누구나 감사 할 것입니다. –