Как заставить vim нарушать строковые литералы?

Это звучит как очень простой вопрос, который, вероятно, имеет очевидное решение, к сожалению, я его не нашел.

Как удержать vim от взлома (ввод строки новой строки) в середине строки? Я набираю список строк, и он выглядит так:

a=['a string', 'b string', 'c
string']

Мне нравятся разрывы строк, я не хочу, чтобы vim просто обертывал линию и продолжал следующую строку редактора. Я хочу, чтобы мои строки имели длину около 80 символов без ввода новых строк.

Я хочу либо

  • Не разбивайте строку, даже если она имеет пробелы

  • Разбить строку, используя неявное конкатенацию строк, т.е. закрыть   string и начать новую строку в новой строке

  • Перерыв перед строкой 'c'

Самые близкие решения, которые я нашел, не очень полезны:

Есть ли способ получить vim для автоматического переноса строк python на 79 символов?

как настроить vim для гибкой упаковки строк python?

Vim: разрыв между строковыми линиями

В настоящее время "J" является одним из наиболее используемых ключей для исправления сломанных строк.

Ответ 1

Вот что я делаю, чтобы обернуть все строки на 80 символов без нарушения каких-либо слов и сохранить более короткие строки:

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

Вы также можете использовать следующее сопоставление для форматирования текущего абзаца:

:nnoremap Q gqip

надеюсь, что это поможет.