Atomのパッケージを整理したついでのメモ


## はじめに

新年ということで、利用しているAtomパッケージ等の整理を行った。
整理ついでに現在利用しているパッケージのメモを公開してみることにした。

### 注意事項

- 主に仕事で使うため、ほぼHTMLとPHP、自身のメモ用にMarkdownしか編集していない
- Vimから完全には移行できていない（というかプライベートでは未だにVimをメインで利用している）ため、趣味で使うRuby等のパッケージはほぼ未インストール

## 使用中のパッケージ

### advanced-open-file

URL: https://atom.io/packages/advanced-open-file

コマンドパレット風のモーダルウィンドウで開きたいファイルを選択することが出来るパッケージ。
極力キーボードから手を離したくないため、このようなパッケージは重宝する。

### atom-beautify

URL: https://atom.io/packages/atom-beautify

各種ファイルの自動整形をするためのパッケージ。
様々なファイルタイプの整形に対応しているが、多くは別パッケージ、コマンド等が必要となる。

### atom-hot-package-loader

URL: https://atom.io/packages/atom-hot-package-loader

パッケージの再ロードをしてくれるパッケージ。
Atomパッケージの開発中、頻繁に`Window: Reload`をするのは苦痛でしかないのでこういったパッケージは非常に便利。

### atom-vim-colon-command-on-command-pallete

URL: https://atom.io/packages/atom-vim-colon-command-on-command-pallete

