シェルを開きます(bashのsbt
やnode debug
など)。次に、このシェル内で、別のシェルを開きます(それぞれscala
またはnode repl
を使用)。ここで、最後のシェルを閉じて、最初に開いたシェル(sbt
など)に戻りたいのですが、 CTRL + C、すべてのシェル階層が閉じられ、元のbashターミナルに戻ります。
here から学んだように、この動作は標準ではなく、私にとって望ましくありません。
EDIT:私はこの問題をnode debug
で苦労しているので、実際には問題はsbt
とscala
に関するものではありません。私のbashの一般的な非標準の動作を示す実験。私はwindowsで同様の問題を見つけました ここ 、しかし私はUbuntu14.04を使用しています
コマンドexit
またはquit
を入力すると、console
内にネストされているsbt
が終了します。これらのコマンドは、次のように省略できます。
scala> :q
Not interrupting system thread Thread[process reaper,10,system]
[success] Total time: 138 s, completed May 25, 2014 1:33:22 PM
>
または:e
として。この情報は、console
のヘルプページで説明されています。
scala> :help
All commands can be abbreviated, e.g. :he instead of :help.
Those marked with a * have more detailed help, e.g. :help imports.
:cp <path> add a jar or directory to the classpath
:help [command] print this summary or command-specific help
:history [num] show the history (optional num is commands to show)
:h? <string> search the history
:imports [name name ...] show import history, identifying sources of names
:implicits [-v] show the implicits in scope
:javap <path|class> disassemble a file or class name
:load <path> load and interpret a Scala file
:paste enter paste mode: all input up to ctrl-D compiled together
:power enable power user mode
:quit exit the interpreter
:replay reset execution and replay all previous commands
:reset reset the repl to its initial state, forgetting all session entries
:sh <command line> run a Shell command (result is implicitly => List[String])
:silent disable/enable automatic printing of results
:type [-v] <expr> display the type of an expression without evaluating it
:warnings show the suppressed warnings from the most recent line which had any
scala>
ここで本当に求めているのは、console
を介して利用できるキーボードショートカットがあるかどうかを調べることです。そのために、この投稿は、使用するものがほとんどないことを示しているように思われます。
scalaインタープリターで、コードのオートコンプリートは言うまでもなく、ctl + a、ctl + e、ctl + f、ctl + bのみをサポートし、タブキーもサポートしていません。 f#のように)
出典:件名:scalaインタプリタコンソールのキーボードショートカットとコードのオートコンプリート?-msg#00309
これによるとSO Q&Aタイトル: ScalaのREPLで前方削除としてctrl-dを使用する方法はありますか? =のデフォルトのキーバインディングを利用できますScala 2.9のREPL :keybindings
経由。
次のように、キーバインディングを独自のカスタムのもので上書きすることもできます。
$ scala -Djline.keybindings=/path/to/keybindings.properties
詳細については、上記のSO Q&A)を参照してください。
コマンドラインでkill -l
と入力すると、存在するさまざまな割り込みがすべて表示されます。すべてがユーザー設定可能というわけではありません。
stty
は、キーを使用してアクション(割り込み)を設定します(Ctrlc、 Ctrl\、 Ctrlz、など)
stty intr ^C
はキーを設定します Ctrlc あなたが期待するように。
もう1つの興味深い機能はトラッピングです。
trap 'echo tried it' 2
を使用すると、割り込みがトラップされ、echo tried it
の代わりになります。
これは、シェルスクリプトがコマンドラインで中止されないようにするための優れた方法です。