문제

이맥스에서는 C-x o 다음 창으로 이동합니다.

Emacs의 이전 창으로 이동하는 키보드 매크로는 무엇입니까?

도움이 되었습니까?

해결책

그럴 것이다 C-- C-x o

다시 말해서, C-x o -1 인수를 사용합니다.사이에 숫자 인수를 삽입하여 이동할 창 수를 지정할 수 있습니다. 그리고 명령은 다음과 같습니다. Cu 2 C-x o. (씨-- 는 바로가기입니다 쿠 - 1)

다른 팁

또한 기하학을 기반으로 선택한 창으로 이동할 수 있는 windmove를 사용해 볼 수도 있습니다.C-x 화살표 키를 사용하여 창을 변경하려면 .emacs 파일에 다음이 있습니다.

(global-set-key (kbd "C-x <up>") 'windmove-up)
(global-set-key (kbd "C-x <down>") 'windmove-down)
(global-set-key (kbd "C-x <right>") 'windmove-right)
(global-set-key (kbd "C-x <left>") 'windmove-left)

개인적으로 나는 사용하는 것을 선호합니다 window-number.el

다른 창을 선택하려면 다음을 사용하세요. Ctrl 키-엑스, Ctrl 키-제이 N

어디 N 는 창의 번호이며, 각 창의 모델라인은 스크린샷에 표시된 대로 해당 창의 번호를 표시합니다.

그냥 다운로드하세요 창 번호.el, 이를 emacs 로드 경로에 배치하고 다음을 사용하십시오. .emacs

 (autoload 'window-number-mode "window-number"
   "A global minor mode that enables selection of windows according to
 numbers with the C-x C-j prefix.  Another mode,
 `window-number-meta-mode' enables the use of the M- prefix."
   t)

다음과 같은 또 다른 유사한 모드가 있습니다. switch-window.el 그러면 창에 큰 숫자가 표시됩니다.(숫자를 누르면 창이 전환되고 표시가 되돌아갑니다.)

http://tapoueh.org/images/emacs-switch-window.png

여러 개의 emacs 창(3개 이상)으로 작업을 많이 하고 일부 키 입력을 저장하고 싶다면 이것을 init 파일에 추가하면 더 나을 것입니다:

(defun frame-bck()
  (interactive)
  (other-window-or-frame -1)
)
(define-key (current-global-map) (kbd "M-o") 'other-window-or-frame)
(define-key (current-global-map) (kbd "M-O") 'frame-bck)

이제 M-o로 창문을 빠르게 순환하세요.

여기에는 매우 훌륭하고 완전한 답변이 있지만 최소한의 방식으로 질문에 대답하려면 다음을 수행하십시오.

 (defun prev-window ()
   (interactive)
   (other-window -1))

 (define-key global-map (kbd "C-x p") 'prev-window)

@Nate의 아이디어를 기반으로 하지만 창 간 역방향 순환을 지원하도록 약간 수정되었습니다.

;; Windows Cycling
(defun windmove-up-cycle()
  (interactive)
  (condition-case nil (windmove-up)
    (error (condition-case nil (windmove-down)
         (error (condition-case nil (windmove-right) (error (condition-case nil (windmove-left) (error (windmove-up))))))))))

(defun windmove-down-cycle()
  (interactive)
  (condition-case nil (windmove-down)
    (error (condition-case nil (windmove-up)
         (error (condition-case nil (windmove-left) (error (condition-case nil (windmove-right) (error (windmove-down))))))))))

(defun windmove-right-cycle()
  (interactive)
  (condition-case nil (windmove-right)
    (error (condition-case nil (windmove-left)
         (error (condition-case nil (windmove-up) (error (condition-case nil (windmove-down) (error (windmove-right))))))))))

(defun windmove-left-cycle()
  (interactive)
  (condition-case nil (windmove-left)
    (error (condition-case nil (windmove-right)
         (error (condition-case nil (windmove-down) (error (condition-case nil (windmove-up) (error (windmove-left))))))))))

(global-set-key (kbd "C-x <up>") 'windmove-up-cycle)
(global-set-key (kbd "C-x <down>") 'windmove-down-cycle)
(global-set-key (kbd "C-x <right>") 'windmove-right-cycle)
(global-set-key (kbd "C-x <left>") 'windmove-left-cycle)

@Nate, @aspirin 및 @Troydm의 답변에 추가하기 위해 windmove 명령을 선택한 키 조합에 바인딩하기로 결정한 경우 이것이 매우 유용한 추가 사항이라고 생각합니다.

(setq windmove-wrap-around t)

기본 구성을 사용하면 존재하지 않는 창으로 이동하려고 시도할 때 오류가 발생하여 잠시 후 짜증이 나게 됩니다.그러나 windmove-wrap-around가 설정된 경우 예를 들어 프레임 아래쪽에서 이동하려고 하면 대신 프레임의 맨 위 창이 선택됩니다.이는 귀하에게 더 직관적인 동작일 수 있습니다.

M-n 그리고 M-p 나에게 가장 의미가 있는 것은 그것들이 다음과 유사하기 때문이다. C-n (다음 줄) 그리고 C-p (이전 줄):

(define-key global-map (kbd "M-p") 'previous-multiframe-window)
(define-key global-map (kbd "M-n") 'other-window)

(에서 영감을 받아 이것 그리고 저것)

Nate의 답변을 참조하여 arrow keys 전통적인 것을 사용하기 위해 p 가기 위해 up, n 가기 위해 down, f 가기 위해 right 그리고 b 가기 위해 left.저도 교체했어요 Ctrl ~와 함께 SuperC-p, C-n, C-f and C-b 기본 이동 키입니다.이 조합은 M 각 키를 누른 후 하나씩 건너뛰는 대신 문자와 줄을 건너뛸 수 있습니다.따라서 Super key는 쉬운 키 바인딩을 유지하는 최선의 선택이라고 느꼈습니다.또한, 이제 더 이상 홈 행에서 손을 떼지 않아도 됩니다!

(global-set-key (kbd "s-p") `windmove-up)
(global-set-key (kbd "s-n") `windmove-down)
(global-set-key (kbd "s-f") `windmove-right)
(global-set-key (kbd "s-b") `windmove-left)

도움이 되길 바랍니다!

(global-unset-key (kbd "M-j"))
(global-unset-key (kbd "M-k"))
(global-set-key (kbd "M-j") (lambda () (interactive) (other-window 1)))
(global-set-key (kbd "M-k") (lambda () (interactive) (other-window -1)))

대체제이 그리고 대체케이 보이는 버퍼를 순환합니다.정확히 말하면 앞으로, 뒤로.

M-을 사용하여 창을 전환할 수 있는 패키지가 이미 있습니다. 이 웹사이트를 확인하세요.초기화 파일에 다음을 추가하세요.

(require 'windmove)
(windmove-default-keybindings 'meta) ;; or use 'super to use windows key instead alt
(global-set-key (kbd "C-x a") 'ace-swap-window)  
(global-set-key (kbd "C-x q") 'ace-select-window)

download ace-window from the melpa repo if you don't know how to do that
put this in your .emacs file if you don't have one create it 

(package-initialize)                                                                                                                                                                     

(require 'package)                                                                                                                                                                       
(add-to-list 'package-archives '("melpa" , "http://melpa.org/packages/"))                                                                                                                

(package-initialize) 

then "m-x list-packages"
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top