4 ms·
Just switched to Vim after a decade of using Emacs. The switch was one part of a larger life goal to simplify and embrace minimalism. I think this shift in min
by cujic9 9y ago
Just switched to Vim after a decade of using Emacs. The switch was one part of a larger life goal to simplify and embrace minimalism.
I think this shift in mindset was an essential part of being able to learn Vim.
In Emacs, I had dozens of plugins, and I could do everything so fast that I almost went on autopilot. This was great for boilerplate code that's 90% typing and 10% thinking, but not great for complicated code (Haskell, low level machine learning stuff) that is 10% typing and 90% thinking.
- cup-of-tea 9y agoI don't understand why vim facilitates that workflow better than emacs. I have thousands of lines of elisp in my configuration files, but it'a all completely invisible if I don't call for it.
- cujic9 9y agoTrue, I could run a barebones [1] Emacs. But I want to align my use of the tool with the underlying ethos of the tool itself. I think of it as being similar to CISC [2] vs. RISC [3], or Chinese characters vs. the Latin alphabet. Emacs is CISC. It starts with a huge vocabulary of functions. If you intend to use it right, then you create new functions to add to the vocabulary. Eventually, it morphs into something that not even other power Emacs users can use. (The programmable editor.) Vim is RISC. It starts with a small vocabulary of compose-able commands. If you intend to use it right, then you learn to make increasingly complicated sentences out of that vocabulary. 1: For some definition of "barebones" -- Emacs ships with Tetris inside! 2: CISC - Complex Instruction Set Computer 3: RISC - Reduced Instruction Set Computer
- nemoniac 9y agoIn that case you were doing it wrong. With a touch of hyperbole you could say that emacs is there to do 100% of the boilerplate stuff for you so that you can spend 100% of your time thinking.
- cujic9 9y agoIf that were possible, then I would agree. But in my experience, automating the boilerplate stuff just tends to expand the domain of what can be considered boilerplate stuff. If I can rename a class across my project in 3 keystrokes, then I've automated it. But then I'll try out a dozen names before settling on something. Have I saved time? Perhaps I'd be better off thinking deeply for a minute or two instead. It's kind of like how Powerpoint has actually increased the time that people spend making presentations. "Look! I can change the title font in one click!" <Spends the next 2 hours fiddling with fonts.>