         vars      (set (concat refers aliases namespaces))
         macros    (set (filter #(-> % second meta :macro) vars))
         vars      (clojure.set/difference vars macros)
-        fns       (set (filter #(let [v (safe-var-get (second %))]
+        fns       (set (filter #(let [v (util/safe-var-get (second %))]
                                   (or (fn? v)
                                       (instance? clojure.lang.MultiFn v)))
                                vars))

  [[nspace n "Start completion in this namespace." "user"]
   [prefix p "Prefix used for the match, ie. the part before /." ""]
   [base   b "Base pattern to be matched."]]
  (let [nspace (resolve-and-load-namespace nspace)
        prefix (symbol prefix)]
    (if-not (and (= base "") (= prefix ""))
      (let [to-complete (decide-completion-in nspace prefix base)
            completions (mapcat #(complete % nspace prefix base) to-complete)
            completions (map #(apply make-completion-item %) completions)]
        (println (clj->vim completions)))
      (println "[]"))))

(defnail JavadocPath
  "Usage: ng de.kotka.vimclojure.nails.JavadocPath [options]"
  [[nspace n "Lookup the symbols in the given namespace." "user"]]
  (let [nspace         (util/resolve-and-load-namespace nspace)
        our-ns-resolve #(ns-resolve nspace %)]
    (doseq [path (map #(-> %
                         symbol
                         our-ns-resolve
                         backend/javadoc-path-for-class)
                      (util/stream->seq *in*))]
      (println path))))

(defnail MetaLookup
  "Usage: ng de.kotka.vimclojure.nails.MetaLookup [options]"
  [[nspace n "Lookup the symbols in the given namespace." "user"]]
  (let [nspace         (util/resolve-and-load-namespace nspace)
        our-ns-resolve #(ns-resolve nspace %)]
    (doseq [metainfo (map #(-> % symbol our-ns-resolve meta)
                     (util/stream->seq *in*))]
      (util/pretty-print metainfo))))

(defnail DynamicHighlighting
  "Usage: ng de.kotka.vimclojure.nails.DynamicHighlighting"
  []
  (let [nspace    (read)
        c-c       (the-ns 'clojure.core)
        the-space (util/resolve-and-load-namespace nspace)
        refers    (remove #(= c-c (-> % second meta :ns)) (ns-refers the-space))
        aliases   (mapcat (fn [[the-alias the-alias-space]]
                            (map #(vector (symbol (name the-alias)
