Остановить обтекание строк в середине слова - PullRequest
43 голосов
/ 14 марта 2012

После выполнения :set wrap Vim переносит строки длиннее окна.

Но возможно ли Vim переносить новую строку только на пустые места, а не на полпути через слово?

Ответы [ 4 ]

57 голосов
/ 14 марта 2012

:help wrap

Этот параметр изменяет способ отображения текста. Это не меняет текст в буфере, см. «Текстовая ширина» для этого. Когда включено, строки длиннее ширины окна будут переноситься и отображение продолжается на следующей строке. Когда офлайн не будет переносить и будет отображаться только часть длинных строк. Когда курсор перемещен в часть, которая не отображается, экран будет прокручиваться по горизонтали. При необходимости строка будет разбита на середину слова. См 'перевод строки', чтобы получить разрыв на границе слова.

:help linebreak

Если на Vim будут переносить длинные строки у персонажа в 'breakat' чем у последнего символа, который умещается на экране.

:help breakat

'breakat' 'brk' string (по умолчанию " ^I!@*-+;:,./?")

Итак, :set linebreak и оно должно работать из коробки. Или вы можете ограничить breakat только пробелами вместо пробелов + пунктуации.

10 голосов
/ 14 марта 2012

Используйте

:set linebreak

или 'lbr' для краткости.Он будет разбивать строки на символах, включенных в ваш параметр 'breakat', который по умолчанию содержит пробел.

3 голосов
/ 14 марта 2012

Открыв vim, нажмите esc и введите

:set lbr

1 голос
/ 05 февраля 2018

Следующее выполнит перенос строки без разрывов слов и сохранит более короткие строки.

:set formatoptions+=w
:set tw=80
gggqG

Чтобы попытаться отформатировать текущий абзац, попробуйте следующее:

:nnoremap Q gqip
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...