停止 Sublime Text 执行无限循环
Stop Sublime Text from executing infinite loop
当我做类似
的事情时
while True:
print('loop')
并在 sublime 中执行该代码我无法阻止它。我必须手动终止进程并重新启动 sublime。
有没有办法设置某种 'max_execution_time'
或任何其他解决方法,使我们能够很好地停止这种情况?
这里有几个选项。
您可以设置一个巨大的最大迭代次数(我实际上对大多数 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
您想使用 Ctrl+Break。对于您自己的信息,只需在 Sublime Text 中的工具下查看,您将看到 Cancel Build 和上面的热键。它适用于无限循环。可以说,我也遇到过同样的事情! ;)
对于 Windows 用户,没有 Break 键,因此进入首选项>键绑定并更改行
{ "keys": ["ctrl+break"], "command": "cancel_build" }
到不同的快捷方式,例如 Ctrl+Alt+B
对我来说(在 Linux 上),键盘上没有 break
键,这个快捷方式以某种方式绑定到不同的组合:ctrl +alt+c。
您可以在Tools
菜单中找到它的绑定位置:
中断脚本后,您应该会看到文本 [Cancelled]
打印到 sublimetext 控制台。
对于 MacOS:
cmd + option + esc
强制退出
组合为ctrl+break
.
在 Windows 中没有中断按钮,因此您可以转到 Preferences > Key Bindings
并在用户端添加:
{ "keys" : ["ctrl+c"], "command": "cancel_build"}
现在,按 Ctrl+C 将停止执行。当然,您可以随意更改组合。
更新
如@Brad 所述,Ctrl+C 将覆盖复制键盘快捷键。给它分配另一个键是明智的,比如 Brad 指出的 Q。
只需在 MacOS 上键入 CTRL+C 键。
如果您使用的是 Sublime Text 3,请按照此操作,转到“首选项”>“包设置”>“对齐”>“键绑定-用户”
[
{ "keys": ["ctrl+n"], "command": "cancel_build" }
]
现在,按ctrl+n,执行将立即停止。当然,您可以将组合更改为您想要的任何组合(代替 ctrl+n)。
当我做类似
的事情时while True:
print('loop')
并在 sublime 中执行该代码我无法阻止它。我必须手动终止进程并重新启动 sublime。
有没有办法设置某种 'max_execution_time'
或任何其他解决方法,使我们能够很好地停止这种情况?
这里有几个选项。 您可以设置一个巨大的最大迭代次数(我实际上对大多数 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
您想使用 Ctrl+Break。对于您自己的信息,只需在 Sublime Text 中的工具下查看,您将看到 Cancel Build 和上面的热键。它适用于无限循环。可以说,我也遇到过同样的事情! ;)
对于 Windows 用户,没有 Break 键,因此进入首选项>键绑定并更改行
{ "keys": ["ctrl+break"], "command": "cancel_build" }
到不同的快捷方式,例如 Ctrl+Alt+B
对我来说(在 Linux 上),键盘上没有 break
键,这个快捷方式以某种方式绑定到不同的组合:ctrl +alt+c。
您可以在Tools
菜单中找到它的绑定位置:
中断脚本后,您应该会看到文本 [Cancelled]
打印到 sublimetext 控制台。
对于 MacOS:
cmd + option + esc
强制退出
组合为ctrl+break
.
在 Windows 中没有中断按钮,因此您可以转到 Preferences > Key Bindings
并在用户端添加:
{ "keys" : ["ctrl+c"], "command": "cancel_build"}
现在,按 Ctrl+C 将停止执行。当然,您可以随意更改组合。
更新
如@Brad 所述,Ctrl+C 将覆盖复制键盘快捷键。给它分配另一个键是明智的,比如 Brad 指出的 Q。
只需在 MacOS 上键入 CTRL+C 键。
如果您使用的是 Sublime Text 3,请按照此操作,转到“首选项”>“包设置”>“对齐”>“键绑定-用户”
[
{ "keys": ["ctrl+n"], "command": "cancel_build" }
]
现在,按ctrl+n,执行将立即停止。当然,您可以将组合更改为您想要的任何组合(代替 ctrl+n)。