60 lines
2.8 KiB
Markdown
60 lines
2.8 KiB
Markdown
|
---
|
|||
|
title: My Experience with Atom as A Vim User
|
|||
|
date: 2014-11-18
|
|||
|
from: medium
|
|||
|
---
|
|||
|
|
|||
|
My Experience with Atom as A Vim User
|
|||
|
=====================================
|
|||
|
|
|||
|
Historically, I am a Vim user. People know me as a very very heavy vim
|
|||
|
user. I have spent almost the last two years customizing [my .vimrc
|
|||
|
file](https://github.com/Xe/dotfiles/blob/master/.vimrc) and I have parts
|
|||
|
of it mapped to the ways I think. Recently I have acquired both a Mac Pro
|
|||
|
and a Surface Pro 3, and my vim configuration didn't work on them. For a
|
|||
|
while I had used Docker and the image I made of my preferred dev
|
|||
|
environment to shim and hack around this.
|
|||
|
|
|||
|
Then I took a fresh look at [Atom](https://atom.io/){.markup--anchor
|
|||
|
.markup--p-anchor}, Github's text editor that claims to be a replacment
|
|||
|
for Sublime. Since then I have moved to using Atom as my main text
|
|||
|
editor for programming in OSX and Windows, but still using my fine-tuned
|
|||
|
vim setup in Linux. I like how I have Atom set up. It uses a lot of (but
|
|||
|
not all sadly) the features I have come to love in my vim setup.
|
|||
|
|
|||
|
I also like that I can have the same setup on both my Mac and in
|
|||
|
Windows. I have the same
|
|||
|
[vim-mode](https://github.com/atom/vim-mode) bindings on both my machines
|
|||
|
(I only customize so far as to add :w and :q bindings), and easily jump
|
|||
|
from one to the other with Synergy and have little to no issues with
|
|||
|
editor differences. I typically end up taking my surface out with me to
|
|||
|
a lot of places and will code some new ideas on the bus or in the food
|
|||
|
court of the mall.
|
|||
|
|
|||
|
Atom gets a lot of things right with the plugins I have. I have
|
|||
|
Autocomplete+ and a plugin for it that uses GoCode for autocompletion as
|
|||
|
I type like I have with vim-go and YouCompleteMe in Vim. Its native
|
|||
|
pacakge support and extensibility is bar none the easiest way to be able
|
|||
|
to add things to the editor I have ever seen.
|
|||
|
|
|||
|
But there are problems with Atom that are mostly based on my usage of
|
|||
|
text editors and my understanding of programming with Javascript,
|
|||
|
Coffeescript, HTML and CSS. Atom is a mostly Coffeescript editor, it
|
|||
|
does mean that at runtime I can customize almost any aspect of the
|
|||
|
editor, but I would have to learn one if not 5 more languages to be able
|
|||
|
to describe the layouts or interfaces I would like to add to this
|
|||
|
editor. It also being a hybrid between a web application and a normal
|
|||
|
desktop application means that I am afraid to add things I normally
|
|||
|
would such as raw socket support for being able to collaborate on a
|
|||
|
single document, PiratePad style. Additionally, the Vim emulation mode
|
|||
|
in Atom doesn't support ex-style :-commands nor \<Leader\>, meaning that
|
|||
|
a fair bit of my editing is toned down and done more manually to make up
|
|||
|
for this.
|
|||
|
|
|||
|
I wish I could just use vim natively with my preferred setup on Windows,
|
|||
|
OSX and Linux, but for now Atom is the lesser of all the evils.
|
|||
|
|
|||
|
---
|
|||
|
|
|||
|
Update: I am now atom-free on my surface pro 3
|