Emacs C-x o에서 다음 창으로 이동합니다.
Emacs의 이전 창으로 이동하는 키보드 매크로는 무엇입니까?
Emacs C-x o에서 다음 창으로 이동합니다.
Emacs의 이전 창으로 이동하는 키보드 매크로는 무엇입니까?
답변:
지오메트리를 기반으로 선택한 창으로 이동할 수있는 windmove를 사용해 볼 수도 있습니다. Cx 화살표 키를 사용하여 창을 변경하려면 .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)
(windmove-default-keybindings)하면 이러한 함수를 SHIFT + up / down / left / right에 C-x바인딩하는데, 이는 바인딩 보다 더 편리하다고 생각합니다 ( previous-buffer및 next-buffer.lkahtz에 대한 유용한 기본 바인딩 과 충돌합니다.이 (kbd)함수를 사용하면 문자열 표기법으로 키를 지정할 수 있습니다. 바인딩 을 사용 C-h k하거나 C-h c설명 할 때 Emacs에서도 사용되는 더 읽기 쉬운 구문
windmove-default-keybindings하여 화살표 키와 함께 사용할 다른 수정자를 지정할 수도 있습니다 . 이 기능은 시프트 선택 모드를 사용하는 사람들에게 여전히 편리 할 수 있습니다.
개인적으로 사용하는 것을 선호합니다 window-number.el
다른 창을 선택하려면 Ctrl- x, Ctrl- j n을 사용하십시오.
여기서 N은 캡쳐 화면에 나타낸 바와 같이, 윈도우의 수, 각 프로그램 윈도우 그것의 수의 modeline 줄이다.

window-number.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창에서 큰 숫자를 제공하는 비슷한 모드 가 있습니다 ... (숫자를 누르면 창을 전환하고 디스플레이를 되돌립니다.)

(출처 : tapoueh.org )
C-x C-j즉 바인딩 기본의로, dired-jump당신의 경우가 (require 'dired-x). (참조 M-x customize-group RET dired-keys RET당신이를 재정의합니다.)
switch-window.el사용 하기로 결정하고 C-x o두 개의 창만 활성화되면 다른 창을 선택합니다. 트릭 C-x o을 수행 하기 위해 리 바인딩 하는 것이 가장 현명하다고 생각합니다 .. 개인적으로 나는 창 전환을 덜하고 나 자신을 사용 하지만 향상된 기능을 갖는 것은 매우 즐겁습니다. window-numberdired-jumpC-x bC-x o
여러 개의 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)
이제 Mo로 창문을 빠르게 순환하십시오.
other-window이 작동 하도록 변경하는 모자도 있습니다.
여기에는 매우 훌륭하고 완전한 답변이 있지만 최소한의 방식으로 질문에 대답하려면 다음과 같이하십시오.
(defun prev-window ()
(interactive)
(other-window -1))
(define-key global-map (kbd "C-x p") 'prev-window)
previous-window내장.
M-x아니므로 다른 목적을 제공해야합니다.
@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)
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)
M-n그리고 M-p당신은 터미널 버퍼 밖으로 뛰어 다시 다른 방법으로 전환해야하므로 이미 단말기 (GDB, 파이썬, ielm 등)에 사용됩니다.
네이트의 대답을 참조, 나는이 (가) 교체 arrow keys전통적인를 사용하는 p것을 위해 up, n가는을 위해 down, f예정 위해 right및 b진행을 위해 left. 나는 또한 기본 이동 키 Ctrl와 같이 Super키로 대체했습니다 C-p, C-n, C-f and C-b. 이 조합을 M사용하면 각 키 입력 후 하나씩 이동하는 대신 문자와 줄을 건너 뛸 수 있습니다. 따라서 Super키는 쉬운 키 바인딩을 유지하는 최선의 선택이라고 느꼈습니다. 또한 이제 더 이상 홈 로우에서 손을 떼지 않아도됩니다!
(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)
도움이 되었기를 바랍니다.
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"
C-x z하여 마지막 명령을 반복하여 창을 빠르게 전환 할 수 있습니다.