以前Terminal.app あれこれで書いた Mac で使う Terminal ソフトなんですが、結局デフォルトの Terminal.app を使うことにしたんですが、最近 iTerm が頻繁にマイナーアプデートしていて、レスポンスとかも改善されるんじゃないかと期待してしまいます。
iTerm のバージョン自体はもうすでに 0.9.4 まで来ていて、正式版までもうすぐな感があるんですが、レスポンスがもう少し改善されたら絶対乗り換えたいぐらいの出来なんですよね。
いままで僕が思ってた問題点は、レンダリングのレスポンスと日本語キーボードだと Meta キーが認識出来ないことだったんですけど、ちょっと色々対策を考えて試してみたら Meta キーの扱いに関しては修正出来ちゃいました。誰かの役に立つかもしれないので設定方法を残しておきます。
入力で U.S を使えるようにする。
言語環境で U.S にチェックを入れて再起動をかけると使えるようになる。再起動かけなくてもメニューバーに表示されるようになるんですけど、実はこのままじゃ有効になってないんです。
さらにもう一つ、iTerm 側での Meta キーの設定が重要で、メニューの Bookmark -> Manage Profiles からキーボードの設定で +Esc にチェックを入れてあげる。これで Alt キーが Meta として認識出来るようになります。
ですが、ここで問題点が一つ。困ったことに、このままだと\が¥になっちゃって Emacs が使い辛い。入力モードを英字にして使えば問題なくバックスラッシュも入力できるんですけど、それじゃ面倒ですよね。
Emacs の設定見直し
IM としてことえりの英字モードを使っている場合はことえりの設定から¥を\に置き換える項目があって問題ないんですが、U.S モードにはどうやら設定すらなさそう。仕様がないので Emacs 側でなんとかしてみる。
適当に emacs-font.el とか作ってみて
(define-key global-map [?¥] [?\\])
(define-key global-map [?\C-¥] [?\C-\\])
(define-key global-map [?\M-¥] [?\M-\\])
(define-key global-map [?\C-\M-¥] [?\C-\M-\\])
;; Carbon Emacs 用の設定
(cond
((string-match "22.0.92.1" emacs-version) ;; 僕の場合コンソールとバージョンが違うので
(define-key global-map [2213] nil)
(define-key global-map [67111077] nil)
(define-key global-map [134219941] nil)
(define-key global-map [201328805] nil)
(define-key function-key-map [2213] [?\\])
(define-key function-key-map [67111077] [?\C-\\])
(define-key function-key-map [134219941] [?\M-\\])
(define-key function-key-map [201328805] [?\C-\M-\\])
))
(provide 'emacs-font)
っとしておく。そしてそれを .emacs 側で読み込むよう書いておく。
(require 'emacs-font)
.emacs にキーボードの設定を直に書いてもいいんですけど、後々修正する可能性が高そうなのと iTerm で使うためだけの力技なんで別ファイルにしてみました。これで iTerm の Emacs でも Carbon Emacs でも問題なく\の入力が出来るようになります。
その他
Emacs での入力は問題なくなったんですけど、実は iTerm 上の Shell だと¥のまま。これはもう仕様がないのでことえりに切り替えるしかなさそうです。もしかしたら screen の設定でどうにかなるかもと思うんですけど、そっちは詳しくないのでパス。
とりあえずこれで、ある程度使える Terminal になった iTerm ですけど依然僕の中では coLinux + PuTTY の方が使いやすいかなぁってのが本音だったりします。やっぱ思うんですけど、なにか切り替えるときにワンクッション入ってアクションが増えるより、今までの使い心地のままがいいんですよね。なんだかんだで Mac では Terminal.app + Carbon Emacs で妥協しそうな予感。
コメントする