.emacs를 변경 한 후 다시로드하려면 어떻게해야합니까?
Emacs를 다시 .emacs
시작하지 않고 업데이트 한 모든 정의를 Emacs에 다시로드하려면 어떻게해야 합니까?
load-file 명령을 사용할 수 있습니다 ( M-x load-file
. return 키를 두 번 눌러 편집중인 현재 파일 인 기본 파일 이름을 사용하십시오).
포인트를 sexp의 끝으로 옮기고을 눌러 C-xC-e해당 sexp 만 실행할 수도 있습니다. 일반적으로 한두 줄만 변경하는 경우 전체 파일을 다시로드 할 필요는 없습니다.
매우 편리하다는 것이 매우 이상합니다.
M-x eval-buffer
여기에 언급되지 않았습니다.
그것은 당신 .emacs
이 dem 등원 이라면 버퍼의 모든 코드, 가장 빠른 방법을 즉시 평가합니다 .
일반적으로 변경된 지역을 재평가 할 수 있습니다. 변경 한 ~ / .emacs의 영역을 표시 한 다음을 사용하십시오 M-x eval-region RET
. 두 번로드 한 후에도 제대로 작동하지 않는 .emacs 파일을 작성하기 쉽기 때문에 전체 파일을 다시 평가하는 것보다 안전합니다.
현재 활성화 된 버퍼에서 .emacs 파일을 연 경우 :
MX 평가 버퍼
M-x load-file
~/.emacs
다음은 그렇게해야합니다 ...
M-x load-file
다른 사람들은 이미 언급 한대로 귀하의 질문에 대답했지만 일반적으로 방금 작성한 줄을 실행하고 싶습니다. 그것을 위해, CtrlAltxlisp에서 잘 작동합니다.
키보드 단축키:
(defun reload-init-file ()
(interactive)
(load-file user-init-file))
(global-set-key (kbd "C-c C-l") 'reload-init-file) ; Reload .emacs file
해결책
M-: (load user-init-file)
노트
Eval:
프롬프트에 입력하십시오 (괄호 포함).user-init-file
~/.emacs
기본값으로 구성 파일 경로를 가리키는 값을 보유하는 변수입니다.(load)
더 짧고, 오래되고, 비대화 형 버전입니다(load-file)
. emacs 명령이 아니고 M-x단순한 elisp 함수입니다.
결론
M-:
> M-x
C-x C-e ;; current line
M-x eval-region ;; region
M-x eval-buffer ;; whole buffer
M-x load-file ~/.emacs.d/init.el
처음에는이 작업을 수행하지 않는 것이 좋습니다. 대신, 새 emacs 세션을 시작하고 변경 사항이 올바르게 작동하는지 확인하십시오. 이 방법을 사용하는 이유는 작동하지 않는 .emacs 파일이있는 상태에서로드하지 못하거나 완전히로드되지 않는 상태를 유지하기위한 것입니다. 원래 세션에서 모든 편집 작업을 수행하고 새 세션에서 모든 테스트를 수행하는 경우 항상 문제가되는 코드에 주석을 달 수있는 신뢰할만한 것이 있습니다.
변경 사항에 만족하면 다른 답변 중 하나를 사용하여 다시로드하십시오. 개인적으로 선호하는 것은 eval
추가 / 변경 한 섹션에만 해당되며, 추가 / 변경된 코드 영역을 강조 표시하고을 호출하기 만하면 M-x eval-region
됩니다. 그렇게하면 luapyad가 지적한대로 평가되는 코드가 최소화되어 의도하지 않은 부작용이 최소화됩니다.
현재 우분투 15.04에 있습니다. 나는 이것에 대한 열쇠를 정의하고 싶다.
[M-insert]는 키보드에서 alt-insert로 변환됩니다.
이것을 .emacs 파일에 넣으십시오.
(global-set-key [M-insert] '(lambda() (interactive) (load-file "~/.emacs")))
init 파일에서 정의하고 Mx reload-user-init-file로 호출 하십시오.
(defun reload-user-init-file()
(interactive)
(load-file user-init-file))
M-x eval-buffer
작동 하지만 토글 및 기타 유사한 문제가 발생할 수 있습니다. 더 나은 접근 방법은 .emacs의 새로운 내용을 표시하거나 강조 표시하는 것 (또는 엉망인 경우에는 스크래치 버퍼)을 수행하는 것 M-x eval-region
입니다. 도움이 되었기를 바랍니다.
다음은 빠르고 쉽게 구성을 테스트 할 수있는 방법입니다. C-x C-e
특정 lisp의 끝에서 특정 기능을 개별적으로 실행할 수도 있습니다 .
Cx Ce는 대화식으로 컴파일 된 Lisp 함수 인 eval-last-sexp (글로벌 맵에 있음) 명령을 실행합니다.
Cx Ce에 바인딩됩니다.
(평가판 마지막 평가 EVAL-LAST-SEXP-ARG-INTERNAL)
포인트 이전의 sexp를 평가하십시오. 에코 영역에 값을 인쇄합니다. 접두사 인수를 사용하여 대화식으로 출력을 현재 버퍼에 인쇄합니다.
일반적으로이 함수는 변수 'eval-expression-print-length'및 'eval-expression-print-level'의 값에 따라 긴 출력을 자릅니다. 그러나 접두어 인수가 0이면 그러한 잘림이 없습니다. 이러한 접두사 인수는 정수가 몇 가지 추가 형식 (8 진수, 16 진수 및 문자)으로 인쇄되도록합니다.
'eval-expression-debug-on-error'가 기본값이 아닌 0이 아닌 경우,이 명령은 모든 오류가 디버거에 들어가도록 정렬합니다.
Mx eval-buffer 또는 Mx load-file 과 같은 명령 외에도 명령 행에서 새로운 emacs를 다시 시작할 수 있습니다.
emacs -q --load "init.el"
사용 예 stackoverflow.com/questions/44959535/company-backends-in-gnu-emacs/
이맥스에 대한 키 바인딩을 설정할 수 있습니다
;; reload emacs configuration
(defun reload-init-file ()
(interactive)
(load-file "~/.emacs"))
(global-set-key (kbd "C-c r") 'reload-init-file)
이것이 도움이되기를 바랍니다!
Emacs 내부에 쉘을 연 경우 다음을 수행 할 수도 있습니다.
. ~/.emacs
몇 가지 키 스트로크를 저장할 수 있습니다.
참고 URL : https://stackoverflow.com/questions/2580650/how-can-i-reload-emacs-after-changing-it
'Programing' 카테고리의 다른 글
사전 정의 된 유형 'System.ValueTuple´2'가 정의되지 않았거나 가져 오지 않았습니다. (0) | 2020.02.29 |
---|---|
HTML (0) | 2020.02.29 |
Chrome 개발자 도구에서 리소스에 대한 상태 = 취소 란 무엇입니까? (0) | 2020.02.29 |
JavaScript 객체에서 항목을 제거하는 방법 (0) | 2020.02.29 |
array_map, array_walk 및 array_filter의 차이점 (0) | 2020.02.29 |