카테고리 보관물: emacs

emacs

“기타 창”이 가리키는 창 정의 | |

emacs에서는 내가 좋아하는 것보다 더 자주 4 개의 창 이상이 생깁니다.

나는 그 예를 사용할 것이다 :

+--------|-----------+
|        |           |
|   1    |   2       |
|        |           |
+--------+-----------+
|    3   |     4     |
|        +-----------+
|        |     5     |
+--------+-----------+

많은 기능이 작업을 수행 할 수 있습니다 other-window(보통으로 표시된 동일한 창 C-x o). 특히 유용합니다 scroll-other-window. 그러나 4 개 이상의 창이 열리면 other window내가 원하는 것 같지 않습니다.

창 / 버퍼 레이아웃을 변경하지 않고 설정을 관리 하는 쉬운 방법이 other-window있습니까? 물론, 그것은 한 무리의 사용 해 드리겠습니다 C-x 4 bC-b하지만 난 레이아웃을 변경하지 않습니다. 예를 들면 다음과 같습니다.

  • 위 그림의 창 4 에서 편집하는 경우 C-M-v1 을 스크롤 하는 쉬운 방법이 있습니까?
  • 또는 간단히 창 3 에 초점을 맞추고 other-window2 를 가리 키도록 설정하는 방법을 가정하십시오 .


답변

질문을 올바르게 읽으면 현재 창 레이아웃을 유지하면서 다른 창에 표시된 버퍼에서 빠르게 작업하는 데 주로 관심이 있습니다.

other-window가리키는 창을 변경하는 것이 그것을 달성하는 한 가지 방법이지만 다른 워크 플로우를 제안하고 싶습니다.

달리 other-window, ace-window수 있도록 당신은 빠르게로 이동합니다 특정 창 : 전화를 할 때 ace-window, 그 각각의 창에 고유 번호를 표시합니다. 특정 창으로 이동하려면 해당 숫자를 입력하면됩니다. 두 개의 창만있는 경우 숫자를 입력하도록 요청하지 않고 다른 창을 가리 킵니다. 이 스크린 캐스트는 다른 창으로 전환하고 스크롤 한 다음 원래 창으로 다시 전환하는 방법을 보여줍니다.

에이스 윈도우 데모

당신은 바인드 경우 ace-window합니다 C-x o, 당신은 바인딩 추가 키를 기억할 필요가 없습니다, 당신은의 슈퍼 버전을 사용하는 것처럼 느낄 것이다 other-window.

또한 터치 식 및 / 또는 손가락을 홈 행에서 너무 멀리 이동하지 않으려 ace-window는 경우 숫자 대신 문자를 사용하여 “숫자”창을 지시 할 수 있습니다 (아래 참조).

ace-windowMELPA 에서 사용할 수 있습니다 . 를 통해 설치 한 후 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-windowc에 정의 된에서 반환 된 창에 의존하는 것처럼 보입니다 . 불행히도 scroll-other-windowc로 정의되며 아마도 거기에서 다음 창을 호출합니다. 나는 그것을 무시하기 쉽다고 생각하지 않습니다.

그러나, 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 oother-windowwindow-numberace-window


답변