2013-11-09 5 views

ответ

4

Вы могли бы попробовать что-то вроде:

$ alias scala='scala -i ~/.scalarc ' 

Примечания тянущейся пространство-если вы его опускаете ваш псевдоним будет игнорировать параметры.

Дальнейшее использование «scala» (после определения псевдонима) будет работать как ожидается для REPL. Если вы используете псевдоним для запуска скомпилированных программ, «~/.scalarc» будет просто проигнорирован.

Редактировать: Кажется, использование '-i' таким образом вызывает значительное замедление.
Ниже, хотя и несколько запутанным (предупреждение: bashism вперед), работает быстрее:

$ scala -i <(cat ~/.scalarc foo.scala) 

Это присоединяет свой код (например, «foo.scala») с «.scalarc» и оценивает все на старте, оставив вас на REPL.
Я не думаю, что это удовлетворительное решение, но стоит упомянуть.

+0

Хорошо, я могу пойти на это. Pls считают upvote. – javadba

+0

Кстати, время запуска прошло от <1 с до 4 секунд. У .scalarc просто есть import scala.collection.mutable – javadba

+0

@javadba Компилятор scala, созданный внутри REPL, фактически инициализируется лениво, при первой инструкции. Ваш скрипт заставляет его немедленно инициализировать, следовательно, задержка. 'scalac', к сожалению, требует значительного количества времени для инициализации, в основном из-за загрузки классов. – ghik

Смежные вопросы