2014-09-22 6 views
3

나는 cygwin,에 sbt를 사용하기 시작했으나 타이핑이 console에 에코되지 않는다는 문제가있었습니다.시스템 속성 jline.terminal을 설정하는 방법 (cygwin의 mintty에 입력하는 동안 에코를 수정하지 않으려면)?

지금이 advice, SBT에 따라 에코, 예를 들면 : 에코하지 않는, 나는이 ~/.sbtconfig에 선 export SBT_OPTS="-Djline.terminal=scala.tools.jline.UnixTerminal"를 입력하여이 수정을 자동화하려고하지만 올바른 구문을 사용하지 않을 수

$ sbt 
[info] Loading project definition from D:\cygwin\home\Administrator\scala-2.11.2\coursera\example\project\project 
[info] Loading project definition from D:\cygwin\home\Administrator\scala-2.11.2\coursera\example\project 
[info] Set current project to progfun-example (in build file:/D:/cygwin/home/Administrator/scala-2.11.2/coursera/example/) 
> ; eval System.setProperty("jline.terminal", "scala.tools.jline.UnixTerminal") 
[info] ans: java.lang.String = jline.UnixTerminal 
> console 
[info] Starting scala interpreter... 
[info] 
Welcome to Scala version 2.10.4 (Java HotSpot(TM) Client VM, Java 1.7.0_67). 
Type in expressions to have them evaluated. 
Type :help for more information. 

scala> import example.Lists._ 
import example.Lists._ 

scala> 

작동하는 것 같습니다.

sbt console; eval System.setProperty("jline.terminal", "scala.tools.jline.UnixTerminal")으로 자동으로 연결하는 방법은 무엇입니까?

답변

1

SBT에서 발견 너무 많이가있다 ...

> inspect initialize 
[info] Setting: Unit =() 
[info] Description: 
[info] A convenience setting for performing side-effects during initialization. 
[info] Provided by: 
[info] */*:initialize 
[info] Defined at: 
[info] (sbt.Defaults) Defaults.scala:153 
[info] Delegates: 
[info] *:initialize 
[info] {.}/*:initialize 
[info] */*:initialize 
[info] Related: 
[info] */*:initialize 

당신은 초기화 동안 부작용을 수행하기위한 을라고 initialize을 활용할 수 있습니다. ~/.sbt/0.13/default.sbt에 다음 사용하면 System.setProperty을 실행 달성 할 수 :

initialize := { System.setProperty("jline.terminal", "scala.tools.jline.UnixTerminal") } 

이 때 SBT 쉘에서 체크 아웃 eval sys.props("jline.terminal")을 실행합니다. console에서 제대로 작동합니다 (sys.props으로 전화 할 경우 eval이 표시됨).

+0

제안 사항이 어떻게 자동화되는지 설명해 주시겠습니까? (Scala neubee로서) 내가 이해할 수있는 것은 내가 sbt를 시작할 때마다 무언가를 입력해야한다는 것입니다. 내 이해가 잘못 되었습니까? 실제로 sbt가 시작될 때 작업을 자동으로 수행하도록 일부 sbt 초기화 파일에 제안 사항을 입력 할 수 있습니까? – boardrider

+0

답변이 업데이트되었습니다. '~/.sbt/0.13/default.sbt'를 열고'initialize'로 그 줄을 복사하십시오. 'sbt'를 시작하십시오. –

+0

제안 사항이 어떻게 자동화되는지 설명해 주시겠습니까? = { : 내가 제대로 이해하면, 나는 각 프로젝트에 build.sbt를 작성해야하고, 거기에 당신이 제안 라인, 즉 : $ 고양이 초기화 build.sbt를 넣어 (스칼라 neubee으로) System.setProperty ("jline.terminal", "scala.tools.jline.UnixTerminal") } 이렇게하면 "[error] java.lang.IllegalArgumentException : java.lang.ClassNotFoundException : scala.tools.jline.UnixTerminal이 생성됩니다. "(타이핑 소리가 들리지 않음) – boardrider