vim: автоиндент не работает - PullRequest
       6

vim: автоиндент не работает

15 голосов
/ 15 октября 2010

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

my ": set" равно:

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

Ответы [ 8 ]

10 голосов
/ 07 апреля 2012

try:

:set ai

или:

:set autoindent

Подробнее об автоматическом отступе:

:h ai

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

7 голосов
/ 16 ноября 2010

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

6 голосов
/ 27 марта 2015

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

filetype on
filetype plugin on
filetype indent on
2 голосов
/ 22 февраля 2014

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

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

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

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

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

2 голосов
/ 16 ноября 2010

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

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

Надеюсь, это поможет! Вот некоторые другие заметки:

  • Эти инструкции могут относиться только к языкам слева направо.
  • Вот мой vimrc
0 голосов
/ 14 марта 2019

«Параметр« autoindent »сбрасывается при установке параметра« вставить »». Поэтому попробуйте удалить «вставить» из ваших настроек ( vim-options ).

0 голосов
/ 27 декабря 2016

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

:set indentexpr=
0 голосов
/ 14 июля 2016

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

...