 (defn reformat-all-forms [s] 
   (let [rvec (map (fn [[offs p]]
                     (let [len (v/length p)]
-                      (vector (- offs len) len (with-out-str (clojure.pprint/pprint (read-string (v/text p)))))))
+                      (vector (- offs len) len (.trim (with-out-str (clojure.pprint/pprint (read-string (v/text p))))))))
                   (filter (fn [me] (= :list (v/tag (val me)))) (v/offsets (sexp-dup s))))
           ;_ (println "rvec: " rvec)
           first-offset (first (first rvec))

                    rb (second (first rl))
                    ;_ (println "ra: " ra)
                    ;_ (println "rb: " rb)
                    diff-a (- (.length (last ra)) (second ra))
                    offset-b (first rb)
                    len-b (second rb)
                    off-next (+ diff-a offsum offset-b)]

                      ; replace next form
                      (.replace sb offset-b (+ off-next len-b) (last rb))
                      (recur (+ diff-a offsum) (rest rl)))))))

(def formatting-keymap
  {["M" "f"] :fmt-pprint})

          rlist (partition 2 1 rvec)
          ;_ (println "rlist: " rlist)
          sb (StringBuffer. s)
          first-diff (- (.length first-s) first-len)
        ]
          ; replace first form
          (.replace sb (+ first-offset first-diff) (+ first-offset first-len) first-s)

          ; replace from 2nd to last form
          (loop [diff-offset (- (.length first-s) first-len)
                 rl rlist]
            (if (empty? rl)
              (.toString sb)
