How can I move a window from being a horizontal split down below all other windows to being a vertical split panel on the left? I don't want to move buffer contents - I want to move the actual window.

  • So I take it that something like evil-window-move-far-left isn't what you're looking for? Its docstring: "Closes the current window, splits the upper-left one vertically and redisplays the current buffer there."
    – eeowaa
    May 9, 2019 at 17:09

1 Answer 1


Emacswiki has a nice function for toggling horizontal to vertical split here

(defun toggle-window-split ()
  (if (= (count-windows) 2)
      (let* ((this-win-buffer (window-buffer))
         (next-win-buffer (window-buffer (next-window)))
         (this-win-edges (window-edges (selected-window)))
         (next-win-edges (window-edges (next-window)))
         (this-win-2nd (not (and (<= (car this-win-edges)
                     (car next-win-edges))
                     (<= (cadr this-win-edges)
                     (cadr next-win-edges)))))
          (if (= (car this-win-edges)
             (car (window-edges (next-window))))
    (let ((first-win (selected-window)))
      (funcall splitter)
      (if this-win-2nd (other-window 1))
      (set-window-buffer (selected-window) this-win-buffer)
      (set-window-buffer (next-window) next-win-buffer)
      (select-window first-win)
      (if this-win-2nd (other-window 1))))))

In the emacswiki example the function is bind to C-x 4 map as t:

(define-key ctl-x-4-map "t" 'toggle-window-split)

There are a couple more implementations on that page you can try.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.