pycharm автоматически конвертирует табуляции в пробелы


112

Я использую pycharm IDE для разработки на python, он отлично работает для кода django, поэтому подозревал, что преобразование вкладок в пробелы является поведением по умолчанию, однако в среде IDE python повсюду возникают ошибки, потому что он не может автоматически преобразовывать вкладки в пробелы, есть ли способ добиться этот.

Ответы:


125

Измените стиль кода, чтобы использовать пробелы вместо табуляции:

пробелы

Затем выберите папку, которую вы хотите преобразовать, в представлении проекта и используйте Code| Переформатируйте код .


31
это была моя настройка по умолчанию, однако похоже, что в среде IDE была какая-то ошибка, которая не работала, поэтому я сделал следующее: Edit> Convert Indent> Spaces
Vaibhav Mishra

1
Python должен иметь отступ в 4 пробела.
Джош

2
Этот ответ мне не подходит. Не уверен, почему это принято, поскольку для OP это тоже не работает. Последующий вопрос: stackoverflow.com/questions/47102828/…
Стефан Монов

3
В моем случае мне пришлось отключить Editor Config в Editor -> Code Style -> Enable Editor Config Support, потому что у меня по незнанию был ~/.editorconfigфайл, переопределяющий настройки PyCharm.
Warlike Chimpanzee

1
Вы можете заставить его использовать пробелы даже для существующих файлов, сняв флажок «Обнаруживать и использовать существующие отступы файлов для редактирования» в общем «Стиле кода». После этого при вводе табуляции в существующем файле сразу будут вставлены пробелы, а не табуляции.
Дэвид Кингхорн

64

Для выделений вы также можете преобразовать выделение с помощью функции «В пробелы». Обычно я просто использую его с помощью ctrl-shift-A, а затем нахожу оттуда «To Spaces».


похоже, не работает для нескольких файлов одновременно. делать это для каждого файла в отдельности - это своего рода хлопот ...
CGFoX

вы, сэр,
Джаггернаут

62

Это только конвертирует вкладки, ничего не меняя:

Edit -> Convert Indents -> To Spaces

1
Эй, это должно быть принято. Работает локально. Например, полезно для Makefile, который должен иметь табуляцию в качестве отступа
swdev

9

ctrl + shift + A => открыть всплывающее окно для выбора параметров, выбрать в пробелы, чтобы преобразовать все вкладки в пространство, или в вкладку, чтобы преобразовать все промежутки в качестве вкладок.


вкладку преобразовать в вкладку? это опечатка?
Anvesh Yalamarthy

7

PyCharm 2019.1

Если вы хотите изменить общие настройки:

Откройте настройки в macOS ;или Windows / Linux Ctrl+ Alt+ S.

Перейдите в Редактор -> Стиль кода -> Python и, если вы хотите следовать PEP-8, выберите Размер табуляции: 4 , Отступ: 4 и Отступ продолжения: 8, как показано ниже:

введите описание изображения здесь

Примените изменения и нажмите ОК.

Если вы хотите применить изменения только к текущему файлу

Вариант 1. На панели навигации можно выбрать: Правка -> Преобразовать отступ -> В пробелы. (см. изображение ниже)

введите описание изображения здесь

Вариант 2. Вы можете выполнить действие «В пробелы», запустив ярлык « Найти действие» : Aв macOS или ctrlAWindows / Linux. Затем введите «To Spaces» и запустите действие, как показано на изображении ниже.

введите описание изображения здесь


1

ctr + alt + shift + L -> переформатировать весь файл :)


to tabs не помогло преобразовать существующий блок кода. Это единственное решение, которое у меня сработало. Спасибо!
Джед

0

Для меня это был файл с именем ~ / .editorconfig, который переопределял мои настройки вкладки. Я удалил это (конечно, когда-нибудь это меня снова укусит), но это устранило мою проблему с pycharm

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.