3

Вим новичок здесь. Как жестко обернуть обычный текст в 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 ответ1

3

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

:%normal gqq

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

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

:verbose set fo? com?

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .