Towards a Vim-like Emacs
I’ve previously written about my own process of transitioning from Vim to Emacs. It’s fairly high-level, however, and doesn’t cover the nitty-gritty: all those long, painful hours spent trying to smash Emacs into reasonable keybindings are lost. You get the retrospective, the analysis, but not the same benefit of hindsight I’ve gathered since I switched. Unfortunately, there aren’t many resources out there on how to do this right. People use Emacs. It’s a tool. Most of its users don’t write about it, and the percentage of Emacs users who try to emulate Vim and also write about it is even smaller.

There is Bling, the vim-airline developer, who switched and ultimately convinced me to give Emacs a shot. But his tips just scratch the surface of what’s necessary to replicate the finger-friendliness of a modern Vim workflow.

It’s a well-known and overstated joke that the default Emacs bindings are bad. If you’re reading this post, you probably already agree with me here, but for the uninitiated: key combos are the devil. Any time you are pressing two keys at once, with the same hand, hundreds of times per day, you are setting yourself up for repetitive stress injury. As programmers, we need to take care of our hands or our careers will be over.

This is going to be part-tutorial, part describing my configuration. With a little determination, this can take you from ground-zero to a working Evil configuration and generic development environment.

This post is geared at the determined Vim user who is willing to give Evil a shot and likes having a heavily customized editor. It has a number of tasks that are intended to teach the right attitude and mindset required to keep working with Emacs on your own. These will get you familiar enough with reading documentation that you know where to look when you want to do something. It is also Elisp-focused, with no emphasis on the more modern customization features of Emacs that ultimately prevent new users from groking its internals.
emacs  vim  editor  programming  tutorial  via:HM0880 
« earlier      
aggregator agile ai ajax algorithms android angularjs apache apologetics arcade architecture art assembly audio aws bestpractices bible biblestudy blockchain blog blogging bookmarks books bootstrap brain c c# c++ calculator career christianity chrome clojure cloud cms codeigniter collaboration colors containers crypto css culture database datascience datastructures depression development directory distro diy django docker eclipse ecommerce economics editor education electronics emacs email emulation estimation extension finance firefox flask forms framework free freeware fun functionalprogramming games generator gis git github golang google graphics hackernews hacking happiness haskell health history hosting html http humor ide inspirational interesting java javascript jquery json jvm language laravel library linux lisp literature lua machinelearning management maps markdown math memorial_drive_mp3 mentalhealth menus microcontroller minimalism mobile mp3 music mvc mysql networking news nlp nodejs nosql notepad onlinetools oop opensource os patterns performance personaldevelopment philosophy php physics politics portal postgresql productivity programming projectmanagement psychology puzzle python qt quality react reference regex repl repository responsive rest retro rss ruby rust scala science scripting search security shell simplicity socialmedia softwaretesting spreadsheet sql ssh statistics storage tables tcpip tdd technology template theme theology tips todo toolkit tutorial twitter typography ubuntu unix vagrant versioncontrol video vim virtualization visualization vuejs webdesign webservices wiki windows wordpress workflow worldview writing

Copy this bookmark: