vim, man 이하를 사용할 때 정규 표현식의 정확한 일치

vim, man 이하를 사용할 때 정규 표현식의 정확한 일치

vim, man 이하를 사용할 때 정규식에서 정확한 일치를 수행하고 싶습니다.

예를 들어 man을 사용할 때 '-c' 매개변수를 확인하고 싶습니다.

내가 사용한다면

  /'-c'

-cim -covert......blabla와 일치할 수 있습니다.

하지만 '-c'만 일치시키고 싶습니다.

정확한 일치를 달성하는 방법은 무엇입니까? 감사해요!

답변1

앞이나 뒤에 문자가 없는지 확인하는 더 짧은 vim 표현식

/\(^\|\s\)\@<=-c\>

남성/이하와 동일:

/(^|\s)-c\b

추가 참고사항(Vim):

아마도 Vim의 정규식 중 가장 유용한 부분은 -c\>"'-c'를 찾는 것입니다. 단, 그 뒤에 문자가 없는 경우에만 해당됩니다." 대부분의 경우 를 사용하여 검색하겠지만 /-c\>, 완전성을 위해 "-c" 앞에 오는 내용을 확인하는 표현식을 추가했습니다. 표현식은 \(^\|\s\)\@<=이고 Vim의 정규 표현식 구문이 약간 장황하기 때문에 복잡해 보입니다(그룹화 대괄호와 "or" 파이프를 이스케이프해야 하기 때문입니다). 이 표현은 \(^\|\s\)"줄의 시작 또는 공백 문자"를 의미합니다. 그 뒤에 넣으면 \@<="실제로 일치하지 않고 정규식의 다음 부분 앞에 나타나는지 확인하십시오"를 의미합니다(이것은 검색 및 바꾸기 작업에만 실제로 유용합니다). 사실 이 \@<=부분은 별로 필요하지 않을 것 같습니다. 생략하고 를 추가하면 더 단축할 수 있습니다 \v. 이렇게 하면 Vim에게 멋진 구문을 사용하지 않을 것임을 알려줍니다. 그럴 것 같습니다 /\v(^|\s)-c>.

man/less 등가물에 대한 설명:

훨씬 간단합니다. less (기본 수동 호출기)는 \bVim과 동일한 정규식 구문을 사용하며 \>이스케이프 대괄호나 파이프 문자가 필요하지 않습니다. 줄의 시작 부분이나 공백 문자 바로 뒤에 나타나는 문자열 "-c"를 찾고 그 뒤에 다른 문자가 없는지 확인합니다.

답변2

vim사용 중

/\(^\|\s\)-c\($\|\s\)

존재하다 less:

/(^|\s)-c($|\s\)

vim에서 단어 경계를 사용할 수 있지만 isk옵션이 될 수 있는 다른 항목과도 ​​일치하므로 명시적으로 공백을 찾는 것이 더 안전합니다.

관련 정보