C-x 1 Switch to single window
C-x 2 Split vertically
C-x 3 Split horizontally
-C-x - Shrink window
-C-x + Make windows the same height
-C-x ^ Make window taller
+C-x 9 Resize windows with arrow keys
+C-x { / C-x } Shrink/enlarge window horizontally
C-Up / C-Down / C-Left / C-Right Switch windows
C-l Recenter display (center, top then bottom)
C-M-l Reposition window to contain useful text (eg entire defun)
C-w Kill from mark to point
C-y Yank text (paste)
M-y Scroll through kill ring (paste buffer)
-M-_ Select current line
M-z <char> Kill until <char>
C-k Kill to end of line
M-0 C-k Kill to beginning of line
;; Windows/frames
(global-set-key (kbd "C-x o") 'ace-window)
+(global-set-key (kbd "C-x 9") 'my/window-resize-mode)
(global-set-key (kbd "<C-up>") 'windmove-up)
(global-set-key (kbd "<C-down>") 'windmove-down)
(global-set-key (kbd "<C-left>") 'windmove-left)
(global-set-key (kbd "<f8>") 'flyspell-mode)
(global-set-key (kbd "<f9>") 'whitespace-mode)
(global-set-key (kbd "<f10>") 'toggle-truncate-lines)
+
+
+(defun my/window-resize-mode ()
+ (interactive)
+ (message "Resize window with the arrow keys")
+ (let ((keymap (make-sparse-keymap)))
+ (define-key keymap [up] #'enlarge-window)
+ (define-key keymap [down] #'shrink-window)
+ (define-key keymap [left] #'shrink-window-horizontally)
+ (define-key keymap [right] #'enlarge-window-horizontally)
+ (set-transient-map keymap t)))