at backyard

Color my life with the chaos of trouble.

コードリーディング用エディターとしてのAtom

最近、業務でAtomを使い始めた。
と言ってもコーディング自体はvimで行なっており、
主にテキストファイルを扱ったり、コードリーディングぐらいにしか使っていない。

次世代エディターの代表格だし、
"イマドキ、Atomも触ったことないなんて、あの人ってば現代の生きる化石かしら?"
と言われそうな気がしたので、ここらでちゃんと触っておこうと思ったのだ。

Atomが次世代エディターと呼ばれる所以はインターネット上の記事にたくさん溢れているので、
コードリーディングするのに役立ったプラグインなどを挙げてみる。

自宅でもjavaなどでない限りエディターはvimを使っていたが、
複数のファイルにまたがるようなそれなりに量のあるソースコードを読みたいなと思ったときに、
コードリーディング用にAtonを使っても良いなと感じたので、自宅のMacにも導入した。
(業務ではWinodws環境であり、実際Windows環境で使うとAtomのモダンな見た目が映える気がする)

Atomの良さにプロジェクト単位で開けるというのがある。
"prject manager"というプラグインを導入すると、ここらへんの使い勝手がかなり良い感じになるので、
コールドリーディングにもぴったりなのである。

下記はよく使うショートカットコマンド
Windowsでのキーで記述している。

alt + ¥ : ツリーメニューとエディターを行ったり来たり
ctrl + ¥ : ツリーメニューを出したり閉じたり
ctrl + b : 今開いているタブを検索
ctrl + t : プロジェクト内のファイルを検索
alt + 番号 : 左からN番目のタブを開く
carlos + f : 検索
curl + shift + f : 今開いているプロジェクトで検索

alt + 上下キー : 10行分移動 (要プラグイン)
ctrl + alt + o : アウトラインを開く(こちらも要プラグイン必要)

※要プラグインについては後述します

あと、偶然操作していて気づいたのだが、
ツリーメニュー上だとvimと同じキーで上下左右移動できる。
こういうのは地味に嬉しい。


# Windows環境でのキーバインド

VimEmacsキーバインドを適用するプラグインも試してみたが、
これがちょっと期待外れだった。
その要因としてはAtom自体のキーバインドと被ってしまっていたり、
微妙に競合している部分があったりして、使いにくかったのだ。

そのため、キーバインドについては自身でkeymapに最低限取り入れたい部分だけ書くことにした。
主に基本的なEmacsでのキーバインドになる。
(たぶんちゃんと調べれば満足の行くものが出来上がるのだろうけど、
せっかくなので Atomの操作性にも慣れてみようと思った次第。
色々な操作法に慣れとくと、頭の体操にもなるかもしれないし(適当))

ちなみにMacでは普段から使えるキーバインドであるので、特に何も記載していない。
こういうキーバインドについてもサクッと設定できるのは、Atomの良さの一つかもしれない。

'.editor':
  'ctrl-shift-a': 'editor:move-to-first-character-of-line'
  'ctrl-shift-e': 'editor:move-to-end-of-line'
  'ctrl-shift-j': 'editor:backspace-to-beginning-of-word'
  'ctrl-shift-h': 'core:backspace'
  'ctrl-shift-k': 'editor:delete-to-end-of-line'

  # cursor
  'ctrl-shift-p': 'core:move-up'
  'ctrl-shift-n': 'core:move-down'

利用しているプラグイン

コールドリーディング時に使えると思ったプラグインを記載していく。

ask-stack

Atom内でStackover flowが使える。
勉強がてら色々とあさって見ても良さそうだなと思った次第。

atom.io

go-to-definition

言語が対応していればだが、
定義元のメソッドにジャンプしてくれるやつ
(言語が対応していない場合
"対応していないんだ、プルリクくれよ!"
とメッセージが出た気がする。)

atom.io

project-manager

"こいつがないと始まらない"、ぐらい重要なプラグインだと感じた。
Atomをプロジェクト単位で管理できるやつ。

github.com

file-icons

左のツリーメニューのアイコンを良さげにしてくれるやつ。
こういうのは作業のモチベーションに結構繋がるので案外大切。

atom.io

mini-map

小さなマップをエディターの右側に出してくれる。
でかいソースに直面しても、心理的に優位に立てる。
かもしれない。

atom.io

symbols-tree-view

アウトラインが使えるやつ。メソッドなどを一瞬で把握できるので便利。

atom.io


他にも複数入れていると思うが、
コールドリーディングするときに意識して使用しているのだとこんな感じ。

追記(2016/12/17)

デフォルトのフォントの設定が、コードを読むときにちょっと見づらかったので、
下記の記事を参考にフォントを変更した。
(デフォルトだと少し文字が太めで、窮屈に感じていたので)

Atomエディタでフォントを変更したい時に便利なプラグイン「fonts」 | cupOF Interests

fonts

github.com

上記をAtom上からインストールして、fontsの[setting] -> [Font Family]から"FiraCode"をひとまず設定した。

追記(2017/11/8)

vim-mode-plus

qiita.com

↑こちらの方の記事を偶然見かけ、大変感銘を受け、その流れで導入してみた。
まだ使い始めて間もないので、どこがどう良いか細かくは書けないが、良い感じである。
しばらく使ってみる。


というわけでパッケージとGithubのリンクを。

atom.io


github.com


※追記 2017/11/21
↑しばらく使ってみたが、個人的には違和感なくVimを触っているような気分になる。
とても良かった。