Жесткая упаковка в VIM без присоединения

Вим новичок здесь. Как жестко обернуть обычный текст в vim (вставляя фактические разрывы строк), соблюдая границы слов, не соединяя существующие строки?

Например, учитывая это:

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

- Nulla cursus accumsan faucibus.
- Donec dapibus dignissim ullamcorper.

Integer
nec
malesuada
diam.

Я хотел бы получить (с textwidth=30):

Lorem ipsum dolor sit amet,
consectetur adipiscing elit.

- Nulla cursus accumsan
  faucibus.
- Donec dapibus dignissim
  ullamcorper.

Integer
nec
malesuada
diam.

вместо этого (который я могу получить с gggqG)

Lorem ipsum dolor sit amet,
consectetur adipiscing elit.

- Nulla cursus accumsan
  faucibus.
- Donec dapibus dignissim
  ullamcorper.

Integer nec malesuada diam.

Кроме того, для бонусных баллов: когда я создаю новый буфер, я получаю другое поведение переноса (строки, начинающиеся с - не переносятся специально), чем когда я открываю файл, заканчивающийся на.txt. Что контролирует это? Я не замечаю никакой разницы в выводе :set filetype? или же :filetype,

1 ответ

Решение

Для первого вопроса используйте

:%normal gqq

Это выполнит gqq на каждой строке индивидуально.

Я не знаю ответа на второй вопрос, но это может быть результатом автокоманды, вызванной изменением суффикса.txt 'formatoptions' или же 'comments' без настройки 'filetype', Вы можете выполнить

:verbose set fo? com?

чтобы увидеть, где эти параметры были установлены в последний раз. Некоторые дистрибутивы GNU/Linux помещают свои собственные команды конфигурации Vim в /etc/vimrc или /usr/share/vim/vimrc.

Другие вопросы по тегам