Вопрос

У меня есть Вим 7 (расширенный) на CentOS 5, и он поставляется со всеми обычными плагинами/скриптами Vim, готовыми к использованию.

$ find /usr/share/vim/vim70/ -name \*python\*
/usr/share/vim/vim70/syntax/python.vim
/usr/share/vim/vim70/ftplugin/python.vim
/usr/share/vim/vim70/indent/python.vim
/usr/share/vim/vim70/autoload/pythoncomplete.vim

Я бы подумал, что при открытии файла, заканчивающегося на .py (vim file.py) эти плагины будут автоматически загружаться, но я не уверен, что это так.Я хочу:

Нажимать ВКЛАДКА и получите четыре пробела.Автоматический отступ следующей строки для сюит, условных предложений и т. д.

У меня это работает путем явной установки табуляции, ширины сдвига и т. д.в моем файле .vimrc.Разве это не то, что выше? Питон файлы предназначены для?Почему я должен устанавливать эти вещи в свой .vimrc?Как мне вместо этого получить эти функции из плагинов Vim?

Текущий .vimrc:

syntax on
set hls
set expandtab
set textwidth=0
set tabstop=4
set softtabstop=4
set shiftwidth=4
set autoindent
set backspace=indent,eol,start
set incsearch
set ignorecase
set ruler
set wildmenu
set smarttab
filetype indent on
filetype on
filetype plugin on
Это было полезно?

Решение

Установка табуляции, ширины сдвига и т. д.в вашем vimrc правильно.Они задают глобальные настройки, а также служат параметрами поддержки отступов для конкретного типа файла.

Плагины языковых отступов используют эти настройки, но обычно также устанавливают выражение отступа (:he inde) соответствующий языку.Таким образом, индентор Python должен автоматически делать отступ после оператора открытия блока (def, class, for...) и уменьшать отступ после оператора закрытия (return, pass, continue...) и делать это в соответствии с оператором ts,sw, ...вы установили.

Если вы все еще не уверены, загружается ли плагин для буфера, просто выполните :filetype чтобы показать настройки обнаружения, плагина и отступа, и :set ft? чтобы увидеть обнаруженный тип.

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

Насколько я понимаю, файл python.vim — это, возможно, просто файл подсветки синтаксиса, поскольку файлы Python могут иметь отступы несколькими способами. ПЭП8 предписывает четыре пробела, но устаревшие файлы могут отличаться, в том числе с использованием табуляции.

Некоторые из наших устаревших файлов Python фактически используют два пробела на каждый отступ.Поэтому я оставляю отступы Python Vim и настраиваю их для каждого файла и типа файла.Следующая строка в .vimrc дает мне настройки, специфичные для Python, которые отличаются, скажем, от моих xml, xhtml и html (два пробела).

au FileType python setl shiftwidth=4 tabstop=4

Вы также можете установить определенные настройки для файла с помощью модельная линия что удобно, если у вас есть устаревшие файлы.

# vi: set tabstop=2 expandtab textwidth=70 filetype=python:
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top