A Community-led Hyper-Hackable Text Editor
Go to file
2013-02-15 10:10:24 -08:00
benchmark Fix errors in benchmarks 2013-02-06 18:01:32 -07:00
cef Upgrade CEF to branch 1364, revision 1065 to fix a bug in v8 2013-01-28 14:58:21 -07:00
docs Use editor.preferredLineLength as default column 2013-02-14 09:14:05 -08:00
dot-atom Clean up .atom creation 2013-02-13 13:09:49 -08:00
git2 Use Release build of libgit2 at 11fccddcb5 2013-01-28 09:38:43 -08:00
native Add atom.update and atom.getUpdateStatus 2013-02-14 16:40:24 -08:00
notes Move old wiki page to notes folder 2012-09-30 15:00:45 -07:00
script Add atom.update and atom.getUpdateStatus 2013-02-14 16:40:24 -08:00
spec Fix 💩 I shouldn't have checked in 2013-02-14 13:23:45 -08:00
src Don't store package state in command-panel package 2013-02-14 17:30:45 -08:00
static tweak spacing 2013-02-15 10:10:24 -08:00
themes nicer look for preview list header 2013-02-15 10:10:13 -08:00
tools/mac no more custom gyp 2012-10-18 16:00:14 -07:00
vendor Spec runner cleanup 2013-02-11 18:00:56 -08:00
.github Use docs/manifest.txt to list docs files. Add user-init-script.md. 2013-02-13 16:25:48 -07:00
.gitignore Remove/ignore tags file and add rake task to generate 2012-12-14 09:14:22 -08:00
.gitmodules Add python bundle as submodule 2013-01-29 18:21:38 -08:00
.pairs fix window blur and focus events 2013-02-05 12:03:56 -08:00
atom.gyp Remove RESOURCE_PATH macro 2013-02-13 13:09:50 -08:00
CONTRIBUTING.md Mention trailing newline 2013-02-11 09:31:16 -08:00
package.json Precompile cson files to json 2013-01-17 16:50:25 -08:00
Rakefile rake nof ignores package-generator spec templates 2013-02-14 11:37:55 -08:00
README.md Add raw scope to entire `` `` block 2013-02-12 18:34:01 -08:00

Atom — Futuristic Text Editing

atom

Building from source

Be forwarned: Atom is pre-alpha software!

Requirements

Mountain Lion

The Setup™

Xcode (Get Xcode from the App Store (ugh, I know))

  1. gh-setup atom

  2. cd ~/github/atom && rake install

Atom is installed! Type atom [path] from the commmand line or find it in /Applications/Atom.app

Your ~/.atom Directory

A basic ~/.atom directory is installed when you run rake install. Take a look at ~/.atom/user.coffee for more information.

Basic Keyboard shortcuts

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

meta-o : open file/directory

meta-n : new window

meta-t : open fuzzy file finder

meta-: : open command prompt

meta-f : open command prompt with /

meta-g : repeat the last search

meta-r : reload the current window

meta-alt-ctrl-s : run specs

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

meta-alt-w : toggle word wrap

meta-alt-f : fold selected lines

meta-l : go to line

Most default OS X keybindings also work.

TreeView Keyboard shortcuts

With the treeview focused:

a : Add a new file or directory. Directories end with '/'.

m : Rename a file or directory

Init Script

Atom will require ~/.atom/user.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.