[regex] Vim에서 대화식 검색 / 대체 정규식?
답변
플래그 추가 C (Vim은 명령 프롬프트에서)를 :
:%s/old/new/gc
‘old’가 나타날 때마다 예 / 아니오 프롬프트를 표시합니다.
Vim의 내장 도움말은 확인을 통한 대체가 선택된 후 사용 가능한 옵션에 대한 유용한 정보를 제공합니다. 사용하다:
:h :s
그런 다음 확인 옵션 섹션으로 스크롤하십시오. 아래 스크린 샷 :
예를 들어,이 항목과 나머지 모든 일치 항목을 대체하려면을 사용하십시오 a
.
답변
Mark Biek은 다음을 사용하여 지적했습니다.
%s/old/new/gc
전체 검색의 경우 각 대체에 대한 확인으로 바뀝니다. 그러나 이전 텍스트가 올바르게 일치하는지 대화식으로 확인하는 것도 좋습니다. 먼저 정규식으로 검색 한 다음 해당 패턴을 재사용합니다.
/old.pattern.to.match
%s//replacement/gc
는 s//
마지막 검색 패턴을 사용합니다.
답변
난 당신이 찾고있는 생각 c
예를 들어 s/abc/123/gc
,이 VIM은 교체를 확인하게됩니다. 자세한 내용은 : help : substitute를 참조하십시오.
답변
나는 보통 find / substitute / next / repeat 명령을 사용합니다 🙂
/old<CR>3snew<ESC>n.n.n.n.n.n.n.
의 그 find "old"
, substitute 3 characters for "new"
, find next
, repeat substitute
, 등.
대규모 대체의 경우 고통 스럽지만 이전 항목을 선택적으로 무시할 수 있습니다 ( 대체를 반복하는 n
대신 다음 항목을 찾기 위해 다시 누르면 됩니다 .
).
답변
‘abc’의 발생 횟수를 세고 싶다면 할 수 있습니다 %s/abc//gn
. 이것은 아무것도 대체하지 않고 ‘abc’발생 횟수 만보고합니다.
답변
일치하는 각 발생에 대해 대체 텍스트를 변경 해야하는 경우 (즉, 단일 대체를 적용하기 위해 단순히 예 / 아니요를 선택하지 않음) 대화식 대체 라는 Vim 플러그인을 사용할 수 있습니다 .
답변
Neovim 에는 이제 대체를 미리 볼 수있는 기능이 있습니다.
이미지 : https://medium.com/@eric.burel/stop-using-open-source-5cb19baca44d
기능 설명서 : https://neovim.io/doc/user/options.html# ‘inccommand’