Sorry, for the sensationalist headline on this blog post. Almost all of Atom, including the core functionality, is based on packages. For example, the autocomplete thing that pops up whilst you're typing is a package with its own git repo and README. However, it's not a community package. Let's focus on those instead.
If you're in the midst of typing and for some reason you need to scroll somewhere else in the code to type something or to select to copy to the clipboard, how do you get back? You can either memorize which line you were on. Or you can split the windows so that when you're done, elsewhere, you just kill the newly created split-window. Or; you install
At any time you can press
alt and the minus character) and it'll go back to where the cursor was last.
It works across open tabs too. So if you switch tabs to edit
index.html and want to go back to that
app.py you were working on you can
yourself back there. And suppose that you want to go back to
index.html again, you hit
This was written by a friend of mine called Michael "Osmose" Kelly and this was his first package he wrote. It's apparently very popular and Michael's most popular Open Source project to date.
What it does is introduce a command-line looking prompt for opening files. By default, you start it with
Ctrl-x Ctrl-f which is the Emacs command for opening files/buffers.
Don't get me wrong, I love using
Cmd-t to fuzzy-find files and that's awesome too, but sometimes when you have eleventeen files called
models.py and you want the one in the "current directory" it's much easier to just go directly to that file. I type
Cmd-x Cmd-f m [TAB] [ENTER]
and I'm there. Had I typed
m on the fuzzy-finder it would certainly have yielded too many files.
Another really really useful thing about this package is that I can easily go to any other file outside the current directory. Suppose my Atom window is rooted in
~/dev/PYTHON/premailer/ and I want to open
/tmp/hack.js I easily can, thanks to this package without reaching for the mouse.
The name well describes what it does. But why do I need it? The answer is simple; it's when I jump around. When I'm in the midst of typing a function or snippet or something I don't need to know which line I'm on because things are settled. No, it's when I go somewhere else, for example using the
last-cursor-position package, then it's hard to see where the cursor is. Especially relevant when you have a big screen with high resolution.
Why isn't this a core package?!
I bet I've forgotten some package that I love and use every day that isn't a core package. If so, it's probably something subtle or something that I almost take for granted. For example, who doesn't use react or atom-beautify?! Also, those packages are already so popular they don't need a blog post to raise their attention and fame :)
What was your favorites that you like so much that they just need to be highlighted? Leave a comment or discuss here.