Emacs, 시작시 여러 창 열기


1

이맥스를 시작할 때 4 개의 창을 표시하고 각 창 안에는 .emacs 파일에 버퍼를 지정하고 싶습니다. 아마 왼쪽 상단 창에서 emacs 웹 브라우저 w3m이 나타나고, 오른쪽 상단 창에 파이썬 인터프리터가 나타나고, 왼쪽 아래 창, 마지막으로 사용한 창이 나타납니다. 그리고 오른쪽 아래 창에는 빈 버퍼가 나타납니다.

  1. 어떻게하면 .emacs 파일에 대해 elisp에이 기능을 쓸 수 있습니까?
  2. 이 질문에 답하기 위해이 정보를 어디에서 찾았습니까? 이맥스 도움말 페이지를 사용 했습니까?

모든 도움을 주시면 대단히 감사하겠습니다!

답변:


1

여러분이 요구하는 기능은 Emacs 사용자들 사이에 공통된 요구입니다. 좋은 소식은 원하는대로 할 수있는 기존 패키지가 많이 있다는 것입니다. 내가 가장 좋아하는 것은 workgroups.el이다. 그것은 놀랍도록 강력합니다. ELPA로 설치할 수 있습니다. 여기에 훌륭한 readme와 함께 GitHub 저장소가 있습니다. 전체 패키지는 비정상적으로 잘 문서화되어 있습니다.

https://github.com/tlh/workgroups.el

비록 당신이 윈도우와 버퍼 조작을 코딩하는 법을 배우고 싶다고하더라도, 기존 패키지를 연구함으로써 더 빠르고 더 나은 스타일을 배우게 될 것이라고 생각합니다.


이 패키지에 대해 어디에서 배웠습니까? 나는 이맥을 사용하는 데있어 자급 자족 할 수 있기를 바란다.
CodeKingPlusPlus

나는 다운로드해야했다. workgroups2 하지만 내가 원하는 기능을 제공 할 수있는 기본 명령은 무엇입니까?
CodeKingPlusPlus

내가 말할 수있는 것은 내가 원하는 4 개의 창을 수동으로 만들어서 작업 그룹으로 저장해야한다는 것입니다.
CodeKingPlusPlus

& gt; 내가 말할 수있는 것은 내가 원하는 4 개의 창을 수동으로 만들어서 작업 그룹으로 저장해야한다는 것입니다.
Tom Davey

1
& gt; 내가 말할 수있는 것부터 수동으로 & gt; 내가 원하는 4 개의 창과 작업 그룹으로 저장 하시겠습니까? 예. 창 구성을 첫 번째 작업 그룹으로 저장하십시오 (9 개를 가질 수 있음). 첫 번째 작업 그룹은 init.el 또는 .emacs 파일에서 require ()를 사용하여 workgroups.el을로드 할 때 활성화됩니다. 처음에는 이맥스 위키 패키지에 대해 배웠던 것 같습니다. "Save Emacs window configuration"은 그물에 대한 일반적인 검색입니다. 다양한 솔루션과 접근 방법이 많이 있습니다.
Tom Davey

0

감사의 말

나는 다음 페이지에서 발견 한 것들로부터 해결책을 모았다.