[vim-mode](https://atom.io/packages/vim-mode)をご利用の方は[ex-mode](https://atom.io/packages/ex-mode)が利用できるが、残念ながら私はvim-mode-plus(後述)利用者のため利用できない。
そのため、`Shift + :`でコマンドパレットを開くためだけにこのパッケージを利用している。
数種類だけならばExコマンドも利用できるようになっているが、正直全くと言っていいほど使っていない。

### autocomplete-paths

URL: https://atom.io/packages/autocomplete-paths

ローカルパス補完用パッケージ。
書き捨て用スクリプトでローカルパスをべた書きする場合や設定ファイルにフルパスを記載する場合等に便利。

### autocomplete-php

URL: https://atom.io/packages/autocomplete-php

PHP補完用パッケージ。
開始タグを書くと終了タグを補完してくれるのだが、(テンプレートを用いることが多いため)HTMLに埋め込む形でPHPを書くことが非常に少なく、ファイル末尾の終了タグは基本書かない主義なので終了タグの補完をしないオプションがあればなお良いと常々思っている（が、自分で修正してパッチを送るほどではない）。

### emmet

URL: https://atom.io/packages/emmet

フロントエンドエンジニアは導入していることが多いように思う、emmetを利用するためのパッケージ。
emmetの前身であるZen Coding時代から非常にお世話になっている。
初めて使う場合は多少勉強するコストがかかるが、覚えてさえしまえば勉強に使った時間はすぐに取り戻せると思う。
（そもそもCSSセレクタに近い書式であるため、さほど苦労せずに習得可能だと思う）

### expose

URL: https://atom.io/packages/expose

MacのExposéのようにタブの一覧を表示してくれるパッケージ。
9タブ目まではキーボードで選択して表示することも出来る。
欲を言えば英字キーも割り振って欲しいが、私の使い方ではタブを10個以上開くことはさほどないためそう困ってはいない。
どちらかというとタブ間の移動と言うよりはパネル間の移動で利用することのほうが多いように思う。

### file-icons

URL: https://atom.io/packages/file-icons

ファイルアイコンに彩りを与えてくれるパッケージ。

### git-plus

URL: https://atom.io/packages/git-plus

gitを扱うためのパッケージ。
定番と言っても過言ではないパッケージだと思われるので説明は省略。

### imdone-atom

URL: https://atom.io/packages/imdone-atom

プロジェクトごとにタスクボードを追加するパッケージ。
Vimでは[taskpaper.vim](https://github.com/davidoc/taskpaper.vim)を使用していたため[Tasks](https://atom.io/packages/tasks)でも良いかと思っていたが、 「TODO」や「FIXME」と言ったアノテーションコメントを読んで自動でタスクを追加してくれるのと、タスクボードから該当行を直接開くことが出来るので割と重宝している。

### japanese-menu

URL: https://atom.io/packages/japanese-menu

Atomの各種メニューを日本語化するためのパッケージ。

### language-markdown

URL: https://atom.io/packages/language-markdown

Markdownの言語パッケージ。
Core Packagesである[language-gfm](https://atom.io/packages/language-gfm)はGitHub拡張のMarkdownのみ対応だが、こちらはCommonMark MarkdownやMarkdown Extraにも対応している。
デフォルトではlanguage-gfmを無効にしようとするため、共存させる場合は設定から"Disable language-gfm"のチェックを外す必要がある。
また、[markdown-preview](https://atom.io/packages/markdown-preview)のデフォルト設定ではプレビューしてくれないため、markdown-previewの設定を開き"Grammars"に「text.md」を追加する必要がある[^1]。

[^1]: ただ`text.md`と書いただけだとデフォルト設定を上書きしてしまうため、デフォルトに追加するのであれば`source.gfm, source.litcoffee, text.html.basic, text.plain, text.plain.null-grammar, text.md`と書く必要がある。

### lines

URL: https://atom.io/packages/lines

選択行の並び替えや重複削除を行ってくれるパッケージ。
あまり使用頻度は高くないが、あると便利なときがある。

### markdown-table-formatter

URL: https://atom.io/packages/markdown-table-formatter

Markdownのテーブルを綺麗にフォーマットしてくれるパッケージ。
手動でやるのは割と手間なのでテーブルを書く際には重宝している。

### markdown-toc

URL: https://atom.io/packages/markdown-toc

TOCを自動生成してくれるパッケージ。
編集内容を監視して自動で再生成するようにもできる。

### minimap

URL: https://atom.io/packages/minimap

sublimeでお馴染みのminimapを表示してくれるパッケージ。

### minimap-split-diff

URL: https://atom.io/packages/minimap-split-diff

split-diff(後述)のハイライトをminimapに反映してくれるパッケージ。
相違箇所が一目で分かるので非常に便利。

### php-extract-method

URL: https://atom.io/packages/php-extract-method

選択行の処理を別メソッドとして切り出してくれるパッケージ。
リファクタリングを行う際には非常に重宝している。

### pigments

URL: https://atom.io/packages/pigments

カラーコードの色を視覚的に表示してくれる。
コメント内の"Red Hat"の"Red"を赤にしてしまうのはご愛嬌？

### regex-railroad-diagram

URL: https://atom.io/packages/regex-railroad-diagram

正規表現を解析して構文図で表示してくれるパッケージ。

### remote-edit

URL: https://atom.io/packages/remote-edit

[Atomでリモートファイルを更新するパッケージ](http://qiita.com/from_kyushu/items/d47536f275c3bf8d544d)でも紹介した、リモートファイルをAtomで扱うためのパッケージ。
類似パッケージは大体リモートとローカルの同期を取ることを主目的としているのに対して、remote-editはリモートファイルを極力ローカルファイルと同等に取り扱うことを目的としている。

### script

URL: https://atom.io/packages/script

開いているファイルを実行し、別パネルに実行結果を表示してくれるパッケージ。
Vimの[vim-quickrun](https://github.com/thinca/vim-quickrun)は保存しなくても実行できた[^2]が、scriptは一度保存しなければならないのが若干不満。
なので適当に書いて試す場合はtry(後述)でテスト用ファイルにコードをコピーして実行するようにしている。

[^2]: 正確にはバッファと実ファイルの内容に差異がある場合はテンポラリファイルを作成してそちらを実行している。

### show-ideographic-space

URL: https://atom.io/packages/show-ideographic-space

いわゆる全角スペースを表示上は別の文字に置換して見やすくするためのパッケージ。
[Ricty](https://github.com/yascentur/Ricty)等の全角スペース可視化されているフォントを利用している場合は不要だと思われる。

### split-diff

URL: https://atom.io/packages/split-diff

パネル間の差分を取り、色分けして表示してくれるパッケージ。

### tablr

URL: https://atom.io/packages/tablr

CSVを読んでExcelみたいなテーブルエディタで表示してくれるパッケージ。
残念ながらUTF-8以外の文字コードには対応していないため、昔ながらのExcelに向けてShift-JISで吐き出されたCSVは読めないのが残念。

*2016/01/18 Update*
Tablr 0.10.0にて他の文字コードにも対応された。
参考: [CSV編集パッケージ「Tablr」がマルチバイト対応されたため宣伝](http://qiita.com/from_kyushu/items/9b63405e62ed5c9dd067)

### try

URL: https://atom.io/packages/try

書き捨て用の一時ファイルを作成して選択したコードをコピーしてくれるパッケージ。
詳しい説明は[開発者の方がQiitaに記事を書いている](http://qiita.com/t9md/items/3c38b68f1934608efca2)のでそちらを参照してほしい。

### vim-mode-plus

URL: https://atom.io/packages/vim-mode-plus

[vim-mode](https://atom.io/packages/vim-mode)をフォークして作成されたパッケージ。
前述の通り残念ながらex-modeが使えないが、精力的に改良されておりかなり使い勝手が良くなっている。
Vimキーバインディングが使えないと死んでしまう私のような人種には非常にありがたいパッケージである。

### web-search

URL: https://atom.io/packages/web-search

選択した文字列をWeb検索できるパッケージ。
デフォルトで入っている検索エンジン以外も追加でき、例えばPHPマニュアルを検索するといった利用方法が可能。
日本語がCJKフォントで表示されて見栄えがよろしくない場合は[Atomのwebview内のフォントを変更する](http://qiita.com/from_kyushu/items/3f818a80ba7e58d356dc)を参考にしてほしい。

## 使用中のテーマ

### atom-dark-ui-slim

URL: https://atom.io/themes/atom-dark-ui-slim

[atom-dark-ui](https://atom.io/themes/atom-dark-ui)のタブやツリービューをやや細身にしただけのもの。
シンタックステーマと違ってインターフェイステーマは黒系であればよく、各パーツが小さめであればなお良いと思っているので、探して見つかったこれをずっと利用している。

### atomcasts-syntax

URL: https://atom.io/themes/atomcasts-syntax

RailsCast風のシンタックステーマ。
前までは[railscast-theme](https://atom.io/themes/railscast-theme)を利用していたが、Markdownに対応していなかったためこのテーマを利用することにした。