Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I'm a vim guy, but I've been wanting to try emacs for a long time.

Any tip for a convert like me? Is the "trick" just to make the jump and persist until it clicks? How do I still get my job done in the mean time?



I can tell you how I switched a couple of years ago.

I started to use emacs for the sql-oracle mode since it was tons better than the standard sqlplus client shipped by Oracle. I still kept doing most of my coding in vim but gradually was learning emacs by working with that sql mode (there is of course a mode for every database there).

Later on I started doing notes in org-mode as it was also nicer than anything else I used at that time. The ability to do ad-hoc tables/spreadsheets in it helped a lot. Then stuff just started rapidly speeding up. I found out that browsing changesets with the emacs vcs mode is great (you can open up a file in annotation mode and flip back/forward through revisions). Browsing the filesystem, grepping from withing emacs etc.

By playing around with the modes I got really used to how the editor ticks and switching to coding in it daily was just a natural evolution as I started doing more & more stuff from inside of emacs.


My experience was similar, except with Sublime. I used Sublime for most things and org-mode for note taking. Then I started using emacs for personal projects but kept using Sublime at work. Eventually I started to feel almost as productive with emacs as Sublime. Once I found projectile and helm-projectile for project navigation, I made the switch entirely.


You can try Evil Mode. => http://www.emacswiki.org/emacs/Evil


Alternative: go full-on emacs, without evil. I think you need to do that, at least at first, to really learn emacs.

How to still get your work done: continue to use vim for your "work," and at first just use emacs to learn emacs. As soon as practical, start using emacs to do just one thing from your work. Somewhere soon after this you'll be comfortable enough to do everything from emacs (although still not an expert), and then you'll be able to decide to stick with it or go back.


I started to learn Emacs with its native commands and shortcuts. But I switched to evil when I noticed than I was unable to memorize the shortcuts for some basic actions like "add a character to the end of each line". Today I use evil-mode for all tasks and to be honest I don't think I'm missing something. The Emacs shortcuts are not mandatory to benefit of the power of Emacs, which resides essentially into its modularity and plugins.


I started off with emacs, moved to vim, and now i'm back on emacs with evil mode.



I've been looking into spacemacs, but I've found it to be a bit bloated vs. my personal config. It takes longer to start up, and sometimes just typing text in Insert Mode was sluggish (I imagine due to one of the autocomplete/typeahead libraries). That said, it has a lot of nice things and nice ideas. I'm undecided if I want to port my personal config to spacemacs, or just pull things out of spacemacs into my personal config.


I think I had sluggish behaviour sometime ago - but the updates to the config are happening at a very fast pace. I'm a pretty happy user. Also, the chat on https://gitter.im/syl20bnr/spacemacs is very active too, may be someone there could answer your specific questions (if you haven't asked already).

EDIT: you can also disable the packages you don't need, perhaps that's an option.


> EDIT: you can also disable the packages you don't need, perhaps that's an option.

I realize that, but it also means tracking down which thing is misbehaving because it's not immediately obvious.

I haven't given up on Spacemacs, but for the time being, I'll need to swap back and forth with my personal config so that I can get work done. At the very least, there are things that I like about it that I'll want to figure out and pull into my personal config.

There are also some things that could use a bit more documentation. For example, porting parts of my config over, I didn't realize that :nohlsearch was already bound to evil-search-persist-remove-all in the Spacemacs initialization.


After years of using vim I made the switch last Friday when I stumbled across this fellow's blog post while randomly trying to figure out more about evil mode: http://juanjoalvarez.net/es/detail/2014/sep/19/vim-emacsevil...

It took all day Saturday to configure things so they mostly behaved the same as my vim environment, mixed with learning emacs specific stuff along the way. There's a few quirks I still need to work out, but the power to configure absolutely anything is worth the switch in my book. I have to admit, I wish I had made the switch sooner.

The biggest thing I desire right now, and maybe I just don't know what to look for, is a way to swap between full sets of buffers. i.e. Group A: handful of IRC windows, Group B: project 1's code buffers, Group C: project 2's code buffers, etc. Maybe someone has a tip?


