Отключить автоматический перенос длинной строки в Visual Studio Code

Я использую Visual Studio Code для написания кода Python с помощью Pylint.

Когда я нажимаю Ctrl + S (сохранить), редактор превращает длинную строку в несколько коротких строк. Как отключить действие или настроить количество столбцов переноса на 120 (по умолчанию 80)?

Я пробовал "python.linting.pylintArgs": ["--max-line-length=120"] и "editor.wordWrapColumn": 120, но это не сработало.


person Kymo Wang    schedule 21.11.2017    source источник
comment
У вас включено автоматическое форматирование? Сам VS Code ничего не переформатирует, поэтому editor.wordWrapColumn не повлияет на это, поскольку это - вместе с editor.wordWrap - влияет только на отображение длинных строк, а не на их перезапись.   -  person Brett Cannon    schedule 28.11.2017


Ответы (3)


Проверьте своего поставщика форматирования Python.

"python.formatting.provider": "autopep8"

Думаю, в вашем случае не Pylint продолжает переносить длинные строки, а autopep8. Попробуйте вместо этого установить --max-line-length вместо autopep8.

"python.formatting.autopep8Args": [
    "--max-line-length=200"
]
person Chayapol    schedule 02.01.2018
comment
Также помогает, если линтер ведет себя аналогично форматеру: python.linting.pep8Args: [--max-line-length = 120] - person Lian; 05.04.2018
comment
Для получения информации о других доступных аргументах см. pypi.org/project/autopep8. - person Jerren Saunders; 04.02.2019
comment
TL; DR: PEP8 указывает, что идеальный предел переноса строк для Python составляет 80, поэтому это значение по умолчанию для autopep8. - person Eureka; 28.10.2019
comment
с чистым наведением и щелчком достигните этого с помощью: Код - ›Настройки -› Настройки. Затем выберите Расширения - ›Python. Просмотрите раздел Форматирование: Autopep8 Args и его элемент Добавить в предложенном поле добавьте --max-line-length = 200 - person loic.jaouen; 23.04.2020
comment
"--ignore=E501", чтобы полностью игнорировать максимальную длину строки. - person Jeppe; 23.06.2020
comment
Чтобы применить, перезапустите vscode. - person watbywbarif; 07.05.2021

При использовании настраиваемых аргументов каждый элемент верхнего уровня строки аргумента, разделенный пробелом в командной строке, должен быть отдельным элементом в списке аргументов. Например:

python.formatting.autopep8Args: [--max-line-length, 120, --experimental], python.formatting.yapfArgs: [--style, {based_on_style: chromium, indent_width: 20}], python.formatting.blackArgs: [--line-length, 100]

Для правильного форматирования этих настроек Python вы можете проверить Настройки, специфичные для форматирования:

Также проверьте ответы здесь:

Разрешить операторы перед импортом с помощью Visual Studio Code и autopep8

person Meetai.com    schedule 22.01.2020

Autopep8 требует --aggressive, чтобы рекомендовать изменения без пробелов:

"python.linting.pylintArgs": ["--max-line-length", "120", "--aggressive"]

Это обернет вам длинные строки.

person Rob Haswell    schedule 26.06.2020