【超おすすめ!!】Atomのパッケージ、テーマ、キーバインディング、設定を紹介してみる(※随時更新)

  • 1333
    いいね
  • 3
    コメント

前置き

【Atom】Web開発者達によるWeb開発者の為のエディターについて
前回の投稿↑で書いた、おすすめパッケージに加えて、おすすめのテーマ、キーバインディング、設定を紹介していきたいと思います!

下の方に一括インストール用のテキストと、説明を用意したので、気に入って頂けたなら是非それでインストールしてみて下さい。
また、「このパッケージ便利だよー」みたいなのがあれば、是非コメントで教えて下さーい。
(`・ω・´)b

※最近はRails等のRuby関連の仕事が多いので、これから紹介するパッケージもそっち寄りの物が多いです。

追記:
凄いストックされてるーw Σ(´ @ ω @ `)
ストック、はてブ、ツイート等、皆さん、ありがとうございます!

Atomを使うなら絶対入れるべき!な鉄板パッケージ(アルファベット順)

autocomplete-paths

オートコンプリートにプロジェクト内のファイルパスを追加してくれるパッケージ。
画像とか追加する時に便利ー。

color-picker

前回の投稿でもちょろっと紹介した、カラーピッカー機能を追加するパッケージ。
色コードの直感的な選択が出来、現在のカラーと選択中カラープレビューが違い分かり易くめっちゃ便利!
出力形式もRGB、HEX、HSL、HSV、VECを選択出来るので、形式変換したい時にも便利です!
ダウンロード数的にも、「Atomを使うなら絶対入れるべき!」なパッケージだと思います。

highlight-selected

選択したテキストが同じファイル内に有る時にそれらをハイライトするパッケージ。
動作的にはSublimeTextそのまんまって感じですねw
同じテキストがハイライトされるので複数選択する時とかの分かり易さが格段に上がります。
※時々コンテキストの所為か、上手くハイライト出来ない時がありますが、直に修正されるでしょう。

japanese-wrap

Atomはデフォルトだと日本語テキストの幅がおかしくなっていて、Soft Wrapを有効にしたときに上手くラップ出来ない事があります…
それを解決してくれるのが、このパッケージです。日本語を入力する必要があるなら是非入れましょう!

パッケージの説明で「Atom 1.0 では本パッケージの修正部分が対応されるため、不要になる予定です。」と書いてありますが、現段階ではこのパッケージを入れないと、文字幅の認識がおかしいままです…
(´・ω・`)

※このパッケージの注意点ですが、等幅フォントしか対応していないので、プロポーショナルフォントを使いたい人は注意が必要です。
プロポーショナルフォント様にはatomiccharと言うパッケージがあるみたいです。

Atom 1.2.0 から日本語のソフトラップがパッケージを入れずに行える様になりました。

v1.2.0 (2015-11-12)

Notable Changes

・Soft-wrapping now works correctly with a larger variety of non-Latin characters, including CJK.
・Atom no longer attempts to save unmodified files when the "Save All" command is dispatched.
・Atom is now based on Electron 0.34.0.
・Test runners can now be customized on a per-package basis. See the documentation for more information.

引用元:https://atom.io/releases

確認をお願いします!!
この影響でこのパッケージを入れていると日本語のラップがおかしくなってしまう(確認したのはLinux版 v1.2.1です)ので、既にインストールしている人は「Preferences > Packages」の所で「wrap」と検索してこのパッケージを「Uninstall」で削除するか、「Disable」で無効にして下さい。

jumpy

アルファベットの組み合わせで、好きな所にカーソルをジャンプ出来る機能を追加するパッケージ。
表示されているPaneをまたいで移動する事も出来るのでめっちゃ便利です!
(`・ω・´)b

maximize-panes

Paneを分けて編集している時に、このPaneをちょっと大きくして作業したいなって時ありませんか?
そんな時は境界をドラッグして、Pane大きさを変えるのが普通だと思いますが一々大きくして、また戻すとかって面倒臭いですよね…それを解決してくれるのがこのパッケージです。
設定したショートカットを押す事で現在作業しているPaneを最大化する事が出来て、かなり便利です。
※Paneの分割の仕方に依って、上手く最大化出来ない事がありますが、直に修正されると思います。
(´・ω・`)

minimap

SublimeTextの様なMinimap機能を追加してくれるパッケージ。正直言ってSublimeTextではあまりMinimapを使っていなかったのですが、これから紹介する物を含め、Minimapに関連するパッケージが中々優秀なのでAtomでは使う様にしています。

minimap-autohide

Minimapを自動で表示、非表示にしてくれるパッケージ。
上でちょろっと説明しましたが、作業中Minimapには基本的に隠れていて欲しいのでこのパッケージを入れてまーす。

minimap-bookmarks

MinimapにBookmarkした行をハイライト表示してくれるパッケージ。
どこにブックマークがあるか分かり易くて便利ー。

minimap-git-diff

MinimapにGitのdiff情報をハイライト表示してくれるパッケージ。
ファイル内でどれくらいのボリュームの変更があったかをパッと見で把握出来るので、コミットのタイミング等を考える上で中々重宝します。
これを入れるとMinimapを見ていて「結構変更したなー、そろそろコミットしとくかー」感が出るので、自然にこまめなコミットを行う事が出来る気がしますw

minimap-highlight-selected

上で紹介したhighlight-selectedのハイライト表示をMinimapにも表示してくれるパッケージ。

minimap-pigments

少し順番が前後してしまうのですが、直ぐ下で紹介するpigmentsの機能をMinimapにも表示してくれるパッケージ。

pigments

色情報に関して様々な機能を提供してくれるパッケージ。

メインの機能は色コードをキャッチして、バックグラウンドにその色を付けてくれる機能。
その色コードがどんな色なのかを直感的に理解出来るので、とても便利です!

コマンド紹介

Pigments: Show Palette

プロジェクト内でPigmentsが拾った色変数をパレットとして表示してくれるコマンド。
どんな色を定義したかを一覧で見れるので、色を定義した場所がバラバラの時とか、sassが分かれている時とかに凄く便利です。

Pigments: Find Colors

この機能は色変数と、直接色コードが設定されている物を含め、Pigmentsが拾ってこれる色データ全てを表示してくれるコマンドです。
個人的には、多く使われている色コードを変数化する時の目安とかに使えるんじゃ無いかなーと思います。

Pigments: Convert To Hexadecimal/Pigments: Convert to RGBA

これはcolor-pickerでも出来るのですが、色コードの形式を変換してくれるコマンドです。
右クリックから直ぐ使えるのが利点ですね。

その他にも、オートコンプリートで色変数が候補に出るとその右側に色を表示してくれたりと、本当に機能が豊富なパッケージです!
オプションもかなり充実しているので、インストールしたら一度設定項目を見てみるのをおすすめします。

例えば色の表示方法を変えるオプションでは、下記の表示設定から選ぶ事が出来ます!

background outline underline
dot square-dot gutter

個人的にとてもおすすめなパッケージなので、是非インストールしてみて下さーい。
(`・ω・´)b

project-manager

Atomはデフォルトだとプロジェクトの管理機能がとても弱いのですが、それを補ってくれるのがこのパッケージです!
使用感はSublimeTextのプロジェクト管理とほぼ同じで、とても使い易いです。

プロジェクトの保存や、編集はメニューの「Packages」>「Project Manager」>「Save Project」、「Edit Projects」から行う事が出来ます。

プロジェクトのデータは「ユーザーのルートフォルダー」>「.atom」に「projects.cson」として保存されるのですが、全てのプロジェクトのデータを一つのファイルで管理出来るのも中々使い勝手が良くて良い感じです。

Atomで複数のプロジェクトを管理するのに必須のパッケージ!と言っても過言では無いと思うので、是非インストールしましょう!
(`・ω・´)b

おすすめパッケージ(更新順)

以下のパッケージは作業内容や、好みに依っておすすめ度が変わってくるのですが、個人的に良いなーと思った物を紹介していきます!

git-time-machine

Gitのログを辿って横に並べて表示出来る機能を追加してくれるパッケージ。
一緒に仕事してる開発者から教えて貰って、結構前から使っていたのですが、微妙に動作が不安定でここには追加していませんでした…でも先程https://atom.io/packagesを見てみたらFeaturedで紹介されていたので追加してみましたー。
まだ微妙に不安定な所がありますが「あれっ?ここって前はどうなってたっけ?」って時にめっちゃ便利です!
(`・ω・´)b

blame

エディターの左側にGitのBlame情報を表示してくれるパッケージ。
「ん?何だろうこのコード?(´・ω・`)」って時に誰に聞けば良いか直ぐに分かりますね!(これで犯人探しが捗るな…)
左のBlame情報からコミットのIDをコピーしたり、リンクからその行がコミットされたGithubのページを表示出来ます。

表示リンクのURLは下記の様に設定する事も可能みたいです。これでGitLabやBitbucketを使ってる人にも対応出来そうですね、詳しくはblameのプロジェクトページの説明を見てみて下さーい。

git config --local --add atom-blame.browser-url "http://example.com/gitweb/?p=my_repo.git;a=commit;h={hash}"

autocomplete-sass

sassファイル内でスタイルのオートコンプリートを追加してくれるパッケージ。
AdobeのBracketsに使われているデータを流用してるみたいです。↓
https://github.com/adobe/brackets/blob/master/src/extensions/default/CSSCodeHints/CSSProperties.json

merge-conflicts

GitでMerge時にConflictsが発生した場合の修正を手助けする機能を追加するパッケージです。
GUIが分かり易く、簡単に使えるのが良い感じです!

slim-language

Atomにslimのバンドルを追加してくれるパッケージ。
slim向けにはこれ以外にも幾つかパッケージが出ていて、それこそslimの公式からもlanguage-slimと言うパッケージが出ているのですが、そっちを使うとデフォルトで入るwhitespaceのパッケージの動作がおかしくなるので、今はこのパッケージを使ってます…
(´・ω・`)

sort-lines

選択しているテキストの行を名前順にソートしてくれるパッケージ。
変数の順番をパッとソートしたい時に便利!

tabs-to-spaces

TabのSpace変換、SpaceのTab変換を行う事が出来る様になるパッケージ。
自分はそもそも「Soft Tabs」を使うのですが、他の人が編集したファイル等で、既にTabになっている時もこのパッケージを入れると自動でSpaceに変換してくれるので中々重宝しています。

おすすめテーマ

atom-dark-ui-slim

SublimeTextのユーザーだった人は、Atomを使っていると見た目が綺麗なのは良いんだけど、もっとスリムなテーマ無いのかなー…と思う事があると思います。そんな貴方におすすめなのがこのテーマです。
サイドバーやトップバーをSublimeTextのデフォルトテーマの様にとてもスリムに表示してくれます。

railscast-theme

言わずと知れたrailscastのシンタックスハイライトのテーマです。
個人的にSublimeTextの時からずっとrailscastのシンタックスハイライトを使っているのでAtomでもこれを使ってまーす。
慣れがかなり大きいと思うのですが、やはりこれが一番見易くて、落ち着きますねw

一括インストール

Atomはコマンドラインで使えるapmAtom Package Manager)を使う事でパッケージを一括インストールする事が出来ます!

使い方は簡単でまず初めに下のテキストを「recommend_packages.txt」として、どこか適当な所に保存して下さい。

recommend_packages.txt
atom-dark-ui-slim
autocomplete-paths
autocomplete-sass
blame
color-picker
git-time-machine
highlight-selected
jumpy
maximize-panes
merge-conflicts
minimap
minimap-autohide
minimap-bookmarks
minimap-git-diff
minimap-highlight-selected
minimap-pigments
pigments
project-manager
railscast-theme
slim-language
sort-lines
tabs-to-spaces

保存が出来たらコマンドラインを扱うソフトを起動します。
Windowsなら「Windows PowerShell」、MacとLinuxなら「ターミナル(端末)」でOKです。

起動したら「recommend_packages.txt」を保存したディレクトリーに移動して以下のコマンドを実行して下さい。

apm install --packages-file recommend_packages.txt

これを行う事で「recommend_packages.txt」に書かれたパッケージ、テーマを一括でインストールする事が出来ます!

因みにですが「recommend_packages.txt」は

apm list -ib > recommend_packages.txt

で出来た物からバージョン情報を削除した物です。

おすすめキーバインディング

「ユーザーのルートフォルダー」>「.atom」に「keymap.cson」と言う設定ファイルがあるので、良いなと思ったら是非追加してみて下さーい。
なんでこのキーバインディングなの?についてはコメント部分を見てみて下さーい。

