ここ1.5年くらいSublimeText2をメインエディタとして利用していたのですが、1ヶ月程前にAtomに完全移行しました。まだ動きが不安定な部分はありますが、パッチはすぐに当たりますし、有志の方々のおかげでパッケージが揃ってきたこともあり、大分手に馴染んできたので、利用しているパッケージとパッケージ管理について、自分の頭の整理も含め紹介してみたいと思います。これから使ってみようと思ってる方や、使い始めた方へ少しでも参考になれば幸いです。
追記
2014-11-13
- パッケージ一覧にask-stackを追加
2015-01-10
- パッケージ一覧のみ抜粋し、Qiitaに移管しました。パッケージに関してQiitaの記事をご参照ください。
パッケージ一覧
- atom-beautify (https://atom.io/packages/atom-beautify)
- autocomplete-emojis (https://atom.io/packages/autocomplete-emojis)
- 絵文字を補完候補に含めてくれる
- みんなが大好きな「:sushi:」ももちろん含まれる
- Requires: autocomplete-plus
- autocomplete-paths (https://atom.io/packages/autocomplete-paths)
- ファイル名を補完候補に含めてくれる
- Requires: autocomplete-plus
- autocomplete-plus (https://atom.io/packages/autocomplete-plus)
- タイピング中に自動で補完候補を出してくれる
- autocomplete-snippets (https://atom.io/packages/autocomplete-snippets)
- スニペットを補完候補に含めてくれる
- Requires: autocomplete-plus
- dash (https://atom.io/packages/dash)
- 選択したキーワードをDash上で検索するショートカットの提供
- file-icons (https://atom.io/packages/file-icons)
- ファイルのアイコンをエレガントに
- highlight-selected (https://atom.io/packages/highlight-selected)
- 選択した単語をハイライトする
- japanese-wrap (https://atom.io/packages/japanese-wrap)
- 日本語用ワードラップ
- language-rspec (https://atom.io/packages/language-rspec)
- linter (https://atom.io/packages/linter)
- 様々なlinter(linter-xxxxx)をサポートするためのパッケージ
- これ単体では意味をなさない
- linter-coffeelint (https://atom.io/packages/linter-coffeelint)
- CoffeeScript用のLinter
- Requires: linter
- linter-erb (https://atom.io/packages/linter-erb)
- ERB用のLinter
- Requires: linter
- linter-rubocop (https://atom.io/packages/linter-rubocop)
- rubocop用のLinter
- Requires: linter
- linter-ruby (https://atom.io/packages/linter-ruby)
- Ruby用のLinter
- Requires: linter
- linter-shellcheck (https://atom.io/packages/linter-shellcheck)
- Bash用のLinter
- Requires: linter
- minimap (https://atom.io/packages/minimap)
- SublimeTextでお馴染みのアレです
- rspec (https://atom.io/packages/rspec)
- rails-transporter (https://atom.io/packages/rails-transporter)
- 関連ファイルへのjump
- recent-files (https://atom.io/packages/recent-files)
- 直近で開いたディレクトリを記憶してくれるので、ふとした時に開ける
- デフォルトは10件
- script (https://atom.io/packages/script)
- 開いているスクリプトファイルを実行できる
- sublime-style-column-selection (https://atom.io/packages/Sublime-Style-Column-Selection)
- SublimeTextの短形選択(option + マウス選択)ができる
- term2 (https://atom.io/packages/term2)
- Atom上でターミナルが使える
- ask-stack (https://atom.io/packages/ask-stack)
- Atom上でStackOverflowを閲覧できる
パッケージ管理
Atomのパッケージ管理はapmというモジュールが担うのですが、bundler(Gemfile)やnpm(package.json)、composer(composer.json)のように、決められた設定ファイルに利用するパッケージを定義しておく形で管理できるのかと思いきや、そういった形では(タブン...)提供されていません。
じゃあどうパッケージ管理するの?
apmにはstarという機能があって、私はこのstarを使うことで管理・運用しています。starはパッケージに対して付与することができ、atom.io上で管理されます。この機能を利用して、
- 気になるパッケージをinstallする
- 使ってみる
- 気に入ったらstarをつけ、ちょっと違うと思ったらrmする
のようなルールで運用をしています。
自分がstarを付けたパッケージは、https://atom.io/users/<my_account>/star
で確認できます。*1
starの付け・はずしはatom.io上の各パッケージのページでも可能ですが、以下のコマンドで実行することも可能です。
starを付ける
$ apm star packagename
starをはずす
$ apm unstar packagename
starの一覧はatom.ioでも確認できますが、以下のコマンドでも確認ができます。
starを確認
$ apm stars
apmにはこの他にもオプションが存在するので、どんなオプションがあるのか、
$ apm help
で確認しておくとよいかと思います。
starを利用すると何が嬉しいの?
1端末でしかAtomを使わないのであればあまり旨味がないかもしれませんが、私は会社と個人の計2端末でAtomを利用しているため、なるべくスマートに一元管理したいという欲求があります。 ここで、先程のstarが活躍します。以下のコマンドでstarを付けたパッケージをインストールすることが可能なのであります。*2
$ apm stars --install
現状はこんな感じで複数端末でパッケージを一元管理しています。(もっとスマートなやり方があればコメントを頂けると幸いです)
一つだけ懸念としてあるのは、apm stars --install
は毎回全てインストールし直しになってしまうので、今後差分でインストールしてくれるようなオプションが追加されることを期待しています。
OSSへの貢献?
といったら大袈裟かもしれませんが、starを付けることくらいは誰にでもできるはずです。パッケージのAuthorの方もstarがつくと嬉しい(モチベーションになる)はずなので、パッケージを利用するのであれば、starを有効活用して、ユーザーみんなで盛り上げていけたらいいですね!!