Hi, I'm a emacs newbie, and one of the things that been giving me a lot of frustration, is how to handle working multiple projects in the same window? Before I was using PHPStorm for coding in several different languages and projects at the same time, and I would have one phpstorm window per project. How do you handle this in emacs, since the main idea behind emacs is that you use one window for everything. What is the best way? Just split screens?
Thanks
If you are used to that workflow, you can do the same with Emacs.
In Emacs, you can open multiple windows (frames in Emacs terminology) with C-x 5 2 and switch between them with C-x 5 o or close the current one with C-x 5 0 (among other things.) Frames share buffers, though, which can cause problems; if you bump into that, you may want to use separate Emacs instances for different projects (which may cause other problems; YMMV)
For project management, there are several solutions. Projectile is my best bet, probably being the most widely used one. It can deal with projects based on version control, or you can set them up based on directories (but you should definitely use version control, anyway). It can solve the problem of having multiple frames in the same instance, as you can switch to another file in the same project with C-c p f.
For Git, there is the awesome magit project, which is a feature-full wrapper around Git. The built-in vc package can also be a good friend, and I’m pretty sure similar packages exist for other version control software.
Lorefnon
Open Web Enthusiast
Gergely Polonkai
You have to believe in things that are not true. How else would they become?
This isn't quite the main idea behind emacs. You can always run multiple emacs processes simultaneously and you will get a window for each project. This plays well will
neotree,projectile,speedbaretc.In a mac, if you launch emacs from GUI, the OS will switch you to the already running instance. But you can always create multiple processes from the terminal.
I however, prefer to have a single window for multiple projects when using emacs. I use projectile, helm and neotree for navigating through projects and files. Projectile allows me to configure the project root. So I typically have multiple repositories under a single parent directory which is designated as projectile project root. So as far as projectile is concerned it is dealing with a single project and features that are intended to work on a whole project (eg. find files in a project or grep in a project) work exactly as expected.