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의 문서에 따르면 비주얼 모드가 활성화되어 있으면 현재 줄에서 다음 패턴까지 선택이 확장됩니다. 이로 인해 원치 않는 동작이 발생합니다.