こしごぇ(B)

旧:http://d.hatena.ne.jp/koshigoeb/

開発環境をちょっとだけ整備

年末からちょこちょこと整備しているのでつらつらと。

helm.el

anything.el は最早時代遅れらしいので、helm.el に乗り換えてみました。anything.el で凝った事をしていなかった事もあり、特に躓くことも無くすんなりと移行成功。
若干、起動時間がのびた気がしますが、絞り込みにかかる時間は短縮された気がします。チューニングされたのか、ディレイの初期値が違っているのか、詳しいことは知りません。
拡張は一通り入れていて、anything.el 時代には使っていませんでしたが、helm-git がかなり便利ですね。はじめは projectile というのを使おうかと思い試したのですが、インデックス作成に異常に時間がかかるため使い物にならないと判断して諦めました。代わりに試した helm-git が大当たりだったので、projectile を使う事はなさそうです。

(when (require 'helm-config nil t)
  (global-set-key (kbd "C-;") 'helm-mini)
  (global-set-key (kbd "M-r") 'helm-resume)
  (global-set-key (kbd "M-y") 'helm-show-kill-ring)
  (global-set-key (kbd "C-x b") 'helm-buffers-list)

  (helm-mode 1)
  (helm-dired-bindings 1)

  (when (require 'gist nil t)
    (when (require 'helm-gist nil t)
      ))
  (when (require 'helm-git nil t)
    (global-set-key (kbd "C-x C-g") 'helm-git-find-files)
    )
  (when (require 'helm-ls-git nil t)
    )
  (when (require 'helm-themes nil t)
    )
  (when (require 'helm-c-moccur nil t)
    (global-set-key (kbd "M-o") 'helm-c-moccur-occur-by-moccur)
    (global-set-key (kbd "C-M-o") 'helm-c-moccur-dmoccur)
    (add-hook 'dired-mode-hook
              '(lambda ()
                 (local-set-key (kbd "O") 'helm-c-moccur-dired-do-moccur-by-moccur)))
    (global-set-key (kbd "C-M-s") 'helm-c-moccur-isearch-forward)
    (global-set-key (kbd "C-M-r") 'helm-c-moccur-isearch-backward)
    )
  (when (require 'helm-gtags nil t)
    (add-hook 'helm-gtags-mode-hook
              '(lambda ()
                 (local-set-key (kbd "M-t") 'helm-gtags-find-tag)
                 (local-set-key (kbd "M-r") 'helm-gtags-find-rtag)
                 (local-set-key (kbd "M-s") 'helm-gtags-find-symbol)
                 (local-set-key (kbd "C-t") 'helm-gtags-pop-stack)))
    )
  (when (require 'helm-descbinds nil t)
    (helm-descbinds-install)
    )
  (when (require 'helm-migemo nil t)
    (define-key global-map [(control ?:)] 'helm-migemo)
    )
)

solarized

Emacs のテーマも変えてみようかという事で、以前見送った solarized を使ってみることにしました。今までダーク系(blackboard)を使っていたのでライト系を選択。ベージュ系は2つくらい前に使っていたので特に違和感なく使えています。
せっかくだし、Terminal.app のテーマも変えてみようかと思ったのですが、なんど試しても描画領域が固定されてしまうようで、ウィンドウを大きくしても一定以上にすると背景だけが拡張されて描画領域が広がらない模様。訳が分からなかったので、Terminal.app での採用は見送りに。ターミナルは真っ黒になれているので下手に色をつけても違和感が大きい事もあり、これはそのまま放置する気がします。

powerline

Terminal の solarized 化に失敗したのが若干悔しかったので、tmux と zsh で powerline とやらを試してみることにしました。ステータスバーやプロンプトをおしゃれにするやつ。
三角部分はフォントにパッチを当てないと上手く表示出来ないようなので、フォントにこだわりがある人には使いづらいのかもしれません。

Emacs の powerline.el は現在検討中。

multiple-cursors.el

便利そうな気がして入れてみましたが、未だ活用どころが分からずこのまま忘れそうな気がしています。面白そうなので使っていきたいところです。

EmacsRuby 関連

Emacs 24 の組み込み機能で代替できるという事だったので、ruby-electrick の利用を止めてみました。

(add-hook 'ruby-mode-hook
          '(lambda ()
             (setq ruby-deep-indent-paren-style nil)
             (electric-pair-mode t)
             (electric-indent-mode t)
             (electric-layout-mode t)
             (setq electric-pair-pairs '(
                                         (?\| . ?\|)
                                         ))
             ))

ついでに、全然使えていなかった yasnippet を利用する様にしていこうと思っています。yasnippet は関数のプレフィクスが変わったようで、若干設定を書き換える事になったのがあれでした。

(when (require 'yasnippet nil t)
  (setq yas-trigger-key "TAB")
  (yas-global-mode 1)
  
  ;; コメントやリテラルではスニペットを展開しない
  (setq yas-buffer-local-condition
        '(or (not (or (string= "font-lock-comment-face"
                               (get-char-property (point) 'face))
                      (string= "font-lock-string-face"
                               (get-char-property (point) 'face))))
             '(require-snippet-condition . force-in-comment)))

  (when (require 'helm-c-yasnippet nil t)
    (setq helm-c-yas-space-match-any-greedy t) ;[default: nil]
    (global-set-key (kbd "C-c y") 'helm-c-yas-complete)
    )
  )

ほか

ほかにも undo-tree.el とか z とか細々と追加していますが、今日まであまり出番がない(既に忘れてる)ので既にお蔵入り候補な気配です。

追記: 2013/1/17

Terminal.app の solarized がおかしな事になってたのは、tmux で set -g aggressive-resize on して解決。
が、三角部分のフォントの色と大きさが妙ちくりん。