2013-01-19 1 views
2

최근에 SML 코드 실행을 위해 sml-mode Emacs 패키지를 시작했습니다. 내가 직면하고있는 문제는 내가 SML 코드/파일의 영역을 REPL로 보내려고 할 때이다. (필자는 REPL로 고민하지 않고 SML로 다중 회선 기능을 작성하는 유일한 논리적 인 방법이라고 생각한다.) 여기 내 워크 플로우입니다 : 이미 다시 (C-c C-s) sml 모드에서 REPL에 버퍼 영역을 보내지 못했습니다.

  • 를 실행하지 않는 경우
    • 는 SML 파일을 열고
    • 이 REPL을 열고합니다 (SML 모드 창 하단에 표시) SML 파일로 돌아가서 함수를 작성하십시오.
    • 전체 함수를 선택하고 C-C C-r을 누르십시오. "sml-prog-proc` 버퍼가 아닙니다."오류가 발생합니다.
    • 이제 영역을 선택하는 대신 C-C C-l을 사용하여 전체 파일을 REPL로 보내십시오. 다시 미니 버퍼의 동일한 오류가 발생했습니다.

    누군가가이 문제가 발생하는 이유와 SML을 사용할 때 스크립트/파일에서 REPL로 코드를 실제로 전송하는 방법을 이해할 수 있습니까? 중요한 경우 SML/NJ를 사용하고 있습니다.

    TIA, 사스케

  • +0

    이맥스와 sml-mode의 버전을 추가하지 않을 수도 있습니다. 나는 당신의 발걸음을 따라 갔고, 나는 당신의 문제를 재현 할 수 없습니다. 현재 sml-mode 정보의 버전 $ Name $을 사용하고 있습니다 :) ... apt-cache에 따르면 나는 버전 4.1-2와 23.3 + 1-buntu9.1을 sml- 모드와 emacs 각각 –

    +0

    전체 함수를 선택하고'Cc Cr'을 누르면, 버퍼의 모델 라인은 무엇을 말합니까? 버퍼가 여전히 "SML"모드라고 말합니까? – Stefan

    +0

    @Stefan : 예, 주요 모드는 변경되지 않습니다. '(SML Undo-Tree)'와 같은 것을 보여줍니다. – sasuke

    답변

    4

    이 그것을 어떤 경우에 있지만 다른 근무로뿐만 아니라 나를 귀찮게했다. SML 프로세스 (명령 '사용'을 발행 할 때 권장) C-d으로 사망하고 즉시 동일한 버퍼 (C-c C-s)에서 다시 시작

    경우, 오류가 발생할 때마다 해당하는 경우에는 보낼 - 투 - REPL ' 작업이 수행됩니다. 합니다 (REPL를 죽이고)

    올바른 방법이 (C-c C-s) 또는 (C-c C-r) 또는 (C-c C-l) 중 하나에 의해 REPL 다시 편집중인 .sml 파일을 포함하는 버퍼로 전환하고 다시 시작하는 것이다.

    HTH.

    +0

    고마워,이 트릭을 할 것으로 보이지만 REPL이 죽으면 SML 모드 파일에 가지 않고 시작하면 왜 작동하지 않는지 궁금하네요. 이 대답을 수락하기 전에 잠시 기다려 드리겠습니다. :) – sasuke

    +0

    elisp 코드를 간략하게 살펴보면 sml-prog-proc는 .sml 파일과 연결된 버퍼와 연결되어야합니다. REPL이 자체 내에서 시작되면 코드 버퍼와 REPL 사이에 링크가 없으므로 REPL로 보낼 때 코드 버퍼가 보내지 않습니다. – rprimus

    관련 문제