Вопрос
Я хочу переформатировать свой файл, чтобы ширина максимальной линии 79. Я сделал :set tw=79
а также gggqG
И результаты не были тем, что я ожидал. Когда линия составляет менее 79 Col, символы из линии под ней перемещаются вверх, а линии с более чем 79 COL не разбиваются на две линии.
РЕДАКТИРОВАТЬ: Ну, я был полуфинаком в том смысле, что он разрывает линии более 79, за исключением линии со звездочками.
--CONVENTIONS**************************************************************************************
Кроме того, он все еще перемещает символы, когда линия имеет <79.
Решение
Одно возможное решение, хотя и не самое лучшее.
Неопределен formatexpr
и пусть внешняя fold
Программа для форматирования вашего текста по ширине 79 символов.
:set formatexpr=
:set formatprg=fold\ -w\ 79
И сейчас:
gg # Go to beginning of file.
gq # Format until...
G # End of file.
И последнее, удалите эти возвраты перевозки (^M):
:%s/\r//g
В моем тесте это изменило некоторые акцентированные персонажи, и некоторые другие строки были искажены, но попробуйте самостоятельно. Иначе вы можете написать свою собственную функцию формата и использовать ее с formatexpr
вариант.
Другие советы
Поместите пустую линию между разными абзацами. Тогда сделайте переформат.