Click on the heading to find all pages related to window management in Emacs.
Emacs Windows - Basics
Windows Navigation (Selection)
Move among windows – alternatives to
‘C-x o’ (
- Use arrow keys to choose
- Use a window name or number to choose
- Use a transient keymap to move among windows
- WinSwitch – a dynamic, transient mode that enables easy, efficient navigation among windows (and frames)
‘M-x next-multiframe-window’ – similar to
‘other-window’ but cycles both through windows and frames.
Resizing, Splitting,... Windows
- DoReMi – Resize windows incrementally, using arrow keys or mouse wheel. Hold Meta key to boost resizing increment.
- HorizontalSplitting – Force Emacs to always use split-window-horizontally instead of split-window for temporary buffers, like C-x C-b and describe-function.
- OneWindow – Make Emacs always use only one window for whatever it does
- TransposeWindows – Rearrange windows within a Frame
- ToggleWindowSplit – Toggle between vertical and horizontal split
- TransposeFrame – Transpose windows arrangement in a Frame
- WidenWindow – Widen the active window
- WindowResize – Resize windows using simple keybindings
- ThreeWindows – Enjoy your work in three windows per Frame. One big and two small.
- QuickTiling – If you like xmonad, tmux etc., chances are you’ll this too.
- GridLayout – how to quickly split the frame into a grid
- PlaceWindows? (place-windows.el) – place active windows according to number of rows, incrementally or with universal argument. Each row height is equal, each column height equal in current row.
Switching Window Configurations
To save the current configuration of frames and later restore it, use
‘C-x r f’ (
‘C-x r j’ (
‘jump-to-register’), respectively. See FramesAndRegisters.
- DoReMi – Commands to resize and move frames incrementally, using the arrow keys or mouse wheel.
- FrameModes#FrameCommands – Commands to manipulate frames:
- Iconify/hide all frames and restore them using
- Resize and move frames incrementally, using the arrow keys.
- Tile all visible frames horizontally or vertically. Particularly useful before comparing buffers with Ediff.
- Shrink-Wrapping Frames – Commands to resize frames.