Atomに三度目のチャレンジ


何度かAtomにチャレンジしているものの、どうしてもVimに戻ってしまう。
ゆ、指がなじまぬーーー！かゆいところに手が届かぬ！

しかし今回こそはAtomに乗り換えるぞと気合を入れているのである。

環境はMac OS X。

## アンインストール
* [How to Completely Uninstall Atom for Mac?](https://discuss.atom.io/t/how-to-completely-uninstall-atom-for-mac/9084/12)
* [Atom エディタの再インストール](http://tizio1976.blogspot.jp/2015/03/atom.html)


まずは今まで入れていたAtomをアンインストールして入れなおす。アディオス！

```
アプリケーションフォルダからAtom app を削除
rm -rf ~/.atom
rm /usr/local/bin/atom
rm /usr/local/bin/apm
rm ~/Library/Preferences/com.github.atom.plist
rm ~/Library/Application Support/com.github.atom.ShipIt
rm -rf ~/Library/Application Support/Atom/
```

## インストール
* [Installing Atom](https://atom.io/docs/v0.194.0/getting-started-installing-atom)

下記URLから`atom-mac.zip`をダウンロードする。

https://github.com/atom/atom/releases/latest

インストールしたzipファイルをダブルクリックし開いて、Atomアプリを "アプリケーション" フォルダーにドラッグ・アンド・ドロップする。

### ターミナルからatomコマンドを使えるようにする
* Atomを起動後、コマンドパレット(`cmd+shift-P`)にて “Window: Install Shell Commands” を実行する。


## 操作
* [GitHub 製エディタ Atom リファレンス](http://qiita.com/spesnova/items/d3096d062d70e7385e9d)
* [Atom Flight Manual](https://atom.io/docs/v1.3.2/)

### コマンドパレット
|やりたいこと|コマンド|
|:--|:--|
|コマンドパレットを開く|`cmd+shift-p`|

### ツリー
|やりたいこと|コマンド|
|:--|:--|
|ツリー開閉|`cmd-\`|
|ツリーにフォーカスを移動|`ctl-0`|

### ファイル
|やりたいこと|コマンド|
|:--|:--|
|ディレクトリを開く|`cmd-shift-o`|
|ファイルを追加|ツリー上で`a`|
|フォルダを追加|ツリー上で`shift-a`|
|移動|ツリー上で`m`|
|コピー|ツリー上で`d`|
|削除|ツリー上で`delete`|

### 移動
|やりたいこと|コマンド|
|:--|:--|
|移動する|`ctrl-p` `ctrl-n` `ctrl-b` `ctrl-f`|
|単語単位の移動|`alt-b` `alt-f` `alt-left` `alt-right`|
|行の先頭・末尾への移動|`ctrl-e` `ctrl-a` `cmd-right` `cmd-left`|
|ファイルの先頭・末尾へ移動|`cmd-up` `cmd-down`|
|シンボルへのジャンプ|`cmd-r`|
|ブックマークを付ける|`cmd-F2`|
|ブックマークに移動する|`F2` `shift-F2`|

##### プロジェクト横断でシンボルへのジャンプ
1. `$ brew install ctags`
2. プロジェクトのルートディレクトリから`$ ctags -R ./`
3. Atomで`cmd-shift-R`

### 選択
|やりたいこと|コマンド|
|:--|:--|
|テキストの選択|移動コマンドに`shift`を追加する|
|全選択|`cmd-a`|
|行選択|`cmd-L`|
|現在の単語を選択|`ctrl-shift-W`|

### 編集/削除
|やりたいこと|コマンド|
|:--|:--|
|文字を入れ替える|`ctrl-t`|
|次の行を現在の行の末尾に移動する|`cmd-j`|
|現在の行を移動する|`ctrl-cmd-up` `ctrl-cmd-down`|
|現在の行をコピーする|`cmd-shift-D`|
|現在の行を削除する|`ctrl-shift-K`|
|行末まで削除する|`cmd-delete (cmd-fn-backspace)`|
|行末までカットする|`ctrl-K`|
|行頭まで削除する|`cmd-backspace`|
|単語の先頭まで削除する|`alt-backspace` `alt-h`|
|単語の末尾まで削除する|`alt-delete` `alt-d`|
|同一列の複数箇所を選択(マルチカーソル)|`ctrl-shift-down`|
|マルチカーソル|`cmd-click`|
|現在の単語と同じ単語を1つずつ選択する|`cmd-d`|
|現在の単語を全選択|`cmd-ctrl-g`|
|反対側の括弧にジャンプ|`ctrl-m`|
|選択中の括弧内の全テキストを選択する|`"/start"`|
|ファイルのエンコーディングを変更する|`ctrl-shift-U`|

※ マルチカーソル(`ctrl-shift-down`)をOSXで起動するためには、「システム環境設定 > Mission Controle」にて、「アプリケーションウィンドウ」のショートカットキーを無効にする必要がある。

### 検索/置換
|やりたいこと|コマンド|
|:--|:--|
|ファイル検索|`cmd-t`|
|現在開いているファイルからファイル検索|`cmd-b`|
|ファイル内検索と置換|`cmd-f`|
|プロジェクト全体からファイル内検索|`cmd-shift-F`|

### オートコンプリート
|やりたいこと|コマンド|
|:--|:--|
|オートコンプリートを表示する|`ctrl-space`|

### パネルの分割
|やりたいこと|コマンド|
|:--|:--|
|パネルを分割|`cmd-k`の後に上下・左右キー|
|パネルを移動|`cmd-k`の後に`cmd-上下・左右キー`|
|閉じる|`cmd-W`|

### 文法
|やりたいこと|コマンド|
|:--|:--|
|グラマーセレクターを選ぶ|`ctrl-shift-L`|

## 設定
### 改行
* Settings > Soft Wrap にチェック

## パッケージ
* [【超おすすめ！！】Atomのパッケージ、テーマ、キーバインディング、設定を紹介してみる（※随時更新）](http://qiita.com/snowsunny/items/f40c3291a580f3215797)
* [Atomエディタで使って気に入ったpackageとか](http://qiita.com/horimislime/items/72de9580125151ac6af0)

### [sync-settings](https://atom.io/packages/sync-settings)
* [Atom の設定を sync-settings を用いて共有する方法](http://webmem.hatenablog.com/entry/how-to-synchronize-Atom-settings-by-sync-settings)

Atomの設定を共有する。

### [autocomplete-paths](https://atom.io/packages/autocomplete-paths)
オートコンプリートにプロジェクト内のファイルパスを追加してくれる。
![](https://i.github-camo.com/7da86dc3d22c9dd1d1c47bcb36237720fd987764/687474703a2f2f73312e64697265637475706c6f61642e6e65742f696d616765732f3134303431312f70356b76696665362e676966)


### [color-picker](https://atom.io/packages/color-picker)
カラーピッカー機能を追加する。
![](https://i.github-camo.com/467c72e686f00893c3d36bf46499e76c10f31787/68747470733a2f2f6769746875622e636f6d2f74686f6d61736c696e647374726f6d2f636f6c6f722d7069636b65722f7261772f6d61737465722f707265766965772e676966)

### [highlight-selected](https://atom.io/packages/highlight-selected)
選択したテキストが同じファイル内にある時にそれらをハイライトする。

![](https://i.github-camo.com/fb3c3e8f4170fc20047810e53cdfa1041f302a28/687474703a2f2f692e696d6775722e636f6d2f4335466e7a7a512e676966)

### [jumpy](https://atom.io/packages/jumpy)
アルファベットの組み合わせで、好きな所にカーソルをジャンプ出来る機能を追加する。

* `shift-enter`で候補を表示する。

![](https://i.github-camo.com/97ea3a63b6b6829e56511c0c10463a40a0a3292a/68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44617669644c476f6c64626572672f6a756d70792f6d61737465722f5f696d616765732f6a756d70792e676966)

### [minimap](https://atom.io/packages/minimap)
Minimap機能を追加する。

![](https://i.github-camo.com/bb671dcf7706c32eb432472c2cd69d354f824661/68747470733a2f2f6769746875622e636f6d2f61746f6d2d6d696e696d61702f6d696e696d61702f626c6f622f6d61737465722f7265736f75726365732f73637265656e73686f742e706e673f7261773d74727565)

### [minimap-autohide](https://atom.io/packages/minimap-autohide)
Minimapを自動で表示、非表示にしてくれる。

![](https://i.github-camo.com/601b737aa994d368ded16eec38bf3beac3353d05/68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f6a61796b2f6d696e696d61702d6175746f686964652f6d61737465722f73637265656e73686f742e676966)

## [pigments](https://atom.io/packages/pigments)
色情報に関して様々な機能を提供してくれる。

![](https://i.github-camo.com/16c0c12a183c6f57fb33481984593a515777d5e8/68747470733a2f2f6769746875622e636f6d2f61626533332f61746f6d2d7069676d656e74732f626c6f622f6d61737465722f7265736f75726365732f7069676d656e74732e6769663f7261773d74727565)

### [project-manager](https://atom.io/packages/project-manager)
複数のプロジェクトを登録して簡単に切り替えることができるようになる。

* プロジェクトの登録：コマンドパレットで`Project Manager: Save Project`
* プロジェクトの切替：`ctrl-cmd-p`

![](https://i.github-camo.com/9f58c50dd32d6173bb555f1a0ca08c713d8a2f2a/68747470733a2f2f7261772e6769746875622e636f6d2f64616e69656c62726f64696e2f61746f6d2d70726f6a6563742d6d616e616765722f6d61737465722f70726f6a6563742d6d616e616765722e676966)

### [sort-lines](https://atom.io/packages/sort-lines)
選択しているテキストの行を名前順にソートする。

![](https://i.github-camo.com/59de82a667ea690b778abaa5ba8a407f8659ebb3/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f323938382f313739363839312f38356536396666322d366139332d313165332d383961632d3331393237663630343539322e676966)

#### [tabs-to-spaces](https://atom.io/packages/tabs-to-spaces)
TabのSpace変換、SpaceのTab変換を行う事ができるようになる。

* コマンドパレットで`tabs to spaces`と入力すると候補が出てくる
	* `Tabs To Spaces: Tabify` 空白をタブにする
	* `Tabs To Spaces: Untabify` タブをスペースにする
	* `Tabs To Spaces: Untabify All` 行状の空白を全てスペースにする

### [atom-beautify](https://atom.io/packages/atom-beautify)

* `ctrl-alt-b`でコードフォーマットをかける

### [file-icons](https://atom.io/packages/file-icons)
アイコンをオシャレにする。