vimclojure / README.txt

Full commit
___    ______           ______________     ________
__ |  / /__(_)______ _____  ____/__  /___________(_)___  _____________
__ | / /__  /__  __ `__ \  /    __  /_  __ \____  /_  / / /_  ___/  _ \
__ |/ / _  / _  / / / / / /___  _  / / /_/ /___  / / /_/ /_  /   /  __/
_____/  /_/  /_/ /_/ /_/\____/  /_/  \____/___  /  \__,_/ /_/    \___/

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:

syntax on
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 file that contains
the path to your clojure.jar and clojure-contrib.jar. The file should look
similar to:


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.

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

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.

Using Ivy

Alternatively you may use Ivy to resolve the dependencies. Simply omit the
first two lines in the 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 <>
Frankfurt am Main, 2009