또는 foo
안의 문자열을 검색하는 경우 다음 과 같이 작동합니다.$...$
$$...$$
\$.*\zsfoo
이것은 $
문자에 일치하는 것을 고정 시키지만 문자열 만 선택합니다 foo
.
실제로 쉬운 해결책은 아니지만 :global
+ :substitute
를 사용하여 "수학 영역"을 찾아서 그 내부를 검색 할 수 있습니다.
:global /\v\\begin\{%(align|alignat|displaymath)\}/ +1,/\\end/-1 s/foo/&/gc
:substitute
검색 명령 인 척 하면 다음 항목으로 이동하여를 n
종료 할 수 있습니다 q
. 실수로 교체를 확인하면 아무런 문제가 없습니다.
당신은 목록 내부를 설정해야합니다 %(
... )
당신이 사용하는 수학 환경의 이름으로 (전체 목록은 약간 무거운이다 align|alignat|displaymath|eqnarray|equation|flalign|gather|math|multline|subequations|xalignat|xxalignat
). \v
여기서는 매우 마술 ( ) 패턴을 사용하고 있습니다.
설명:
:global
전직 명령을 (실행 :s
패턴 일치 (여기서 각 줄에) :help :global
)
/\v
매우 매직 패턴을 시작 ( :h /
, :h pattern
, :h magic
)
\\begin\{
리터럴 일치 \begin{
%(align|alignat|displaymath)
일치에게 이러한 단어 중 하나를 ( :h /\%(
, :h /bar
)
\}/
문자 그대로 일치 }
하고 패턴을 종료합니다.
+1,/\\end/-1
다음 행으로 이루어진 범위 (하나의 계산에 의해 발견 :global
한 검색 패턴을 발견하기 전에 행까지)를 /\\end
. 그 범위 내에서
s/foo/&/gc
리터럴 발생할 때마다 교체 수색 foo
(확인 후, 자체를 :h :substitute
)