How to switch between visible buffers in emacs?

EmacsKeyboard Shortcuts

Emacs Problem Overview


If I am in split-screen viewing 2 different buffers on Emacs and the cursor is on the top buffer, what's a quick way to move the cursor to the bottom buffer?

Bonus question: if I know a command, is there an easy way to identify what key-combo it's bound to, if any?

Emacs Solutions


Solution 1 - Emacs

To switch to other buffer use: C-x o.

Describe key: C-h k.

Solution 2 - Emacs

Here is a better solution when you open more than two windows(buffers) in one frame:

(global-set-key (kbd "C-x <up>") 'windmove-up)
(global-set-key (kbd "C-x <down>") 'windmove-down)
(global-set-key (kbd "C-x <left>") 'windmove-left)
(global-set-key (kbd "C-x <right>") 'windmove-right)

Now, you can use C-x UP/DOWN/LEFT/RIGHT to go to the above/nether/left/right buffer when you have three or more in one frame, they are more precise than 'other-window and you don't need to install any package.

You even CAN make it to cycle the buffers in the direction(vertically/horizontally) with one of the above shortkeys with configuration in .emacs/init.el file, but I don't recommend it(besides I don't remember it anymore, you can google it if you want).

Of course, you can use other shortkeys other than the ones I use in my .emacs.

Solution 3 - Emacs

You may also be interested in WindMove, which enables "directional" window navigation with <S-up>, <S-right> etc.

Solution 4 - Emacs

With respect to the bonus question, if you know the command (other-window), and you invoke it with M-x other-window, Emacs will show a brief message in the minibuffer stating: "You can run the command `other-window' with C-x n".

There is also M-x where-is which prompts for a command and gives you the current bindings that result in that command (if any).

There is a tutorial that's shipped with Emacs. It actually has the answer to your question (see the section MULTIPLE WINDOWS about 80% into the tutorial). The tutorial can be accessed via C-h t, or M-x help-with-tutorial. There's also a link to the tutorial on the initial splash screen of Emacs. Right below the link to the tutorial is a link to the on-line Emacs Guided Tour. The tutorial walks you through basic editing/movement commands, the guided tour is more of an introduction to what Emacs has to offer.

Solution 5 - Emacs

If you want to navigate among only buffers that are currently displayed, then you really want to navigate among the windows they are displayed in. This gives you a way to do that, using window/frame names that are the same as the buffers:

See https://stackoverflow.com/questions/4858958/better-window-navigation-in-emacs/7133190#7133190

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionGeorge MauerView Question on Stackoverflow
Solution 1 - EmacsRozuurView Answer on Stackoverflow
Solution 2 - EmacsCodyChanView Answer on Stackoverflow
Solution 3 - EmacsjlfView Answer on Stackoverflow
Solution 4 - EmacsTrey JacksonView Answer on Stackoverflow
Solution 5 - EmacsDrewView Answer on Stackoverflow