Можно сделать поиск и замену. Я просто выписал это. Это работает, но Вы могли, вероятно, добиться большего успеха.
:%s/\v[ ]*([^\.]*\.)/\1\r/g
vap:s/\. /.^M/g
vap
выбирает Ваш текущий абзац:s/\. /.^M/g
замените все периоды, сопровождаемые пространством с периодом, сопровождаемым новой строкой. (Обратите внимание что получить ту литеральную новую строку (^M
) в выражении замены необходимо будет ввести <CTRL-V><CR>
.)Мое решение, запустите в нормальном режиме и типе:
vip:'<,'>s/\n/ /|'<,'>s/\([.?!]\)\s/\1\r/g
Обратите внимание, что первое' <'>, будет автоматически вставлен на командной строке, когда Вы нажимаете ":" ключ после ввода"vip
"в нормальном режиме.
Первая замена присоединяется к абзацу в одну строку, затем "|", символ разграничивает вторую:-команду в той же командной строке, и на этот раз"'<,'>
"должен быть введен вручную. Вторая команда замены заменяет период, вопросительный знак или восклицательный знак, сопровождаемый пространством с символом соответствия и новой строкой.
Это не поймает экземпляры, где предложение заканчивается period/excalmation/question и символом кавычки, и т.д. но шаблон может быть расширен, чтобы сделать так.