※このキーバインディングはLinux向けの物になってます。その他のOSをお使いの方はごめんなさいです…
でも参考にはなると思うので良ければ見ていって下さーい。
(´・ω・`)

keymap.cson
'.platform-linux atom-workspace atom-text-editor:not([mini])':
  # atom editor --------
  'ctrl-shift-enter': 'editor:newline-above'
  # maximize-panesのパッケージがこのキー設定をオーバーライドしてくるので、ここで設定し直してます。

  'ctrl-i': 'editor:indent-selected-rows'
  'ctrl-o': 'editor:outdent-selected-rows'
  # インデントとアウトデントの設定です。デフォルトの物が上手く動かなかったので、このキーに設定してみました。
  # 慣れると結構使い勝手が良くて、手前味噌ですが中々おすすめですw

  'ctrl-shift-up': 'my:move-line-up'
  'ctrl-shift-down': 'my:move-line-down'
  # これはSublimeTextの影響ですねw
  # それとラインを操作する系は「ctrl-shift」を使うって決まってる方が、複製した後に移動とかが楽で良いかなーって思います。
  # 追記:2015/12/22-詳細は下記の「カスタム設定:行移動時のオートインデントをオフ」にするをご覧下さい。

  'alt-n': 'window:focus-next-pane'
  'alt-shift-n': 'window:focus-previous-pane'
  # これも使い勝手的な意味で「alt」を使う事によって、Paneを移動した後に続けて「alt-1,2,3...」等でタブ移動が出来るのでこの設定にしています。

  'alt-a': 'find-and-replace:select-all'
  # これも修正系ですね。デフォルトのキーが使えなかったので、意味的にも分かり易そうなこのキーに設定しています。

  # maximize-panes --------
  'alt-shift-enter': 'maximize-panes:maximize'
  # 上で書きましたがデフォルトの「ctrl-shift-enter」は別の物に使いたいので、似たような感じのこのキー設定にしています。

# autocomplete --------
'.platform-linux atom-workspace atom-text-editor:not([mini]).autocomplete-active':
  'up': 'my:move-up'
  'down': 'my:move-down'
  # この設定については直ぐ下の所で詳しく説明します。

  'tab': 'core:move-down'
  'shift-tab': 'core:move-up'
  # オートコンプリートの候補をタブで移動出来る様にする為の設定です。
  # この設定には追加で「autocomplete-plusの設定>confirmCompletion: "enter"」を設定する必要があります。

カスタム設定:オートコンプリートの候補をタブで移動できるようにする

keymap.csonのautocomplete部分の「up、down」の所ですが、今現在少し問題を抱えていてキー設定を無効化する「unset!」を使う事が出来ません…Issueは既に有るので直に修正されると思うのですが、「unset!」したい人は取り敢えずこれで対応しましょう。
https://github.com/atom/autocomplete-plus/issues/453
やり方は↑のページに書いてある解決案を、そのまま真似させて貰いました。

init.coffee
atom.commands.add 'atom-text-editor', 'my:move-up', ->
    editor = atom.workspace.getActiveTextEditor()
    atom.commands.dispatch(atom.views.getView(editor), 'autocomplete-plus:cancel')
    atom.commands.dispatch(atom.views.getView(editor), 'core:move-up')

atom.commands.add 'atom-text-editor', 'my:move-down', ->
    editor = atom.workspace.getActiveTextEditor()
    atom.commands.dispatch(atom.views.getView(editor), 'autocomplete-plus:cancel')
    atom.commands.dispatch(atom.views.getView(editor), 'core:move-down')

↑のinit.coffee内容を「ユーザーのルートフォルダー」>「.atom」の中の「init.coffee」に追加するか、置き換えて下さい。
後はkeymap.csonにキー設定が入っていれば自動的に動作しまーす。

カスタム設定:行移動時のオートインデントをオフにする

v1.3.0 (2015-12-10)の更新で下記の行移動時に自動でインデントする機能が追加されたのですが、これが不具合を起こしていて、一行だけの移動なら良い感じに動いてくれるのですが、複数行を移動させる時にファイルタイプにも依りますが、結構な確率でコードの構造を壊してしまいます…その問題の取り敢えずの解決法を考えたので、かなり微妙なやり方ですが紹介してみたいと思います。

v1.2.4...v1.3.0
...
atom/atom#9104 - autoindent lines with moveLineUp/moveLineDown on November 3rd 2015
...

引用元:https://atom.io/releases

手順は簡単で、まずはinit.coffeeに下記のコードを追加します。

init.coffee
atom.commands.add 'atom-text-editor', 'my:move-line-up', ->
  editor = atom.workspace.getActiveTextEditor()
  if atom.config.get('editor.autoIndent')
    atom.config.set('editor.autoIndent', false)
    editor.moveLineUp()
    atom.config.set('editor.autoIndent', true)
  else
    editor.moveLineUp()

atom.commands.add 'atom-text-editor', 'my:move-line-down', ->
  editor = atom.workspace.getActiveTextEditor()
  if atom.config.get('editor.autoIndent')
    atom.config.set('editor.autoIndent', false)
    editor.moveLineDown()
    atom.config.set('editor.autoIndent', true)
  else
    editor.moveLineDown()

あとは上記keymap.csonの↓部分で、追加したコマンドを使える様に設定すれば完了です。

keymap.cson
'ctrl-shift-up': 'my:move-line-up'
'ctrl-shift-down': 'my:move-line-down'

atom/atom#9104 - autoindent lines with moveLineUp/moveLineDownのページを見て貰えれば分かるかと思うのですが、GitHubの中の人が、この問題に対応出来るまで一旦この機能削除した方が良いかも的な事を言っているので、この設定は次の更新で不必要になるかもしれません…その時はまたここでお知らせしますねー。

おすすめ設定

「ユーザーのルートフォルダー」>「.atom」に「config.cson」と言う設定ファイルがあるので、良いなと思ったら是非追加してみて下さーい。

設定は余り説明する事が無いのですが、コメントで簡単に解説してみたいと思います。

config.cson
"*":
  welcome:
    showOnStartup: false
  core:
    themes: [
      "one-dark-ui"
      "railscast-theme"
    ]
    # UIテーマはデフォルトのやつを、シンタックスハイライトはrailscastのを使っています。
    destroyEmptyPanes: false
    # デフォルトではtrueですが、個人的にこっちの方が作業効率が良いのでfalseにしています。
  editor:
    invisibles: {}
    showIndentGuide: true
    softWrap: true
    # softWrapは好き嫌いが分かれそうですが、自分は使う派でーす。
    fontFamily: "Ricty"
    # フォントはずっとRictyを使っています。とても見易くて良いフォントだと思います、全角スペースがデフォルトで「◯」になるのも便利。
    preferredLineLength: 100
    # これは規約に合わせて変更すれば良いと思うのですが、自分は100でやってまーす。
    scrollPastEnd: true
    # これをtrueにしておくとテキストが終わってもスクロール出来るので見易くて良いですね。
  "autocomplete-plus":
    autoActivationDelay: 0
    strictMatching: true
    minimumWordLength: 1
    confirmCompletion: "enter"
    # デフォルトだと「tab and enter」になっていて上で説明したキーバインディングが使えなくなるのでenterのみに変更してます。
    defaultProvider: "Fuzzy"
    # 推奨の「Symbol」の挙動が微妙なのでFuzzyにしてます…(´・ω・`)
  whitespace:
    ignoreWhitespaceOnCurrentLine: false
    # デフォルトだとtrueですが、falseにするとSublimeTextと同じ動作になるのでしっくりきます。
  minimap:
    plugins:
      "git-diff": true
      bookmarks: true
      "minimap-autohide": true
      "highlight-selected": true
      pigments: true
  "tabs-to-spaces":
    onSave: "untabify"
  jumpy:
    highContrast: true
    fontSize: 1
    # デフォルトだと少し見難いのでhighContrastをtrueにしてfontSizeも大きくしてまーす。

Atomの設定に関してですが、autocomplete-plusやwhitespaceの様にデフォルトで入っているパッケージでも「Preferences」>「Settings」に設定が出て来ないパッケージが結構あるので、一度「Packages」の「Core Packages」を見てみて、どんなパッケージが入っているのか、どんな設定が出来るのかを確認してみる事をおすすめしまーす。
(`・ω・´)b