에서 :h E65
우리는 빔 교체 명령에 9 개 이상 캡처 그룹을 허용하지 않는 것을 볼 수 있습니다.
예를 들어 다음 명령이 작동합니다.
s/\v(a)(b)(c)(d)(e)(f)(g)(h)(i)/\9\8\7\6\5\4\3\2\1
그러나 캡처 그룹이 하나 더있는 것은 실패합니다.
s/\v(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)/\10\9\8\7\6\5\4\3\2\1
내 질문은 왜 실패하는지에 관한 것이 아니라 (Vim 하드 한계) Vim 에 왜이 한계가 있습니까?
또한 9 개 이상의 캡처 그룹이있는 실제 정규식은 읽고 유지하는 데 꽤 괴물 일 수 있지만 여전히 궁금합니다.
2
Vim과 관련이 없을 수도 있습니다 : stackoverflow.com/a/10993346/2558252
—
nobe4
@ nobe4 : 흥미 롭습니다! 따라서 이러한 도구를 만드는 사람들은 9 개 이상의 그룹이 쓸모 없다고 생각했습니다.
—
statox
나는이 한계가 vi에서 왔고, 이는 ed / sed의 한계를 상속했다고 가정합니다. 몇 년 전 저는 99 개 그룹을 지원하는 패치를 만들었지 만 포함되지 않았습니다.
—
Christian Brabandt
@ChristianBrabandt보다 유용한 추가 기능은 in : 과 같은 숫자 플래그 를 구현 하는 것입니다. 이것은 아마도 내가 Vim에서 가장 놓친 기능 일 것입니다.
—
Sato Katsura
sed
s/.../.../3
명명 된 캡처를 지원하면이 문제를 완화 할 수 있습니다. 즉, 9 개의 캡처 그룹 근처에서 가장 많이 본 것은 사람들이 캡처되지 않은 그룹을 사용할 수 있다는 것을 알지 못하는 때였습니다
—
jamessan
\%()
.