이 게시물에 따르면:
어떤 방식으로든 파일의 require
및 load
문을 바꾸면 .emacs
emacs 시작 속도를 높일 수 있습니다. 하지만 이 작업을 자세히 수행하는 방법을 모르겠습니다.
예를 들어, 내 .emacs 파일에는 다음과 같은 내용이 require
있습니다 load
.
(load "auctex.el" nil t t)
(require 'alarm)
(require 'linked)
(load "nxhtml/autostart.el")
(require 'autoinsert)
(require 'recentf)
(require 'color-theme)
(load "~/.emacsaddons/emacs-color-theme-solarized/color-theme-solarized")
...
alarm
및에 대해서는 linked
이라는 디렉터리에 해당 파일이 있고 .emacsaddons
, nxhtml
에는 디렉터리가 있고, 다른 디렉터리에는 해당 파일이 없습니다 .emacsaddons
. 위의 예에서는 파일에 모든 require
OR load
문을 포함하지 않았으며 , OR 문을 교체하는 단계가 서로 다르다고 .emacs
생각한 일부 부분만 포함했습니다(예: 일부는 파일이 있고 일부는 파일이 없거나 또는 .. . 하위 디렉터리 때문에). ).autoload
el
.emacsaddons
nxhtml
.emacsaddons
성능을 향상시키기 위해 모든 것을 기능으로 교체하는 autoload
세부 단계는 무엇입니까 ?
답변1
load
자동 로딩의 첫 번째 단계로, 명시적 명령을 다음과 같이 emacs가 로드해야 하는 항목 목록에 추가된 경로로 변환하는 것이 좋습니다 .
(add-to-list 'load-path (expand-file-name "~/.emacs.d/"))
게다가 .emacs
다른 파일을 찾기 위해 다른 파일을 로드하는 데 의존하는 다른 항목을 호출할 수도 있습니다.
특히 파일 로드를 연기하려면 (require 'foo)
각 파일 에 대해 .emacs
다음과 같이 바꿔야 합니다.
(autoload 'name-of-foo-mode "code-for-foo.el" "Minor/Major mode for foo" t)
.el
대신 어떤 이름을 사용해야 하는지 확인하려면 해당 파일의 코드를 실험(아마도 읽어야)해야 할 수도 있습니다 'name-of-foo-mode
. 가장 일반적인 이름은 'foo
또는 'foo-mode
이지만 불일치가 있습니다.
내 경우에는 다음 진술이 내 맨 아래에 있습니다 .emacs
.
(autoload 'textmate-mode "textmate" "Minor mode for automatic bracket pairs" t)
(autoload 'post-mode "post" "Mode for editing e-mails" t)
(autoload 'turn-on-reftex "reftex" "Minor mode for references in TeX files" t)
(autoload 'mode-compile "mode-compile" "Compile current buffer" t)
(autoload 'markdown-mode "markdown-mode" "Major mode for Markdown files" t)
require
하지만 자동 로딩으로 전환하기 전에 해야 할 몇 가지 선언은 다음과 같습니다.
(require 'reftex)
(require 'post)
(require 'compile)
(require 'textmate)
따라서 제가 말했듯이 몇 가지 실험을 하거나 코드를 읽어야 할 수도 있지만 결국에는 emacs를 자주 호출하면 시간을 절약할 수 있기 때문에 그만한 가치가 있습니다.
답변2
Emacs를 빠르게 시작하기 위해 제가 찾은 가장 좋은 방법은 Emacs를 데몬화하는 것입니다. 이 지침은 emacs23용입니다. 이전 버전에는 서버/클라이언트 기능이 있었지만 구성이 더 어려울 수 있었습니다. 처음 데스크탑에 로그인할 때 를 실행합니다 emacs --daemon
. 그 후 emacs가 필요할 때마다 실행하면 emacsclient -c filename
즉시 나타납니다. 서버/클라이언트 모드에서 emacs를 사용할 때 C-x C-c
대신에 exit 및 type을 사용하는 습관을 버려야 합니다 C-x #
. FWIW, 이것은 emacs23에서 해결된 문제인 것 같습니다. 때때로 C-x C-c
서버 프로세스를 종료하지 않고 타이핑하는 것을 발견하지만 여전히 예전 습관에 갇혀 있습니다.
요구 사항에 따라 이는 약간의 이득을 위해 구성을 조작하는 것보다 나을 수 있습니다.