development

분할 화면 emacs 창의 크기를 변경하는 방법?

big-blog 2020. 5. 29. 22:09
반응형

분할 화면 emacs 창의 크기를 변경하는 방법?


emacs를 수평으로 나눕니다-맨 위에는 Perl 코드를 편집하고 있으며 맨 아래는 쉘입니다. 기본적으로 emacs는 두 개의 창 크기를 동일하게하지만 쉘 버퍼를 작게하고 싶습니다 (크기의 절반입니까?). 어떻게 할 수 있을지 궁금했습니다.


마우스로 창 크기를 드래그 할 수 있습니다.

그렇지 않으면 '활성'이 아닌 모드 행 (버퍼 이름이 안전하거나 사용하지 않는 영역 오른쪽)을 아무 곳이나 클릭하면 위 또는 아래로 끌 수 있습니다.

좌우로 드래그하려면 두 모드 선이 결합되는 지점을 매우 정확하게 클릭해야합니다.

C-x -( shrink-window-if-larger-than-buffer)는 내용에 맞게 창을 축소합니다.

C-x +( balance-windows)는 창을 같은 높이와 너비로 만듭니다.

C-x ^( enlarge-window)는 높이를 1 줄 또는 접두사 arg 값만큼 증가시킵니다. 음수 인수는 창을 축소합니다. 예를 들어 C-- C-1 C-6 C-x ^16 행만큼 줄어 듭니다 C-u - 1 6 C-x ^.

에 대한 기본 바인딩은 없습니다 shrink-window.

C-x }( enlarge-window-horizontally)도 수평으로 수행합니다.
C-x {( shrink-window-horizontally)도 기본적으로 바인딩됩니다.

이 명령 중 하나를 사용하여 repeat( C-x z시작하고 z계속 반복하기 위해) 원하는 정확한 크기에 쉽게 도달 할 수 있습니다.

정기적으로 특정 값 으로이 작업을 수행하려는 경우 키보드 매크로를 기록하거나 다음과 같은 것을 사용할 수 있습니다
(global-set-key (kbd "C-c v") (kbd "C-u - 1 6 C-x ^"))

아니면 이거:
(global-set-key (kbd "C-c v") (kbd "C-x o C-x 2 C-x 0 C-u - 1 C-x o"))

smidgen hacky는 어느 것이 좋을까요?

(defun halve-other-window-height ()
  "Expand current window to use half of the other window's lines."
  (interactive)
  (enlarge-window (/ (window-height (next-window)) 2)))

(global-set-key (kbd "C-c v") 'halve-other-window-height)

접선으로, 나는 또한 winner-mode창 구성에 대한 변경 사항을 반복적으로 '실행 취소'할 수있는 것을 좋아 합니다 (변경 사항이 창의 C-c left크기 / 숫자 / 배열인지 또는 버퍼가 표시되는지 여부). C-c right최신 구성으로 돌아갑니다. 세계적으로 설정(winner-mode 1)


나는 이것을 내 안에 넣었다 .emacs.

(global-set-key (kbd "<C-up>") 'shrink-window)
(global-set-key (kbd "<C-down>") 'enlarge-window)
(global-set-key (kbd "<C-left>") 'shrink-window-horizontally)
(global-set-key (kbd "<C-right>") 'enlarge-window-horizontally)

emacs 도움말 문서를 사용해 봅시다.

C-h a

그런 다음 "확대"또는 "창"을 입력하십시오.

원하는 것을 찾을 수 있습니다.

즐겨!


C-x o크기를 확장하려는 창으로 거기서부터 C-x ^확장합니다.


C-x ^양수 음수 인수를 취합니다 . 특히 커서가 현재 4 줄씩있는 창을 축소하려면을 누릅니다 C-u -4 C-x ^.


같은 질문이 있습니다. 여기 내 해결책이 있습니다.
먼저 새로운 기능을 정의합니다.

(defun buffer-resize ()
  (delete-other-windows)
  (split-window-vertically (floor (* 0.68 (window-height))))
  (other-window 1)
  (switch-to-buffer buf)
  (other-window 1))

예를 들어, 버퍼에서 run-scheme을 실행하고 싶어서 다시 작성합니다.
그리고 함수가 앞에서 정의 된 정의는 다음과 같습니다.

(defun run-scheme-here ()
  "Run a new scheme process at the directory of the current buffer.
   If a process is already running, switch to its buffer."
  (interactive)
  (let* ((proc (format "scheme: %s" default-directory))
         (buf (format "*%s*" proc)))
    (unless (comint-check-proc buf)
      (let ((cmd (split-string scheme-program-name)))
        (set-buffer
         (apply 'make-comint-in-buffer proc buf (car cmd) nil (cdr cmd)))
        (inferior-scheme-mode)
        (buffer-resize)))
    (pop-to-buffer buf)))

이제 내가 입력하면 Mx run-scheme-here 버퍼 크기가 조정됩니다!
그리고 여기에 도움이되기를 바라는 구성 파일이 있습니다. https://github.com/judevc/dotfiles/blob/master/.emacs.d/scheme-conf.el

참고 URL : https://stackoverflow.com/questions/4987760/how-to-change-size-of-split-screen-emacs-windows

반응형