Остановить 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.
вы можете найти, где он связан в :
после прерывания скрипта вы должны увидеть текст [Cancelled]
печать на консоль sublimetext.