Навигация по коду в PyCharm

Горячие клавиши навигации по коду

Освоение горячих клавиш позволяет быстро перемещаться по коду и отказаться от мыши.

Ниже приведены наиболее часто используемые горячие клавиши навигации в повседневной разработке.

Основные горячие клавиши навигации

Функция Windows/Linux macOS Описание
Перейти к определению Ctrl+B Cmd+B Перейти к определению переменной, функции или класса
Найти использования Alt+F7 Alt+F7 Найти все места, где текущий символ используется в проекте
Глобальный поиск Дважды нажмите Shift Дважды нажмите Shift Поиск файлов, классов, символов, действий и всего остального
Недавние файлы Ctrl+E Cmd+E Открыть список недавно редактированных файлов
Вернуться к предыдущему местоположению Ctrl+Alt+Left Cmd+[ Вернуться к предыдущей позиции курсора
Вперёд к следующему местоположению Ctrl+Alt+Right Cmd+] Переместиться к следующей позиции курсора
Перейти к строке Ctrl+G Cmd+L Введите номер строки для прямого перехода
Найти файл Ctrl+Shift+N Cmd+Shift+O Поиск и открытие файлов по имени файла
Структура файлов Ctrl+F12 Cmd+F12 Показать список классов и методов в текущем файле

Двойное нажатие Shift для глобального поиска

Двойное нажатие Shift— самая мощная функция поиска в PyCharm.

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

Использование:

  • Быстро нажмите клавишу Shift дважды, чтобы открыть диалог Search Everywhere
  • Введите ключевое слово, чтобы увидеть все подходящие результаты
  • Нажмите Tab, чтобы переключаться между различными категориями поиска (Все, Классы, Файлы, Символы, Действия)

Двойное нажатие Shift — это сочетание, которое новичкам стоит выучить первым; как только вы с ним освоитесь, можно попрощаться с утомительным процессом поиска слой за слоем в дереве файлов проекта.

Ctrl+B Перейти к определению

Поместите курсор на имя переменной, функции или класса, затем нажмитеCtrl+B, чтобы перейти к его определению.

Если удерживать клавишу Ctrl, при наведении мыши на код также отображается эффект кликабельной ссылки.

Пример: в приведённом ниже коде поместите курсор наmy_funcи нажмите Ctrl+B, чтобы перейти к определению функции.

Пример

# Определяем простую функцию
def my_func():
    """
Это пример функции из руководства Example
    """

    print("ПРИМЕР - Изучение быстрой навигации в PyCharm")

# Вызовите функцию - Поместите курсор на my_func, нажмите Ctrl+B, чтобы перейти к определению
my_func()

Alt+F7 Find Usages

Поместите курсор на символ, который хотите найти, затем нажмитеAlt+F7, чтобы просмотреть все места в проекте, где есть ссылки на этот символ.

Результаты поиска отображаются в окне инструмента Find внизу; щёлкните элемент, чтобы перейти к соответствующему месту.


Форматирование кода

Соблюдение единого стиля кода — важная основа для командной работы.

PyCharm обеспечивает автоматическое форматирование кода; одним щелчком можно сделать код аккуратным и единообразным.

Форматирование с помощью сочетаний клавиш

ИспользуйтеCtrl+Alt+L(Windows/Linux) илиCmd+Option+L(macOS), чтобы отформатировать текущий файл.

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

Настройка правил форматирования

Правила форматирования можно настроить вSettings > Editor > Code Style > Python.

Настраиваемые параметры включают:

  • Размер отступа (по умолчанию 4 пробела)
  • Отступ табуляцией или пробелами (рекомендуются пробелы)
  • Максимальное количество символов в строке (по умолчанию 120)
  • Количество пустых строк
  • Правила сортировки операторов импорта

Сравнение до и после форматирования

До форматирования (неравномерные отступы, беспорядочные пустые строки):

Пример

# Беспорядочный код до форматирования
def messy_function(x,y):
      result=x+y
    if result>10:
        print("Результат больше 10")
          print("Отступ в этой строке неверен")

name="example"
print("Тест",name)

После форматирования (единообразные отступы, стандартные пустые строки):

Пример

# Аккуратный код после форматирования
def messy_function(x, y):
    result = x + y
    if result > 10:
        print("Результат больше 10")
        print("Отступ в этой строке неверен")


name = "example"
print("Тест", name)

Нажимайте Ctrl+Alt+L, чтобы отформатировать код перед коммитом; это хорошая программистская привычка.


Комментарии TODO

Комментарии TODO — это привычка помечать специальными комментариями работу, которую ещё предстоит выполнить.

Добавление комментариев TODO

В коде Python используйте# TODOчтобы добавить комментарии TODO.

Пример

# Модуль управления пользователями

class UserManager:
    """Менеджер пользователей"""

    def __init__(self, db_name="example_users"):
        self.db_name = db_name

    # TODO: Реализовать функциональность входа пользователя
    def login(self, username, password):
        pass

    # TODO: Добавить логику проверки входных данных
    # TODO: Рассмотреть использование bcrypt для шифрования паролей
    def register(self, username, password):
        """Зарегистрировать нового пользователя"""
        # Сейчас это упрощённая реализация, просто выводит сообщение
        print(f"Регистрация пользователя: {username}")

    # FIXME: Эта строка кода может дать сбой в особых случаях, и её нужно исправить
    def delete_user(self, user_id):
        """Удалить пользователя"""
        print(f"Удаление пользователя с ID: {user_id}")

    # NOTE: Следующий метод зависит от внешнего API и требует доступа к сети
    def sync_data(self):
        """Синхронизировать данные"""
        pass

