私の開発環境 Emacsさんの話

年末年始にかけてで色々と掃除して整えてみたので、私の開発環境晒しでも。

メインで使用しているエディタは、Emacs 24.5です。
使い始めた理由は 尊敬するお師匠様がEmacs使いだったから というそれだけだったのですが
8年ほど使い続けていたら、もう他には移動できねーぜ!!という完全なEmacserになってしまいました。
一応、他にも SublimeTextやらAtomやらPyCharmに移動しようとしてみたのですが

スクリプト書いてる途中にマウス持ちたくない(腱鞘炎持ちなのであんまりマウスを長時間持てない)
→SublimeTextもAtomも所々マウスが必要になるのが面倒だった
PyCharmやEclipseはエディタの領域狭い

等、諸々の理由から却下しました。
一時期、EmacsがAuto-Complete使用時に死にまくる現象がおきていたのでEmacsの代替を探していた時期もありますが、
24.5にバージョンアップするついでに設定を全部見直して掃除したら直ったので、Emacsさいきおう!!になりました。

起動が遅い等言われますが、仕事スタートした時とPC再起動する時以外は再起動しないものなので気になりません。
それよりも、ファイルの選択やコマンドプロンプト使用やら、Grepしたりとか諸々の動作をマウスをさわらずゴリゴリできる
事にメリットが大きいかなぁと思っています。

Emacsの設定

emacsは、init.elに↑のように書いておいて
細かいelに分けて設定をロードするようにしています。

emacs_init

設定はこんな感じに。
中には使ってないのもあるのですが、まぁごくごくまれに使うこともあるし…ってことで残してあります。
スタート画面は飛ばして、ツールバーやスクロールバー(出してると重い)を削除
5秒おきにオートセーブ、括弧の補完
見た目をcolor-themeで変更(いまはspacemacs-darkを使用)
というのが全体設定で、それ以外は主にPythonをメインに色々設定を加えています。

行表示は、いままで入れていたものの
入れるとすこぶる重くなるし、なしでもあんまり困らないので消しました。
(軽くなる設定書いてもあまり変わらなかった…)

Pythonの編集には elpy を使用しています。
関数や変数名の補完、snippetの使用、インデントラインの表示など
とりあえずelpyを入れておけばpythonをエディットするのに十分です。
Mayaの各種コマンドを、補完できるようにするには

こんな感じに、PYTHONPATHをどこかで通しておいてあげればOKです。

インデント数やら各種補完、あとcompanyでの補完の選択ショートカットやらを↑で設定

emacs_auto_complete

こんな感じでMayaのコマンドも補完できます。
ただし、表示のラグやら見た目はAtomやSublimeTextやPyCharmのほうが良いです。

emacs_python_edit

インデントが多くなると、どこまでが同じインデントなのか分からなくなるので現在の行と同じインデントの所に線を追加します。
全部のインデントに線を引くこともできるのですが、それをすると重いし最高にウザイので現在行のみ表示させています。

+去年のCEDECのテクニカルブートキャンプで「PEP8基準で書くことを徹底する」という事を聞いて
私もPEP8にまじめに従うか…と、がんばってはみたものの
あれをまじめに手でやろうとするとすこぶるめんどくさいし、
余計な事を考えなければ行けなくなって止めそう。
が、こんなの自動でやるツールぐらいあんだろ…と調べたらあったので導入しました。
それが、 py-autopep8
ptyhon 側で pip install autopep8 で、autopep8をインストールしてやり、
emacs側で py-autopep8をインストールします。

1 とりあえず普通に気にせずごりごり書く
2 C-c f で autopep8を実行
3 それでもエラーが出る部分をあとでまとめて手で整形

emacs_pep8

Snippet+Flymakeでチェック(エラーがあると赤線が入る)→AutoPep8実行 するとこんな感じ。

この流れで深く考えずにPEP8準拠でのコーディングができるようになりました。
一通りは対応するようにしているのですが、唯一 1行を79文字以下で書く というのだけスルーしています。
というのも、Pythonはインデントの言語なので、少しでもインデントが深くなるとすぐに79文字をオーバーします。
それで、1行を改行していくと場合によっては最高に見にくくなってしまうというのが多発してしまうからです。
(極力インデントが深くならないように気をつけてはいるのだが…)
後で調べたら、いまはPEP8のほうでも100文字だかそこらまで緩めるようなことが書いてあったので
これぐらいは許してねってことで。

elpyを入れていると、Flymakeを使用したエラーチェックが走るので、PEP8に準拠しているか
SyntaxErrorがないかは都度チェックしてくれます。
いままではPEP8に準拠しないで書いていたせいで、コレを入れるとコードが真っ赤かになってしまったのでOffってたのですが
PEP8に対応するようになってからFlymakeのコードチェックがちゃんと働くようになったので
アホなミスは早い段階で発覚できるようになったのが副産物です。(・ワ・)<やったね

79文字制限他、チェックをしたくないものを外すには、
HOMEに指定してるフォルダ直下に ~/.flake8 ファイルを作成し、その中に

こんな感じでチェック項目を書いてあげます。
これで、Flymakeのチェックの時に79文字制限の時のエラーを表示しないようにできます。
この辺の参考は → Configuration flake8 を参考。

さらに、autopep8での整形からも外すには、

を追加します。

それ以外によく使ってるのはag-helm(Grep),anzu(置換),etom.el(Mayaとの通信)あたり。
あと、Sphinxで文章を書くときのAuto-Completeで auto-complete-rst とか。

いま開いているバッファをMayaでさくっとテストしてみたいときとかに有効ですけど、
いつもスクリプトエディタで実行してしまうので最近あんまり使ってないですがががが。
それ以外にも、これほしいなー と思うモノは先人の誰かが作ってくれているので、自分の良いように調整がきくのがEmacsの素敵な所。
Lisp言語は一切書けないし、未だにこれどうやって書くんだよ!!!!ってLvですが、コピペでOKなので
割となんとかなります。

とまぁ、Emacsを全力で押してみましたが、
オススメのエディタはなんですか?と聞かれても、正直Emacsはすすめられない(素直にAtomやSublimeTextをすすめる)です。
エディタとして使えるようにするまでの敷居が高すぎます(汁
一応、上に書いた内容はAtomでもSublimeTextでも、もっと簡単に出来るはずですしね…

Emacs関係では るびきち「日刊Emacs」 と、るびきちさんの著書 Emacsテクニックバイブル を参考にしています。

エディタでゴリゴリ書くまではこれでOK!!だったりするのですが、デバッガつかったりする時はコレだと不足だったりするので
そこは PyCharm で補ってます…が、長くなったので、PyCharmあたりは次で紹介!!続く!!

私の開発環境 Emacsさんの話」への3件のフィードバック

  1. Hello Remiria!
    Thanks for share this. I am trying to bulid my emacs development environment for maya, but I can’t find some lisp files like maya.el in internet. I wish you would share your .emacs.d file or whole of emacs files with me.本当にありがとうございます!

コメントを残す

メールアドレスが公開されることはありません。


*