A Community-led Hyper-Hackable Text Editor
Go to file
2012-08-06 18:28:51 -06:00
.atom Merge branch 'master' into global-find 2012-07-24 17:59:49 -06:00
Atom Add OnigRegExp.getCaptureCount 2012-08-06 18:27:14 -06:00
Atom.xcodeproj Add CocoaOniguruma 2012-08-01 09:48:36 -07:00
benchmark Add benchmark for TokenizedBuffer w/ new TextMateGrammar tokenization. SO SLOW! 2012-08-06 18:28:51 -06:00
bundles Use text as the default grammar 2012-08-01 17:24:28 -07:00
cef Patch CEF to use a previous version of keydown code. 2012-07-02 17:10:48 -07:00
docs Merge branch 'master' into global-find 2012-07-24 17:59:49 -06:00
frameworks Update to 98aa644b of github's fork of cocoaoniguruma for captureCount method 2012-08-06 18:26:53 -06:00
script Fail if the benchmarks fail 2012-05-15 17:00:54 -07:00
spec TextMateGrammar handles nested capture groups and trailing lookahead captures 2012-08-06 16:35:33 -06:00
src OnigRegExp.getCaptureTree does not include empty child captures 2012-08-06 18:27:39 -06:00
static Put a bit more space between editor lines 2012-08-01 17:16:15 -06:00
themes Add 'themes' directory with the default TextMate themes 2012-08-01 14:07:18 -06:00
vendor Starting on TextMate bundle support 2012-08-01 09:48:35 -07:00
.gitignore Add rake package 2012-03-29 11:36:52 -07:00
.pairs Add David Graham to pairs file 2012-06-19 17:17:35 -06:00
atom.icns The sad octocat was making me sad. Using a wooden lighting bolt icon now. 2012-04-02 08:56:33 -07:00
index.html Better error reporting 2012-04-05 14:07:52 -06:00
Rakefile Add CocoaOniguruma 2012-08-01 09:48:36 -07:00
README.md Update README 2012-07-06 13:41:34 -06:00

Atom — Futuristic Text Editing

Be forwarned: Atom is pre-alpha software!

Building from source

  1. Get xcode 4.2 or above

  2. Install CoffeeScript http://coffeescript.org/

brew install nodejs
curl http://npmjs.org/install.sh | sh
npm i -g coffee-script
  1. git clone git@github.com:github/atom.git

  2. cd atom

  3. rake run

Setup Your ~/.atom Directory

An example .atom directory can be found at the root of the source tree

Basic Keyboard shortcuts

Atom doesn't have much in the way of menus yet. Use these keyboard shortcuts to explore features.

cmd-o : open file/directory

cmd-n : new window

cmd-t : open fuzzy file finder

cmd-: : open command prompt

cmd-f : open command prompt with /

cmd-g : repeat the last search

cmd-r : reload the current window

cmd-alt-ctrl-s : run specs

cmd-alt-arrows : split screen in direction of arrow

cmd-alt-w : toggle word wrap

cmd-alt-f : fold selected lines

Most default OS X keybindings also work.

Init Script

Atom will require ~/.atom/atom.coffee whenever a window is opened or reloaded if it is present in your home directory. This is a rudimentary jumping off point for your own customizations.

Command Panel

A partial implementation of the Sam command language

Examples

, selects entire file

1,4 selects lines 1-4

/pattern selects the first match after the cursor/selection

s/pattern/replacement replace first text matching pattern in current selection

s/pattern/replacement/g replace all text matching pattern in current selection

,s/pattern/replacement/g replace all text matching pattern in file

1,4s/pattern/replacement replace all text matching pattern in lines 1-4

x/pattern selects all matches in the current selections

,x/pattern selects all matches in the file

,x/pattern1/ x/pattern2 "structural regex" - selects all matches of pattern2 inside matches of pattern1

Key Bindings

Atom has a CSS based key binding scheme. We will add a nicer loading mechanism, but for now you can bind keys by calling window.keymap.bindKeys with a CSS selector and a hash of key-pattern -> event mappings.

window.keymap.bindKeys '.editor'
  'ctrl-p': 'party-time'
  'ctrl-q': 'open-dialog-q'

When a keypress matches a pattern on an element that matches the selector, it will be translated to the named event, which will bubble up the DOM from the site of the keypress. Extension code can listen for the named event and react to it.