If you don't have it already, download the Atom editor
cd ~
# If you have an atom config already:
mv .atom .atom-bak
git clone git@github.com:substantial/atomfiles.git .atom
cd .atom && bin/update-packages
This is an experiment. We want to see if we can build a config that we enjoy that we all feel comfortable and productive in. Currently only a few of us have opted in, but please join and start contributing if you are interested.
- Tenets should be agreed upon, discussed, modified or removed if they do not fit.
- This config should be usable by all disciplines and all skill levels. It should be approachable enough for all, but powerful enough for power users.
- There is no owner. All at Substantial have an equal say in what goes in it.
- No forks, we should all run off of master. It's ok to use branches to experiment with things.
- Performance is an important part of the experience and should not be neglected. Poorly performing addons should be optimized or removed.
- No Vim mode. No Emacs mode. It is good to take inspiration from them, but we should see if we can build something as usable for all without that as a wholesale starting point. Readline keys are great and fine, but we should be sure to keep standard OS X arrow key movements as well.
- Avoid overriding keys common to other OS applications (like cmd+s).
- Try to avoid overriding default atom key bindings. If multiple keys are bound to the same thing (like cmd+t and cmd+p) it is more OK if the less common one is overridden.
- It is never done. It should be refined, added to and optimized indefinitely.
- Be mindful of the fact that others use this config. If you have good reason to make huge changes, communicate them and seek advice on them. We shouldn't worry about backwards compatibility too much, but we should be mindful.
Most of the default Key Bindings are still enabled. Below are custom and particularly important key bindings.
Key | Command |
---|---|
Window Navigation | |
⇧⌘K | Focus Previous Pane |
⇧⌘J | Focus Next Pane |
Editing | |
⌘= | Auto Indent |
Selecting Text | |
^S | Expand Region (word, inside parens, etc.) |
^⇧S | Expand Region (word, inside parens, etc.) |
^I ( | Select inside parentheses (works for {[<'" t`) |
^O ( | Select around parentheses (works for {[<'" t`) |
Moving Around | |
⌥P | Move up to next blank line (⇧ to select) |
⌥N | Move down to next blank line (⇧ to select) |
-
Install
my-new-package
:~/.atom/bin/install-package my-new-package
-
Commit the change to
packages.txt
and pull request it.
-
Use the Install section of preferences to install a package.
-
Run:
~/.atom/bin/update-packages
-
Answer "keep" when asked about your package.
-
Commit the change to
packages.txt
and pull request it.
-
Use the UI to update packages.
-
Run:
~/.atom/bin/update-packages
-
Commit the changes to
package.txt
and pull request it.
- advanced-open-file - A more
reasonable file open with tab completion.
cmd-opt-o
- Advanced Open
- advanced-new-file - A more
reasonable new file with tab completion.
cmd-opt-n
- Advanced New
- color-picker - Adds a color picker.
cmd-shift-c
- Pick Color
- pigments - Displays colors in projects and files.
- Linter - Enable displaying lint (code style) warnings.
- linter-eslint - Linter plugin for eslint
- expand-region - Expand selection to
quotes/braces/brackets/etc.
ctrl-s
- Expand selectionctrl-shift-s
- Shrink selectionctrl-i (
- Select inside parens, can use any of:[{('"<t
ctrl-o (
- Select around parens, can use any of:[{('"<t
- language-haml - HAML support
- react - React support
- block-travel - Move the cursor by code blocks
alt-n
- Scroll down by blocksalt-p
- Scroll up by blocks