Если вы хотите удалить все остальные строки, кроме тех, которые с if, else или fi, вы можете использовать это
%v/\(if\|else\|fi\)/d
'v' является противоположностью 'g' и удалит все строки, которые не соответствуют регулярному выражению.
Чтобы добавить к тому, что сказал Стрейджер, символ трубы '|' я избегаю в Vim, я полагаю, потому что Vim предполагает, что вы будете искать буквальные символы чаще, чем вам понадобится обширный RegExps.
Вы можете сделать так, чтобы Vim использовал меньше экранированных RegExps, установив «магический» уровень на «очень» в режиме ex:
Использование "\ v" означает, что в шаблоне
после него все символы ASCII, кроме
«0» - «9», «a» - «z», «A» - «Z» и «_» имеют
особое значение. "очень волшебно"
См .: он / магия для получения дополнительной информации
Не рекомендуется устанавливать магический уровень по умолчанию на «очень» в вашем vimrc, хотя (как отмечает файл справки).