emacs는 3 개의 짝수 창으로 분할됩니다.


79

빠른 질문 : 분할 창에서 문자 수를 어떻게 지정합니까? Cx-3 내 창을 두 개의 창으로 균등하게 분할하지만 이후 분할은 창 중 하나를 반으로 분할합니다. 같은 크기의 창 3 개를 원합니다. 문서에는 왼쪽 버퍼의 문자 수를 매개 변수로 지정할 수 있어야한다고 나와 있지만 작동하지 않는 것 같습니다. 구문에 대한 아이디어가 있습니까?

감사.

답변:


24

분할 창에서 문자 수를 지정하려면 다음을 수행하십시오.

Cu 문자 수 Cx 3


창 너비가 너무 작음 (분할 후)
Mittenchops

5
문제는 창을 균등 하게 만들지 않고 너비를 수동으로 설정하므로 emacs 창의 크기를 균등하게 조정하려면 얼마나 많은 문자의 너비와 높이를 계산해야합니다. 아래 답변이 더 유용합니다.
leinaD_natipaC

23
C-x +간격을 균등하게 만들기 위해
Josh.F

1
수동 크기 조정으로 인해 거부되었습니다. 내 터미널 높이를 계산하려면, 3으로 나누면하지 않습니다
byxor

이것은 질문에 대한 대답이지만 Josh. F의 의견과 Josh Matthews의 대답은 대부분의 사람들이 원하는 것입니다.
Zach

271

C-x 3두 번 뒤에 C-x +모든 창의 크기를 동일하게 조정합니다.


8
Emacs가 하나의 명령으로 3 개의 동일한 크기의 창을 즉시 생성하도록하는 방법이 C-x 3 C-x 3 C-x +있습니까?
SabreWolfy

3
매크로를 만들 @sabrewolfy
interestedparty333

또는 C-x 2 C-x +수평 분할 (수직 모니터에 적합)
lil 'wing

15

내 다음이 있습니다 .emacs.

(defadvice split-window-horizontally (after rebalance-windows activate)
  (balance-windows))
(ad-activate 'split-window-horizontally)

이렇게하면 크기를 조정할 때마다 emacs 호출 rebalance-windows( C-x +기본적으로 바인딩되어 있음)이 수행됩니다. 내가 항상 원하는 것은 아니지만 기본 동작보다 훨씬 더 자주 원합니다.


감사합니다 . 별도의 양식에 (ad-activate ...)포함 하셨기 때문에 전화가 필요한지 잘 모르겠습니다 activate.
wpcarro

12

에 추가 .emacs. 나는 Cx 4에 매핑했지만 누구에게 더 나은 아이디어가 있습니까?

(defun split-3-windows-horizontally-evenly ()
  (interactive)
  (command-execute 'split-window-horizontally)
  (command-execute 'split-window-horizontally)
  (command-execute 'balance-windows)
)

(global-set-key (kbd "C-x 4") 'split-3-windows-horizontally-evenly)

5
나는 그것을 할당하지 않을 것 C-x 4입니다. 다른 명령 힙의 기본 접두사입니다. C-x 4 C-h(분명히 바인딩을 설정하지 않고) 참조하십시오 .
phils dec

3
@phils whoa 지난 몇 년 동안 나는 공통 접두사로 명령 목록을 얻는 방법을 결코 몰랐습니다 ... 나는 emacs를 좋아합니다.
mgalgs

4
(defun wenshan-split-window-vertical (&optional wenshan-number)
"Split the current window into `wenshan-number' windows"
  (interactive "P")
  (setq wenshan-number (if wenshan-number
                           (prefix-numeric-value wenshan-number)
                         2))
  (while (> wenshan-number 1)
    (split-window-right)
    (setq wenshan-number (- wenshan-number 1)))
  (balance-windows))

이 기능은 현재 창을 N 개의 창으로 분할하는 데 사용할 수 있습니다. "Cu 3 Mx wenshan-split-window-vertical"을 입력하여 원하는 것을 얻을 수 있습니다.


2

당신이 사용하는 경우 악의의 할 일 C-x 3다음과C-w =


1

@quodlibetor의 솔루션이 마음에 들었지만 작성된대로 작동하지 않았습니다. 이것은 나를 위해 작동합니다 (emacs 24.5)

(advice-add 'split-window-right :after #'balance-windows)

0

사용하는 답변의 많은 문제점 중 하나 balance-windows여기에 그들이 인해 분할에 창을 허용하지 않을 수 있다는 것이다 window-min-width또는 split-width-threshold심지어 모든 재조정 후 잘 될 것이라고합니다. 예를 들어 100 자 미만의 창을 원하지는 않지만 한 번 화면을 분할하면 160 자 너비의 창 두 개가 생기고 창 중 하나의 크기를 조정하지 않고는 다시 분할 할 수 없습니다. 분할이 좋은지 여부를 결정하는 방법을 아직 파악하지 못 했으므로 분할하는 동안 해당 값을 동적으로 0에 바인딩하고 window-configuration-to-register상황이 진행될 때 이전 레이아웃을 복구 할 수 있도록 사전에 수행 할 수 있습니다. 잘못된.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.