web-dev-qa-db-ja.com

Sublime Textが無限ループを実行しないようにする

私が何かをするとき

while True:
    print('loop')

そしてそのコードを崇高に実行します。私はそれを止めることはできません。プロセスを手動で強制終了し、崇高なものを再起動する必要があります。

何らかの'max_execution_time'を設定する方法や、これをうまく停止できる他の回避策はありますか?

13
Finn

使いたい Ctrl+Break。独自の情報については、Sublime Textの[ツール]で確認すると、ビルドのキャンセルと上記のホットキーが表示されます。無限ループに対してはうまく機能します。言うだけで十分です、私は同じことが起こっていました! ;)


Windowsユーザーの場合、 Break キー、それで設定>キーバインディングに移動し、行を変更します

{ "keys": ["ctrl+break"], "command": "cancel_build" }

などの別のショートカットへ Ctrl+Alt+B

28
Eithos

私にとって(Linuxの場合)、キーボードにはbreakキーがありません。このショートカットは何らかの形で別の組み合わせにバインドされていました。 ctrl+alt+c

Toolsメニューでバインドされている場所を見つけることができます:

enter image description here

スクリプトを中断した後、サブライムテキストコンソールに[Cancelled]というテキストが出力されるはずです。

4
wim

MacOSの場合:

cmd + option + esc

強制終了する

1
Abhishek Pareek

ここにはいくつかのオプションがあります。繰り返しの最大数を非常に多く設定できます(無限ループの痛みを避けるために、実際にコードを完全にデバッグするまで、ほとんどのwhileループでこれを行います)。

max_iterations = 100000000
while i < max_iterations:
   print("Hello World")

別の方法は、タイムモジュールを使用して、次のようにコードの実行時間を計時することです。

import time
max_execution_time = 10000000 #this will be in seconds
start_time = time.clock()
elapsed_time = 0   
while elapsed_time < max_execution_time:
    elapsed_time = time.clock() = start_time
    #Your loop code here
1
Nick Bailey

CTRL + CキーオンMacOSと入力するだけです。

0
HaSeeB MiR

組み合わせはctrl+break

Windowsにはブレークボタンがないため、Preferences > Key Bindingsそしてユーザー側にこれを追加します:

{ "keys" : ["ctrl+c"], "command": "cancel_build"}

これで、Ctrl + Cを押すと実行が停止します。もちろん、組み合わせを好きなように変更できます。

0
Orestis Zekai