Coder Social home page Coder Social logo

atomfiles's Introduction

Substantial's Atom Config

Installation instructions

If you don't have it already, download the Atom editor. Install it, run it at least once and be sure to quit it, then:

cd ~
# If you have an atom config already:
mv .atom .atom-bak
git clone [email protected]:substantial/atomfiles.git .atom
cd .atom && bin/update-packages

Goal

We want to build a config that we enjoy using and that we all feel comfortable and productive in.

Tenets

  • 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 finished. 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.

Key Bindings

Most of the default Key Bindings are still enabled. Below are custom and particularly important key bindings.

Key Command Preview
               | **File Management** |

⌥⌘N | Advanced New File | ⌥⌘O | Advanced Open File | ⌃- | Toggle Tree View | ⌃X C | Duplicate File | ⌃X M | Move/Rename File | ⌃X D | Delete File |   | | | Fuzzy File Finder | ⌘P | Open Fuzzy File Finder | ⌘B | Open Fuzzy File Finder for recently opened files | ⌃S | Open file in horizontal split | ⌃V | Open file in vertical split |   | | | Window Navigation | ⇧⌘K | Focus Previous Pane | ⇧⌘J | Focus Next Pane | ⌥⌃P | Toggle automatic pane resizing |   | | | Editing | ⌃I | Auto Indent | ⌃Y | Paste from kill ring (press repeatedly to toggle through things previously copied.) | clip-history example ⇧⌃Y | Paste last thing pasted | ⇧⌘' | Toggle quotes - replace ' with " or vice versa | ⇧⌘C | Open Color Picker |   | | | Moving Around - Most can be combined with ⇧ to select text | ⌃F | Move right | ⌃B | Move left | ⌥F | Move to next word | ⌥B | Move to previous word | ⌃P | Move up | ⌃N | Move down | ⌥P | Move up to next blank line | ⌥N | Move down to next blank line | ⌥S ░ | Move to right before next ░ on line, like vim t (hold or double tap to select) | find-and-till ⌥R ░ | Move to right after previous ░ on line, like vim T (hold or double tap to select) | ⌃8 | Find next word under cursor, like vim * | ⌃3 | Find previous word under cursor, like vim # | ⌃S | Fuzzy Search Forward | ⌃R | Fuzzy Search Reverse |   | | | Selecting Text | ⌘L | Select Current Line - Can be repeated to select multiple lines | ⌘I | Expand Region (word, inside parens, etc.) | ⇧⌘I | Shrink Region (word, inside parens, etc.) | ⌃O ( | Select inside parentheses (works for {[<'"t) | ⇧⌃O ( | Select around parentheses (works for {[<'"t) | ⌥S⌥S ░ | Select to right before next ░ on line, like vim vt | ⌥R⌥R ░ | Select to right after previous ░ on line, like vim vT |   | | | Multiple Cursors - If multiple things are selected, you can type to change them all at once. You can also use regular navigation keys to move multiple cursors around at once. This is helpful for making lots of similar changes at once. | multiple-cursors ⌘D | Select Next - First press selects entire word. Next adds next instance of word under cursor to selection | ⌘K ⌘D | Skip Selection - After ⌘D, if you don't want it but want the next instance | ⌘U | Undo Select Next | ⌃⌘G | Select All instances of current word (works w/ File Find too) | ⇧⌘L | Split Selection into Multiple Cursors - Turns a selection of multiple lines into separate selections/multiple cursors. Try hitting ⌃A afterwards to get the cursors to the beginning of the lines | ⌘Click | Add Cursor - Good for quickly adding multiple cursors for multiple changes in places that would be tricky with find or ⌘D |   | | | Find and Replace | ⌘F | Find in File | ⌘G | Find Next in File | ⇧⌘G | Find Previous in File | ⇧⌘F | Find in Project | ⌃⌘N | Find Next in Project | project-find-navigation ⌃⌘P | Find Previous in Project | ⇧⌃⌘F | Focus Find in Project Results |   | | | Git (git plus) | git-plus ⇧⌘H | Open up git plus fuzzy find (try typing 'checkout' to see options) |

Packages

How to install a new package

Via the command line

  1. Install my-new-package:

    ~/.atom/bin/install-package my-new-package
  2. Commit the change to packages.txt and pull request it.

Via the UI

  1. Use the Install section of preferences to install a package.

  2. Run:

    ~/.atom/bin/update-packages
  3. Answer "keep" when asked about your package.

  4. Commit the change to packages.txt and pull request it.

How to upgrade packages

  1. Use the UI to update packages.

  2. Run:

    ~/.atom/bin/update-packages
  3. Commit the changes to package.txt and pull request it.

Installed

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.