나는 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)