vim : 바꾸기 명령에서 검색에서 문자열 사용 일치하므로 교체를 수행합니다. :%s/TP-\(\d\{5\}\)-DD-\d\{3\}/\1/g 그러나 여기에 전체 정규

종종 vim /search 명령을 사용하여 정규 표현식을 확인합니다 (일치하는 내용 만 확인). 그 후 나는 보통 :%sreplace 명령을 사용하는데 , 여기서 검색에서 regexp를 바꿀 문자열로 사용합니다. 예를 들어 먼저 그러한 문자열을 찾습니다.

/TP-\(\d\{5\}\)-DD-\d\{3\}

내가 원하는 것과 정확히 일치하므로 교체를 수행합니다.

:%s/TP-\(\d\{5\}\)-DD-\d\{3\}/\1/g

그러나 여기에 전체 정규 표현식을 다시 작성해야합니다. 일반적으로 정규 표현식이 훨씬 길기 때문에 해결책을 찾고 있습니다.

해당 검색 패턴을 replace 명령에 직접 붙여 넣기위한 기존 바로 가기 또는 vim 스크립트가 있습니까?

터미널에서 vim을 사용합니다 (gvim 없음).



답변

일반적으로 빈 정규식은 이전에 입력 한 정규식을 사용한다는 것을 의미하므로 :%s//\1/g원하는 것을 수행해야합니다.


답변

Ex 명령뿐만 아니라 과거 정규 표현식 검색을보고 변경하는 또 다른 좋은 방법은 이러한 명령을 일반 모드에서 편집하는 것입니다. 이 모드에서 복사 및 붙여 넣기를 포함한 모든 vim 기능을 사용할 수 있습니다.

  • 검색 : ?또는/ 검색을 위해, 시도 q/또는q?
  • Ex 명령이 아닌 :시도q:
  • 이 모드를 종료하려면 CtrlC

자세한 내용은을 참조하십시오 :help q:.