문제
다음을 교체해야합니다.
CREATE TABLE /*!32312 IF NOT EXISTS*/ `access`
에게
CREATE TABLE IF NOT EXISTS `access`
난 노력 했어
:%s/\/\*\!\d+(.*)\*\//\1/g
그러나 그것은 가지 않았다. 내가 뭘 잘못하고 있죠?
해결책
VIM은 백 슬래시 + (또는 대신 * 사용)가 필요합니다. 또한 VIM에서 괄호를 그룹화해야합니다. 따라서:
:%s/\/\*\!\d\+\(.*\)\*\//\1/g
예, Vim의 구식 Posix Regexes Suck :/
편집 : 아래 의견에 언급 된 바와 같이 +는 +로 탈출하면 작동합니다. 그리고 d는 실제로 지원됩니다. 이를 수정하기 위해 Regex 예제를 편집했습니다. 또한 더 간결하고 읽을 수있는 버전에 대한 Brian Carper의 예를 참조하십시오.
다른 팁
"매우 마법"을 사용하고 기본값 이외의 구분 제를 사용하여 읽기 쉽고 기억할 수 있습니다.
:%s@\v/\*!\d+(.*)\*/@\1@g
"매우 마법"이 없으면 앞에 백 슬래시를 넣어야합니다. +
그리고 ()
(그러나 앞에 있지 않습니다 *
또는 다른 것들). 그다지 일관되지 않습니다.
^*]+ :-)와 약간 다르고 효율적입니다.
1,$s/\v\/\*\!\d+\s*([^*]+)\*\//\1
제휴하지 않습니다 StackOverflow