Clojure 함수 정의 아래의 문서 문자열과 일치시키기 위해 다음 정규식을 사용하고 있습니다.
\vdefn.*\n\s*\zs"([^"]|\n)*"
gq주어진 파일에서이 패턴의 모든 일치 항목에 대해 일반 모드 (형식 줄) 명령 을 실행하는 방법 이 있습니까?
Clojure 함수 정의 아래의 문서 문자열과 일치시키기 위해 다음 정규식을 사용하고 있습니다.
\vdefn.*\n\s*\zs"([^"]|\n)*"
gq주어진 파일에서이 패턴의 모든 일치 항목에 대해 일반 모드 (형식 줄) 명령 을 실행하는 방법 이 있습니까?
답변:
의 힘 g:
:g/\vdefn.*\n\s*\zs"([^"]|\n)*"/normal gngq
/s 사이의 부분은 원래의 질문에서 나온 정규식이므로 상당히 설명이 필요합니다.
normal gngq결국 다소 흥미 롭습니다. gn는 정규 표현식의 다음 일치를 선택하고 gq물론 질문에서 언급 한대로이 선택의 형식을 지정합니다.
:g정말 큰 부분입니다. 제 생각에 이것은 Vim의 가장 유용한 기능 중 하나입니다. g전직 명령은 정규식과 전직 명령을 소요하고 모든 행에 정규식 일치 명령을 실행합니다. :g이미 배우지 않았다면 생산성이 크게 향상되므로 권장합니다. 몇 가지 리소스는 Vim 자체 :help :g또는 Vim 위키 의 g의 힘입니다 .
//s<cr>실행하면 현재 줄에서 경기가 시작될 때 //e<cr>나를 떠나지 만 현재 경기가 아니라 다음 경기가 끝날 때 떠나게됩니다.
//s<cr>V. 내가 실행하면 :normal V예상대로 비주얼 라인 모드로 이동합니다. 내가 실행할 때 예상대로 :normal //s<cr>커서 "가 일치 하는 첫 번째 에 도달합니다. 내가 실행할 때 :normal //s<cr>V나는 시각적 인 선택을하지 않습니다.
gn조각 라인으로부터 선택되고V받는 트리거 다음 패턴의 발생 (동일한 행에없는 것). Vim의 문서에 따르면 비주얼 모드가 활성화되어 있으면 현재 줄에서 다음 패턴까지 선택이 확장됩니다. 이로 인해 원치 않는 동작이 발생합니다.