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://github.com/wting/autojump/commit/7c7865ea7ecfd937284f774fb0818c5cc10c340a#diff -4b97c2fd2ae952c567c1646bc80e5d43L78
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

(regex ๊ตฌ์„ฑ์— ์‚ฌ์šฉ๋˜๋Š” ๊ตฌ๋ถ„ ๊ธฐํ˜ธ ๊ฐ’์„ ์กฐ๊ฑด๋ถ€๋กœ ์„ค์ •)

os-windows priority-high

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

Window 10 Professional, ์˜ค๋Š˜ ์ด ๋ฌธ์ œ๋ฅผ ๋งŒ๋‚ฌ์Šต๋‹ˆ๋‹ค.... ์ œ์•ˆ๋œ ํŒจ์น˜๊ฐ€ ๋งค๋ ฅ์ฒ˜๋Ÿผ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค! ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. 4๋…„์ด ์ง€๋‚˜๋„ ํŒจ์น˜๊ฐ€ ๋งˆ์Šคํ„ฐ์— ๋ณ‘ํ•ฉ๋˜์ง€ ์•Š๋Š” ์ด์œ ๊ฐ€ ๋ฌด์—‡์ธ์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  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 Professional, ์˜ค๋Š˜ ์ด ๋ฌธ์ œ๋ฅผ ๋งŒ๋‚ฌ์Šต๋‹ˆ๋‹ค.... ์ œ์•ˆ๋œ ํŒจ์น˜๊ฐ€ ๋งค๋ ฅ์ฒ˜๋Ÿผ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค! ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. 4๋…„์ด ์ง€๋‚˜๋„ ํŒจ์น˜๊ฐ€ ๋งˆ์Šคํ„ฐ์— ๋ณ‘ํ•ฉ๋˜์ง€ ์•Š๋Š” ์ด์œ ๊ฐ€ ๋ฌด์—‡์ธ์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