3 ms·
I learned programming in various IDEs. Visual C++ 6, Code::Blocks etc ... Moved to Vim somehow when learning Linux, and eventually Emacs because I was programmi
by truncate 4y ago
I learned programming in various IDEs. Visual C++ 6, Code::Blocks etc ... Moved to Vim somehow when learning Linux, and eventually Emacs because I was programming a lot in Racket and it was just nicer there. This all predates Visual Studio Code.
The thing is you won't feel any benefit of using Vim/Emacs over Visual Studio Code unless you put LOT OF TIME configuring it. I didn't use any of the configuration framework like Spacemacs, and built my config over the years (adapted bunch of stuff from Centaur Emacs as it was super simple to copy things from there). But once you get it, it almost feels like an extension of you which I never feel on the other IDEs. And now with LSP clients on Emacs, bunch of basic things for programmning almost work out of box, it has never been easier.
I've a feeling you can probably get there by configuring Visual Studio Code too, but it does feel as inviting to be hacked as say Emacs.
- _ph_ 4y agoI have to disagree with this a bit. I try to keep my emacs file pretty minimal, like 20 lines of customizations like fonts and a few flags, the rest mostly just requiring additional packages and a very few custom functions.
- p4bl0 4y ago> unless you put LOT OF TIME configuring it I don't think this is true. What is true is that by putting a lot of time into fine tuning your own Emacs you learn to master Emacs. But then, once you master it, you can use it almost vanilla, and still be as efficient and productive. I've spent years customizing my init.el file and even wrote minor and major modes and a few custom packages. At some point my Emacs was loading almost a thousand lines of personal elisp code. Then I decided to try to slim down my config and started fresh. I used M-x customize for a few things (I did everything manually before) and have a small — maybe 20 lines? — init.el file and that's it. It still rocks and I'm still very proficient with it. Now I'm trying to go further and switching to Kate. It's a fun ride but a bit hard at time and has lead be to become a small contributor to the project to improve both Kate and the underlying KTextEditor :). I'm kind of rediscovering the fun I had configuring my Emacs 15 years back ^^.
- truncate 4y agoIsn't fine tuning ~= spending time configuring? How much configuration and fine tuning you need is subjective. I personally don't like using it vanilla, particularly if I'm working on a big codebase. I love all those fancy modes and they are all part of my workflow -- ivy, ivy-ripgrep , magit, lsp (for autocompletion, code navigation), diff-highlight, perspective, swiper, flycheck, projectile etc etc. I like to figure out keybindings, that work for me over long term. You also don't want to make it feel bloated, overwhelming, and slow meanwhile. Without all these, it is just good for doing quick edits. In the end I want to be productive with the codebases I work with. There was a time, pre-LSP and native-comp when Emacs was getting super slow, and I was ready to jump ship to VSCode, plainly because I wasn't feeling productive/efficient with Emacs anymore. Edit: to give further context. When you install LSP, it may or may not be as per your taste. For me, I don't like bunch of UI stuff it adds like breadcrumbs, doc popups, sidebars. So you'd spend sometime finding the right config to disable. Now multiply this with bunch of other packages you like, figuring out right set of keybindings that are intuitive and easy, it all takes a bit of time IMO.
- p4bl0 4y ago> Isn't fine tuning ~= spending time configuring? Yes, I use them as synonymous. My point was that spending time configuring is what makes you learn to master Emacs, but once this is done, your configuration can be quite minimalistic and you can still be very efficient. Minimalistic configuration does not mean no package, it means a few selected packages that require a single or two lines each to be loaded, rather than full customization and something custom implementation of everything you need ^^.
- truncate 4y agoYes, I think I had two things in mind when I said: (1) That time spent to master Emacs is much higher than say traditional IDEs. I get what you are saying. I hardly edit my Emacs config anymore, except once in a while. (2) I think I disagree about loading a package with just couple of lines each. Some packages work well that way. Simple packages, which most of them would be work fairly well that way. But soon as you start using some non-trivial packages, say company, projectile, magic, lsp you may or may not be ok with the defaults. I'm not doing anything fancy particularly like making my own modes, except making Emacs behave certain way. e.g. I see I've ~80 lines configuring Shackle which decides where certain popup windows Emacs show up, because if I don't have that, it just puts them wherever sometimes. I can live without this change, but it is really nice to control that.