web-dev-qa-db-ja.com

シェルの階層でのCTRLCの動作

シェルを開きます(bashのsbtnode debugなど)。次に、このシェル内で、別のシェルを開きます(それぞれscalaまたはnode replを使用)。ここで、最後のシェルを閉じて、最初に開いたシェル(sbtなど)に戻りたいのですが、 CTRLC、すべてのシェル階層が閉じられ、元のbashターミナルに戻ります。

here から学んだように、この動作は標準ではなく、私にとって望ましくありません。

EDIT:私はこの問題をnode debugで苦労しているので、実際には問題はsbtscalaに関するものではありません。私のbashの一般的な非標準の動作を示す実験。私はwindowsで同様の問題を見つけました ここ 、しかし私はUbuntu14.04を使用しています

3
leonprou

コマンド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

REPLはどうですか?

これによるとSO Q&Aタイトル: ScalaのREPLで前方削除としてctrl-dを使用する方法はありますか? =のデフォルトのキーバインディングを利用できますScala 2.9のREPL :keybindings経由。

次のように、キーバインディングを独自のカスタムのもので上書きすることもできます。

$ scala -Djline.keybindings=/path/to/keybindings.properties

詳細については、上記のSO Q&A)を参照してください。

1
slm

コマンドラインでkill -lと入力すると、存在するさまざまな割り込みがすべて表示されます。すべてがユーザー設定可能というわけではありません。

sttyは、キーを使用してアクション(割り込み)を設定します(Ctrlc、 Ctrl\、 Ctrlz、など)

stty intr ^Cはキーを設定します Ctrlc あなたが期待するように。

もう1つの興味深い機能はトラッピングです。

trap 'echo tried it' 2を使用すると、割り込みがトラップされ、echo tried itの代わりになります。

これは、シェルスクリプトがコマンドラインで中止されないようにするための優れた方法です。

0
yes guest