読者です 読者をやめる 読者になる 読者になる

Sublime Text から Atom へ乗り換えチャレンジ

プログラミング 日記

なぜ

JavaScript を書いているときにやたらと React のスニペットが表示されるようになって*1, これが大変迷惑だったためです.

本来は同ファイル内に存在する識別子名を補完してくれるのですが, 謎のスニペットが出るものの欲しいものが出てくれません. 他にも constructor が補完されたと思って適当に確定すると constructor(props){ super(props); } みたいになるなどもあります.

あと, こちらは割とどうでも良い理由として Haskellシンタックスハイライトが (標準・拡張含め) 残念というのもあります.

設定

概ね Sublime Text と同様の機能が Atom にもあるので, できるだけストレスを感じないように極力同じように設定しました. これは個人の好みの話なのでここで特に詳しくは説明しませんが, Sublime Text の頃から使っているキーバインド

'atom-workspace atom-text-editor:not([mini])':
  'cmd-down': 'editor:add-selection-below'
  'cmd-up': 'editor:add-selection-above'

は便利なのでおすすめです.

タブとサイドバー

Sublime Text で開いているファイルを管理する方法はタブとサイドバーの 2 つが提供されているのですが, どうも Atom ではタブのみのようです*2.

個人的にはタブは縦幅をとる割に表示できる情報量が少ないと思っていて, Sublime Text ではタブを非表示にしてサイドバーのみを使っていたのですが, Atom ではこれができません.

おそらく同じようなことを考えている人はいて, Package を検索するとSublime Text と同じように Tree View の上に開いているファイルを表示する拡張がいくつか見つかるのですが, これらがことごとく使い物にならないものばかり*3で話になりません.

仕方がないので自分で tree-view-panes という Package を作りました. タブをほぼ代替できるだけの機能は実装しています.

atom.io

以下は何をするかあまり考えていなくてやたら手間取っているデモです.

f:id:susisu:20170219044432g:plain

というわけでタブは Settings > Packages から tabs を無効にすることで消して, こいつを使っています. 副作用として, Atom ではディレクトリを開いていない時はサイドバーが表示されないので, そういうときはちょっと困りますが, そんな状況はあまりないので良しとします.

その他

デフォルトでは Haskellシンタックスハイライトがないのでこれを入れた (Haskell 開発環境周りは他にも色々あるけどまだ試せていない). atom.io

ファイルアイコンが表示されておしゃれになる. atom.io

Ctrl(Cmd) + Shift + K でアクティブな Pane が拡大される (Sublime Text にも同様の拡張があるらしいけど知らなかった). atom.io

Featured Packages になんかいい感じの拡張が表示されて便利.

そういうわけで

まだ Sublime Text で使っていた拡張機能の代替を探したりしていないので完全というわけではないですが, 無事移行できそうな感じです. 何か Atom のおすすめ拡張機能などあれば教えてください.

あと, もし tree-view-panes が気に入ったら何か買っていただけるとやる気が出ます.

*1:なんか拡張入れたせいかと思ったのですが, それっぽい拡張全てアンインストールしても変わらなかったので標準っぽい?

*2:サイドバー (Tree View) には開いているディレクトリが表示されるだけで, 開いているファイルの一覧は表示されない

*3:どれも Split Up (Left) すると Pane の順序がおかしくなったり, 機能が全然足りていなかったりする