2012-10-12 4 views
3

도움말에 액세스하려고 할 때 내 Emacs/ess 세션이 충돌합니다. 동일한 기능으로로드 된 두 개의 패키지가있는 경우 이런 일이 발생합니다. 예 :h_elp에 액세스 할 때 emacs ess가 충돌 함

library(lubridate) 
library(data.table) 
?month 

In Rgui 인터페이스에서 튀어 나오고 도움이 필요한 패키지를 선택하라는 메시지가 나타납니다. Emacs가 충돌합니다. 비슷한 문제가 install.packages에서 발생하지만 미러를 지정하는 방법이 있습니다 Is there a way to install R packages using emacs? 비슷한 트릭이 있습니까?

답변

4

글쎄, 아무도 실제로 이러한 충돌이 발생하는 이유를 이해하지 못하기 때문에 시간에 대한 완전한 증거 솔루션은 없습니다. 네가 창문에 있다고 가정 하겠지?

R 대화 상자에 의존하지 않기 위해 모든 도움말 (및 기타) 호출을 완전히 내부화하는 계획이 ESS에 있습니다. 다행히 다음 버전에서. 시간에 대한

그것은 기본적으로 발견 항목과 첫 번째 패키지를 선택하는 도움말 시스템을 만드는 당신의 .Rprofile

tis <- utils:::index.search 
formals(tis)[["firstOnly"]] <- TRUE 
assignInNamespace("index.search", tis, "utils") 

이 점을 넣어된다. 귀하의 경우에는 data.table 패키지의 달 도움말 페이지가 무시됩니다. 어쨌든 일반적인 주제 이름이 꽤 드물기 때문에 큰 문제는 아닙니다.

3

시작 라이브러리 (tcltk)가이 문제를 해결한다는 것을 알았습니다. emacs + ess에서 호출 된 후에도 메뉴가 나타납니다. Rprofile.site에 라이브러리 (tcltk)를 추가했는데 이제는 모든 패키지가 동일한 기능을로드 할 때 install.packages() 및 도움말에 액세스하면 모든 것이 잘 작동합니다.