VimでSchemeするときのインデント設定メモ。
どうもSchemeのインデント設定がおかしいので、見直してた。
インデントが1スペースになってしまう原因は、Cインデントだった。相性が悪い。
- set nocindent
- Cインデントはオフにしておこう
- set lisp
- lispモードオン(filetype indent on,filetype plugin onの時は自動でオン)
- set lispwords=
- lispwordsを空にしたらif,condのインデントもうまくいった。
- オートインデントを除外するもののリスト(ぽい)
- set lispwords=defineとかしておくといい感じ。
まとめると、
aug Scheme au! au Filetype scheme setl cindent& lispwords=define aug END
こんな感じ。
フィボナッチを再帰で書いてみる。
(define (fib n) (cond ((= n 0) 0) ((= n 1) 1) (else (+ (fib (- n 1)) (fib (- n 2))))))
これで効率が随分上がりそうだ。lispwordsは随時追加していこうと思う。
懸案だったインデントが直ったのでひと安心。