나는 다음과 같은 대체해야합니다VI 사용하기 다음 명령문을 검색하고 바꿀 수 있습니까?
CREATE TABLE /*!32312 IF NOT EXISTS*/ `access`
내가
:%s/\/\*\!\d+(.*)\*\//\1/g
을 시도했다하지만 그건 갈 것 같지 않았다
CREATE TABLE IF NOT EXISTS `access`
에. 내가 도대체 뭘 잘못하고있는 겁니까?
나는 다음과 같은 대체해야합니다VI 사용하기 다음 명령문을 검색하고 바꿀 수 있습니까?
CREATE TABLE /*!32312 IF NOT EXISTS*/ `access`
내가
:%s/\/\*\!\d+(.*)\*\//\1/g
을 시도했다하지만 그건 갈 것 같지 않았다
CREATE TABLE IF NOT EXISTS `access`
에. 내가 도대체 뭘 잘못하고있는 겁니까?
vim에는 역 슬래시가 필요하지만 + 대신 *가 사용됩니다. 또한 vim에서 그룹화 괄호를 백 슬래시로 묶어야합니다. 따라서 아래 코멘트에서 언급 한 바와 같이, + \ +로 이스케이프 경우 작동합니까 :/
편집 :
:%s/\/\*\!\d\+\(.*\)\*\//\1/g
예, 정력의 이전 스타일의 POSIX 정규 표현식에 빨아. 그리고 \ d 실제로 지원됩니다, 죄송합니다. 이 문제를 해결하기 위해 예제 정규식을 편집했습니다. 보다 간결하고 읽기 쉬운 버전에 대한 Brian Carper의 예도 참조하십시오.
"매우 매직 (very magic)"을 사용하고 기본값 이외의 구분 기호를 사용하면 읽기 쉽고 기억하기 쉽습니다. 없이
:%[email protected]\v/\*!\d+(.*)\*/@\[email protected]
"매우 마법"당신이 +
및 ()
앞에 역 슬래시를 추가해야합니다 (그러나 *
의 전면 또는 다른 어떤 일에). 그다지 일관성이 없습니다.
약간 다른과 더 효율적인 [^ *] +
1,$s/\v\/\*\!\d+\s*([^*]+)\*\//\1
정력 지원 + 않습니다 :-), 당신은 단지 그것을 탈출해야 "\ +" –
은 분명히 그렇습니다. 굉장해. 나는 여전히 PCRE-for-vim 플러그인을 원합니다 :) – bdonlan
그냥 내 대답을 삭제했습니다 : Vim에서 정규식 지원과 관련하여 충분한 지식이없는 것으로 나타났습니다.) – VonC