Vim: autoindent не работает

мой автоинденент не работает, какие-либо диагностические тесты, чтобы понять это?

my ": set":

: множество --- Опции --- cindent laststatus = 2 scroll = 17
tabstop = 4 window = 36
filetype = номер cpp
smartindent ttyfast
helplang = en paste
синтаксис = cpp ttymouse = xterm2
Забой = отступ, EOL, начало
fileencoding = UTF-8
fileencodings = UCS-бом, UTF-8, по умолчанию, latin1 printoptions = бумага: письмо
runtimepath = ~/.vim,/вар/Library/ВИМ/аддоны,/USR/доли/ВИМ/vimfiles,/USR/доли/ВИМ/vim72,/USR/доли/ВИМ/vimfiles/аф тер/вар/Library/ВИМ/аддонов/после, ~/.vim/после суффиксы =.bak, ~,.swp,.о,.info,.aux, LOG-.dvi,.bbl,.blg,.brf,.cb,.IND,.idx,.ilg,.inx,. вне,.toc

Ответы

Ответ 1

попробовать:

:set ai

или:

:set autoindent

найти больше об автоиндексе:

:h ai

В противном случае это может быть что-то вроде обнаружения типа файла.

Ответ 2

Вероятно, вы должны отключить smartindent и вместо этого использовать :filetype indent on и cindent (который, похоже, также установлен).

Ответ 3

У меня была такая же проблема, и эти настройки исправили ее.

filetype on
filetype plugin on
filetype indent on

Ответ 4

Здесь один из способов проверить правильность конфигурации, затем сохранить конфигурацию, чтобы Vim всегда работал так. This font указывает текст, который должен быть введен буквально, кроме <CR> означает нажатие клавиши "Enter" или "Return".

  • Создайте нового пользователя системы с новым домашним каталогом.
  • Запустить Vim. Все настройки должны быть установлены, однако они поставляются с Vim по умолчанию.
  • Откройте файл, скажем, test.txt.
  • Удостоверьтесь, что автоиндент включен (:set ai?<CR>)
  • Докажите, что autoindent не происходит:
    • Введите пробел или два, затем нажмите enter.
    • Когда курсор переходит к следующей строке, он должен вернуться в столбец 1, левый нижний столбец.
  • Включить автоопределение (:set ai<CR>)
  • Удостоверьтесь, что автоиндент включен (:set ai?<CR>)
  • Докажите, что происходит аутоиндикат:
    • Введите пробел или два, затем нажмите enter.
    • Когда курсор переходит к следующей строке, он все равно должен находиться в одном столбце.
  • Сохранять автоинтендент с помощью :mkvimrc<CR>.

Надеюсь, что это поможет! Вот еще несколько примечаний:

  • Эти инструкции могут быть специфическими для локалей слева направо.
  • Здесь мой vimrc

Ответ 5

В случае, если кто-то другой сталкивается с одной и той же проблемой, у меня была аналогичная проблема, и никто из вышеперечисленных не исправил. Для меня было неправильно интерпретировать вкладки. вот настройка, которая заставила ее работать:

set expandtab
set tabstop=2
set shiftwidth=2
set autoindent
set smartindent

И чтобы проверить, если отступ, если отступ был правильным, я добавил следующее, все еще в моем файле vimrc:

" helper for indent mistake
set list listchars=tab:»·,trail:·

Какой символ "" вместо обычного "·", если мой отступ неверен. Очень удобно. Надеюсь, что это поможет.

Ответ 6

У меня была такая же проблема, и я пробовал много команд, все не удалось.
Наконец, я использую следующую команду, и она работает:
autocmd VimEnter * set autoindent
Это не элегантный способ, однако, он работает.

Ответ 7

У меня была устаревшая функция в indentexpr, которая сохранялась после изменения типа файла. Это в конечном итоге исправило это для меня:

:set indentexpr=