Why I switched from Vim to Emacs
matthaffner.wordpress.com
matthaffner.wordpress.com
Not so. You can just type "set -o vi" in your shell, and do pretty much what the OP does in emacs. So wanting to do this kind of editing in the shell is not really a very good reason to switch to emacs. There are much better reasons for doing that.
I use the following instead, applies to bash and all other programs using readline.
cat >>~/.inputrc <<EOF
set editing-mode vi
EOFThere's no harm in doing both, though -- and that's exactly what I do.
That's just because Vim users are actually getting work done rather than going to help sessions for their configuration.
Ctrl-Z
kill %1
Suspend to shell, kill job. Anything that won't suspend with Ctrl-Z should not be used.(Developers who flout important conventions of this sort should be punished with disuse of their projects.)
aoeui ~ qwerty (but on a different row)
(Incidentally, I am _also_ a Dvorak user! How many of us Dvorak-users-with-homegrown-editors are there?)
Interesting that you are also a Dvorak user. I originally learned to type on a Dvorak keyboard, and have only ever been able to hunt-and-peck on QWERTY. I imagine that vim's interface might seem like less of an incomprehensible, memory-dependent maze if one's fingers were accustomed to QWERTY. I tried to learn it once, with a little cheat sheet taped to my monitor, but I've never been any good at rote memorization, so I didn't really get anywhere with it and went back to nano.
Now my problem is that using Vim with any layout other than Colemak (read: QWERTY) is awkward.
And yes, I've used Emacs and written elisp to try and do the same - it just wasn't friendly enough for me.
I went back and tried it again some two major versions later, with the same problem. I eventually narrowed it down to the Go major mode, but I didn't have the perseverance to continue. Not when the same Go integrations were working just fine in Vim.
Oh, yeah, and it still bugs me that Evil mode treats C-] word boundaries differently than Emacs M-. (which actually matches how Vim's word boundaries work by default).
This is Emacs, not vi: If you don't like something, you can just change it.
That's more than "subtly different".
Then there are other things about emacs/spacemacs that are alien. When opening a tab, spacemacs want's to have a conversation about what to name it, vim just opens a tab. There are little things like this everywhere, emacs expects interactivity, vim just executes commands.
In the end I went back to vim and with version 8 it now has all the programming versatility I need.
I feel that these complaints come mostly from people that have installed a ridiculous number of very inefficient plugins to make emacs look like something else. Spaceemacs in particular is big & slow (and IMO ugly on most devices).
With spacemacs it becomes particularly problematic (especially in regards to start up times), and I think that's where the emacs daemon truly shines.
(edit: also no complaints here; I just feel this daemon is great and wanted to share the sentiment; it also felt relevant as AFAIK vim has no such feature)
What we really need is a 21st century editor construction kit with Minority Report gestures, eye tracking, and voice input, as well as the keyboard.
- Gestures might not make sense in many locations (tiny cubes with limited space, for instance), or prove problematic for Deaf individuals (learning, effectively, another signed language). That said, I totally want to select text, make a yanking motion with my hands, and have it get put onto the clipboard. - Eye tracking would be an immediate no-go in any sort of closed facility - Voice input is also a no-go in closed areas, and would be extremely annoying in cube farms - far more distracting than they already are.
And for vim (inspired by [2]): [3]
I'm sure gesture tracking would probably not be too hard, using any of a number of VR input devices now on the market. Eye tracking would be harder, as I'm not aware of any consumer-level eye-tracking technologies out there. You could certainly have head-tracking pretty easily, though.
Now integrating this in a way that would actually be fluid, natural, and useful is another story, though. Also, I'm personally not sure how many big body movements I want to be doing while using my computer (unless I'm trying to exercise, play a game, draw, conduct music, or lose weight).
Ideally, I'd want to be as motionless as possible while being as comfortable as possible and while having maximum flexibility and efficiency of input. Keyboards are pretty good for that.
[1] - https://www.youtube.com/watch?v=77zPOyMmMPQ
VoiceCode is a $300 product. http://voicecode.io
Is it worth the money?
It's an 80% solution for org mode, but it's the 80% I care about.
I used to be a BIG spacemacs guy because I liked org so much, but I found that TaskWarrior does task tracking better, TimeWarrior does time tracking better (especially with the taskwarrior <-> timewarrior hook, it's magic!) and Vim does outlining only slightly worse but benefits from all the other optimizations I have in my vimrc.
Next thing I'm going to add is a shell function that uses pandoc to convert my notes files into HTML on demand.
I'm worried that if I started using Emacs, I'd start hacking the Elisp (which I'd be terribly good at), and hate the lack of lexical scope, etc.
I had some nice exchanges with Stefan; we discussed the implementation of generalized places not long ago:
https://groups.google.com/forum/#!msg/comp.lang.lisp/5By5NL4...
In TXR Lisp I implemented places in quite a different way from CL SETF expanders; from Stefan's comments I was informed that Emacs' "gv.el" is doing it in a similar way to my approach.
emacs has lexical scope these days:-)
https://www.emacswiki.org/emacs/LexicalBinding
elisp still isn't nearly as good as Common Lisp, but it at least has lexical scope now.
I'm not saying either one is right. To me, it's kind of like Android vs. iPhone. Some are annoyed that they can't change the font weight on the wireless settings screen on iPhone. Some just want to connect to the network. Some want a Swiss army knife, some just want a sharp blade. The same argument has gone on for thirty years, but we collectively pretend we've brought something new to the table every time the subject comes up.
spacemacs may not be considered as GNU Emacs. spacemacs can often break when any of the dependency package break.
Also many people who began life with spacemacs usually switch to vanilla emacs + packages later to get more control on what they do.
The hardest part is figuring out where emacs thinks your home directory is (for me it's c:\users\<username>\appdata\roaming) to place your config files in (well, I have a config file there that loads my actual config file in a more sane location).
MinGW/GitBash include Vim by default so there it makes the setup process a no-brainer.
This is where I've gone for my binaries, and I've never had an issue (for windows, on OS X and Linux I just use the appropriate package manager I use for everything else).
Or Ubuntu, according to the author of the post.
The comparison between Arch and Ubuntu appeared rather to be on the basis of FSF blessedness:
> (the FSF probably wouldn’t like that I’m using Arch Linux, but it’s certainly better than Ubuntu)
which would make sense, considering that Ubuntu gets quite a lot more stick than Arch on the relevant FSF page: https://www.gnu.org/distros/common-distros.en.html
This is not an emacs problem, it is much bigger than that. Ubuntu, and Debian (unless you are on unstable) ship with ancient versions of many things. This shows how inefficient the package maintainer system is. Lets see if snappy (or some competing technology) manages to fix that.
I'm not a developer (I do data analysis), but compiling Emacs from source on Ubuntu (after running build-dep emacs24) has never caused me problems.
But hey, I'm sure Arch is awesome, and if I had more time I'd totally be running it.
That could be the right choice for them, if their needs are very modest and don't do much editing. For most others, especially developers and other power users, that's just not good enough.
I'm a power user. I virtually live in my editor. No editor can be powerful enough for me, and both vim and emacs have their strengths and weaknesses, so I like to use the right tool for the job. vim and emacs are really the two most powerful editors on the planet, and it pays to know how to use both, if you can commit the time. For me the time commitment has been worth it. It has made me much more productive and has greatly expanded the horizon of what is possible.
One of the main reasons I switched was because I fell in love with Scheme (and Lisp before that), and loved the idea of an editor that was fully integrated with Lisp, was scripted in Lisp, was mostly even written in Lisp, and had powerful Lisp-editing modes like Slime. It is possible to script vim through Scheme, but 99% of vim's scripts are written in vimscript, and that's really what the vim ecosystem is designed around. So emacs was a clear winner here.
I also liked the idea of having email, web browsing, RSS news reading, IRC, Usenet, the shell, and more fully integrated in to the editor. Ideally, every app would be integrated in to my editor, and I'd love to command them all from within there. This is more or less what emacs promised.
org-mode was another big draw. It seemed cool, and I wanted to find out if it was really as big a deal as everyone said. It is. All my note-taking is now in org, and I intend to move my browser bookmarks to it too. I've since tried various org-mode clones in vim, and they're not nearly as good.
Finally, what really won me over was evil-mode, which allowed me to keep my decades of vim muscle memory and preference for modal editing.
I spent several months, spending 10 hours a day to customize emacs the way I liked it, and to bring it mostly up to parity with my vim config (which was thousands and thousands of lines long), along with customizing some emacs extensions that had no vim equivalent (like emacs-w3m, which is an embedded web browser, which is still super handy despite not working with javascript). It took that long despite me knowing Common Lisp and Scheme before switching to emacs, which made learning Elisp a breeze compared to the extra effort it would take someone coming from vim who didn't know any Lisp.
And still, even after all that work, I haven't gotten around to learning and customizing many of the things I really want to use emacs for, like email, IRC, RSS, Slime, and the various other extensions made for editing Lisp and Scheme.
So I found the switch to be a ton of work, which was worth it for me, since I'm still using emacs instead of vim, and don't intend to switch back. But others who are considering a switch from vim to emacs should also be prepared to do a lot of work customizing emacs to your liking. It's a never-ending process, really, just as it is with vim.
Even though I've switched to emacs as my primary editor, I still use both. Each have their strengths and weaknesses, and I still love vim (which comes in handy in certain situations where emacs just isn't cutting it for me).
Any recommendations on guides integrating email/IRC/RSS into an Emacs workflow?
ERC is built in, pretty good for IRC, very easy to use, and very configurable. There are other IRC clients as well.
There are RSS readers in emacs as well but I don't currently use them. I think elfeed is the cool one to use nowadays.
Why does Hacker News censor topics about real issues in the tech industry?
Why is Sam Altman a Peter Thiel apologist while saying that politics aren't welcome here?
Why does Sam Altman think that ethical issues are divorced from technology?