普段はクラウド上のUbuntuコンテナやLinux Mintをメインの作業環境にしています。最近Arduinoなどマイコンを操作していると、USBシリアル通信をするホストマシンとしてOSXで一通りの開発環境が必要になりました。いつものクラウド上と同じようなの開発環境とOSX上にも用意しようと思います。
ターミナルマルチプレクサ
byobu-configが起動しない
UbuntuやLinix Mintではターミナルマルチプレクサにbyobuを使っています。OSXにもHomebrewでインストールしたかったのですが、byobu-configが起動しません。
$ brew update |
原因はnewt
パッケージとPythonのモジュールにありそうです。
$ brew info newt |
byobu: Python crashes when executing the program on 10.9 #30252のissueを読むと、--with-python
オプションを付けてビルドすればよいとか、単にupgradeするだけで良いとか嫌な予感がします。
$ brew update && brew upgrade |
newtの最新0.52.18のFormulaを読むと指定したオプションは使われないようです。そもそもPythonがクラッシュするissueの対応なので、OSX版のbyobuは現在不安定な感じです。
class Newt < Formula |
tmux
byobuの場合でもいつもtmuxだけなので直接使うことにします。byobuと一緒にtmuxが入っていますが再インストールしました。
$ brew remove byobu |
最近はあまりカスタマイズしないで使うようにしているので.tmux.conf
もシンプルです。
- prifixのキーバインドを
C-t
に変更 - コピーモードは
C-t s
で入る
set -g prefix C-t |
ウインドウの移動ができることを確認します。
- 前のウィンドウ移動: C-t p
- 次のウィンドウ移動: C-t n
C-t s
でコピーモードに入りスクロール移動ができることを確認します。
- 上にスクロール移動: Up Arrow
- 下にスクロール移動: Down Arrow
- 1画面上にスクロール移動: Shift + fn + Up Arrow
- 1画面下にスクロール移動: Shift + fn + Down Arrow
- コピーモードを出る: q
Emacs
OSX YosemiteにデフォルトでインストールされているEmacsは22.1.1と少し古いです。
$ emacs --version |
HomebrewからEmacsをインストールします。--with-cocoa
オプションを付けてGUIのEmacs.appも合わせてビルドします。
$ brew update |
バイナリのインストール先とバージョンを確認します。
$ ls -l /usr/local/bin/emacs |
Emacs.app
Emacs.appを/Applicationsにシムリンクを作ります。
$ brew linkapps emacs |
GUIのEmacs.appの起動を確認します。
$ open /Applications/Emacs.app |
Cask
Emacsのパッケージ管理はCaskを使います。OSXなのでHomebrewでもインストールできます。
$ brew install cask |
Caskファイル
~/.emacs.d
ディレクトリに移動してCaskファイルを作成します。
$ cd ~/.emacs.d/ |
作成されたCaskファイルにはパッケージがたくさん書いてあります。最初に必要なパッケージだけインストールします。Pallet、init-loader、js2-modeだけ定義します。
(source gnu) |
elispファイル
init.el
の最初でcask.elを読み込みます。Homebrewでインストールした場合は、/usr/local/Cellar/cask/{version}/cask.el
にあります。
(require 'cask "/usr/local/Cellar/cask/0.7.2/cask.el") |
init-loaderを使いelispは~/.emacs.d/inits
に分割して書きます。
$ mkdir -p ~/.emacs.d/inits |
削除キーとヘルプだけキーバインドを変更します。
(define-key global-map "\C-h" 'delete-backward-char) |
CUIがメインでメニューは邪魔なので消しました。
(menu-bar-mode 0) |
ファイルはバックアップを作らなかったり、タブの指定などを少し書きます。
(setq backup-inhibited t) |
Node.jsのプログラミング用にjs2-modeの設定をします。
(autoload 'js2-mode "js2-mode" nil t) |
cask install
最終的に以下のようなファイルを作成しました。
$ tree -L 2 |
cask install
コマンドを実行して、Caskに定義したパッケージをインストールします。
$ cask install |