#python #vim #windows-subsystem-for-linux
#питон #vim #windows-subsystem-for-linux
Вопрос:
Недавно я установил Ubuntu на свой компьютер с Windows с помощью WSL. Я использовал его только для написания некоторого кода на Python и отправки этого кода на GitHub.
Моя проблема в том, что в какой-то момент прошлой ночью Vim прекратил автоиндентирование после запуска, например, цикла for. Если я сделаю отступ на одну строку, а затем нажму Enter, следующая строка будет с отступом.
Если я введу, например, «для x в mylist:[Enter]print(x)», то я увижу следующее
for x in mylist:
print(x)
вместо того , чтобы
for x in mylist:
print(x)
My .vimrc — это
set number
hi Comment ctermfg=White
set ai
set softtabstop=2
set expandtab
:set ft?
ВОЗВРАТ filetype=python
:filetype
ВОЗВРАТ filetype detection:ON plugin:OFF indent:OFF
.
filetype plugin indent on
не устраняет мою проблему.
Надеюсь, я здесь что-то упускаю. Я нашел много людей с похожими вопросами, но лучшие ответы, которые я видел, просто говорят о том, как проверить, включены ли определенные настройки, а не о том, что делать, если включение этих настроек не помогает. Кроме того, ни один из вопросов, похоже, не совсем совпадает с моим. Спасибо.
Ответ №1:
Правила отступов обрабатываются при получении FileType
события. Который, в свою очередь, срабатывает по BufRead
событию. Следовательно, вы должны иметь filetype indent on
перед открытием свой файл. Или вручную повторно примените событие с :e
помощью или :setf python
или чего-либо еще.
Комментарии:
1. Отлично, спасибо вам! Это дает мне отступ в 8 пробелов; нужно ли мне что-то менять
tabstop
, чтобы исправить это?2. @PeterOhaver Убедитесь, что у вас есть
filetype plugin on
(также перед открытием файла). Онftplugin
отвечает за настройку таких параметров, какtabstop
, и т.д.shiftwidth