reddit / emacs

Emacs noob here, what distribution should i use?

0wl4 · 2022-06-24 09:25
I need a text editor for programming. I have used Atom for a lot of time and then I switched to VSCodium for the last couple of years. I am so sick of Electron... Time to try something else. I know people here hates mouse, touchpad and the pointer cursor, i understand your point, but it is not as i have lerned to interact with my editor. So i would need something that it's easy to get in and has mouse support to navigate code, tabs and maybe menus. Thank you for your help.
flexibeast · 2022-06-24 09:40
Vanilla/stock Emacs has a GUI, mouse/touchpad support and tabs support "out of the box".
0wl4 · 2022-06-24 09:51
watching from youtube i thought navigation was only made with key shortcuts, thank you.
artyhedgehog · 2022-06-24 09:56
I might scare you off, but with emacs you aren't gonna have easy answers. It's like linux in the old times - even if you take a distribution, you're still gonna have to tweak it, solve issues, etc. And the distibutions like doom, spacemacs may even make the process more complicated. What I'd suggest is: 1. Install spacemacs config (or doom if you prefer - but it's more tangled with vim-like keybindings) to see what emacs can look like with all the popular packages. 2. Remove spacemacs config and start building your own init.el, which you will know exactly what line is for what. 3. Use some experienced emacsers configs (they usually go in Org-format, which is a rich-text file with codeblocks for a specific tweak) to see what you can do and how. And/or watch some videos (e.g. a youtube channel System Crafters has a playlist "Emacs from scratch"). 4. Gradually add stuff you need to your config.
0wl4 · 2022-06-24 09:57
this sounds like the fairest way, thank you!
flexibeast · 2022-06-24 10:00
Ah, fair enough. Well, i guess it depends what forms of navigation you're thinking of, but stock GUI certainly has scroll bars, and in terms of code navigation, there are out-of-the-box things like `imenu`, which can provide a menu for jumping to particular code definitions.
0wl4 · 2022-06-24 10:01
so it's still not like that i can click on a point to move the cursor there and input text, right?
asymptotically508 · 2022-06-24 10:06
You can click to move the cursor and select text.
flexibeast · 2022-06-24 10:09
Oh! Yes, you can absolutely do that. :-) i run stock, and do that all the time. :-) (Though i certainly use various keybindings for movement as well.)
avnik78 · 2022-06-24 10:50
Or just stay with doom-emacs
mm007emko · 2022-06-24 12:05
I tried various pre-configured things. But went to vanilla GNU/Emacs and made my own config (which is version controlled and therefore accessible on every computer I use regularly). Can't be more happy. Some people suggest using CUA mode, I suggest the opposite because you'll have to re-map conflicting keybindings in every package which can be a pain in the neck. What I suggest is w.r.t mouse: `(xterm-mouse-mode 1)` enables mouse even when run over terminal (running emacs over SSH session in terminal is better for me than running Tramp mode) ``` (tool-bar-mode -1) (global-linum-mode) (setq column-number-mode t) (show-paren-mode t) ``` Will hide toolbar but let the menu be shown. Sometimes it's better to pick something from hierarchical menu (if you don't know exactly what you need or not sure whether it's supported or not); if you know at least the approximate name of the command, then `M-x` and type name of the command. `Helm` plug-in also helps.
masukomi · 2022-06-24 12:53
personal take: I love emacs and vim. Vanilla forms of both are _terrible_ and will have you running back to Atom or VSCode within the hour. they're both the bare skeletons of an editor, upon which you build something tailored to your brain. However, that is a huge ask for someone new to it. You don't know what you need or don't need. I use `doom` emacs but that's only because i came from vim. For a non-vim geek I can't make a recommendation. Just, please do yourself a favor and continue with your plan to start with someone's pre-packaged collection of features that seems to match up with your ideas about what an editor should have.
0wl4 · 2022-06-24 12:57
this is a really valid point, thank you!
p7e9W8itt1tYayZn · 2022-06-24 13:16
Use Spacemacs. Spacemacs is not a "packages" focused distro, but a "functionality" focused one. It provided different, so called "layers" for different use cases and their layer documentation mentions the different packages that can implement a layer by default, and what other options there are. After you've learned or "settled" on a favourite set of packages, you can start and create your own custom-tailored Emacs distro using straight or checkout lighter weight (and lesser known) distros. DooM is also a popular (and good) option. I recommend you Spacemacs, because that's what I used first myself for getting deeper into Emacs.
0wl4 · 2022-06-24 13:19
Thank you, i am comoaring spacemacs and centaur emacs atm (from youtube, to get the feel) but yes I will definitely start from a premade distribution.
I_ate_a_milkshake · 2022-06-24 13:40
why not just install it vanilla and goof around a bit? The toolbar/context menus are a great way to use emacs to learn its capabilities.
AlanYx · 2022-06-24 13:51
You can actually even do this when running emacs in terminal mode, with most terminals. Just turn on xterm-mouse-mode in emacs. This also works with touch on tablets.
WallyMetropolis · 2022-06-24 13:56
I think *everyone* is used to mouse-driven interactions before using something like Emacs. Instead of looking for ways to make Emacs behave more like these other tools that you have become dissatisfied with, why not explore what it is that makes Emacs different and use it the way it is, in a sense, intended? That's not to say that you can't use a mouse and menus (and it's a fine way to start to get used to Emacs) but don't make the mistake of thinking "this is how I've done things before so this is how I absolutely *have to* keep doing things forever." Emacs has a pretty different philosophy as an editor than the popular IDEs on the market now. That's not a problem to be overcome, it's the reason we prefer it. It's the reason it has lasted for 40 years.
EmasXP · 2022-06-24 14:16
Starting with Emacs is a journey. A very nice one, and at times a very frustrating one. Finding solutions to "problems" makes you find great things you've never thought about before. Many of those things does not exist in other editors. I've stared my journey half a year or so ago, and I am very much a newbie. Took me a long while to find the configuration suitable to me, and now I struggle with the editors I used before. They simply feel limited in many areas
kigas2 · 2022-06-24 14:39
I did this unintentionally. If you have the time its an amazing approach as you get to familiarize yourself with your editor on another level
yedefash · 2022-06-24 14:44
for vanilla emacs purcell emacs [https://github.com/purcell/emacs.d](https://github.com/purcell/emacs.d) m-emacs [https://github.com/MatthewZMD/.emacs.d](https://github.com/MatthewZMD/.emacs.d) ​ evil mode doom emacs or spacemacs
centzon400 · 2022-06-24 14:53
One great advantage of this approach is that one can *gradually* come to terms with Emacs this way. Rather than trying to navigate a bazillion 'distribution' options right out of the gate (and becoming overwhelmed), one can focus more on immediate needs. Breaking the problem into smaller steps... makes it easier to take in the detail and not go running back to something perhaps more familiar. And it should go without saying that you have more chance understanding someone else's config if you have taken a stab at crafting your own.
00-11 · 2022-06-24 14:53
Use the "distribution" that Emacs provides for n00bs, as well as for non-n00bs - plain old, vanilla Emacs. Follow its advice. Follow its tutorial (`C-h t`). Learn its help system (`C-h C-h` and menu **Help**). Learn how to use its manuals (`C-h R info`). Use its menus, to discover it. Learn how to **ask Emacs**. Don't assume that some other "distribution" is better suited to n00bs.
00-11 · 2022-06-24 15:01
Of course you can. Did you try? If you want the common type-to-replace/delete-selection behavior then turn on `delete-selection-mode`: Put this in your init file: `(delete-selection-mode)`. Then, after you select text (including with the mouse), text you type replaces the selection.
Appropriate_Soup · 2022-06-24 15:23
Doom-emacs is the best imho (tested spacemacs)
Gangsir · 2022-06-24 15:37
Typically yes, for experienced users, just because it's faster to do everything via keyboard than to swap repeatedly between mouse and KB. It is however completely possible to use the mouse for navigation if you find that better for you.
_tsuujin · 2022-06-24 15:46
Really advise against spacemacs. I started on spacemacs and found that I spent way too much time trying to figure out how to configure things the “spacemacs way”. Their layer config system is too far abstracted and was a constant pain point. Doom is a more reasonable starting place, or using vanilla emacs and starting with the [prelude](https://prelude.emacsredux.com/en/latest/) config.
gravygrowinggreen · 2022-06-24 15:47
I have used spacemacs, then doom, then attempted to use prelude, then attempted to use normal emacs. I found doom was the best thing to learn emacs on, because it is much more functional compared to an unconfigured or minimally configured emacs, for someone with no knowledge of how emacs works. In other words, doom gave me enough configuration that seemed intuitive, right away, that I was able to be functional while still earning the emacs way. Someday, I would like to go to a configuration that I put together entirely by myself. But until I feel comfortable enough to do that, I still have immediate deadlines to meet on things, and doom is fantastic to meet them. Which is why I installed it again. Spacemacs was also well configured, but it was not as performative as doom. It felt sluggish, while Doom feels snappy. I think Doom also was a bit more well documented (not by default, but there are enough private doom configs out there that explain various things, and I haven't found nearly as many for spacemacs). Even when I go to my own private config, I'll probably borrow a lot of code from doom, just because of how fantastically fast it is, and how useful many of the macros it has are.
Acebulf · 2022-06-24 15:53
Which keybinds did you have to rebind in CUA mode? I use CUA mode with SLIME, which has a lot of C-c keybinds, and of course emacs has a lot of C-x keybinds. i have had to rebind none of them, since you can still use them for chords and if nothing is selected it defaults to the regular keybinds.
grtcdr · 2022-06-24 15:54
Coming from Vim, and being very comfortable with keyboard-driven navigation, I still did not like Emacs at first. My advice to you is to learn from the experts instead of jumping head first at any particular distribution or configuration. I highly suggest allocating some time and sitting through daviwil's ([System Crafters](https://www.youtube.com/c/SystemCrafters)) videos, to learn how Emacs is designed, and what it expects from you, before you decide to use a complex collection of software like Doom or Spacemacs. Complex? What?! 1. Well, given your main interface to the text editor is a mouse, you probably have no idea how Vim works. Vim can crush a man's workflow like no other tool, it takes patience and perseverance... Hell, you might not even like it at first. 2. Emacs is forty years worth of software, packaged into a standalone environment, it's not trivial to a beginner (or at least it wasn't for me). I'm not trying to scare you or anything, I highly recommend learning both Vim and Emacs, but my recommendation is to be patient and take things slow. Learn Vanilla Emacs, learn Vim, once you get sufficiently comfortable with both, pick the one that fits your style. Want the best of both worlds? You got it, son! Emacs' "evil-mode" is a top-tier vim emulation layer. EDIT: Grammar.
KaleidoscopeWarCrime · 2022-06-24 16:04
Doomemacs is what I use. It certainly works with a mouse better than vanilla, having tabs/workspaces (tabs via centaur) and you can click on the window you want to have active, select elements/buttons and highlight text with a mouse as well. Also, clearly the mouse support is better in the emacs/emacsclient gui vs in the terminal, but you can get most things working pretty well with the cursor in the term as well.
Hi_ItsPaul · 2022-06-24 16:04
I'd suggest Spacemacs with the intention of jumping ship. It's the least overwhelming, but you'll find points of friction where your thought process doesn't line up with the design. After knowing what you want, it'll be easier to set that up in Doom or vanilla Emacs. Spacemacs is good enough until you want to do something specific, setting that up is the beauty of Emacs. Setting everything up from scratch without knowing what you even want is a waste of time in my opinion.
RevolutionaryAd2266 · 2022-06-24 16:06
Definitely go to YouTube and look "system crafters" up. His content is current and posts videos regularly and live streams for emacs content.
mm007emko · 2022-06-24 16:12
If it works for you, then great. I simply can't get over the idea that `C-c` is both prefix and a key binding on its own. Ditto for most of the people I know. Maybe I am just weird (and so is my social bubble :) ).
KaleidoscopeWarCrime · 2022-06-24 16:23
This is certainly the best advice for a complete beginner to the world of vim/emacs.
TheFrenchPoulp · 2022-06-24 16:37
I wonder where that "no mouse master race" idea come from, though I use it sometimes as a joke Before replacing your daily driver with Emacs and hope that you'll land on your feet, ask yourself whether you actually need tabs or whether you are open to other alternatives that may or may not use the mouse. Do you actually want to browse code with the mouse or do you want to find X with a little motions as possible In the end the mouse is simply a tool
ZeroGravTeaCeremony · 2022-06-24 17:19
You absolutely can use the mouse in the way that you want to in emacs, but I would nonetheless recommend that you don't. There will be a learning curve, but you'll be much better off if you learn the emacs way of doing things. Go through the tutorial and try a few days mouse free, just to see how it feels. It's worth getting a little uncomfortable to find out what's actually best for you. The things that make emacs great are exactly the things that will be unfamiliar and strange to you.
masukomi · 2022-06-24 17:42
I can't disagree with anything you've said. In my experience though, the typical dev does not have the patience for going on that journey from the start, or the belief that it's worth it. They will bounce off emacs or vim like a brick wall if forced to do that. I think a better path for *most* folks is to use a pre-configured thing, get to learn how amazing the system is, and *then* start down the journey of asking which of these tweaks should be kept or abandoned, and what can be added. I think that from a purely logical standpoint your strategy is going to get someone the best result, but it only works if the dev has already convinced them it's worth years of effort. I think my strategy is going to keep them around long enough to learn what all the fuss is about... and THEN be able to follow your advice. ;)
EmasXP · 2022-06-24 18:17
I think you have a very good point. I'm not sure I would suggest going my route. It takes some serious will power. To be honest, I feel like I am too inexperienced to give much advice at all 🙂
weevyl · 2022-06-24 18:20
You can pretty much use it as something like Notepad right from the start. It will work with your mouse and be fairly intuitive.. You can use your mouse to navigate menus, place a cursor anywhere you want and start inserting text there, nothing magic or special or different from other editors. With a little self-discipline you can learn the shortcuts for normal editing and things start flowing. And it is a powerful editor, with many interesting features. The thing that took me a long time to learn is that, basically, emacs can do anything. You can load packages and have it become a spreadsheet, a game, whatever you want. Whenever you run into something that you think you would like to do from inside emacs, there's probably a way to do it. Over time I have used my emacs instance as a \`git\` management app (with the magit package), a terminal shell (with the eshell package), a tool for doing HTTP requests (via the http package) and much more. So, get Emacs and use it with the mouse to your heart's content. And any time you find yourself wishing you could do something from inside emacs, no matter what is, do a little search and you will probably find it!
dmitrykabanov · 2022-06-24 21:05
I used to use spacemacs but switched to doom-emacs. It is actually much faster and very similar (combines Emacs with Vim together). However, if you want to have a vanilla Emacs experience (using, e. g., C-X C-S to save a file), then you should of course the vanilla Emacs.
abir_valg2718 · 2022-06-25 00:11
> and has mouse support to navigate code, tabs and maybe menus. Emacs has mouse support, and it's quite customizable, as expected. Menus too. > I know people here hates mouse, touchpad and the pointer cursor, Nothing wrong with using a mouse. It's just that for some things it can be pretty inefficient. For example, instead of relying on using your mouse to switch between tabs, you can try another approach, like relying on fuzzy search to open a buffer (the file that's opened) or to find and open a file. Tabs are tolerable if you have like 5-6 open, but when you have 10+ it's a nightmare, and obviously if you have a large project tabs are completely useless. Menus are neat, but again, there's a better approach - Emacs exposes all the available commands, and you can install something like Helm that will use fuzzy search to help you quickly find what you need. Like tabs, menus work when you have few items. When you have tons of items it blurs into one giant incomprehensible mess.
Erebus_Oneiros · 2022-06-25 06:52
Came here to say this. Doom gets enough things right to start being productive if you know vim key bindings. That's a huge plus for me as I don't have to stop being productive to first learn something, I can do it in parallel.
laniusone · 2022-06-25 07:06
I was using PHPStorm before, was comfortable with Vim / modal editing, and in a matter of days I was able to fully switch to Doom Emacs for my 'production' work. Of course it took me a little moment to get fully comfortable with it, but it was surprisingly seamless transition. Although if one is not a vimmer / only used VSCode-like editors before, it might be a little harder: you would be learning Vim-way of editing and also Emacs at the same time.
JamesBrickley · 2022-06-25 21:57
Recently started my own Emacs journey. You might want to consider Chemacs2 which is a utility to manage multiple emacs configuration directories. You can switch between vanilla Emacs, Doom, Spacemacs, etc. If you are familiar with Git put your configuration directories into Git so you can version control them. \+1 on System Crafters! Besides the videos they have a Discord community channel and the community is very helpful. This Reddit is also a great community. Here's an article about Chemacs2: [https://systemcrafters.cc/emacs-tips/multiple-configurations-with-chemacs2](https://systemcrafters.cc/emacs-tips/multiple-configurations-with-chemacs2)
kamui78 · 2022-06-26 08:15
I think that you need to change your modus operandi in order to be proficient with Emacs. Yes, it has menus and it has mouse support. It can do whatever VSCode/ium can and way, way more. But if you just want a VSCode clone then you are wasting your time. You can check in this community what kind of amazing things we do with Emacs. I keep learning about it and the more I learn the more useful it becomes for my workflow. That said, I do understand that Emacs is not everybody's cup of tea. Therefore, my advise is to give Emacs an open minded try. If you cannot do that and expect the same experience you had with VSCode then I suggest you keep using that since you are already proficient in it.
Acebulf · 2022-07-02 03:21
That's fair. It might be technically possible, but mental blocks are hard to change. For me, rebinding copy from C-c to something else would have been a bigger block than that, but to each their own.