Как включить перенос слов в vim при печати - PullRequest
5 голосов
/ 10 февраля 2009

Я хотел напечатать простой текстовый документ и убедиться, что слова переносятся по границам слов. Я пробовал оба

set linebreak

и

set wrap

но при печати он просто разрывается на правом столбце в середине слова. Возможно ли это для печати?

1 Ответ

6 голосов
/ 10 февраля 2009

Вы создаете текстовый файл без каких-либо встроенных разрывов строк, поэтому каждый абзац представляет собой одну «строку», хотя при наличии переноса строки и переноса выглядит, что они представляют собой несколько строк). Вот почему печать ломается в фиксированных местах. (В соответствии с http://www.vim.org/htmldoc/various.html#printing не похоже, что во время печати у вас может возникнуть разрыв строки / переноса).

Чтобы избежать этого, если вы хотите, чтобы текст был перенесен во время редактирования, выполните

set textwidth=70

, чтобы обернуть в 70-й колонке. Если вы хотите, чтобы ваш файл имел длинные строки (например, чтобы он хорошо форматировался при загрузке в MS Word или что-то в этом роде), вам придется предварительно обработать текстовую версию перед печатью. Так, например, вы можете попробовать:

fmt file.txt | lpr

или, если у вас установлен enscript, вы можете попробовать:

enscript --word-wrap file.txt

для печати. Существующий файл можно обернуть, запустив vim:

gggqG

то есть «gg» для перехода к началу файла и «gqG» для переформатирования «gq» из текущей позиции (т.е. первой строки) в последнюю строку (путем перехода к «G»). 'gq' будет учитывать ваши текущие настройки текстовой ширины.

...