I just hit the same issue, and I started using desktop-save-mode for that (https://www.gnu.org/software/emacs/manual/html_node/emacs/Sa...). It may be a bit heavyweight for instant switching, depending on what you want. I found it among a list of possible solutions at http://www.reddit.com/r/emacs/comments/1m73gs/how_do_you_man... .


That is exactly what I was looking for. Thanks!



Try Spacemacs: https://github.com/syl20bnr/spacemacs

Being a Vim user of 4+ years, and having made 2 previous attempts at switching to Emacs, this is the setup that finally made me immediately productive enough to get work done. Been using this as my primary environment for more than a month now.


Thanks for this, looks like like a better, more encompassing version of the evil-mode + customisations that I've hacked together thus far for emacs.

Amongst many other changes I've remapped the spacebar (while in normal mode) to send a C-x, colon (:) to send a M-x, so I have access to a ton of emacs commands while mainly just using vim.


I'm the same as you.

I am Windows/Mac user and I spent a bit of time trying to configure emacs across all my machines. I think it's fair to say that it wasn't designed to be configured cross platform, which is a shame. When I can be bothered I will have to create .emacs files for each platform that I use


I disagree. I have been using the same init.el across Windows and Mac for several years. Hardly anything needs to be tailored but you can inspect the system-type variable if it is really necessary.


I use the same `.emacs` on both Windows and Linux. I put some Windows-specific stuff in a separate file that I load only when `(string-match "nt" (symbol-name system-type))`.


How do you handle package management? I just couldn't get things to go my way. Either it worked on Windows or Mac, not both.

What flavour of Emacs are you using on Windows?


The biggest cross-platform difficulties are the emacs version and OSX.

Make sure all your computers have the same major version (all 23 or all 24; I recommend 24 as it actually has a package manager). OSX was for several years a problem for emacs as there were two or three incompatible ports that did things differently; it's probably gotten better over time.

As preavy said, the rest can be handled by checking the OS type, machine name, user name, etc in your init files (they're not just config files, they're emacs lisp programs that get run during startup).

I keep mine in a git repository to make syncing the changes over time easier.


I agree that you should use the same Emacs version. On the Mac I recommend http://emacsformacosx.com/.

I have my .emacs.d symlinked to a folder in Dropbox. So to set up on a new machine I just have to install Dropbox and make a new symlink.

This also worked for me in Ubuntu.

I was concerned when package management came in as a lot more stuff seems to get downloaded, but it just seems to look after itself.


Being able to extend the browser with my own Elisp code turned out to be the hook for me; I'd encourage you to learn some Elisp right at the start.

Also, I've had good luck with Emacs Live. http://github.com/overtone/emacs-live


If you just want to manage multiple tiled command-line windows, just try vim+tmux (getting session management on top of it).

There was at least another tiled window manager able to embed GUI windows.


Continue to use your previous IDE or editor and gradually switch to Emacs as you learn more.


Use emacs with evil mode.


Yes ! I highly recommand this plugin to those who are not familiar with the strange Emacs shortcuts ... but also to those who are not familiar with vim. evil-mode allows to learn Emacs and Vim at the same time, it's perfect for a beginner.


Does that help at all for muscle memory and things like that?


I use emacs with evil, it gives you a fully functional vim emulator inside emacs. Since vim is the best text editor and emacs is the best OS, it's perfect!


There are things that are missing, but you can modify them. Examples:

I use Ctrl-6 a lot in Vim, but Evil mode only implements it as Ctrl-Shift-6. But it's easy to create the binding (especially since the function that implements the functionality is already there).

The :sort command doesn't exist, but there is :sort-lines, etc.

The other thing that is a bit lacking is folding. Emacs doesn't have folding baked in, and there are several folding implementations (outline-mode, hide-show-mode, etc). I haven't found a good setup of all of the z* commands for folding. spacemacs does a good job of setting them up for org-mode (which leans on outline-mode for folding), but also doesn't implement zj / zk folding movement bindings.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: