2010-04-24 3 views
13

나는 행운을 비으며 이맥스 세션을 복원하는 방법을 찾고 있었다. 나는 이전에 열려 있던 모든 버퍼를 복원하려고합니다. 그 중 일부는 erc, 쉘, 디렉토리 목록, 파일 등을 포함 할 수도 있습니다.Emacs 복원 세션/데스크탑

이맥스를 열 때마다 버퍼를 정리하는 데 많은 시간을 할애합니다. 행과 열로 분할하고 쉘을 열고 irc 채널을 정렬합니다. 일을 시작하는 데 시간이 걸립니다.

것은 내가 내 init.el

(desktop-save-mode 1) 

그리고 M-X의을 바탕 화면 - 저장 사용하여 다음과 같은 추가 시도했습니다. 이것은 단지 파일을 복원하는 것만 보이며, 껍질이 아니거나 버퍼 내에서 실행중인 다른 파일은 아닙니다.

그리고를 통해 읽어

  • 012

    은 또한 다음과 같은 질문을 확인했습니다at emacsWiki.org

여기 내 이맥스 세션의 screenshot example입니다.

간단한 대답은 단지 실제 작업에 집중하는 것입니다 : P

답변

8

나는 간단한 해결책을 건의 할 것 - 원하는 레이아웃을 설정하는 함수를 만들 수 있습니다. 예를 들어, 별도의 창에서 화면의 후반부에 일부 IRC 채널을 갖고 싶기 때문에 때때로 다른 창에서 코드를 작성하면서 가끔씩 살펴볼 수 있습니다. 그래서 내가 원하는대로 내가 창 분할 알아서 내 버퍼를 준비하기 위해 몇 가지 간단한 코드를 작성했습니다

;; show some buffers 
(defun show-some-buffers (buffer-list) 
    (split-window-horizontally) 
    (other-window 1) 
    (dolist (buffer buffer-list) 
    (split-window-vertically) 
    (switch-to-buffer (get-buffer buffer)) 
    (other-window 1)) 
    ;; at the end we have one extra window we need to delete 
    (delete-window) 
    (balance-windows)) 

;; show some erc buffers 
(defun show-erc-buffers() 
    (interactive) 
    (show-some-buffers '("#emacs" "#clojure"))) 

코드는 매우 간단하고 오류 검사 기능,하지만 그것은 당신에게에 대한 힌트를 줄 것이다 무엇 내말은.

당신은 어떤 창 구성을 저장할뿐만 아니라 registers 사용을 고려할 수 있습니다.

+0

자세한 답변을 보내 주셔서 감사합니다. 약간의 작업을 통해이 접근법으로 좋은 솔루션을 얻을 수있을 것이라 확신합니다. 건배. –

+0

아주 좋은 모듈 식 솔루션. – aartist

2

윈도우 레이아웃 자동화에 대한 @ Bozhidar의 탁월한 답답함 (나 자신을 다룬다.)은 또한 GNU Screen을 사용하여 로그인 사이에서 임의의 프로세스 세트를 유지하는 데 사용할 수 있습니다. 꽤 좋은 튜토리얼 here이 있고 이맥스를 사용할 것이기 때문에 this에 읽기를 원할 것입니다. 당신이 발견 한 것처럼

4

는 desktop.el 및 session.el 좋은 시작이다, 그러나 창 레이아웃을 복원하지 마십시오.

그러나 revive.el을 사용하면 재시작 사이에 기억되는 임의의 창 구성을 저장/복원 할 수 있습니다.

승자 모드와 윈도우 구성을 레지스터에 저장하는 트릭을 다루는 윈도우 레이아웃과 관련된 these hints도 확인하십시오.