ここのところqiitaの方ばっかり書いていて放置していたけど、たまにはこちらへ。

.tmux.confにnew-window -n pry pryと書いて自動的にpryのウィンドウを開いてたが、brew upgradeとかやってるうちに正常に起動しなくなった。
エラーメッセージが一瞬で消えてしまうので分かりにくいが、tmux new-window “pry;read v”とやればじっくり見ることができる。
それによるとどうやらrvmで入れたpryがインタプリタとして/usr/bin/rubyを起動しようとしてSEGVしているらしい。
Twitterで呟いて悩んでいたらサジェストを貰った。

おお?PATHの先頭に/usr/binが入っているので、rvmのrubyではなくシステムのrubyが呼び出されているようだ。

tmux内のプロンプトでecho $PATHすると正常なんだけど、これは

ということらしい。なるほど!
pryが起動していたのは[[ -s “$HOME/.rvm/scripts/rvm” ]] && source “$HOME/.rvm/scripts/rvm”が.zloginに入っていたため・・・なのかな?
とりあえず.zshenvに

を書き、.zshrcや.zloginからrvmの設定を削除したところ、正常に起動するようになった。

また、これらのファイルのどれが読み込まれるか、またその順番についてはこちらの記事が参考になった。

久々にEmacsをビルドした。もちろんCocoa Emacs。
手順はほぼこの通りでOK。

久しぶりにinline patchを当ててみたが、やはりauto-saveとぶつかった時に落ちる。
(auto-save-buffersは使っていないんだけど)
これを回避するパッチがmacemacs-jpで流れていたので当てる。

一応、patch -p0で当てられるパッチを作ったので置いておく。

一通りパッチを揃えたら以下の手順でビルド。


patch -p1 < ../emacs-23-lion-fullscreen-test.patch patch -p0 < ../inline_patch-svn/emacs-inline.patch patch -p1 < ../fix-shiftmodifier-patch-for-emacs-inline-patch.diff patch -p0 < ../fix-auto-save-crash.patch ./configure –with-ns –without-x make bootstrap make install [/bash] Mac Mini(Core2Duo 2.4GHz/8G/SSD)でビルド所要時間13分くらい。 思ったよりも速くなってないけど、まぁCore2Duoだしこんなもんか。i7のMiniかiMac出たら欲しいな。

新年の記事Visor便利!と書いたけど、Emacs上で同じようなことをするelispがあった。
shell-pop.elを使うと、Emacsのどこからでもホットキーでshell-modeあるいはansi-termを呼び出し、もう一度ホットキーを押すと閉じることができる。
ちょっとだけコマンド実行したい時に便利。
こんな感じで設定している。

;; shell-pop with ansi-term
(require 'shell-pop)
(shell-pop-set-internal-mode "ansi-term")
(shell-pop-set-internal-mode-shell shell-file-name)

(defvar ansi-term-after-hook nil)
(add-hook 'ansi-term-after-hook
(function
(lambda ()
(define-key term-raw-map "\C-z" 'shell-pop))))
(defadvice ansi-term (after ansi-term-after-advice (arg))
"run hook as after advice"
(run-hooks 'ansi-term-after-hook))
(ad-activate 'ansi-term)

(global-set-key "\C-z" 'shell-pop)

C-tに設定する人が多いようだけど(Terminalだろう)、C-tは分割フレーム間の移動に割り当てているのでC-z(Zsh)にした。
デフォルトのC-z(Minimize)は使わない、と言うかうっかり触って最小化することが多いので無効にしてるし。ああでも-nwで起動した時はScreenとぶつかって邪魔だから何か考えないと…

なお、Cocoa Emacsだとなぜか画面半分くらいで折り返されてしまって使いにくい。
font spacingの問題っぽいんだけど、解決策は今のところ不明。

Firefoxのタブを開いたり閉じたりしているとメモリ消費量が膨れあがっていくのは周知の事実。
適当なところでFirefoxを再起動して解決していたが、再起動することなくメモリを解放してくれるというプラグインRAMBACKというのがあったので試してみた。

こんな感じにメニューにClear Cachesというのが入るので選択するだけ。

More »

emacsの設定はプラットフォームごとにまちまちで、統合したいなーといつも思っていた。
一時期gitで管理したりもしたんだけど、設定をいじる→リポジトリに登録→push→各プラットフォームでpullという作業があまりにも煩わしく、ついついおろそかになってしまう。
ここらへんを自動化すべく、elisp群をDropboxに置いてみた。

More »

rvm

MacBookAirにruby開発環境を構築する際に、元から入っているrubyとMacPortsで入れたrubyでgemがごっちゃになってしまい、訳が分からなくなってしまった。
まぁ、今時sudo gem installとかやってるのはアレですよね。
と言うわけでrvmをインストールしてユーザ環境以下で管理することにした。

More »

年末年始でしばらく放置してしまったけど、今年もよろしく。

さて、Webアプリ作ってる人は大抵、開発時間の大半をエディタとターミナル(とFirefox)の行き来に費やしてると思うけど、EmacsのシェルはANSIカラーとかscreenとかで案外めんどくさい。
上手い方法はきっとあるんだろうけど(あったら教えて下さい)、結局Spacesで切り替えつつやってたりする。
そこで、Visorというツールを使うと、どこからでもターミナルが呼び出せるので、ちょっとgrepしたいとかirbで試したいといった作業の際に切り替えなくて済んで便利。もちろん通常のターミナルと同等なので、screenに繋いでがっつり作業してもいい。
インストールはSIMBLを入れなきゃならなかったりでちょっとだけ厄介かも。

ホットキーを押すとこんな感じにみょいーんとターミナルが生えてきます。
上からにしてるけど、左右とか下からでもOK。

Cocoa Emacsになってからどうにもinline patchの調子が悪く、日本語入力時にしょっちゅうクラッシュしていた。
これはもうinline patchなしの方がましなのでは?と思って素のEmacsをビルドしてみることに。

More »