Você pode escrever uma função simples como essa e definir atalhos de teclado.
(defun select-nth-window (n)
"Focus Nth window"
(interactive)
(set-frame-selected-window (selected-frame)
(frame-first-window))
(set-frame-selected-window (selected-frame)
(nth n (window-list))))
(global-set-key (kbd "C-w C-i") '(lambda ()
(interactive)
(select-nth-window 0)))
(global-set-key (kbd "C-w C-o") '(lambda ()
(interactive)
(select-nth-window 2)))
(global-set-key (kbd "C-w C-k") '(lambda ()
(interactive)
(select-nth-window 1)))
(global-set-key (kbd "C-w C-l") '(lambda ()
(interactive)
(select-nth-window 3)))
Editar: Eu não sei como salvar o layout da janela, mas Emacs Wiki: Gerenciamento de Sessão pode ajudá-lo.
Você também pode aprender mais sobre o emacs lisp em Introdução à programação no Emacs Lisp e Manual de referência do Emacs Lisp .