Остановить Sublime Text от выполнения бесконечного цикла

когда я делаю что-то вроде

while True:
    print('loop')

и выполнить этот код в sublime я не могу остановить его. Я должен вручную убить процесс и перезапустить sublime.

есть ли способ установить какой-то 'max_execution_time' или любой другой обходной путь, который позволит нам остановить это красиво?

3 ответов


вы хотите использовать Ctrl+перерыв. Для вашей собственной информации, просто зайдите в раздел Инструменты в Возвышенное Текст и вы увидите Отменить Построить и выше клавиш. Он отлично подойдет для бесконечных циклов. Достаточно сказать, что со мной произошло то же самое! ;)


для пользователей Windows, нет перерыв ключ, поэтому перейдите в настройки>привязки клавиш и измените строку

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

в другой ярлык, например Ctrl+Alt+B


у вас есть несколько вариантов здесь. Вы можете установить огромное максимальное количество итераций (я действительно делаю это с большинством циклов while, пока я полностью не отлажу свой код, чтобы избежать бесконечных болей цикла): Так, например,

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

альтернативой будет использование модуля time для синхронизации времени выполнения вашего кода, как это

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

для меня (на Linux), нет break клавиша на клавиатуре, и этот ярлык был как-то связан с другой комбинацией: ctrl+alt+c.

вы можете найти, где он связан в :

enter image description here

после прерывания скрипта вы должны увидеть текст [Cancelled] печать на консоль sublimetext.