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

an odd fellow

読書と写真と情報工学

Emacs から Atom に乗り換えた

技術 日記

エディタを Emacs から Atom に乗り換えた。

最近は jupyter notebook でざっと書いて Python スクリプトに清書することが多いんだけど、効率的が悪いし何か良い方法は無いかと色々探していたところ Atom に hydrogen という良いプラグインを見つけたので良い機会だったし Emacs から Atom に乗り換えた。

正確には Spacemacs から Atom に乗り換えた。Spacemacs は良かった。良かったがゆえに最初からきちんともろもろ使い良く揃っているエディタの良さにも気づいてしまった…。

atom.io

https://i.github-camo.com/391fdd5cb8d7b51881055353aa056557dd985f2f/68747470733a2f2f636c6f75642e67697468756275736572636f6e74656e742e636f6d2f6173736574732f3833363337352f31343035343132382f62663836636637302d663261342d313165352d383031342d3537383430633962376133302e676966

この GIF が全てを物語ってる。jupyter のセルでやってることをピュアな Python スクリプト内で出来るのでコピペの手間が無くなった。

.atom の管理

当然エディタの設定は git で管理して他の環境でも使えるように githubホスティングしたいので$HOME/.atomを git の管理下に置いた。

github.com

パッケージ管理

Atom にはパッケージ管理用のコマンドラインツールが付随していて、こいつを使うとスターをつけたパッケージを一気にインストールできるので、これでパッケージを管理してもいい。

qiita.com

しかし apm はインストール済みかどうかチェックしないので、apm stars --install を叩くとめちゃくちゃ遅い。そこで、Ruby の Bundler のように入れたいパッケージ名を一行ずつ書いたテキストファイルを atomfile という名前で管理して、一行ずつ読み込んでは $HOME/.atom/packagesを見てインストール済みか否かチェックしてからインストールするようなスクリプトを書いた。こんな感じ。

gist.github.com

ついでに各パッケージで必要な deb パッケージとか Python パッケージも make 叩いただけで入るように Makefile 書いた。hydrogen は pip で ipython 入れないといけないし、apt-get で libzmq-dev 入れないといけないので、こんな感じに書く。

gist.github.com

make 便利。

hydrogen

便利。超ベンリ。ただ、ちょっとばかし遅い。slime とか cider みたいな repl 駆動開発をリッチにした感じ。リッチ repl 駆動開発だ。他の言語もこういう感じで書けないのかしら。

Dependencies の Linux の項目にlibzmq3-dev (preferred) とあるけど Ubuntu14.04 だと libzmq3-dev では hydrogen が動かなくて libzmq-dev を入れる必要があった。はまった…。同じ問題ではまる人なんとかこのブログにたどり着いて欲しい。

2016/4/25 追記

libzmq-devlibzmq3-dev の違いがよくわかったので追記。

hydrogen を apm でインストールする前に libzmq1 が入っていれば libzmq-dev で動きます。libzmq3 が入った環境で apm で hydrogen でインストールすると libzmq3-dev でないと動きません。

詳しくはここ

github.com