emacs에서는 내가 좋아하는 것보다 더 자주 4 개의 창 이상이 생깁니다.
나는 그 예를 사용할 것이다 :
+--------|-----------+
| | |
| 1 | 2 |
| | |
+--------+-----------+
| 3 | 4 |
| +-----------+
| | 5 |
+--------+-----------+
많은 기능이 작업을 수행 할 수 있습니다 other-window
(보통으로 표시된 동일한 창 C-x o
). 특히 유용합니다 scroll-other-window
. 그러나 4 개 이상의 창이 열리면 other window
내가 원하는 것 같지 않습니다.
창 / 버퍼 레이아웃을 변경하지 않고 설정을 관리 하는 쉬운 방법이 other-window
있습니까? 물론, 그것은 한 무리의 사용 해 드리겠습니다 C-x 4 b
및 C-b
하지만 난 레이아웃을 변경하지 않습니다. 예를 들면 다음과 같습니다.
- 위 그림의 창 4 에서 편집하는 경우
C-M-v
창 1 을 스크롤 하는 쉬운 방법이 있습니까? - 또는 간단히 창 3 에 초점을 맞추고
other-window
창 2 를 가리 키도록 설정하는 방법을 가정하십시오 .
답변
질문을 올바르게 읽으면 현재 창 레이아웃을 유지하면서 다른 창에 표시된 버퍼에서 빠르게 작업하는 데 주로 관심이 있습니다.
other-window
가리키는 창을 변경하는 것이 그것을 달성하는 한 가지 방법이지만 다른 워크 플로우를 제안하고 싶습니다.
달리 other-window
, ace-window
수 있도록 당신은 빠르게로 이동합니다 특정 창 : 전화를 할 때 ace-window
, 그 각각의 창에 고유 번호를 표시합니다. 특정 창으로 이동하려면 해당 숫자를 입력하면됩니다. 두 개의 창만있는 경우 숫자를 입력하도록 요청하지 않고 다른 창을 가리 킵니다. 이 스크린 캐스트는 다른 창으로 전환하고 스크롤 한 다음 원래 창으로 다시 전환하는 방법을 보여줍니다.
당신은 바인드 경우 ace-window
합니다 C-x o
, 당신은 바인딩 추가 키를 기억할 필요가 없습니다, 당신은의 슈퍼 버전을 사용하는 것처럼 느낄 것이다 other-window
.
또한 터치 식 및 / 또는 손가락을 홈 행에서 너무 멀리 이동하지 않으려 ace-window
는 경우 숫자 대신 문자를 사용하여 “숫자”창을 지시 할 수 있습니다 (아래 참조).
ace-window
MELPA 에서 사용할 수 있습니다 . 를 통해 설치 한 후 M-x package-install
RET ace-window
RETinit 파일에 다음을 넣어 위에서 설명한대로 설정할 수 있습니다.
(global-set-key (kbd "C-x o") 'ace-window)
(setq aw-keys '(?a ?b ?c ?d ?e ?f ?g ?h ?i))
답변
소스의 빠른 검토 other-window
에서 실제로 next-window
c에 정의 된에서 반환 된 창에 의존하는 것처럼 보입니다 . 불행히도 scroll-other-window
c로 정의되며 아마도 거기에서 다음 창을 호출합니다. 나는 그것을 무시하기 쉽다고 생각하지 않습니다.
그러나, switch-to-buffer-other-window
사용 나타납니다 pop-to-buffer
당신은 약간의 행운이있을 수 있도록.
답변
창 목록을 조작하는 쉬운 방법이 없으므로 반환되는 결과는 other-window
다소 고정되어 있습니다. 이것은 창을 탐색 할 때 일관성을 허용하기 때문에 그 자체로는 나쁜 것이 아닙니다. 설명한 두 가지 시나리오와 관련하여 일부 elisp 또는 매크로를 사용하면 워크 플로에 적합 할 수 있습니다.
위 그림의 창 4에서 편집하는 경우 창 1을 스크롤하도록 CMv를 설정하는 쉬운 방법이 있습니까?
아래와 같은 간단한 스 니펫을 사용 other-window
하여 적절한 횟수 를 사용 하고 아래로 스크롤하여 원래 창으로 돌아갈 수 있습니다.
(defun my-scroll-down-other-window (&optional arg)
"Like `scroll-other-window' but takes a prefix argument
that indicates which window to scroll."
(interactive "p")
(save-selected-window
(other-window arg)
(scroll-down)))
접두사 인수를 전달하여 스크롤 할 창을 지정할 수 있습니다. 추론 할 수 있듯이, 내장 메커니즘을 사용하여 스크롤하기 전에 창 수 other-window
를 건너 뜁니다 arg
. save-selected-window
보장하지만 초점은 원래의 창으로 돌아갑니다. 설명서는 other-window
이 스 니펫을 사용자의 행동에 맞게 수정하는 방법에 대한 자세한 정보를 제공 할 수 있습니다.
또는 간단히 창 3에 초점을 맞추고
other-window
창 2를 가리 키도록 설정하는 방법을 가정하십시오 .
를 호출 할 때 prefix-arg
와 같이 다시 사용하십시오 . 제공 할 실제 숫자는 분할 한 순서에 따라 달라지며 새 창을 만들지 않는 한 변경되지 않습니다. 또는, 같은 편의 패키지를 사용할 수 있습니다 또는 빠른 스위치 선택 창에 MELPA에서.C-3 C-x o
other-window
window-number
ace-window