• leiningen = rubygems + bundler
  • clojars.org = rubygems.org
  • nailgun = SWANK
  • vimclojure = SLIME

Clojure + Leiningen

leiningen入れるとclojureも入る。

% curl -O https://raw.github.com/technomancy/leiningen/stable/bin/lein
% chmod +x lein
% lein repl
Using JLine for console I/O; install rlwrap for optimum experience.
REPL started; server listening on localhost:29973.

rlwrap入れたほうが良いと出るので入れる。

% brew install rlwrap
% lein repl
REPL started; server listening on localhost:58951.
user=> 1234
1234
user=> (+ 1 2)
3
user=> (exit)

うん。

VimClojure

vimの場合はVimClojureというのが定番ぽい。VimClojureはSyntax Highlightingとかだけでも使えるんだけど、NailgunというCLで言えばSWANK的なものへのインターフェースが同伴されていて、clojureファイルを開くと同時にNailgun Serverに接続することが出来る。

Nailgun ServerもClientも別個にインストールする必要がある。

% vi ~/.vimrc
Bundle 'VimClojure'
let vimclojure#WantNailgun = 1
let vimclojure#NailgunClient = "ng"
:BundleInstall

Nailgun Client

% brew install nailgun

ngコマンドが使えるようになる。(上記のNailgunClientで指定してるのがコレ)

Nailgun Server

% lein plugin install org.clojars.autre/lein-vimclojure 1.0.0

lein plugin install xxx versionはleinのプラグインをインストールするのであって、ライブラリを入れてる訳じゃない。両方共clojars.orgにホストされてるので混同しないようにする。(依存ライブラリはproject.cljに書いて後述するlein depsで入れる)

lein helpするとlein vimclojureというサブコマンドが増えてる。

helloworld

% lein new helloworld
% cd helloworld
% tree
.
├── README
├── classes
├── lib
├── project.clj
├── src
│   └── helloworld
│       └── core.clj
└── test
    └── helloworld
        └── test
            └── core.clj
% lein deps

project.cljに書かれてるライブラリ(clojure処理系自身を含む)を取ってきてlibに入れてくれる。

% lein vimclojure
NGServer started on 127.0.0.1, port 2113.
% vi src/helloworld/core.clj

Terminal — vim — 80×24

あとはreplが開いてSLIMEみたいに評価できる。

リモートホストにssh public keyを簡単に登録するコマンドssh-copy-id。

$ brew install ssh-copy-id
$ ssh-copy-id komagata@foo.bar.com
$ ssh komagata@foo.bar.com

ヒャッハー

リモートホストに鍵登録するワンライナーをいつも忘れるのでCommand-Line-Fuを検索しにいったら見つけた。homebrewにあるなら使ってもいいかなー。

滅多に見ないんですが、HDD残り容量どうなってるのかなと見てみたら・・・

% df -h
Filesystem                     Size   Used  Avail Capacity  Mounted on
/dev/disk0s2                  113Gi   96Gi   17Gi    86%    /

結構ヤバくね?

何が容量食ってるのか分からなかったので可視化ツールのGrandPerspectiveを使ってみた。

/ - 00:52:14

大昔にCDイメージ化したMac OS Xがデカイ。こんなん要らないよ。これ容量少ないMacBook Airとかには便利ですねー。

Terminal — screen — 236×52

Macにdefaultで入ってるgemは何でユーザー別の場所が/Library/Ruby/Gems/1.8より後にあるんだろう?この順番が逆でさえあれば普通にみんなsudo無しでgem入れてもシステムが汚れなくて良いと思うんだけどなあ・・・。

HHKにはMuteはあってもPlayキーは無いのでiMoteを使って↓キー(Fn + /)にPlay/Pauseを割り当ててみた。(結局MBAで使い辛いのでC-Cmd-1に変更)

iMote Preferences

仕事中はヘッドホンしてるので話す時など結構頻繁に使うんですよね。iMoteには色々な機能があるけどこれしか使ってません。

Railsでguardを使う。(rspec)

# Gemfile:
group :test do
  gem 'rspec-rails'
  gem 'guard-rspec'

  # for Mac
  gem 'rb-fsevent'
  gem 'growl'
end
$ guard init rspec
$ guard start

常日頃、Terminalのタブ移動のショートカット使い辛いとイライラしてたので変えてみた。

Keyboard

これはなかなかいい感じ。(元々はCmd-Shift-[とCmd-Shift-]だった。)

Kaleidoscopeをgitで使うデモ。

元ファイルを修正すると即座に反映されるのがちょっと便利。

理想のランチャーを探してあーだこーだ言ってましたが、昨日知ったDTermこそが理想のランチャーかもしれない。

C-Cmd-Enterで起動。コマンドを入力してEnterだとDTerm上で実行。Cmd-EnterだとTerminalを開いて実行。

DTermの作られた目的というかコンセプトは別のところにあるんだけど、俺が求めてたのは正にこの機能。ようやくWindowsの"ファイル名を指定して実行"を超えるランチャーが見つかりました。

関連

Happy Hacking Keyboard

最近地震のせいか文字を打つのも億劫になっていてまるでやる気が出ませんでした。普段取らない選択をしてみようと思い、Happy Hacking Keyboardを買ってみました。カチャカチャと打鍵感も小気味良く、予想外に本当にやる気が少し出てきたのでビックリです。[キーの場所がMBAより気持ち左にあってviユーザーにとっては快適な気がしました。

Macintoshモード

Mac向けの設定としてはディップスイッチの2番をONにしてMacintoshモードにする必要があります。また公式サイトからMac用のドライバーをダウンロードしてきてインストールすればFnキーと組み合わせてMuteやVolume Up, Volume Down, Powerボタン等も使用できるので全く問題ありません。

しいていえばIME(Google IME)で変換対象の文字を増やすときShift+→キー等を使っていたのがどれで代替すればいいのかわからない(わかりました)という点ぐらいです。