2010-12-19 4 views

答えて

31

私が提案する、あなたはSBTを試してみてくださいおそらく、いくつかのシェルが開いていて、vimとSBTセッションをやりとりする必要がありますが、一般的に、SBTはScalaの開発を翻訳言語のように感じるところまで合理化しています。便利なSBTヒント:

プロジェクトディレクトリのシェルでsbtを実行すると、プロジェクト構造が自動的に作成されます。すばやく開始するには、src/main/scala/MyFile.scalaというプロジェクト内のファイルを編集します。

1つのsbtシェルで、〜compileを実行して変更を検出してコンパイルします。

別のsbtシェルで 'console'を実行します。これにより、プロジェクトとCLASSPATH上の依存関係を持つ通常のScala REPLが得られます。

このスカラシェルから、load:実行してScalaファイルを読み込んで実行することができます。また、Scalaコードで定義されたクラスや関数を単にインポートしてインスタンス化して、機能をテストすることもできます。ファイルを変更すると、REPLの:replayは変更をロードし、入力されたすべてのコマンドを再度実行します。

この設定は、Scalatraと連携した迅速なWeb開発に最適です。 sbtから、 'jetty-run'でwebappを直接デプロイして実行し、〜prepare-webappで自動的に変更を検出、再コンパイル、デプロイすることができます。その後、ブラウザを開いたままにして、変更を確認するだけです。これに関する良いスタートガイドはここにあります:http://blog.everythings-beta.com/?p=430 5分ほどでWebアプリケーションを実行できます。

+0

ありがとう。SBTはとても素晴らしいです:) – Freewind

+1

+1のコンソール:-) –

0

スクリプトを書くことで1行に短縮できますか?その同じディレクトリに、あなたは

を行うのvimから

などのscalacのxxx.scala ScalaのXXX

し、それらに何かを行うことができ

:!./たscriptName

メイクchmodで最初に実行可能にしてください

+0

を提案'F6'を押すと、現在のファイルのコードがコンパイルされ実行されています。ファイル名が何であっても。 – Freewind

+1

私はいつもそれがIDEのものだと考えました。私はあなたがIDEを見つけてスカラとスカラを起動するために "コンパイル&実行"ボタンを設定できると確信しています – Realn0whereman

+0

Eclipseにはスカラ用のプラグインがありますが、とても遅いです。しかし、私がscalaプラグインなしでscalaを実行するためにEclipseを使用すると、それは私を奇妙に感じさせます:( – Freewind

8

sbtを使用して1つのシェルで動作させることをお勧めします&はvimのscalaファイルを修正します。 プロジェクトファイルにmainClassメソッドを指定する必要があります。詳細here

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

vimセッションにscalaファイルを保存すると、sbtはmainClassを呼び出そうとします。

3

地図はここで役立ちます。私はスカラについては何も知らないが、コマンド

:nmapの< F6>:!エコー検査< CR>

あなたは通常モードでF6キーを打つたびシェルコマンドecho test呼び出します

私はあなたが適応させることができると確信していそれはあなたの必要に応じて。永続的にしたい場合は.vimrcを入れます(これはおそらく行います)。あなたが編集者スクリプトのもの全体に入っていれば、もっと詳しい情報がここにあります:http://www.ibm.com/developerworks/linux/library/l-vim-script-1/index.html

P.S. %文字がシェルコマンドで現在のファイルに展開されていることを忘れてしまった。

これは私が(私は解釈された言語での作業に慣れている、一見考えられていたよりも複雑な問題であり、コンパイル、実行はAです:あなたはおそらくEDIT


:! 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

おそらく、ビルドマネージャーを使用する方がよいでしょう。しかし、特にscalaインタプリタで1つのファイルを実行したい場合に便利です。 vimでは、%が現在のファイルと一致します。あなたはScalaのインタプリタで現在のファイルを使用してファイルを実行したい場合は、実行できます。あなたはこの多くを行うつもりだった場合

:!scala % 

、あなたはこれにコマンドをマッピング考えることができます。

このバインディングをscalaファイルでのみ使用できるようにしたい場合は、以下を試してください。これには、scala vim syntax filesが必要な場合があります。

​​

同様に、ファイルをコンパイルするには、以下を実行できます。

:!scalac % 

コンパイルされたクラスを実行する場合は、クラスパスを知る必要があるため、難しくなります。 %:rが開始されている可能性があります。現在のファイルから拡張子を引いたものです。

上記のより高度な解決策は、:makeを使用してvimのビルドシステムとしてscalaインタープリタ/コンパイラを使用することです。この方法で、quickfixを使ってvim内のエラーをナビゲートすることができます。 couple of compiler files I wrote helpfulが見つかります。これらを~/.vim/compiler/にコピーして、vim(:compiler scalai)でコンパイラを設定することができます。

a blog post of mineは、vimを使ってscalaでの開発をカバーするので便利です。これは、ビルドマネージャーで連続したコンパイルとスカラを組み合わせる良い方法をカバーしています。

0

SBTを設置したとして、すでに私はそれは、例えば、より容易になることを願って、コンパイルや包装のため、また

:!sbt run 

は、Vimエディタセッションの中からこれを検討し、

:!sbt compile 
:!sbt package 
関連する問題