ATOMエディタにインストールしているパッケージ 2017

最近になって、ATOMを使うようになりました。
ATOMもパッケージの仕組みが整備されているのですが、おすすめのパッケージが何か分からないので、
紹介しているサイトを色々見回って、自分でも試してある程度入れてみました。
※下記の貢献度は個人的な指標です。

（2017/05/23）
数が増えてきた（重くならんかな・・・）ので、カテゴリ分けしました。
今後、できるだけスクリーンショットなども載せていきたいと思います。

（2018/04/02）
久しぶりにナイスなパッケージ（atom-ide-ui）を見つけました。

# 入れているパッケージ一覧

## エディタの操作を効率化するパッケージ

### atom-ide-ui

**貢献度：A**
去年の9月ごろリリースされていたにも関わらず、全く気づいていませんでした。。

IDE（統合開発環境）によくある、
* 定義元ジャンプ
* エラーチェック
* アウトラインビュー
* スマートな自動補完
などをサポートします。

上記はずっとほしいと思っていた機能でした。
IDEに近づける系のプラグインは軽さが代償になることが多いのですが、このパッケージはさほど重くならず高評価です。
ただし、プチIDE化です。

特に定義元ジャンプが助かっています。
EclipseやNetBeansを離れるときに一番心残りだったのがこの機能でした。
Sublime Textや、ATOMでも思った通りに動くパッケージがなく苦労していましたが、これで救われそうです。
言語にあわせてサブパッケージを入れる必要があります。私は
* ide-php
* ide-json
をインストールしています。

### vim-mode-plus

**貢献度：S**
個人的に開発用のエディタにはviキーバインドが手放せません。
マクロは使えませんが、基本的なキーバインドは再現できます。
vimエディタも併用して使っているため、基本的なキーバインドで事足りてます。
デフォルトではクリップボード用のレジスタとヤンクレジスタが同じところに入ります。
個人的にはプット（p）する内容とペースト（cmd+v）する内容は別の方がいいので「Use Clipboard As Default Register」のチェックは外しています。

### vim-mode-plus-keymaps-for-surround

プログラムを書いていると、

- 引用符で囲む/取り除く
- シングルクォーテーション/ダブルクォーテーション変換

のようなことをしょっちゅうやりたくなります。

surround.vimというvimプラグインがあります。
このパッケージはそのATOM版です。特定のキーストロークで上記の操作を効率良く行うことができます。
余談ですが、surround.vimの素晴らしさが今日になってようやくわかりました。

vim使いでない方はtoggle-quotesなんかがよいかもしれません。

### vim-mode-plus-ex-mode

**貢献度：D**
exコマンドを一部再現します。
それほど試せていませんが、画面分割（:vs）が再現できるのには驚きました。
（2017/05/25追記）
対応しているコマンドはそれほど多くありません。
（globalコマンド、substituteコマンド、normalコマンドがあればよいのですが・・・）

### emmet

```:html
/* こう書いて最後にCtrl+e（コマンドパレットからでもOK）すると */
.container>nav.global>ul>li*5>a
```
```:html
/* 一瞬でここまで展開されます */
<div class="container">
  <nav class="global">
    <ul>
      <li><a href=""></a></li>
      <li><a href=""></a></li>
      <li><a href=""></a></li>
      <li><a href=""></a></li>
      <li><a href=""></a></li>
    </ul>
  </nav>
</div>
```

**貢献度：S**
これがないと今やhtmlコーディングは成り立ちません。
特定のワンライナーをhtmlタグに変換します。
普通にhtmlタグを打つより数十倍は速くなるでしょう。

### atom-alignment

**貢献度：A**

```:php
    // 下記のコードをまとめて選択して
    $price = 100;
    $amount = 3;
    $sum = $price * $amount;
```

```:php
    // コマンドパレットから「Atom Alignment: Align」を選択すると、「=」が揃います。
    $price  = 100;
    $amount = 3;
    $sum    = $price * $amount;
```
Sublime TextやVimでも多用する記号の整列です。
いちいち一つづつカーソルで下に動かしてスペースキーを叩いたり・・・などしてられませんので。


### sequential-number

**貢献度：A**

複数選択した箇所に連番を付けていきます。
プログラミング/コーディングに連番をつけることは日常茶飯事ですが、とにかく面倒です。
今まではVimにコピペしてビジュアル範囲指定やマクロを駆使して作り上げていました。
それでもまだまだ面倒でした。
コマンドを実行させると連番用の構文を入力するウィンドウが開きますが、シンプルなのであまり迷わないでしょう。
もちろん「１」からでなくてもいいですし、「2ずつ減算」なども簡単にできます。
Vimに移ることが少し減って効率アップしました。
1, 1, 2, 2, 3, 3, ...　というような入力もできればもっといいですね。