Типы меток TODO

PyCharm по умолчанию распознаёт следующие специальные метки комментариев:

Label Назначение
TODO Отмечает работу, которую необходимо выполнить
FIXME Отмечает проблемы, которые необходимо исправить
NOTE Добавляет важные примечания

Просмотр списка TODO

В области инструментальных окон щелкните меткуTODO, чтобы открыть инструментальное окно TODO.

Это окно отображает все комментарии TODO, FIXME и NOTE в проекте в одном месте и поддерживает фильтрацию по области.

Можно задать область фильтра:

  • Текущий файл: показывает только комментарии TODO в текущем файле
  • На основе области: фильтрует по пользовательской области
  • Все места: показывает все комментарии TODO в проекте

Дважды щёлкните элемент TODO, чтобы перейти к соответствующей строке кода.

Умелое использование комментариев TODO может сделать процесс разработки более организованным и гарантировать, что ни один незавершённый пункт не будет упущен.


Функция закладок

Функция закладок позволяет отмечать важные места в коде для быстрого перехода.

Добавление закладок

Поставьте курсор на строку кода, которую хотите отметить, затем нажмитеF11, чтобы добавить анонимную закладку.

После успешного добавления слева от этой строки появится галочка.

нажмитеCtrl+F11Вы можете добавлять цифровые/буквенные закладки; в появившемся окне выберите 0-9 или A-Z в качестве номера закладки.

Пример

# Файл конфигурации проекта
# Добавьте здесь закладку для быстрого доступа к ключевой конфигурации

DATABASE_CONFIG = {
    "host": "localhost",  # Нажмите F11, чтобы добавить закладку
    "port": 5432,         # Нажмите Ctrl+F11 и выберите номер 1, чтобы добавить нумерованную закладку
    "name": "example_db",
    "user": "admin",
}

# Определения ключевых констант; здесь можно добавить закладку
MAX_CONNECTIONS = 100     # Нажмите Ctrl+F11 и выберите номер 2, чтобы добавить нумерованную закладку
TIMEOUT_SECONDS = 30

Просмотр и управление закладками

нажмитеShift+F11Откройте окно списка закладок, чтобы просмотреть все добавленные закладки.

В окне списка закладок:

  • Дважды щёлкните запись закладки, чтобы перейти к соответствующему месту.
  • Щёлкните правой кнопкой мыши, чтобы удалить или переименовать закладку.
  • Поддерживает фильтрацию категорий с помощью флажков (анонимные закладки и нумерованные закладки).

К нумерованным закладкам также можно получить доступ черезCtrl+Number keys, чтобы перейти напрямую, не открывая список закладок.

В больших проектах закладки — отличный инструмент для отслеживания множества важных мест в коде. Рекомендуется выработать привычку пользоваться ими.


Дополнительные советы по редактированию

Помимо вышеперечисленных функций, следующие советы по редактированию также могут повысить эффективность повседневной разработки.

Мультикурсорное редактирование

Удерживайте клавишуAltи щёлкайте мышью в нескольких местах, чтобы редактировать несколько строк кода одновременно.

Вы также можете использоватьCtrl+Shift+Alt+Click, чтобы разместить курсоры в любом месте.

Перемещение блоков кода

После выбора блока кода нажмитеCtrl+Shift+Up/Down, чтобы переместить весь блок кода вверх или вниз.

Не нужно вырезать и вставлять; одну строку кода или целый метод можно быстро переместить.

Дублирование всей строки

Установите курсор на строке (не нужно её выделять), затем нажмитеCtrl+D, чтобы скопировать всю строку.

Это очень часто используемое сочетание клавиш. Рекомендуется начать использовать его сразу.

Удаление всей строки

Установите курсор на строке, затем нажмитеCtrl+Y, чтобы удалить всю строку.

По сравнению с тем, чтобы сначала выделить, а затем нажать Delete, эта операция выполняется намного быстрее.


Краткая справочная сводка сочетаний клавиш

В следующей таблице приведены все сочетания клавиш, рассмотренные в этой главе. Рекомендуется распечатать или сохранить её, чтобы она всегда была под рукой.

Действие Windows/Linux macOS
Перейти к определению Ctrl+B Cmd+B
Найти ссылки Alt+F7 Alt+F7
Глобальный поиск Дважды нажмите Shift Дважды нажмите Shift
Недавние файлы Ctrl+E Cmd+E
Назад/Вперёд Ctrl+Alt+Left/Right Cmd+[/]
Перейти к строке Ctrl+G Cmd+L
Найти файл Ctrl+Shift+N Cmd+Shift+O
Структура файла Ctrl+F12 Cmd+F12
Форматирование кода Ctrl+Alt+L Cmd+Option+L
Добавить закладку F11 F11
Нумерованная закладка Ctrl+F11 Cmd+F11
Список закладок Shift+F11 Shift+F11
Копировать всю строку Ctrl+D Cmd+D
Удалить всю строку Ctrl+Y Cmd+Delete

Не нужно запоминать все эти сочетания клавиш сразу. Рекомендуется начать с двойного нажатия Shift и отрабатывать по два-три каждый день.

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

Другие расширения