Я использую функции форматирования исходного кода vim (клавиша = отформатирует ваш выбор, а нажатие gg=G отформатирует весь исходный код).

Тем не менее, он, кажется, не форматирует правильно, когда он встречает разрывы строк (\\). Он всегда будет делать отступ для следующего абзаца, когда видит эти разрывы строк.

Есть ли способ это исправить?

1 ответ1

1

Кажется, это ошибка в Vim. [Не правда. См. РЕДАКТИРОВАТЬ ниже .-- garyjohn] Если вы запустите Vim таким образом,

vim -N -u NONE

так что никакие файлы конфигурации или плагины не загружены, и попробуйте ваш пример, эти строки все еще имеют отступ, как вы описываете В этих условиях я не думаю, что Vim должен делать какие-либо отступы, поскольку все параметры отступов (например, «autoindent», «cindent») отключены. Тем не менее, следующая команда, похоже, решает эту проблему:

:set cinoptions=+0

Это говорит Vim не отступать строки продолжения. Этот параметр не должен иметь никакого эффекта, если «cindent» не установлен, но, похоже, все равно.

Я использовал Vim 7.2.148 на Linux.

РЕДАКТИРОВАТЬ:

Это не ошибка в Vim. По словам автора Vim, это не ошибка, а желаемое поведение. Он говорит, что функция = indenting должна делать что-то по умолчанию, поэтому она подчиняется настройкам C indenting. Установка cindent просто включает автоматический отступ, например, когда вы нажимаете Enter. (То, что фактический отступ - два 'shiftwidth's, а не один, как задокументировано, является другой проблемой.)

Поскольку то, что вам действительно нужно, это какой-то отступ для кода LaTeX, установка 'cinoptions' на "+0" также не является решением. Vim не имеет каких-либо правил отступа для LaTeX, поэтому вы можете установить один из плагинов LaTeX. Я использую VIM-LaTeX-suite, но вы можете найти других, перейдя на страницу расширенного поиска Vim и выполнив поиск сценариев "latex".

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