почему Vim использует правила отступа Bash, даже если тип файла не задан? - PullRequest
4 голосов
/ 21 июня 2011

У меня непонятная проблема с Vim. Если я начинаю редактировать новый файл, скажем, с vim test.txt, и я набираю слово «do» и нажимаю ввод (пока все еще в режиме вставки), следующая строка автоматически с отступом. Прежде чем дать быстрый ответ, прочитайте весь этот пост.

Два вопроса:

  1. Почему это может произойти?
  2. Как мне отладить процесс запуска (чтение ~ / .vimrc и файлов в ~ / .vim /)?

Дополнительная информация:

  • Вот мой .vimrc: http://dotfiles.org/~meonkeys/.vimrc.
  • "do", "if" и "switch" вызывают отступы, но я до сих пор не понял, для какого языка Vim использует правила отступов.
  • У меня есть куча вещей в ~ / .vim /. Вот что: http://adammonsen.com/tmp/dot_vim.tgz
  • Я не могу найти ничего в моих ~ / .vimrc или ~ / .vim /, что должно включить какой-либо отступ, даже если filetype не установлено!
  • Если я запускаю Vim с помощью vim -u /dev/null test.txt, проблема исчезает.
  • Да, я знаю о настройке autoindent. Я не думаю, что это проблема, потому что включение autoindent после использования нулевого vimrc не делает отступ строки после ввода "do".

1 Ответ

8 голосов
/ 21 июня 2011
'smartindent' 'si'      boolean (default off)
                        local to buffer
                        {not in Vi}
                        {not available when compiled without the
                        |+smartindent| feature}
        Do smart autoindenting when starting a new line.  Works for C-like
        programs, but can also be used for other languages.  'cindent' does
        something like this, works better in most cases, but is more strict,
        see |C-indenting|.  When 'cindent' is on, setting 'si' has no effect.
        'indentexpr' is a more advanced alternative.
        Normally 'autoindent' should also be on when using 'smartindent'.
        An indent is automatically inserted:
        - After a line ending in '{'.
        - After a line starting with a keyword from 'cinwords'.
        - Before a line starting with '}' (only with the "O" command).

cinwords по умолчанию, если, иначе, пока, делать, для, переключить

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...