I could use C-x o to switch buffer properly between two windows,
but when it comes to more than two windows, it fails

enter image description here

The cursor stay instantly on the current window.

How could I solve the problem?

  • 1
    There must be something odd with your setup, I think. C-x o doesn't stop working for me, anyway, with more than two windows in a frame. I tried it out with the configuration shown, and it still works. – Harald Hanche-Olsen Jan 2 '19 at 10:16
  • Do you see the problem if you start Emacs with emacs -Q (no init file)? If not, bisect your init file to find the culprit. Otherwise, consider M-x report-emacs-bug, providing a step-by-step recipe to reproduce the problem, starting with emacs -Q. – Drew Jan 2 '19 at 15:16

First, there are windmove-right windmove-down and so on.. These can be bind individually, but I find that it's not the most convenient way to navigate around. ( a solution is presented here: http://emacsblog.org/2008/05/01/quick-tip-easier-window-switching-in-emacs/ )

Additionally there are a few packages that help navigation in very creative ways:

ace-window https://github.com/abo-abo/ace-window

You assign a binding for ace-window and when it is called a character from the home line (i.e "asdf...") appears in the top left of the window, typing that character will navigate the cursor there. There is some added functionality for swaping and deleting windows as well.

Similarly, There's switch-window https://github.com/dimitri/switch-window

And win-switch That is explained clearly here: http://www.stat.cmu.edu/~genovese/emacs/win-switch/

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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