Thursday, April 9, 2009

VimClojure on Ubuntu

I have just installed vimclojure-2.0.0 on Ubuntu. Here is my log, in case someone wants to do something similar

Download vimclojure: http://kotka.de/projects/clojure/vimclojure.html

cd
mkdir clojure
cd clojure/
svn co http://clojure.googlecode.com/svn/trunk clojure
cd clojure/
ant
cd ..
mkdir jars
cp clojure/clojure.jar jars
git clone git://github.com/kevinoneill/clojure-contrib.git
cd clojure-contrib/
ant -Dclojure.jar=../clojure/clojure.jar
cp *jar ../jars
tar xvfz vimclojure-2.0.0.tar.gz
cd vimclojure-2.0.0/
vi local.properties
clojure.jar=/home/johan/clojure/jars/clojure.jar
clojure-contrib.jar=/home/johan/clojure/jars/clojure-contrib.jar
nailgun-client=ng
vimdir=/home/johan/.vim
ant
mkdir ~/.vim/autoload
mkdir ~/.vim/doc
mkdir ~/.vim/indent
mkdir ~/.vim/syntax
mkdir ~/.vim/ftdetect
mkdir ~/.vim/ftplugin
mkdir ~/.vim/ftplugin/clojure
cp autoload/vimclojure.vim /home/johan/.vim/autoload/
cp doc/clojure.txt /home/johan/.vim/doc/
cp indent/clojure.vim /home/johan/.vim/indent/
cp syntax/clojure.vim /home/johan/.vim/syntax/
cp ftdetect/clojure.vim /home/johan/.vim/ftdetect/
cp ftplugin/clojure.vim /home/johan/.vim/ftplugin/
cp ftplugin/clojure/completions-clojure.* /home/johan/.vim/ftplugin/clojure
vi ~/.vimrc
filetype plugin indent on
syntax on
let clj_highlight_builtins = 1
let clj_highlight_contrib = 1
let clj_paren_rainbow = 1
let clj_want_gorilla = 1
let vimclojure#NailgunClient = "/home/johan/clojure/vimclojure-2.0.0/ng"
autocmd BufRead,BufNewFile *.clj nmap ClojureEvalFile
autocmd BufRead,BufNewFile *.clj nmap ClojureEvalLine
autocmd BufRead,BufNewFile *.clj nmap ClojureEvalToplevel
autocmd BufRead,BufNewFile *.clj nmap ClojureStartRepl
autocmd BufRead,BufNewFile *.clj nmap ClojureDocLookupWord
autocmd BufRead,BufNewFile *.clj nmap ClojureDocLookupInteractive
vi ~/.bashrc
# Clojure
export CLOJURE_EXT=/home/johan/clojure/jars
export LD_LIBRARY_PATH=/home/johan/clojure/bin-linux
alias clojure='/home/johan/clojure/clojure-contrib/launchers/bash/clj-env-dir'
if ! (ps -ef | grep com.martiansoftware.nailgun.NGServer > /dev/null)
then
sh /home/johan/clojure/vimclojure-2.0.0/bin/ng-server &
fi


And for the final step, start vim and type ":helptags ~/.vim/doc" to make the documentation available with ":help clojure"

You can also add this Nailgun startup script in /etc/init.d/nailgun

#! /bin/sh
# Install: ln -s /etc/init.d/nailgun /etc/rc3.d/S99nailgun

do_start () {
export CLOJURE_EXT=/home/johan/clojure/jars
export LD_LIBRARY_PATH=/home/johan/clojure/bin-linux
sh /home/johan/clojure/vimclojure-2.0.0/bin/ng-server &
}

do_stop () {
`ps -ef | grep java | grep NGServer | awk '{print "kill -9 "$2}'`
}

case "$1" in
start)
do_start
;;
stop)
do_stop
exit 0
;;
restart)
do_stop
do_start
exit 0
;;
*)
echo "Usage: $0 start|stop|restart" >&2
exit 3
;;
esac