На стороне замены при подстановке vim новая строка представлена как \ r
. Таким образом, попробуйте:
%s/\n\n/#\r\r/g
Полученный файл будет выглядеть так:
elephant#
rhino#
giraffe#
/* animals who live in Africa */
В первой половине заменяющей команды \ n
- это новая строка, а \ r
- возврат каретки. . Напротив, на стороне замены команды \ n
- это символ NUL (шестнадцатеричный 00), а \ r
- это новая строка.