___ ______ ______________ ________
__ | / /__(_)______ _____ ____/__ /___________(_)___ _____________
__ | / /__ /__ __ `__ \ / __ /_ __ \____ /_ / / /_ ___/ _ \
__ |/ / _ / _ / / / / / /___ _ / / /_/ /___ / / /_/ /_ / / __/
_____/ /_/ /_/ /_/ /_/\____/ /_/ \____/___ / \__,_/ /_/ \___/
VimClojure – a Clojure environment for Vim
VimClojure is one of the most sophisticated editing environments for Clojure.
It provides syntax highlighting, indenting and command completion.
If requested it also provides a SLIME like interface to dynamically work with
Clojure code. For this to work the included Nailgun server must be running.
Remote may be forwarded via ssh.
Features of the interactive interface are:
- dynamic documentation lookup
- dynamic javadoc lookup (in an external browser)
- Repl running in a Vim buffer
- smart omni completion
- easy evaluation of code in a buffer
To activate the interactive interface define the clj_want_gorilla variable
in your .vimrc: let clj_want_gorilla = 1
Please make sure that the following options are set in your .vimrc:
filetype plugin indent on
Otherwise the filetype is not activated, and hence VimClojure doesn't work.
Building the Nailgun interface
To build the Nailgun interface, create a local.properties file that contains
the path to your clojure.jar and clojure-contrib.jar. The file should look
Once you have created this file, simply run ant. This should give a
vimclojure.jar containing the server part and the nailgun client. Note for
Windows users: please leave out the last line in the properties file. The
windows client for nailgun is included in the distribution as ng.exe. Delete
it only in case you are sure, that you can rebuild it. You may see an error
when building the nailgun-client. That's ok.
Running „ant install“ will install the vim plugin into the named directory.
If you omit the vimdir line in the local.properties file the vim plugin
will be installed in the user's runtime directory – <home>/.vim on Unic/Mac,
<home>\vimfiles on Windows.
To run the Nailgun server you need the clojure.jar, clojure-contrib.jar and
vimclojure.jar in your Classpath:
java -cp /path/to/clojure.jar:/path/to/clojure-contrib.jar:/path/to/vimclojure.jar com.martiansoftware.nailgun.NGServer 127.0.0.1
There is also a launcher script included in the bin subdirectory based on
Stephen C. Gilardi's clj-env-dir launcher. Set the environment variable
CLOJURE_EXT to the name of a directory containing the jars and (possibly
links to) subdirectories you want in your classpath. Additionally the
CLASSPATH environment variable will be added to the classpath.
Put the nailgun client somewhere into your PATH or specify the location in
your .vimrc by means of the vimclojure#NailgunClient variable.
let vimclojure#NailgunClient = "/path/to/your/ng"
Please refer to the online documentation in the doc folder for further
information on how to use VimClojure, its features and its caveats.
Note: You might need to check the Makefile for special lib requirments
to compile the nailgun client, eg. OpenSolaris.
Alternatively you may use Ivy to resolve the dependencies. Simply omit the
first two lines in the local.properties file and ant will automatically
download any missing dependencies. In case you don't have Ivy installed,
this will be fetched also.
VimClojure is available as Ivy dependency also. Run "ant publish-local"
after building the VimClojure and use
<dependency org="de.kokta" name="vimclojure" rev="2.1.0"/>
to include the VimClojure jar in your projects classpath. But mapping
the dependency to a private configuration the dependency is only for
development. Users of your project won't be bothered with the dependency.
Meikel Branmdeyer <firstname.lastname@example.org>
Frankfurt am Main, 2009