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

handlename's blog

コード片など

atom から emacs に戻ったはなし

.emacs.d が事故で消えてからはや半年、 そのあいだ atom を使っていたのだけど物足りない感じがしてきたので 一から emacs の設定をしたはなし。

リポジトリはこちら。 いちいちリポジトリ毎作りなおすのが面倒だったので、 タグ を切って ファイルを全消しするスタイルにした。

handlename/dot-emacs

移行したもの

quelpa

なんか新しいらしい。 "ケルパ" って読むのかな?

el-get から移行。 el-get はキャッシュファイル(?)が壊れるとリカバリーが面倒だったので。 (そんなに頻繁になることではないから、実質大した不満はなかったのだけど)

自分でレシピを追加できるのがいい。 でもまだ MELPA にあるものしか使ってない。 気に入らなくなった時に package.el にすぐ戻れそうなところもいい。

projectile, helm-projectile

自前のプロジェクト移動機能 (.emacs.d が消えた時に消失) から移行。 "helmインターフェイスでプロジェクト選択 -> そのままファイル絞り込み" ができて便利。

プロジェクトの追加が自動なので、 ちょっと開いただけのディレクトリがどんどん追加されていくのでちょっと不便。

ghq に対応させたい。

多機能っぽいので使いながら他の機能も調べてみる。

flycheck

flymakeから移行。 というか一時期から flymake すら使っていなかった。 やっぱりあったほうが便利。

elisp で warning (You should have a section marked ";;; Code:" みたいなやつ) が出まくるのがうざい・・・。 シンタックスチェック用のコマンドを差し替えれば回避できそうなので もうちょっと調べてみる。

新しく追加したもの

theme

今まで1つずつ設定していたのを、ちゃんとthemeを使うようにした。 solarize-dark を使ってる。

editorconfig

プロジェクトごとにインデント設定が違ったりするので、 それに対応するために導入。

emacs-lisp-mode のインデントも一律になってしまうので、 このモードでは無効になるよう一部を書き換えている。

find-file-hook で毎回対応する全 mode のインデント設定を更新しているんだけど、 それはちょっといまいちな感じがする。 開いたファイルを見て、それ用の mode の設定だけを書き換えればいいんじゃ・・・?

なくなったもの

メジャーモードもろもろ

書かなくなった言語のものを削除。 PHP まったく書かなくなったなぁ。 Scala も勉強途中で放り出しちゃったなぁ。

cua-mode

24.4から追加された rectangle-mark-mode でなんとかしてみる。

あと、 string-rectangle の入力内容が リアルタイムに反映されたりしてちょっと便利になってるみたい。

smartchr

今のところ困ってない。

org-mode

標準パッケージだからなくなったわけではないけど、使わなくなった。

SublimeText に移行した時も思ったのだけど、 エディタ依存の形式を使っているとそれ以外が使えなくなってつらい。 (エディタ変えなければいい?引越が趣味なので!)

単なるアウトラインツールとして使うならそんなに問題はないけど、 タスク管理とかカレンダー連携とかしてるともう動けなくなる。

タスク管理は Todoist を、 メモは Markdown 形式を使うことにした。 (タスク化管理がサービス依存になってるけど、エディタの依存がなくなったのでよし)

atom で気に入らなかったところ

ターミナルからファイルを開くのが遅い

コマンドライン用のコマンドが用意されているので、

$ atom path/to/file

とすれば atom で開くことはできる。 が、開くまでが遅い。

Cmd-p から開けばいいじゃないってはなしかもしれないけど、 ターミナル上でいじってるファイルをすぐ編集したいのにいちいち

  • atom (の該当するウィンドウ) をアクティブにして
  • Cmd-p して
  • ファイル名を入れて

ってするのがめんどくさい。

複数ペインで同じファイルを開いているとまともに入力できない

これはバグっぽいけど。 カーソルがペイン間を行ったり来たりしてまともに入力できない。 同じファイルの別の場所を参照しながら書きたい場合に不便。

TreeView と編集中のファイルの連携がいまいち

たとえばこういうディレクトリ構成で、

hoge
 └ fuga
    └ piyo.txt

piyo.txt を開いている時に TreeView で hoge のファイル名を変更すると、 piyo.txt のパスが変わらない。

変わらないので piyo.txt を保存しようとすると hoge というディレクトリを作って新規ファイルとして保存されてしまう。 fuga を変更した時はちゃんと追従してくれるのに・・・。

emacs の dired はちゃんと追従してくれる。


エディタを行ったり来たりしていると、 いらない(なくてもなんとかなる)機能がはっきりしてきて掃除が捗る。

atom の気に入らないところは3つ上げたけどどれも将来的に対応されそうではある。 ほかは概ねいい感じだった。