\<data\>
예를 들어, 다음과 같이 여러 줄로 된 블록 주석에 나타나는 항목을 검색하고 싶지만 건너뛰고 싶은 경우 :
/*
* Don't match comments containing the term 'data'
*/
\(\*.*\)\@<!\<data\>
블록 주석이 각 줄에서 항상 a로 시작하지 않기 때문에 너비가 0인 negative-lookbehind를 사용할 수 없습니다 *
.
여러 줄로 된 블록 주석 내에서 일치 항목을 제외하는 것은 어렵거나 불가능할 것 같지만 구문 강조는 어떤 섹션이 주석인지 아닌지 식별할 수 있으므로 구문 강조 그룹을 사용하여 정규식 검색을 연결할 수 있는 방법이 있습니까? ?
구문 강조 그룹에 연결하는 것이 가능하다면 다음과 같이 주석에 나타나는 용어뿐만 아니라 문자열에 나타나는 용어도 제외할 수 있습니다.
output = "Sample data: '"+data+"' ...";
그리고 따옴표 바깥의 중간에 있는 데이터만 일치됩니다.
이것이 가능한지 아는 사람이 있나요?
편집하다:적어도 댓글을 제외하고 검색하는 것은 가능합니다. 누군가가 표시한 대로 search() 함수를 정의하고 그 내부에서 하이라이트 그룹을 확인할 수 있습니다.이 스레드. 관련 부분:
search()를 사용한 다음 구문 강조 그룹이 주석인지 확인하십시오. synIDattr(synIDtrans(synID(line("."), col("."), 1)), "name")이 Comment인 경우 search()를 다시 호출합니다.
그러나 나는 이것이 올바른 용어를 강조하는 hlsearch를 떠날 것이라고 생각하지 않습니다.