Một số câu trả lời hay ở đây, tôi cũng là một fan hâm mộ của WinMove, nhưng tôi liên kết nó với C- vì chế độ org sử dụng M- để thao tác các tiêu đề
(define-key global-map (kbd "C-<up>") 'windmove-up)
(define-key global-map (kbd "C-<down>") 'windmove-down)
(define-key global-map (kbd "C-<left>") 'windmove-left)
(define-key global-map (kbd "C-<right>") 'windmove-right)
Nơi nó trở nên thực sự tốt là nếu bạn kết hợp nó với Hydra . Theo các ví dụ trên wiki của họ, tôi đã tạo ra quái vật của riêng mình:
(defhydra hydra-windows ()
"C-arrow = switch, S-arrow = size, M-arrow = move"
("C-<left>" windmove-left nil)
("C-<right>" windmove-right nil)
("C-<up>" windmove-up nil)
("C-<down>" windmove-down nil)
("S-<left>" hydra-move-splitter-left nil)
("S-<right>" hydra-move-splitter-right nil)
("S-<up>" hydra-move-splitter-up nil)
("S-<down>" hydra-move-splitter-down nil)
("M-<left>" buf-move-left nil)
("M-<right>" buf-move-right nil)
("M-<up>" buf-move-up nil)
("M-<down>" buf-move-down nil)
("p" previous-buffer "prev-buf")
("n" next-buffer "next-buf")
("1" delete-other-windows "1")
("d" delete-window "del")
("k" kill-buffer "kill")
("s" save-buffer "save")
("u" (progn (winner-undo) (setq this-command 'winner-undo)) "undo")
("r" winner-redo "redo")
("b" helm-mini "helm-mini" :exit t)
("f" helm-find-files "helm-find" :exit t)
("|" (lambda () (interactive) (split-window-right) (windmove-right)))
("_" (lambda () (interactive) (split-window-below) (windmove-down)))
("q" nil "cancel")
)
(global-set-key (kbd "M-#") 'hydra-windows/body)
Điều này cho phép tôi thay đổi cửa sổ, thay đổi kích thước chúng, di chuyển bộ đệm từ cửa sổ này sang cửa sổ khác, bộ đệm chu kỳ, tiêu diệt bộ đệm và thậm chí hoàn tác cấu hình cửa sổ thông qua chế độ người chiến thắng và nó cũng tích hợp helm. Để thoát hydra, chỉ cần nhấn mũi tên hoặc một số phím khác không có trong hydra. Bạn có thể tìm thấy các chức năng "hydra-move" trên các ví dụ hydra Điều tuyệt vời về hydra là tôi không cần phải nhớ tất cả các phím bấm và "sửa đổi" của nó, vì vậy một khi bạn ở trong hydra, mọi thứ đều có sẵn như một phím duy nhất nhấn.