[sequential\-number](http://webdesign-dackel.com/2015/11/22/atom-sequential-number/)


### Docblockr

**貢献度：A**
Docコメントを素早く作れるパッケージ。
Docコメントは普通に書こうとするととても面倒です。
Docblockrを入れると「/**」と入力して改行するだけで（PHPの場合）、Docコメントの雛形を作ってくれます。

```:php
/*
例えばこんな関数があるとき、関数の上の行から 「/**」と入力して最後にEnterキーで 
*/
/**
function getItemInfo($id = null, $something = false)
```
```:php
/*
引数名や型など、できる限りの補完を一発で生成します。
*/
/**
 * [getItemInfo description]
 * @param  [type]  $id        [description]
 * @param  boolean $something [description]
 * @return [type]             [description]
 */
function getItemInfo($id = null, $something = false)
```

### autocomplete-*

**貢献度：A**
オートコンプリート系を色々入れています。
「*」には「javascript」「php」「json」など。
~~autocomplete-plusはとりあえず入れておけ的なものらしいです。~~
使っている言語のオートコンプリートは一通り入れています。
引数の変数名が示されるので、調べる手間が省けることも多いです。

(2017/07/03追記)　autocomplete-(plus|html|css)はATOMインストール時に最初から入っている状態になっていました。

## ATOMエディタの機能強化

### project-manager

**貢献度：B**
Sublime Textもそうでしたが、標準ではプロジェクトの扱いが貧弱です。
プロジェクトの切り替えや作成などをやりやすくします。

### open recent

**貢献度：B**
ATOMって、そのままでは「最近開いたファイルを開く」がないんですね。
これは必要です。
下記の「Open Recent」というメニューはこのパッケージを入れると追加されます。

![スクリーンショット 2017-05-24 10.30.41.png](https://qiita-image-store.s3.amazonaws.com/0/27902/66dad369-9f75-fb1f-4b6e-f33b29714eb6.png)

### color-picker

**貢献度：B**
カラーピッカーをサポートします。
RGB、HEXなど主要な記法はサポートしています。
もちろん不透明度も普通に設定できます。

ショートカットやコンテキストメニューに割り当てられるようですが、コマンドパレットからの使用でも充分に便利です。

## ATOMエディタに組み込む便利な付加機能

### termination

**貢献度：S**
ATOMエディタの下からビュッとターミナルが出現します。
このターミナルの素晴らしいところは、開いているファイルのパスがカレントディレクトリになることです。
（初期設定では、プロジェクトのディレクトリを開くようになっています。
私は「Working Directory」の設定を「Project」→「Active Fileに」変更して使っています。）
さらにログインシェルや設定も普段ターミナルソフトを使っている状態そのままで再現できます。
（普段はzshを使カスタマイズしまくって使っているのに、ここだけBashでカラーリングも味気ない、ということがありません。
ここからpecoが使えるとか、感動モノです。）

ターミナルなので色々できます。
開いているファイルと同じディレクトリにある他のファイルを開いたり（Anythingで絞り込むよりも速いはず）、
開いているファイルの複製を大量に作ったり、
diffを取ったり、
ということも素早くできるでしょう。
今まではiTermに移動してやっていたので、これは大幅な効率アップです。

最近は純粋なvimとの使い分けでもTerminationからの起動で効率が上がるのではないかと期待しています。
（今までは開発用のサブエディタとしてMacVimを使っていました。）

入れてみて一発で気に入った必須パッケージです。

もともとはterminal-plusを入れていたのですが、動作しなかったので（githubのissueにもあがっている）調べてこのパッケージに行き着きました。

### split-diff

**貢献度：A**
2画面でファイルの差分をビジュアル表示するものです。

Windowsを使っていたころ、差分はDfというソフトを使っていました。
軽くて非常に使いやすかったのですが、Macに移行してからはターミナルからdiffを打っていました。
ビジュアルで確認できるソフトがほしいと思っていましたが、ATOMのパッケージで解決です。

ただし、diffコマンドを使わなくなったわけではありません。
上述の「termination」からdiffコマンドを打つこともあります。

## ATOMエディタのビジュアル

**貢献度：B**
### atom-bracket-highlight

htmlの閉じタグやプログラムの閉じ括弧など、対になる記号を少し分かりやすく表示してくれます。
もともと、対の記号を表示するようにはなっていますが、もう少し分かりやすくなります。
地味に便利なパッケージ。

### file-icons

**貢献度：B**
サイドバーやタブにあるファイルアイコンが分かりやすく色付きのアイコンになります。
アイコンが変わる程度・・・と思っていましたがサイドバーの一覧を見ると非常にわかりやすい。食わず嫌いでした。
例えばphpとhtmlとjsでアイコンが違います。派手なアイコンではないのにわかりやすいことが特長です。タブの切り替えにも一役買います。

### expose

**貢献度：C**
MacのExposéやブラウザのスピードダイヤルのように、開いているタブをタイル状に並べて表示します。
この手のエディタはタブを大量に開くことがあるので、少し見つけやすくなります。
ただしプレビューされるわけではないのでファイル名を頼りに探すことにはなります。


# 現在お試し中のパッケージ

現在お試しインストール中のパッケージです。
これはいいと思ったら追記します。（逆にひっそりと消すかもしれません・・・）

- language-markdown
- git-plus
- git-log
- merge-conflicts
- lint
- lint-*

# インストールを見送ったパッケージ

あまり便利になるとは思えず、インストールを見送ったため強化していない機能もあります。
（実はインストールしておいた方がいい！のは教えてください・・・）

### FTP関連

「remote-ftp」というパッケージがありますが、設定を1つしか書けない、と聞いたので。
おとなしくFilezilla使っておきます・・・

### スニペット管理

そもそもパッケージ自体存在するのか不明です。
GUIでスニペット管理できるパッケージが見つかりませんでした。

なぜこんなものがほしいというと、
ATOMのスニペットは、snippets.csonという1ファイルにすべてを書き込む仕様になっています。
複数行のスニペットが多いので、膨れ上がり、編集しにくくなることが容易に想像できます。
1スニペット1ファイルで管理するSublime Textの方が分かりやすかったです。