· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Emacs Session Management

세션 관리

작업 버퍼 관리

Emacs에서 작업을 하던 도중 다음 날 다시 emacs로 어떤 파일을 편집했는지 기억이 가물 가물할 때가 많습니다. 작업 파일이 1~2개라면 큰 문제가 없으나 10개 이상 넘어가면 기억해 내는 것도 힘듭니다.

이럴 때 편리한 기능이 기대했던 것처럼 emacs에서 역시 기본으로 제공됩니다.
  • 먼저 ~/.emacs 환경 파일에 다음을 추가합니다.
(add-to-list 'desktop-globals-to-save 'file-name-history)  
(setq history-length 250)

;; emacs 21.3.50 이전 사용자
(desktop-load-default)
(desktop-read)
(setq desktop-enable t)

;; emacs 21.3.50 이상 사용자
(desktop-save-mode 1)
(desktop-read)
  • emacs를 실행합니다.
  • emacs에서 "M-x desktop-save"를 실행합니다.
    • "destop-save"명령에서 파일명을 지정하지 않으면 현재 디렉토리에 ".emacs.desktop"파일이 생성됩니다.
    • "desktop-save"명령은 버퍼 목록을 저장하는 파일을 생성하는 목적 외에 더이상 사용할 필요가 없습니다.
  • 이제 작업하려는 파일 몇가지를 열어 본 후 emacs를 종료합니다.
    • 종료할 때마다 자동으로 desktop-save가 실행되면서 작업 목록을 저장합니다.
  • 다시 emacs를 실행합니다.
이제 기존 작업 파일이 자동으로 열려 있는 것을 볼 수 있습니다.

emacs를 빠르게 시작하려면 작업 버퍼 목록을 자동으로 가져오지 않도록 "emacs --no-desktop"으로 실행합니다.

버퍼 목록 파일이 저장되지 않은 디렉토리에서 emacs를 시작한다면 버퍼 목록을 가져올 수 없습니다.

그외 몇가지 명령이 지원됩니다.
  • 작업 버퍼 관리 파일을 지우고 싶다면 "desktop-remove"를 사용합니다.
  • "*Messages*"버퍼를 제외한 모든 버퍼를 닫고 싶다면 "desktop-clear"를 사용합니다.
자세한 내용과 옵션은 [http]http://www.emacswiki.org/cgi-bin/wiki/DeskTop를 참고하기 바랍니다.

윈도우/프레임 상태 저장/복구

작업 버퍼 관리 만으로 만족할 순 없습니다.

언제나 emacs를 시작할 때마다 같은 크기 모습으로 윈도우는 하나만 열린 모습을 보게됩니다. X-window에서 작업한다면 여러 윈도우들과 프레임을 사용하던 마지막 작업 모습 그대로 복구하고 싶다는 생각을 자주 하게 됩니다.

운 없게도 기본 emacs에서 제공하는 패키지는 이런 기능을 제공하지 않습니다.

그러나 역시 불편의 발명의 어머니라고 했던가요. 누군가 이미 만들어 놓았습니다.

다음 두 파일을 다운받아 적절한 장소에 설치합니다. 설치 방법과 설정은 두 lisp 파일 상단에 자세하게 설명되어 있습니다.

데비안, 우분투 사용자라면 windows-el 패키지를 설치만으로 모든 작업 완료입니다.

emacs 에서 "C-c C-w C-r"키를 입력하거나 "win-resume-menu"를 실행하시면 윈도우 상태 저장/복구 메뉴를 볼 수 있습니다.

명령어를 입력하기 귀찮으시면 메뉴>Buffers>Windows 항목에서 원하는 기능을 선택하면 됩니다.

기타

세션 관리에 대한 자세한 정보나 같은 기능을 제공하는 프로그램들을 보려면 다음 사이트를 참고하기 바랍니다. 끝 -- bootmeta 작성



ID
Password
Join
True happiness will be found only in true love.


sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2007-04-23 00:59:36
Processing time 0.0046 sec