2010-12-19 3 views

답변

31

내가 제안 당신은 SBT 시도 아마도 몇 개의 셸이 열려 있어야하고 vim과 SBT 세션간에 바운스해야하지만, 일반적으로 SBT는 스칼라 개발을 인터프리터 언어처럼 느껴지도록 간소화합니다.몇 가지 편리한 SBT 팁 :

프로젝트 구조의 셸에서 sbt를 실행하여 프로젝트 구조를 자동으로 만듭니다. 빨리 시작하려면 src/main/scala/MyFile.scala라는 프로젝트에서 파일을 편집하십시오.

하나의 sbt 셸에서 ~ compile을 실행하여 변경 사항을 지속적으로 감지하고 컴파일합니다.

다른 sbt 쉘에서 'console'을 실행하십시오. 이렇게하면 프로젝트와 CLASSPATH에 이미 의존하고있는 일반적인 Scala REPL을 얻을 수 있습니다.

스칼라 셸에서 다음을 실행할 수 있습니다. load : 스칼라 파일을로드하고 실행합니다. 또는 스칼라 코드에 정의 된 클래스와 함수를 호출하고 가져 와서 기능을 테스트하기 만하면됩니다. 파일을 변경하면 : REPL에있는 replay가 변경 사항을로드하고 입력 한 모든 명령을 다시 실행합니다.

이 설정은 Scalatra와 함께 빠른 웹 개발에 적합합니다. sbt에서 'jetty-run'으로 웹 응용 프로그램을 직접 배포 및 실행 한 다음 ~ prepare-webapp를 사용하여 자동으로 변경 사항을 감지, 재 컴파일 및 배포 할 수 있습니다. 그런 다음 브라우저를 열어두면 변경 사항을 볼 수 있습니다. 이것에 대한 좋은 시작 안내서는 다음과 같습니다. http://blog.everythings-beta.com/?p=430 5 분 정도 후에 웹 앱을 실행할 수 있습니다.

+0

감사합니다. SBT는 정말 대단한 것 같습니다 :) – Freewind

+1

+1 콘솔 :-) –

0

스크립트를 작성하여 한 줄로 줄일 수 있습니까?

그래서 같은 디렉토리에, 당신은 당신이

할 정력에서

scalac의 xxx.scala 스칼라 XXX

같은 것을하고 할 수있는! ./ SCRIPTNAME

만들기를 chmod로 먼저 실행 가능하게 만드십시오.

+0

을이 생각 설치 데 'F6'을 누르면 현재 파일의 코드가 컴파일되고 실행됩니다. 파일 이름이 무엇이든 상관 없습니다. – Freewind

+1

나는 항상 IDE가 무엇인지 알아 냈습니다. IDE를 찾고 scalac과 scala를 시작하기 위해 "compile & run"버튼을 구성 할 수 있습니다. – Realn0whereman

+0

