Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

Emacs24.1 on Mac OS Xでmulti-term環境をつくる

Emacsでもshellが使えます。

M-x shell

で起動です。
が、この子はPATHが通っていないため、gitが未インストール扱いされたりしていました。
かといって、オレンジ表紙のあの子*1は何やらエキセントリックで普段使いには敷き居が高いですし。
というわけで、イケてない事は重々承知だったもののMacOSX標準のshellで何とかしていました。

ところが先日、ついに解決法が判明したのでコレを期にshell環境の更新を決心しました。

前提

そもそもmulti-termとは

  • 名前の通り、複数起動可能
  • 設定一つでBashZshも切り替え可能
  • emacs標準のキーバインドを邪魔しない。
  • その分、M-pで履歴戻り等々やや独特

といった特徴があります。

multi-term導入

折角なので、emecs24系の新機能を使います。
「M-x list-packages」と打って暫く待つ*2と、し以下のような出力を得ます。
f:id:shuzo_kino:20131006213224p:plain
emacsキーバインドが普通に使えるので「multiterm」と検索、冒頭で「i」->「x」
ミニバッファに確認する旨が出ますので、「yes」これだけでパッケージ導入が開始されます。

あとはお決まりの.emacs.elです。
流石に長いのでテキストエディタで入力します。

;; より下に記述した物が PATH の先頭に追加されます
(dolist (dir (list
              "/sbin"
              "/usr/sbin"
              "/bin"
              "/usr/bin"
              "/opt/local/bin"
              "/sw/bin"
              "/usr/local/bin"
              (expand-file-name "~/bin")
              (expand-file-name "~/.emacs.d/bin")
              ))
 ;; PATH と exec-path に同じ物を追加します
 (when (and (file-exists-p dir) (not (member dir exec-path)))
   (setenv "PATH" (concat dir ":" (getenv "PATH")))
   (setq exec-path (append (list dir) exec-path))))

;;multi-term
(setq load-path(cons "~/.emacs.d/" load-path))
(setq multi-term-program "/bin/bash")
(require 'multi-term)

最後の仕上げに、

M-x eval-buffer

これで.emacs.elが評価され、有効になります。*3

*1:irbsh

*2:外部鯖に接続している

*3:公式によれば Evaluate all the Emacs Lisp expressions in the buffer. なので一応バッファ中のelisp.emacs.elも含めて全部評価してくれるみたいです。