5 ms·
How did you approach Emacs to make it such a valuable tool? I have tried to get started with Emacs a few times but the initial resistance has been too large
by karencarits 5y ago
How did you approach Emacs to make it such a valuable tool? I have tried to get started with Emacs a few times but the initial resistance has been too large
- jonpalmisc 5y agoWhat parts did you find difficult? When I first started, I found the keybindings odd, but now I love them since the core set of shortcuts—C-a, C-e, C-f, etc.—work "everywhere" from the terminal, to GNU readline-based programs, to even native macOS text boxes. If you don't like the default keybindings, you can change them or use the Evil package [0] for Vim bindings. If you want to get up and running quickly, I'd check out Doom Emacs [1] which is easier to configure and takes care of a lot of configuration for you. I personally use a reasonably-minimal config I wrote myself [2]. If you like to tinker, I'd recommend writing your own config, as it will also teach you a lot about Emacs. If you have any questions feel free to reach out—contact info in my profile. [0] https://github.com/emacs-evil/evil https://github.com/emacs-evil/evil [1] https://github.com/hlissner/doom-emacs https://github.com/hlissner/doom-emacs [2] https://github.com/jonpalmisc/.emacs.d/blob/master/init.el https://github.com/jonpalmisc/.emacs.d/blob/master/init.el
- bko 5y agoDo you use it as an IDE? That's the part I had trouble with (react/typescript and python). I could get it almost there, but essentially what I would need is a VS Code mode. A side panel with the collapsible directories, double click into them, global search, linting, syntax, etc.
- patrick451 5y agoThis interesting to me. The sidebar in IDEs is one of the features I dislike most about them. I vastly prefer the C-x C-f helm menu with it's fuzzy search to IDE approach of aimlessly clicking around a directory tree like a philistine. For the rest (linting, syntax, autocomplete), lsp and a language mode make me pretty happy.
- gpderetta 5y agoI use emacs as an IDE with a large C++ (and python) codebase. I use emacs-lsp + clangd for completion/jump to definition/syntax error highlighting etc, but for whole tree searches, I find clangd unreliable, so sometimes I fall back to emacs-ag (I assume that emacs-ripgrep would be even better) for brute force searches. I never found a side panel of any use (many are available), but I use projectile for quick jump to file all the time. My python setup is less refined than C++ (I haven't bothered yet to enable LSP), but I use elpy which is works fine for lisp-style programming with a persistent REPL.
- BeetleB 5y agoAs a heavy Emacs user for over a decade: I still use IDEs instead of Emacs for programming. Emacs has plenty of uses outside of SW development. Only recently did I manage to set up my Emacs to have IDE-like capabilities for my Python work. But if I switched to a C++ job, I'll use an IDE. And maybe, over the course of a year or two, I'll bother setting up LSP for Emacs. It's totally fine to use IDEs if they make your life easier. In my last C++ job, I would edit code with Emacs, but keep Visual Studio open for the IDE conveniences.
- trey-jones 5y agoYou may have investigated this already (or discovered it setting Emacs up for python), but lsp-mode just about works out of the box (for most languages). Extremely minimal setup required. Maybe a few configs for lsp-ui to suit your own taste.
- jonpalmisc 5y agoI use it at my current job in which I work in a large C++ codebase. I formerly used CLion. Whether Emacs is an IDE or not depends how you define IDE. I use Eglot [0] for LSP integration; this gives me IDE-like features like "jump-to-definition", syntax error highlights, warnings, etc. and integrates with company-mode [1] for code completion. This handles most of my needs for writing code. As for other things like a file tree, I've found that the built in `project-find-file` command combined with `vertico` [2] and `orderless` [3] makes finding files and navigating around projects easier; that pair behaves similarly to CMD+P in Sublime Text or VS Code. There are file tree packages out there, but I've found that I don't really need a file tree in practice and that I prefer navigating around projects with fuzzy file search and grep. [0] https://github.com/joaotavora/eglot https://github.com/joaotavora/eglot [1] https://github.com/company-mode/company-mode https://github.com/company-mode/company-mode [2] https://github.com/minad/vertico https://github.com/minad/vertico [3] https://github.com/oantolin/orderless https://github.com/oantolin/orderless
- Hedepig 5y agoHave you tried Doom Emacs?
- bko 5y agoI (try to) use spacemacs. I heard they're similar. Is Doom Emacs better for an IDE type experience compared to spacemacs? I'm mostly on Ubuntu if that matters
- Hedepig 5y agoDoom tries to be closer to the metal. IMO it's a good comprimise between an authentic Emacs experience, but keeping sane
- green7ea 5y agoGive tide a try. I use it daily with typescript and it's great :-)
- karencarits 5y agoThanks for sharing your experience! I guess my problem was to remember all the shortcuts and keybindings and how to do things, and having to look them up all the time was tiresome - but I guess the steep learning curve has some fruits in the end
- dotancohen 5y agoI speak with a heavy VIM accent, so Emacs never clicked for me until I tried SpaceMacs. I mostly use Emacs only for org-mode, though. The truth is, I think that I've outgrown SpaceMacs and ready to try vanilla Emacs with Evil sometime. But SpaceMacs was definitely the gateway to getting me into org-mode, and that really is revolution in being able to organize my life.
- gumby 5y agoIronically, part of the problem for the newbie is the enthusiasm of the heavy users, which can make getting started feel overwhelming. Just bare emacs is a great editor. You only need a few commands, and then can incrementally learn more as you go. Often, when you learn some new command or new package you'll wonder "how did I manage to use emacs for all this time without knowing this?" But the answer is: you were able to get a lot done with what you already knew. I've been using Emacs for over 40 years and have a very short init file with only a small amount of customization. And I still learn a new command or package every couple of weeks.
- slk500 5y agoYou have to find specific need that emacs will fulfil. Org-mode is the key. Don't try to use it like IDE for coding for a start. I recommend start with video tutorials: 1. Mike Zamansky https://www.youtube.com/watch?v=49kBWM3RQQ8&list=PL9KxKa8NpFxIcNQa9js7dQQIHc81b0-Xg https://www.youtube.com/watch?v=49kBWM3RQQ8&list=PL9KxKa8NpF... 2. Rainer König org-mode https://www.youtube.com/watch?v=sQS06Qjnkcc&list=PLVtKhBrRV_ZkPnBtt_TD1Cs9PJlU0IIdE https://www.youtube.com/watch?v=sQS06Qjnkcc&list=PLVtKhBrRV_...
- ghosty141 5y agoAt my new job a colleague mentioned he used emacs and I basically took it as inspiration and started trying emacs myself, I'm very accustomed to vim after 4-5 years of heavy usage so I started with the evil package (evil-mode) and went from there. It boils down to using the already known vim keys for basic actions like splitting the window, save a file etc. and creating keybinds for anything else I needed. So I customized any keybind to my liking, I didn't really adopt the emacs binds since I find many of them to be quite unintuitive. It took me like 2-3 weeks of constant configuration to get to a productive config that covers all my needs (from autocompletion, to colorscheme) and I still edit my config every 1-2 days since I discover new small "itches" and then fix those. For example: I always want my compilation output to be on one monitor -> always open the compilation buffer ("output") in its own window. Perfect! To me emacs is like a platform that I can use to build my "own" perfect text editor that does exactly what I want it to do without really any compromises. This is where emacs shines, the endless possibilities and nothing that holds you back and says "no the editor is not meant to do X".
- agumonkey 5y agoIt's a bit of an extreme instance but when I toyed with good old turbo pascal 7.0 ide (dos era) I was shocked by the quality of it (turbo pascal), brilliant on every aspect, mind blowing for the size and era. Yet the minute I tried to edit code I felt straightjacketed by the editor, you can only do what's built in. It was a stupid need for region aware edition.. nothing fancy but I was still stuck. Ability to extend your system with a quick `eval` and adjust keybindings when needed is a very hard drug to me. And I'm not in the fanatic period anymore but still.
- chimprich 5y agoI think the only way is to bite the bullet and accept the somewhat steep learning curve. Unlike the other suggestions I think it's best to start off with a vanilla Emacs setup (rather than one of the fancy distributions), because it's better to start with a very simple setup and then build on that. The initial Emacs setup is very basic and quite ugly, but good for learning. Follow the built-in tutorial. After learning the basics, create an init.el file, learn to use the use-package package, and start off trying out interesting packages to make your life better. I would suggest finding a good theme and giving helm a go to begin with.
- wiz21c 5y agoFor me things started to get interesting once I set up CUA mode to have the same key shortcuts as in the usual Windows world (ctrl-C for copy, ctrl-V for paste and so on). Once I got that I was able to work on text file, programs etc. Then I slowly added packages (took months) as I was needing/discovering them. And now, what I like is that I can use the same configuration on Linxu and windows (I switch often between my work PC in my home PC). Org mode is really usefull although I just get the bare minimum. LSP makes a difference too. And the community is great: so much things happen all the time. The openness really makes a big difference. So in the end, I love it :-) (and I don't like modal editors :-) )
- pzone 5y agoSpacemacs