2

为什么 Sublime Text 2 Ctrl+P 在某些项目上不起​​作用而在其他项目上起作用?

感谢skuroda的提示,按ctrl+p后登录控制台如下:

command: show_overlay {"overlay": "goto", "show_files": true}
Unable to auto detect encoding, using fallback encoding Western (Windows 1252)
Unable to auto detect encoding, using fallback encoding Western (Windows 1252)
Traceback (most recent call last):
  File ".\sublime_plugin.py", line 175, in on_load
    callback.__module__, "on_load", EVENT_TIMEOUT)
  File ".\sublime_plugin.py", line 154, in run_timed_function
    ret = f()
  File ".\sublime_plugin.py", line 174, in <lambda>
    run_timed_function(lambda: callback.on_load(v),
  File ".\sublime_gbk.py", line 51, in on_load
  File ".\sublime_gbk.py", line 36, in gbk2utf8
Boost.Python.ArgumentError: Python argument types in
    Window.focus_view(Window, NoneType)
did not match C++ signature:
    focus_view(class SP<struct edit_window::reference>, class SP<class TextBufferView>)
Traceback (most recent call last):
  File ".\sublime_plugin.py", line 175, in on_load
    callback.__module__, "on_load", EVENT_TIMEOUT)
  File ".\sublime_plugin.py", line 154, in run_timed_function
    ret = f()
  File ".\sublime_plugin.py", line 174, in <lambda>
    run_timed_function(lambda: callback.on_load(v),
  File ".\sublime_gbk.py", line 51, in on_load
  File ".\sublime_gbk.py", line 36, in gbk2utf8
Boost.Python.ArgumentError: Python argument types in
    Window.focus_view(Window, NoneType)
did not match C++ signature:
    focus_view(class SP<struct edit_window::reference>, class SP<class TextBufferView>)
4

1 回答 1

7

如果没有更多信息,很难提供任何额外的帮助。话虽如此,请尝试在控制台ctrl+backtickView -> Show Console. 在里面输入sublime.log_commands(True)。每次点击时ctrl+p,它都应该打印类似command: show_overlay {"overlay": "goto", "show_files": true} . 如果不是,请具体说明它所说的内容。此外,您可以通过sublime.log_input(True)在控制台中输入来验证 ST 正在接收的输入。这应该总是返回类似key evt: control+p.

希望通过这两个命令,您可以提供一些额外的信息。如果/当您更新时,我会适当地编辑我的答案。

编辑:

看起来是一个插件引起了问题。我猜它是sublime-gbk,但我只是在猜测。您可以尝试在开发人员页面上创建问题并希望得到解决。我唯一可以建议的是禁用插件。您也可以尝试修改插件。这可能会破坏某些东西,但是在 中def gbk2utf8(view):,您可以执行类似的操作

if view is None:
    return

在尝试除块之前。当然,根据需要对齐间距,使其成为有效的 Python。

于 2013-07-25T01:32:37.560 回答