Переформатировать ширину текста VIM
Я хочу переформатировать мой файл, чтобы максимальная ширина линии была 79. Я сделал :set tw=79
а также gggqG
и результаты оказались не такими, как я ожидал. Когда строка меньше 79 столбцов, символы из строки ниже нее перемещаются вверх, а строки с более чем 79 столбцами не разбиваются на две строки.
редактировать: Ну, я был почти ошибочным в том, что он разрывает строки над 79 за исключением строки со звездочками.
--CONVENTIONS**************************************************************************************
Кроме того, он все еще перемещает символы вверх, когда в строке <79.
2 ответа
Одно из возможных решений, хотя и не самое лучшее.
Undefine 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
вариант.
Поместите пустую строку между разными абзацами. Затем выполните переформатирование.