web-dev-qa-db-fra.com

Arrêtez Sublime Text d'exécuter une boucle infinie

Quand je fais quelque chose comme

while True:
    print('loop')

et exécuter ce code en sublime je ne suis pas capable de l'arrêter. Je dois tuer manuellement le processus et redémarrer sublime.

Existe-t-il un moyen de définir une sorte de 'max_execution_time' ou toute autre solution de contournement permettant d'arrêter cela correctement?

9
Finn

Vous voulez utiliser Ctrl+Break. Pour votre propre information, allez simplement vérifier sous Outils dans Sublime Text et vous verrez Annuler la construction et le raccourci clavier ci-dessus. Cela fonctionnera parfaitement pour des boucles infinies. Autant dire que j'ai eu la même chose arriver! ;)


Pour les utilisateurs Windows, il n'y a pas Break clé, alors allez dans Préférences> Liaisons de touches et changez la ligne

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

à un autre raccourci, tel que Ctrl+Alt+B

22
Eithos

Pour moi (sous Linux), il n'y a pas de touche break sur le clavier et ce raccourci était lié à une combinaison différente: ctrl+alt+c.

Vous pouvez trouver où il est lié dans le menu Tools:

enter image description here

Après avoir interrompu votre script, vous devriez voir le texte [Cancelled] imprimé sur la console sublimetext.

2
wim

Vous avez quelques options ici . Vous pouvez définir un très grand nombre d'itérations (je le fais en fait avec la plupart des boucles while jusqu'à ce que mon code soit complètement débogué, afin d'éviter des problèmes de boucle infinis):. Exemple

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

Une alternative serait d'utiliser le module time pour chronométrer le temps d'exécution de votre code comme ceci

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

Pour MacOS:

cmd + option + esc

forcer à quitter

0
Abhishek Pareek

La combinaison est ctrl+break.

Sous Windows, il n'y a pas de bouton de pause, vous pouvez donc aller à Preferences > Key Bindings et ajouter du côté utilisateur

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

Maintenant, en appuyant sur Ctrl + C, l'exécution s'arrête. Bien sûr, vous pouvez changer la combinaison en ce que vous voulez.

0
Orestis Zekai