2013-09-21 3 views
11

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

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

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

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

То, что я хочу, либо

  1. Не ломайте любую строку, даже если он имеет пропуска

  2. разорвать строку, используя неявные конкатенации, т.е. закрыть строки и начать новая строка на новой линии

  3. Перерыв непосредственно перед 'C' строки

Ближайшие решения, которые я нашел не очень полезны:

Is there any way to get vim to auto wrap python strings at 79 chars?

how to configure vim to smartly wrap python strings?

Vim: Inter-String Line Breaking

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

+4

Примечание: ': set tw = 0' полностью отключает перенос слов. –

+1

Возможный дубликат [Как сделать vim не сломать строки при автоформировании?] (Http://stackoverflow.com/questions/10615908/how-to-make-vim-not-break-strings-when-autoformating) – glts

+0

Спасибо, Роб. Это означает, что вы должны добавлять линейные строки вручную, не так ли? Поэтому, если у меня есть строка с 70 символами и добавьте еще немного к началу, мне нужно найти ближайший разрыв до 80 символов вручную, а затем нажать enter. Я не могу использовать gq, потому что у него такая же проблема. – Dan

ответ

0

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

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

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

:nnoremap Q gqip 

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

Смежные вопросы