vim 4 SuperCollider
じゃあscvim使ってみよう。
macということで、scvimオリジナルじゃなくて、https://github.com/sbl/scvimこっち使います。linuxもそのうち試してみます。
環境はlion,vim7.3(ただし、機能をフルに使うにはmvimがいるっぽいです。http://code.google.com/p/macvim/)
インスコ
pathogenでplugin管理
別に使用しなくても良いですが、scvimのreadmeに使ってねとあるので。
$ mkdir ~/.vim/autoload $ mkdir ~/.vim/bundle $ cd ~/.vim/bundle $ git clone git://github.com/tpope/vim-pathogen.git $ ln -s ~/.vim/bundle/vim-pathogen/autoload/pathogen.vim ~/.vim/autoload/
scvim
$ git clone git://github.com/sbl/scvim.git ~/.vim/bundle/supercollider $ ln -s ~/.vim/bundle/supercollider/sc/SCVim.sc ~/Library/Application\ Support/SuperCollider/Extensions/SCVim.sc $ vi .vim/bundle/supercollider/plugin/supercollider.vim 下記のように9-12行目に,*.rtfを加える au BufEnter,BufWinEnter,BufNewFile,BufRead *.sc,*.scd,*.rtf runtime ftplugin/supercollider.vim au BufEnter,BufWinEnter,BufNewFile,BufRead *.sc,*.scd,*.rtf set filetype=supercollider au BufEnter,BufWinEnter,BufNewFile,BufRead *.sc,*.scd,*.rtf let &iskeyword="@,48-57,_,192-255" au BufEnter,BufWinEnter,BufNewFile,BufRead *.sc,*.scd,*rtf runtime indent/sc_indent.vim 環境によっては、31行目のF12をF7とかに変える (うちのキー配列ではfn+F12ボタンだとダッシュボートにいっちゃう) au Filetype supercollider,supercollider_help nmap:call SClang_thisProcess_stop()
textutil
sc界隈ではrtfファイルが多いので、見られるようにしておく
mkdir ~/.vim/bundle/textutil http://www.vim.org/scripts/script.php?script_id=1432 textutil.vimを.vim/bundle/textutil/に置く
neocomplcache
こいつがないとvimは始まらない!
$ git clone git://github.com/Shougo/neocomplcache.git ~/.vim/bundle/neocomplcache
vimrc
とりあえずこんな感じに。ググれば沢山例が引っかかりますので参考にしていじってみてください。
$ vi ~/.vimrc "基本設定 set nocompatible filetype indent plugin on set encoding=utf-8 set number "colorscheme desert とか好きなヤツを syntax on set hidden set wildmenu set showcmd "タブ関係 set tabstop=4 shiftwidth=4 softtabstop=0 set autoindent smartindent "検索 set ignorecase set incsearch "カッコ imap {} {}imap imap () () imap “” “” imap ” ” imap <> <> imap “ “ "全角スペースを強調 highlight zenkakuda ctermbg=7 match zenkakuda / / "pathogen設定 filetype off call pathogen#runtime_append_all_bundles() call pathogen#helptags() filetype on "textutil設定 let g:textutil_txt_encoding='utf-8' "neocomplcache設定 "~/.vim/bundle/neocomplcache/doc/neocomplcache.jaxのEXAMPLES 764-848行をコピペ
使い方
とりあえず、tkckの資料を開いてみましょう。
$ vi tksc#8.rtf
サーバ
- 立ち上げは、:SClangStart(たまにちゃんと立ち上がってくれないので、開いた別窓でctl+Dとかでbashを抜けると動いてくれたりします)
- 停止は、:SClangKill
:scの時点でtabキー押すと候補選択できます。
コード実行
- 1行実行は、その行にカーソルを持っていき、F6キー(キー配列によってはfn+F6キー)
- ブロック実行は、Vでビジュアルモードになり、実行したいブロックをn,pキーか上下キーで選択して、F5キー
- コード停止は、上で変更したF7キー(デフォルトではF12キー)
補完
neocomplcacheが勝手に補完候補呼び出してくれます。sinと打つと候補として、UnaryOperatorのsin,sinhがあがります。tabキーかctl+p,nで選択。
ただし、うちの環境ではなぜかオブジェクトを候補として出してくれないので、調査中です。~/.vim/bundle/supercollider/syntax/supercollider_objects.vimはちゃんと読み込まれているし、シンタックスハイライトはちゃんと機能しているんですけれど。。。
スニペット
デフォルトで多少~/.vim/bundle/supercollider/snippets/supercollider.snippetsに書かれています。
試しにsdefを打ってみて下さい。候補が出たらtabなどで選択して、ctl+kで展開されます。シンセ名にカーソルが遷移しますので、適当に変えたら、ctl+k。snd = のところに遷移します。
gui
cocoaはダメポです。swingはいけますので、GUI.swingにしておきましょう。
[参考]http://supercollider.jp/modules/xhnewbb/viewtopic.php?topic_id=215