2013-04-11 4 views
0
/* Comments for code... */ 

if (...) { 

} 

Мне нужно удалить пустую строку между комментарием и if:Multiline шаблон регулярного выражения для удаления пустых строк

/* Comments for code... */ 
if (...) { 

} 

настоящее время я использую следующее регулярное выражение:

/\*\/\ze\n^$\n[ ]*if 
  • \*//: конец комментария (*/)
  • ^$: пустая строка перед тем if
  • [ ]*if: пространства и if

Как я использую \ze, курсор, наконец, указывает на */. Как мне это сделать?

+0

И ваш вопрос ?! –

+0

команда удалить пустую строку между шаблоном (конец комментария) и оператор if – Madhu

ответ

1

Почему бы не использовать \zs.

Это работает для меня:

:%s/\*\/\zs\n*[ ]*\zeif/\r/g 

Explaination:

%s - substitution on the entire file 
\*\/ - end of comment 
\zs - start of match 
\n*[ ]* - eol and spaces 
\ze - end of match 
if - followed by if 
/\n/ - replacement 
g - global regex (multiline) 
1
:g+*/+j 

гораздо быстрее, но, вероятно, слишком широк.

Вы могли бы сделать что-то вроде следующего:

:g+*/\_\s*if+j 
2

попробовать эту строку:

%s#\*/[\s\r\n]*#*/\r# 

это сделает

/* Comments for code... */ 





if (...) { 

} 
/* Comments for code... */ 






else{ 


} 

в:

/* Comments for code... */ 
if (...) { 

} 
/* Comments for code... */ 
else{ 


}