Установить пространство отступа vim python на основе файла

Я знаю, что можно установить отступ для определенного типа файла с помощью

set softtabstop=4

Но проблема, с которой я столкнулся, заключается в том, что у меня есть разные файлы сценариев python, некоторые из них имеют отступ в 2 пробела, а некоторые из них - с отступом 4 пробела. Можно ли позволить vim определять используемые отступы (2 или 4) автоматически в зависимости от открытого файла?

Любая помощь будет оценена по достоинству.

Я думаю, вы можете сделать это с помощью некоторых плагинов. См., Например, этот ответ

Teoretic 13.09.2018 20:32

@Teoretic Спасибо. Я обнаружил, что vim-сыщик из этого сообщения работает.

lightingghost 13.09.2018 23:08
1
2
326
2

Ответы 2

Похоже, этот плагин vim будет делать то, что вы хотите: https://github.com/requalix/detect-indentation.

Есть несколько плагинов, которые могут определять используемые настройки отступа. Некоторые, например мой Плагин IndentConsistencyCop, также предупреждают вас о несогласованных отступах. Следующий список взят из документации моего плагина:

  • Мой собственный Плагин IndentConsistencyCop; автоматический запуск включается компаньоном Плагин IndentConsistencyCopAutoCmds.
  • Indent Finder (vimscript # 513) - это скрипт Python и плагин Vim, который сканирует любой загруженный буфер и настраивает соответствующие параметры отступа
  • yaifa.vim (vimscript # 3096) - это порт для vimscript из вышеуказанного
  • detectindent.vim (https://github.com/ciaranm/detectindent) от Ciaran Маккриш пытается автоматически определить настройки отступа
  • GuessIndent (vimscript # 4251) основан на detectindent.vim
  • indentdetect.vim (https://github.com/ervandew/vimfiles/blob/master/vim/plugin/indentdetect.vim) Эрик Ван Девостин выполняет простое обнаружение и может установить значения по умолчанию на основе спецификации файлов
  • matchindent.vim (vimscript # 4066) обнаруживает табуляции, отступы с 2 и 4 пробелами и соответственно адаптирует настройки отступа
  • sleuth.vim (vimscript # 4375) от Тима Поупа автоматически регулирует 'shiftwidth' и эвристически 'tabstop' (с помощью упрощенной выборки, которая не проверяет на наличие плохих или непоследовательных отступов) или просмотрев другие файлы с тем же тип
  • filestyle (vimscript # 5065) выделяет вкладки, когда установлено 'expandtab', конечные пробелы и строки длиннее, чем textwidth, но на самом деле не проверить соответствие отступу
  • ShowSpaces (vimscript # 5148) выделяет пробелы внутри отступа на буфер / тип файла.
  • Детектор отступа (vimscript # 5195) запускается при открытии или записи файла, имеет предупреждения о смешанном отступе табуляции / пробела, и может адаптировать соответствующий Vim параметры автоматически.

Другие вопросы по теме