나는 Emacs를 확인하기로 결정했고 그것을 매우 좋아했습니다. 이제는 Emacs Starter Kit를 사용하고 있는데, Emacs Starter Kit 는 기본적으로 Emacs의 기본 설치에 대한 더 나은 기본값과 멋진 사용자 정의를 제공합니다.
나는 그것을 약간 사용자 정의하고 yasnippet , color-themes , unbound 및 기타 것들과 같은 것들을 추가했습니다. 모든 사용자 정의를 유지 하는 github 저장소를 설정하여 여러 위치에서 액세스 할 수 있거나 무언가 잘못되어 .emacs.d 디렉토리를 잃어 버릴 수 있습니다.
이 모든 것이 매우 좋지만 문제가 있습니다. Emacs를로드하는 데 1-2 초 정도 걸립니다. AFAIK Mx 바이트 컴파일 파일을 사용하여 개별 .el 파일을 .elc로 컴파일 할 수 있으며 작동합니다. 그러나 많은 .el 파일이 있으며 간단한 명령이나 무언가로 모든 파일을 컴파일하여 Emacs의 로딩 속도를 높이는 방법이 있는지 궁금합니다. 내 Emacs가 항상 열려있는 것은 아니며, 특히 Total Commander에서 편집 명령의 기본 편집기로 설정 한 후에 더 자주 열리고 닫힙니다 (예, 여기에서 Windows XP).
내 이맥스 버전은 22.3입니다. 그렇습니다. 사용자 정의없이 기본 Emacs 설치가 즉시 실행됩니다.
.el 또는 컴파일 된 .elc를로드 할 때 어떤 버전이 선호되는지 잘 모르겠습니다.
따라서 Emacs가 .emacs.d 디렉토리의 모든 것을 바이트 컴파일하도록하는 elisp 명령 또는 Emacs 명령 행 스위치가 있습니까?
답변
C-u 0 M-x byte-recompile-directory
디렉토리와 아래의 모든 하위 디렉토리에서 모든 .el 파일을 컴파일합니다.
이 C-u 0
부분은 .elc 파일이없는 모든 .el 파일에 대해 묻지 않도록하는 것입니다.
답변
emacs를 시작할 때마다 바이트 컴파일이 필요한 모든 것을 자동으로 바이트 컴파일하기 위해 파일 load-path
맨 위에 변경 한 후 다음을 추가했습니다 .emacs
.
(byte-recompile-directory (expand-file-name "~/.emacs.d") 0)
놀랍게도, 시작 시간이 많이 걸리지 않습니다 (무언가를 컴파일 해야하는 경우 제외).
emacs의 속도를 높이기 위해 먼저 profile-dotemacs.el을 사용하여 느린 부분을 식별 한 다음 autoloads 로 대체했습니다 .
답변
--batch
플래그를 사용 하여 명령 행에서 다시 컴파일 할 수 있습니다 .
모두 다시 컴파일하려면
emacs --batch --eval '(byte-recompile-directory "~/.emacs.d")'
또는 Makefile에서와 같이 단일 파일을 다시 컴파일하려면
emacs --batch --eval '(byte-compile-file "your-elisp-file.el")'
답변
이것은 질문에서 약간 흔들리고 있지만 천천히로드하는 문제를 해결하기 위해 Emacs 23의 새로운 데몬 기능을 사용할 수 있습니다.
“지원 패키지가 많으면 emacs 시작이 약간 느려질 수 있습니다. 그러나 emacs 23은 emacs –daemon을 사용하여 백그라운드에서 emacs를 시작할 수 있습니다 (예 : 로그인 할 때). emacsclient로 새로운 emacs 창 (프레임)을 만들 수 있습니다. 물론, 이전 버전에서는 이미 emacs ‘서버’를 가질 수 있지만 백그라운드에서 시작할 수 있으면 훨씬 좋은 해결책이됩니다. “
에서 http://emacs-fu.blogspot.com/2009/07/emacs-23-is-very-near.html
답변
사용하는 spacemacs의 경우 명령은 spacemacs/recompile-elpa
입니다. 이 명령 byte-recompile-directory
은 파일을 컴파일하지 않습니다.