[emacs] Emacs 창의 크기는 어떻게 설정합니까?

나는 emacs를 시작하는 화면의 크기를 감지하고 그에 따라 크기를 조정하고 시작되는 창 위치를 조정하려고합니다 (emacs-speak의 프레임 인 것 같습니다). 내 .emacs를 설정하여 항상 “합리적으로 큰”창이 나타나고 화면 왼쪽 상단 근처에 왼쪽 상단이 표시됩니다.

나는 이것이 일반적인 경우에 대한 요청 이라고 생각합니다 . 그래서 조금 좁히기 위해 Windows 및 (Debian) Linux에서 GNU Emacs 22에 가장 관심이 있습니다.



답변

해상도에 따라 크기를 변경하려면 다음과 같이 할 수 있습니다 (특정 요구 사항에 따라 선호하는 너비 및 해상도 조정).

(defun set-frame-size-according-to-resolution ()
  (interactive)
  (if window-system
  (progn
    ;; use 120 char wide window for largeish displays
    ;; and smaller 80 column windows for smaller displays
    ;; pick whatever numbers make sense for you
    (if (> (x-display-pixel-width) 1280)
           (add-to-list 'default-frame-alist (cons 'width 120))
           (add-to-list 'default-frame-alist (cons 'width 80)))
    ;; for the height, subtract a couple hundred pixels
    ;; from the screen height (for panels, menubars and
    ;; whatnot), then divide by the height of a char to
    ;; get the height we want
    (add-to-list 'default-frame-alist
         (cons 'height (/ (- (x-display-pixel-height) 200)
                             (frame-char-height)))))))

(set-frame-size-according-to-resolution)

윈도우 시스템은 최신 버전의 emacs에서 더 이상 사용되지 않습니다. 적절한 대체품은 (display-graphic-p). emacs가 터미널 모드에 있음을 감지하는 방법 질문에 대한 답변 을 참조하십시오 . 조금 더 배경을 위해.


답변

내 다음이 있습니다 .emacs.

(if (window-system)
  (set-frame-height (selected-frame) 60))

또한 기능에 보일 수 있습니다 set-frame-size, set-frame-position하고 set-frame-width. C-h f(일명 M-x describe-function)을 사용 하여 자세한 문서를 가져옵니다.

현재 윈도우 환경에서 프레임의 최대 높이 / 너비를 계산하는 방법이 있는지 잘 모르겠습니다.


답변

출처 : http://www.gnu.org/software/emacs/windows/old/faq4.html

(setq default-frame-alist
      '((top . 200) (left . 400)
        (width . 80) (height . 40)
        (cursor-color . "white")
        (cursor-type . box)
        (foreground-color . "yellow")
        (background-color . "black")
        (font . "-*-Courier-normal-r-*-*-13-*-*-*-c-*-iso8859-1")))

(setq initial-frame-alist '((top . 10) (left . 30)))

첫 번째 설정은 시작할 때 팝업되는 첫 번째 프레임을 포함하여 모든 emacs 프레임에 적용됩니다. 두 번째 설정은 첫 번째 프레임에 추가 속성을 추가합니다. 이것은 emacs를 시작하는 원래 프레임을 아는 것이 때때로 좋기 때문입니다.


답변

내가 찾은 가장 쉬운 방법은 X-Window 환경에서 X 리소스를 사용하는 것 입니다. 내 .Xdefaults의 관련 부분은 다음과 같습니다.

Emacs.geometry: 80x70

+ 0 + 0 위치 좌표를 접미사로 붙여서 디스플레이의 왼쪽 상단 모서리로 강제 할 수 있어야합니다. (내가하지 않는 이유는 가끔 새 프레임을 생성하고 이전 프레임과 똑같은 위치에 나타나면 혼란스러워지기 때문입니다)

매뉴얼에 따르면 이 기술은 MS Windows에서도 작동 하며 리소스를 레지스트리에 키 / 값 쌍으로 저장합니다. 나는 그것을 테스트하지 않았습니다. 단순히 파일을 편집하는 것보다 훨씬 더 불편할 수도 있습니다.


답변

다음 코드를 추가해보십시오. .emacs

(add-to-list 'default-frame-alist '(height . 24))

(add-to-list 'default-frame-alist '(width . 80)) 


답변

emacs를 실행할 때 -geometry 매개 변수를 사용할 수도 emacs -geometry 80x60+20+30있습니다. 창은 너비가 80 자, 높이가 60 행이고, 왼쪽 상단 모서리가 오른쪽으로 20 픽셀, 배경의 왼쪽 상단 모서리에서 30 픽셀 아래로 내려갑니다.


답변

우분투에서는 다음을 수행하십시오.

(defun toggle-fullscreen ()
  (interactive)
  (x-send-client-message nil 0 nil "_NET_WM_STATE" 32
                 '(2 "_NET_WM_STATE_MAXIMIZED_VERT" 0))
  (x-send-client-message nil 0 nil "_NET_WM_STATE" 32
                 '(2 "_NET_WM_STATE_MAXIMIZED_HORZ" 0))
)
(toggle-fullscreen)