답변:
정규 표현식만으로는 수행 할 수 없습니다. 캡처 그룹 처럼 작동하는 특수 원자가 필요 하지만 대신 열을 캡처 한 다음 리콜을 위해 해당 원자를 캡처합니다. 최선의 방법은 다음 행의 각 행을 일치시키는 것입니다.
/ab\ze.*\n.*ba.*\n.*ab/
이를 통해 블록의 행과 일치하는 행뿐만 아니라 블록의 텍스트를 포함하는 모든 행은 동일한 세로 정렬뿐만 아니라 첫 번째 행의 일치 만 강조 표시됩니다. 내 SearchHighlighting 플러그인 도이 기능을 제공합니다 (로 매핑 {Visual}*
).
충분하지 않은 경우 ( /c
플래그를 사용하여 :substitute
각 일치 항목을 수동으로 확인하고 승인 할 수있는 경우) 자체 검색 (및 대체) 인프라 (예 : /
, n
/ N
, 및 등가)를 구축 :s
하고 블록에 대한 추가 어설 션을 수행해야합니다. Vimscript의 정렬.