Используйте флаг -f
, чтобы включить завершение табуляции. Это будет статическое завершение, основанное на статическом списке символов в указанном вами файле. Если вы хотите динамическое завершение (на основе любого символа, который в настоящее время определен в вашем текущем REPL), вы должны попробовать Emacs + SLIME или эквивалентный.
В любом случае, вот один из способов сгенерировать список символов для табуляции. Вам придется время от времени восстанавливать этот файл, потому что новые символы добавляются в ядро Clojure в каждой версии. (Этот код работает с передним краем clojure-contrib; clojure.contrib.io
в предыдущих версиях назывался duck-streams
.)
user> (use 'clojure.contrib.io)
nil
user> (with-out-writer "/home/user/.clj-tabcompletion"
(doseq [[sym _] (ns-publics 'clojure.core)]
(println sym)))
nil
Тогда:
$ rlwrap -f ~/.clj-tabcompletion java -jar clojure.jar
Clojure 1.2.0-master-SNAPSHOT
user=> def<TAB>
definline defmacro defmethod defmulti defn defonce defprotocol defstruct deftype
user=> def
Если ваш терминал искажает символы с ударением, у вас, вероятно, есть проблема с кодировкой или локалью. Он отлично работает для меня. Я не использую OS X и не знаю, какой терминал вы используете, поэтому я не могу помочь. В Konsole в Linux, внутри rlwrap:
user=> (println "àèìòùáéíóúäëïöüâêîôûãõñ")
àèìòùáéíóúäëïöüâêîôûãõñ
nil
user=> (println "牛が牧場で草を食べている。")
牛が牧場で草を食べている。
nil