나는이 문제에 대한 해답을 찾고있다. 어떻게되었는지, 어떤 일을했는지는 잘 모르겠지만 F3을 눌러 ESS [SAS] 모드에서 SAS 용 배치 파일을 실행하면 작동하지 않습니다. 나는 그것을 하루 종일 사용하고 갑자기 그냥 더 이상 작동하지 않습니다 ... SAS-mode
에있는 동안 M-x ess-sas-global-unix-keys
을 호출하면 .sas
파일을 열 때 init.d
파일에 (setq ess-sas-global-unix-keys t)
을 가지고 있지만 F3-F6을 필요한 명령에 바인드하십시오.ESS [SAS] F3 버튼과 "파일 모드 사양 오류 : (void-variable ess-ac-sources)"
또한 .sas
파일을 열면 "파일 모드 사양 오류 : (void-variable ess-ac-sources)"메시지가 표시되고 F3-F6 키 바인딩이 더 이상 SAS-mode
에서 작동하지 않습니다.
내가 모든 것을 최신 상태로 유지했는지 확인했는데 (예 : 자동 완성, ess) 모든 내용이 M-x toggle-debug-on-error
을 사용하여 디버깅되었지만 잘못된 내용을 찾을 수 없습니다. 필자가 찾고있는 것을 꼭 알아야한다. 나는 Emacs에 대해 아직 처음이다.)
내 init.el 파일에서 ESS에 대한 유일한 참조는 ess-sas-global-unix-keys
입니다. 사양 오류가 ESS [SAS] 키 바인딩에 영향을 미치고있는 것처럼 느껴지지만 해결 방법을 모르겠습니다. 나는 그것이 하루 종일 계속 사용하고 있었음에도 불구하고 막 시작한 이유에 대해서도 손해를보고 있습니다. 내가 무엇을 할 수 있을지?
편집 :
은 코멘트를, 나는이 debug-on-error
에서 역 추적의 목록을 나열뿐만 아니라 ESS-도움말 메일 링리스트에 이메일을 보내는 것입니다.
Debugger entered--Lisp error: (void-variable ess-ac-sources)
ess-load-extras()
ess-mode(((ess-local-customize-alist quote SAS-customize-alist) (ess-language . "SAS") (ess-dialect . "SAS") (ess-mode-editing-alist . SAS-editing-alist) (ess-mode-syntax-table . SAS-syntax-table) (inferior-ess-program . inferior-SAS-program-name) (ess-help-sec-regex . "^[A-Z. ---]+:$") (ess-help-sec-keys-alist . " ") (ess-object-name-db-file . "ess-sas-namedb.el") (inferior-ess-objects-command . "objects(%d)") (inferior-ess-help-command . "help(\"%s\",pager=\"cat\",window=F)\n") (inferior-ess-exit-command . "endsas;\n") (ess-loop-timeout . 500000) (inferior-ess-primary-prompt . "^") (inferior-ess-secondary-prompt . "^") (comint-use-prompt-regexp . t) (inferior-ess-start-file) (inferior-ess-start-args . inferior-SAS-args-temp) (inferior-ess-font-lock-defaults . SAS-mode-font-lock-defaults)) nil)
SAS-mode()
set-auto-mode-0(SAS-mode nil)
set-auto-mode()
normal-mode(t)
after-find-file(nil t)
find-file-noselect-1(#<buffer cleaning-0yr.sas> "~/Documents/datasets/PROMISE/data/scripts/cleaning-0yr.sas" nil nil "~/Documents/datasets/PROMISE/data/scripts/cleaning-0yr.sas" (5673145 2049))
find-file-noselect("~/Documents/datasets/PROMISE/data/scripts/cleaning-0yr.sas" nil nil t)
find-file("~/Documents/datasets/PROMISE/data/scripts/cleaning-0yr.sas" t)
call-interactively(find-file nil nil)
ess 도움말 [메일 링리스트] (https://stat.ethz.ch/mailman/listinfo/ess-help)에 메일을 보내어 워크 플로우 및 ESS 및 이맥스의 버전에 대한 설명을 제공하십시오. 사용. 더 많은 도움을 받으실 수 있습니다. – VitoshKa
저는 ESS에 익숙하지 않지만 오류의 의미를 알 수 있습니다 :'ess-ac-sources'는'auto-complete' 라이브러리를 위해 만들어진 특별한 목록을 포함하는 변수입니다; 이 라이브러리는이 파일을 사용하여 파일에서 단어를 완성하는 방법을 결정합니다. 일어날 수있는 일은 무엇일까요? - 소스의 이름은 일반적으로 다른 패턴을 따릅니다. 그것은 보통'ac-sources-ess' 였을 것입니다. 이것은 아마도 소스 코드의 오타 일뿐일까요? 'M- : (setq debug-on-error t)'를 시도해 문제가되는 코드를 재실행하고 문제를 일으키는 기능을 알려주십시오. –
@wvxvw 문제의 코드는'ess-load-extras()'입니다. – Luke