Eclipse에 scala 용 플러그인이 있지만 속도가 느립니다. 하지만 scala 플러그인없이 scala를 실행하기 위해 이클립스를 사용한다면 이상하게 느껴진다. ( – Freewind

8

하나의 쉘에서 sbt를 사용하여 실행하는 것이 좋습니다. & vim에서 scala 파일을 수정하십시오. 프로젝트 파일에 mainClass 메소드를 지정해야합니다. 세부 사항 here.

$ sbt 
> ~ run 
1. Waiting for source changes... (press enter to interrupt) 

vim 세션에 스칼라 파일을 저장하면 sbt가 mainClass를 호출하려고 시도합니다.

3

지도가 유용합니다. 나는 scala에 대해서는 아무것도 모릅니다. 명령

: nmap을 < F6> :! 에코 테스트 < CR>

당신이 정상 모드에서 F6을 명중 할 때마다 쉘 명령 echo test 전화 것인가

당신이 적용 할 수 있습니다 확신 그것은 당신의 필요에. 영원히 원한다면 .vimrc를 넣으십시오 (아마도 그렇게 할 것입니다). 더 자세한 정보는 여기에서 찾을 수 있습니다. 편집자 스크립팅 전체에 대해 알고 싶다면 http://www.ibm.com/developerworks/linux/library/l-vim-script-1/index.html

P.S. % 문자가 셸 명령의 현재 파일로 확장된다는 것을 잊어 버렸습니다.

이 내가 (내가 컴파일 실행이 인 해석 언어, 작업에 사용 해요 첫눈에 생각했던 것보다 더 복잡한 문제 : 당신은 아마 뭔가 편집 :! scala %<CR>


처럼 원하는 단일 명령). 당신이 정말로 여전히 하나의 키 컴파일 및 실행 기능을 원하는 경우 어쨌든,이 빠른 스크립트를 시도합니다 (.vimrc 파일에 어딘가에 붙어 다시 시작 VIM) : - http://code.google.com/p/simple-build-tool/

당신

function! CompileAndRunScala() 
    w "save current file 
    let l:compiler_output = system('scalac ' . expand('%:p')) 
    " Runs scalac on current filename (absolute path) 
    if v:shell_error "Gets last shell error code (0 means okay, anything else is error) 
     echo 'Compile errors!' 
     echo l:compiler_output 
    else 
     echo system('scala ' . expand('%:r')) 
     " Runs scala on current file name with extension stripped (also absolute path) 
    endif 
endfunction 
nmap <F6> :call CompileAndRunScala()<CR> 
+0

고마워요! – Freewind

+0

@Freewind, 이것은 vim의': make' 명령어와 통합 할 때 좀더 쉽고 강력합니다. 게시물 : – schmmd

1

나는 결코 make에서 벗어나지 않으므로 프로그램을 컴파일 할 수 있도록 :make °target° 깨끗하고 간단합니다.

7

아마도 빌드 관리자를 사용하는 것이 좋습니다. 그러나 특히 스칼라 인터프리터로 단일 파일을 실행하려는 경우에 유용합니다. vim에서는 %이 현재 파일과 일치합니다. 당신이 스칼라 인터프리터에서 현재 파일을 사용하여 파일을 실행하려면, 당신은 실행할 수 있습니다 :이 많이 할 거라고 경우

:!scala % 

,이에 명령을 매핑 고려할 수 있습니다.

map <F5> :!scala %<CR> 

이 바인딩을 스칼라 파일에서만 사용할 수있게하려면 다음을 시도하십시오. 따라서 scala vim syntax files이 필요합니다.

au FileType scala map <F5> :!scala % 

마찬가지로 파일을 컴파일하려면 다음을 실행할 수 있습니다.

:!scalac % 

컴파일 된 클래스를 실행하려면 클래스 패스를 알아야하기 때문에 더 어렵습니다. %:r이 시작일 수 있습니다 - 현재 파일에서 확장자를 뺀 것입니다.

위의 고급 솔루션은 :make을 사용하여 vim의 빌드 시스템으로 스칼라 인터프리터/컴파일러를 사용하는 것입니다. 이렇게하면 quickfix을 사용하여 vim 내의 오류를 탐색 할 수 있습니다. couple of compiler files I wrote helpful을 찾을 수 있습니다. 이 파일을 ~/.vim/compiler/에 복사 한 다음 vim (:compiler scalai)을 사용하여 컴파일러를 설정할 수 있습니다.

a blog post of mine은 vim을 사용하여 스칼라에서 개발할 때 유용합니다. 빌드 관리자에서 스칼라와 연속 컴파일을 결합하는 좋은 방법을 다룹니다.

0

SBT가 이미 제안, 내가 예를 들어, 더 쉽게 될 수 있기를 바랍니다, Vim은 편집기 세션 내에서 컴파일 또는 포장 또한

:!sbt run 

,

:!sbt compile 
:!sbt package 
관련 문제