Autojump: 由于 autojump_match.py​​ 中的反斜杠处理不当而导致 Windows 崩溃

创建于 2016-08-01  ·  7评论  ·  资料来源: wting/autojump

在 Windows 中执行任何正常的 autojump 命令会导致:

Traceback (most recent call last):
  File "C:\Program Files (x86)\CowShell\Vendor\AutoJump\bin\\autojump", line 320, in <module>
    sys.exit(main(parse_arguments()))
  File "C:\Program Files (x86)\CowShell\Vendor\AutoJump\bin\\autojump", line 314, in main
    ['.'])))
  File "C:\Program Files (x86)\CowShell\Vendor\AutoJump\bin\autojump_utils.py", line 42, in first
    return it.next()
  File "C:\Program Files (x86)\CowShell\Vendor\AutoJump\bin\autojump_match.py", line 86, in <lambda>
    flags=regex_flags,
  File "F:\Programs\Python\lib\re.py", line 146, in search
    return _compile(pattern, flags).search(string)
  File "F:\Programs\Python\lib\re.py", line 251, in _compile
    raise error, v # invalid expression
sre_constants.error: unexpected end of regular expression
ECHO is off.

此处突出显示的更改: https :
导致 Windows 系统功能障碍。

建议的解决方案基本上是将 autojump_match.py​​ 中的第 78-80 行更改为:

    sep = '\\\\' if os.sep == '\\' else os.sep
    regex_no_sep = '[^' + sep + ']*'
    regex_no_sep_end = regex_no_sep + '$'
    regex_one_sep = regex_no_sep + sep + regex_no_sep

(有条件地设置正则表达式构造中使用的分隔符值)

os-windows priority-high

最有用的评论

Window 10 专业版,我今天遇到了这个问题......而且建议的补丁很有魅力! 非常感谢。 我只是想知道为什么四年过去了,补丁没有合并到master中?

所有7条评论

嘿,感谢您提供详细的错误报告!

不幸的是,我无法访问 Windows 机器。 您能否更新这些 Windows 测试,以便它们重现您遇到的错误? 这样我们就可以防止未来的回归错误。

只是在 Win10 上尝试自动跳转并点击它。 提议的补丁似乎对我有用。

@wting如果测试实际上并未在 Windows 上执行,那么 match_consecutive 测试是否会选择错误的os.sep ? 除非 os.sep 是反斜杠,否则测试实际上不会失败。

您可以模拟它进行如下测试:

In [1]: import os, mock

In [2]: os.sep
Out[2]: '/'

In [3]: with mock.patch.object(os, 'sep', '\\'):
   ...:     print(os.sep)
   ...:     
\

我遇到了同样的问题,建议的修复解决了这个问题。 我想另一种解决方案是在诸如 appveyor 之类的 Windows CI 平台上运行测试。

赢 10 64 ,同样的问题。 更改 autojump_match.py​​ 工作。 谢谢。

Window 10 专业版,我今天遇到了这个问题......而且建议的补丁很有魅力! 非常感谢。 我只是想知道为什么四年过去了,补丁没有合并到master中?

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

grota picture grota  ·  16评论

srid picture srid  ·  14评论

mbigras picture mbigras  ·  3评论

xuhdev picture xuhdev  ·  3评论

qazip picture qazip  ·  3评论