The picture you posted confuses the question somewhat. The picture shows a file selector. Files and buffers are different in Emacs. When you open a file, you visit it. That is, the file contents are read into Emacs and the file remains available to other processes. The file contents and the buffer are not guaranteed to be the same at all points in time. Some modern IDEs conflate loading/saving which can obscure how processes actually happen (looking at you PyCharm). Because there isn't always a direct comparison between Emacs and IDEs, I will address both file browsers and a static file buffer list here so that you can decide what works best for you. You may find Emacs offers a better workflow that your previous IDE couldn't.
For a file browser, my preference is neotree:
A basic setup requires:
To toggle it, I like to use
(global-set-key (kbd "C-x M-f") 'neotree-toggle).
Static buffer list
I don't know of a persistent buffer list package that currently exists. It could surely be created, but it seems like most Emacs users are happy with the default
list-buffers or something like helm-buffers-list.
However, here's a rough way to get a persistent buffer list:
- Create a split using
- Select a buffer with
This will open the selected buffer in the other window.
You'll notice that
<RET> opens the buffer in the current window. You could rebind
(define-key Buffer-menu-mode-map (kbd "<return>") 'Buffer-menu-other-window)
Note that this will work best with two windows open. Specifying a specific window among several is a non-trivial problem that has been addressed elsewhere.