Добавить пробелы в несколько строк PyCharm

Вот моя проблема с минимальным воспроизводимым примером:

    def additional():
        df_additional_data = pd.read_excel("something.xlsx")
    
        for _, row in df_saga.iterrows():
            req = """
                  UPDATE table_name
                SET column1 = value1, column2 = value2, ...
                WHERE condition;
                  """

Я хочу добавить два пробела к обеим этим строкам (тот, который начинается с SET, и тот, который начинается с WHERE). Я не могу использовать Вкладка, потому что он добавляет 4 пробела. Я не могу использовать Ctrl Альт I, потому что он внутри """ """ и не работает внутри них. Я знаю, что вы можете сделать это вручную, но в моем случае у меня более 200 строк в строке """ """. И я не хочу нанимать стажера только для того, чтобы добавить места.

Я использую PyCharm 2021.3.3 (Community Edition)

Build #PC-213.7172.26, built on March 16, 2022
Runtime version: 11.0.14.1+1-b1751.46 amd64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
Windows 11 10.0
GC: G1 Young Generation, G1 Old Generation
Memory: 2030M
Cores: 16
Non-Bundled Plugins:
    net.seesharpsoft.intellij.plugins.csv (2.18.2)
    com.chesterccw.excelreader (2021.3.2)
    ru.meanmail.plugin.requirements (2022.3-2021.3)

Итак, некоторые строки (например, «ОБНОВЛЕНИЕ») отформатированы правильно, а другие нет? Я предполагаю, что это не всегда 3 строки, где UPDATE правильно, а следующие 2 неверны, верно?

nanotek 04.04.2022 17:03

Вы говорите, что не можете использовать TAB, потому что он делает 4 пробела. Вы можете временно изменить его на 2 пробела. Если вы согласны с этим, это, вероятно, самое простое, что можно сделать. 200 строк - это не сумасшедшее количество строк, ИМО. Settings ->Editor -> Code Style -> Python -> tab size

nanotek 04.04.2022 17:05

Это достойное решение!

FluidMechanics Potential Flows 04.04.2022 17:21
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
3
58
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Поскольку форматировщики обычно стараются не слишком сильно изменять содержимое внутри строк, это было бы сложно в автоматическом режиме, не видя фактического кода, было бы сложно и, вероятно, имело бы икоту (IMO).

Если единственная причина, по которой использование TAB не решает ваш ответ, заключается в том, что он использует 4 пробела, вы можете временно изменить его на использование 2 пробелов. Для этого вам нужно будет сделать следующее:

  1. Settings ->Editor -> Code Style -> Python -> indent -> 2.
  2. Settings ->Editor -> Code Style -> Снимите галочку Detect and use existing file indents for editing

Я думаю, что это правильный путь, но это не работает, нажатие TAB все еще добавляет 4 пробела с этими настройками: i.imgur.com/8ykMjQF.png

FluidMechanics Potential Flows 04.04.2022 22:20

Я везде поставил 1 и поставил галочку «Использовать символ табуляции», но все равно не работает.

FluidMechanics Potential Flows 04.04.2022 22:21

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

FluidMechanics Potential Flows 04.04.2022 22:23

на практике это выглядит так i.imgur.com/HAxZ3WI.png

FluidMechanics Potential Flows 04.04.2022 22:42

Вы можете удалить свою награду за щедрость? Если это не решит вашу проблему, было бы хорошо оставить ее открытой, чтобы посмотреть, может ли кто-то другой ответить на нее по-другому. Причина, по которой я сказал «не видя кода», заключалась в том, что если бы я предложил решение, включающее макросы vim, оно должно было бы быть очень конкретным.

nanotek 05.04.2022 00:19

@FluidMechanicsPotentialFlows Попробуйте прямо сейчас. Похоже, это должно быть indent вместо tab size (но вы можете попробовать установить оба значения на 2, если это вам не подходит). Также похоже, что PyCharm будет игнорировать этот параметр по умолчанию и основывать его на вашем файле. Вы можете отключить это поведение. Я проверил это локально, и это сработало для меня

nanotek 05.04.2022 00:31

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

FluidMechanics Potential Flows 05.04.2022 00:34

@FluidMechanicsPotentialFlows Нет проблем! Извините за это изначально! Да, я бы определенно воздержался от присуждения награды, пока ответ действительно не решит вашу проблему. Мне было бы очень плохо, если бы я на самом деле не помог!

nanotek 05.04.2022 00:35

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