読者です 読者をやめる 読者になる 読者になる

遅れてきた人によるメモ

遅れてきた人は危険がいっぱい

単発: MacのVimでLand of Lisp

ビックウェーブに乗り遅れました

Land of Lispの翻訳が発売されて3ヶ月くらい経ってしまいましたが、Common Lisp使いたいけどVim派なんだよねの人用です。以前それっぽいものを投稿しましたが、今回はclispを使う場合で、MacのVimでLand of Lispです。

 Macが必要です

Macがない場合はMacを買ってきます。MacBook Airがおすすめです。キーボード配列はUS配列がいいと思います。最近では、Apple StoreではFr配列も買えます。UK配列はお勧めしません。

Windowsの場合は、下の .vimrc を適当に変えたらいいと思います。

環境はclispです

Land of Lispは、clispで説明されているのでhomebrew使ってclispを入れます。

brew install clisp

ついでにbrew install git, brew install mercurialも使うので忘れずに入れてください。

neobundleを入れます

$ mkdir -p ~/.vim/bundle

$ cd ~/.vim/bundle

$ git clone https://github.com/Shougo/neobundle.vim.git

上記操作を行った後に、MacVimとかVimを起動して :NeoBundleInstall!すれば準備は完了です。

.vimrcの設定

slimv

ファイル形式がLISPの場合に反応します。 ,cで接続します。,dでカーソルがあるS式を評価します。

let g:paredit_electric_return = 0 は、初期値の1だと (|) のときにReturnすると、) だけ次の行になるのが嫌なのでこうしました。

let g:slimv_repl_split = 4 は、connected swank serverの際、対話窓が縦分割の右側に出てきます。

let g:slimv_repl_simple_eval = 0 にしてるので、評価する画面ではCtrl-Returnをすることで評価されます。Returnで評価したい場合は、コメントアウトしてしまうか0以外にしてください(改行されたりされなかったりしたのでこうしました)。

slimvにctagsの設定があったので、:GenerateLispTagsRecursive を定義して現在のディレクトリから再帰で .vim/tags/lisp.tags に追加するようにしました。:GenerateLispTags では、そのファイルだけが追加されます。<Esc><C-]>で、カーソルが上にある文字列が定義された文字列の場合、定義箇所に移動します(複数ある場合のために<C-]>をg<C-]>にするのがいいかも)。ctags の戻る方法が<C-t>と書かれているものが多いのですが、別件で使っているためか効かないので、<C-o>の戻る、<C-i>の進むを使っています。

アップした .vimrc は他のものが何もないので、MacVimで表示するとこんな感じになります。

f:id:jiroukaja:20130506004615j:plain

 

最新のslimvだと、分割画面が複数存在していてもちゃんと表示されるようになっています。作者さんすごいです。Unite.vimでjumpするとかneocomplcacheでctagsの補完候補を表示させるようにするとかありますが、VimでLand of Lispを動かすにはこれが一番楽だと思います。slimvのhelpが充実しているので、分からないことがあったら :help slimv, :help paredit してみると良いと思います。