-
-
Notifications
You must be signed in to change notification settings - Fork 113
Window Management
teksturi edited this page Dec 4, 2016
·
7 revisions
(defhydra hydra-window (:color red
:hint nil)
"
Split: _v_ert _x_:horz
Delete: _o_nly _da_ce _dw_indow _db_uffer _df_rame
Move: _s_wap
Frames: _f_rame new _df_ delete
Misc: _m_ark _a_ce _u_ndo _r_edo"
("h" windmove-left)
("j" windmove-down)
("k" windmove-up)
("l" windmove-right)
("H" hydra-move-splitter-left)
("J" hydra-move-splitter-down)
("K" hydra-move-splitter-up)
("L" hydra-move-splitter-right)
("|" (lambda ()
(interactive)
(split-window-right)
(windmove-right)))
("_" (lambda ()
(interactive)
(split-window-below)
(windmove-down)))
("v" split-window-right)
("x" split-window-below)
;("t" transpose-frame "'")
;; winner-mode must be enabled
("u" winner-undo)
("r" winner-redo) ;;Fixme, not working?
("o" delete-other-windows :exit t)
("a" ace-window :exit t)
("f" new-frame :exit t)
("s" ace-swap-window)
("da" ace-delete-window)
("dw" delete-window)
("db" kill-this-buffer)
("df" delete-frame :exit t)
("q" nil)
;("i" ace-maximize-window "ace-one" :color blue)
;("b" ido-switch-buffer "buf")
("m" headlong-bookmark-jump))
Includes window resizing, winner undo/reset, follow mode, vertical help
(defhydra hydra-window ()
"
Movement^^ ^Split^ ^Switch^ ^Resize^
----------------------------------------------------------------
_h_ ← _v_ertical _b_uffer _q_ X←
_j_ ↓ _x_ horizontal _f_ind files _w_ X↓
_k_ ↑ _z_ undo _a_ce 1 _e_ X↑
_l_ → _Z_ reset _s_wap _r_ X→
_F_ollow _D_lt Other _S_ave max_i_mize
_SPC_ cancel _o_nly this _d_elete
"
("h" windmove-left )
("j" windmove-down )
("k" windmove-up )
("l" windmove-right )
("q" hydra-move-splitter-left)
("w" hydra-move-splitter-down)
("e" hydra-move-splitter-up)
("r" hydra-move-splitter-right)
("b" helm-mini)
("f" helm-find-files)
("F" follow-mode)
("a" (lambda ()
(interactive)
(ace-window 1)
(add-hook 'ace-window-end-once-hook
'hydra-window/body))
)
("v" (lambda ()
(interactive)
(split-window-right)
(windmove-right))
)
("x" (lambda ()
(interactive)
(split-window-below)
(windmove-down))
)
("s" (lambda ()
(interactive)
(ace-window 4)
(add-hook 'ace-window-end-once-hook
'hydra-window/body)))
("S" save-buffer)
("d" delete-window)
("D" (lambda ()
(interactive)
(ace-window 16)
(add-hook 'ace-window-end-once-hook
'hydra-window/body))
)
("o" delete-other-windows)
("i" ace-maximize-window)
("z" (progn
(winner-undo)
(setq this-command 'winner-undo))
)
("Z" winner-redo)
("SPC" nil)
)
You can use ace-window to jumping between windows and hydra for everything else. Look ace-window wiki page: ace-window
- Binding-Styles
- Basics
- Verbosity
- Verbosity-Long-Short
- Conditional-Hydra
- defcustom
- Hydra-Colors
- internals
- Nesting-Hydras
- Prefix-map