노트

  • 사용중인 운영 체제를 지정하지 않았습니다. 나는 그것이 * nix의 맛이라고 생각할 것이다. 틀 렸으면 말해줘. Windows를 사용하는 경우에도 .emacs 비틀기 나는 제안하고 있지만 해결 방법을 사용할 수 없습니다 (아래 참조).

  • 내 솔루션로드 emacs 4 개의 열린 창문, w3m 왼쪽 상단에 Google, 오른쪽 상단에 파이썬 셸, 왼쪽 하단에 마지막으로 열린 파일 및 비어있는 파일 표시 scratch 오른쪽 하단에 버퍼. 시작하면 제대로 작동합니다. emacs 명령 줄에서 직접 파일을 열면 인수가 없지만 레이아웃이 깨집니다.

    emacs foo.txt
    
  • 따라서 파일 이름을 지정하지 않은 경우에만 레이아웃을로드하는 해결 방법을 제안합니다. 항상 4 윈도우 레이아웃을로드하고 싶다면 아래의 lisp 라인을 직접 추가하면된다. ~/.emacs 새 파일을 만드는 대신 .

  • 직접 선을 추가하기로 결정한 경우 ~/.emacs 파일을 만들 때는 다음 명령을주의하십시오.

    ;; Set the max number of recent files kept
    (custom-set-variables
     '(recentf-max-saved-items 10)
    '(inhibit-startup-screen t))
    

    하나만있을 수 있습니다. custom-set-variables 섹션 .emacs 파일을 추가하여 파일에 추가하는 대신 기존 custom-set-variables 변수를 추가하기 만하면됩니다.

    '(recentf-max-saved-items 10)
    

대답

다음 위치에 파일을 만듭니다. $HOME 전화 한 .my_emacs_layout 이 줄이 포함되어 있거나 (또는 ~/.emacs 파일, 위의 노트 참조) :

;; Activate recentf mode to get the list of
;; recent files
(recentf-mode 1)

;; Load the w3m browser, change this to the location of your `w3m` install.
;; You should be able to copy the relevant lines from your `~/.emacs`.
(add-to-list 'load-path "~/.emacs-lisp/emacs-w3m")
(require 'w3m-load)

;; Set the max number of recent files kept
(custom-set-variables
 '(recentf-max-saved-items 10)
'(inhibit-startup-screen t))
;; Set up initial window layout.  
(split-window-horizontally)
;; Open w3m in the main window, this
;; will be the top left
(w3m-goto-url "www.superuser.com")

;; Split the left window vertically
(split-window-vertically)

;; switch to the bottom left window
(other-window 1)
;; and load the most recent file
(recentf-open-most-recent-file 1)

;; I am sure there is a better way of doing this 
;; but for some reason opening the python shell screws
;; around with the window focus and this ugly hack is 
;; the best I could come up with.
(other-window 1)
(split-window-vertically)
(other-window 1)
(other-window 1)
(other-window 1)
;; open the python shell in what will be 
;; the top right window
(py-shell)

그게 전부입니다. 이제 새로운 emacs 런칭으로 레이아웃

emacs -l ~/.my_emacs_layout

해결 방법

정상을로드하려면 emacs 명시 적으로 파일을 열고 단순히 실행하는 경우 4 창 레이아웃을로드 할 때 세션 emacs,이 라인을 쉘의 설정 파일에 추가하십시오 ( ~/.bashrc bash를 사용하는 경우) :

function emacs(){
 if [ $# -eq 0 ]
 then
     /usr/bin/emacs -l ~/.my_emacs_layout
  else
     /usr/bin/emacs "$@"
 fi
}


뭐야? ~/.bashrc? 나는 ~/.bash_profile
CodeKingPlusPlus

@ CodeKingPlusPlus 당신은 Mac을 사용하고 있습니까? 그렇다면 ~/.bash_profile 대신에 ~/.bashrc. Mac을 사용하고 있지 않다면 ~/.bashrc. 이것은 어떤 OS를 사용하는지 알려주는 것이 중요합니다.
terdon

예, Mac OS X 10.8.4
CodeKingPlusPlus

@ CodeKingPlusPlus 명령 줄에서 이맥스를 실행하지 않는 경우 내 해결 방법을 무시하고 코드 줄을 추가하면됩니다. emacs. 파일을 명시 적으로로드 할 때만 문제가됩니다. 그럼에도 불구하고 여전히 작동합니다. 버퍼가 있습니다. 레이아웃이 엉망입니다.
terdon

나는 항상 명령 행에서 이맥스를 시작한다 ...
CodeKingPlusPlus
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.