Edición de código en PyCharm

PyCharm, como IDE profesional de Python, ofrece potentes funciones de edición de código.

Este capítulo detalla las funciones principales de edición de código, incluyendo autocompletado inteligente, atajos de teclado, refactorización de código y otras técnicas de desarrollo eficientes.


Funciones básicas de edición

Autocompletado de código (Code Completion)

PyCharm ofrece múltiples modos de autocompletado inteligente:

Tipo de autocompletado Método de activación Descripción
Autocompletado básico Ctrl + Space(Win/Linux)
⌘ + Space(Mac)
Muestra sugerencias de variables, funciones, clases, etc.
Autocompletado inteligente por tipo Ctrl + Shift + Space Recomienda tipos más precisos según el contexto
Autocompletado de nombres de archivo Se activa automáticamente al escribir rutas Completa rápidamente rutas de archivo
Autocompletado de plantillas dinámicas Escriba la abreviatura (por ejemplo,main + Tab) Genere rápidamente fragmentos de código (por ejemplo,if __name__ ==...)

Escribaim + Tab→ se autocompleta comoimport:

Escribafor + Tab→ genera unforestructura de bucle:


Resaltado de sintaxis (Syntax Highlighting)

PyCharm colorea automáticamente los elementos del código:

  • Palabras clave(def, class): azul

  • Cadenas: verde

  • Comentarios: gris

  • Sintaxis con errores: subrayado ondulado rojo

Resaltado personalizado:

  1. 设置 → 编辑器 → 配色方案(Color Scheme)

  2. Ajustar el color de los elementos de sintaxis de Python


Plegado de código (Code Folding)

Operación Atajo (Win/Linux) Atajo (Mac)
Plegar el bloque de código actual Ctrl + - ⌘ + -
Desplegar el bloque de código actual Ctrl + + ⌘ + +
Plegar todos los bloques de código Ctrl + Shift + - ⌘ + Shift + -
Desplegar todos los bloques de código Ctrl + Shift + + ⌘ + Shift + +

Al mover el mouse al lado izquierdo del área de código del editor, puede ver una flecha hacia abajo; haga clic en ella para plegar también:

Estructuras de código que admiten plegado:

  • Funciones/métodos

  • Definiciones de clase

  • Comentarios multilínea

  • Grupos de sentencias de importación


Atajos de teclado y operaciones eficientes

Tabla de referencia rápida de atajos comunes

Función Atajo (Win/Linux) Atajo (Mac)
Copiar la línea actual Ctrl + D ⌘ + D
Eliminar la línea actual Ctrl + Y ⌘ + Delete
Mover línea Alt + Shift + ↑/↓ ⌥ + ⇧ + ↑/↓
Sugerencias de corrección rápida Alt + Enter ⌥ + Enter
Ir a la definición Ctrl + B ⌘ + B
Ver sugerencias de parámetros Ctrl + P ⌘ + P

Edición multilínea y operaciones por lotes

Modo de selección por columnas (Column Selection)

  1. Mantenga presionadoAlt(Win) o⌥(Mac) + arrastrar el mouse

  2. o useAlt + Shift + Insertpara alternar el modo de columnas

Escenarios de aplicación:

# 批量修改多个变量前缀
old_name = 1    →  new_name = 1
old_value = 2   →  new_value = 2

Edición con múltiples cursores

  • Mantenga presionadoAlt+ clic del mouse (agregar múltiples cursores)

  • oCtrl + G(Win)/ ⌘ + G(Mac) seleccionar la misma palabra


Formateo de código y refactorización

Formateo automático de código

  1. Formatear el archivo actual:

    • Ctrl + Alt + L(Win/Linux)

    • ⌥ + ⌘ + L(Mac)

  2. Formatear el código seleccionado:

    • Seleccionar código → clic derecho →Reformat Code

Configurar reglas de formateo:
设置 → 编辑器 → 代码样式 → Python


Renombrar variables/funciones (refactorización segura)

  1. Seleccione el identificador (nombre de variable/función)

  2. Clic derecho → Refactor → Rename

  3. o atajoShift + F6

  4. Ingrese el nuevo nombre → presioneEnter

Efecto:

  • Todos los lugares que referencian el identificador se actualizan sincrónicamente

  • Admite renombrar entre archivos


Extraer método (Extract Method)

Extraer el fragmento de código seleccionado como un nuevo método:

  1. Seleccione el bloque de código

  2. Ctrl + Alt + M(Win)/ ⌘ + ⌥ + M(Mac)

  3. Ingrese el nombre del método → confirmar

Ejemplo

# Antes de extraer
def process_data(data):
    cleaned = []
    for item in data:
        if item.is_valid():  # ← Seleccione esta parte del código
            cleaned.append(item)
    return cleaned

# Después de extraer
def process_data(data):
    cleaned = []
    for item in data:
        if is_valid_item(item):
            cleaned.append(item)
    return cleaned

def is_valid_item(item):  # ← Nuevo método generado automáticamente
    return item.is_valid()

En línea (Inline)

Insertar en línea el método/variable en el lugar de la llamada:

  1. Coloque el cursor en el nombre del método/variable

  2. Ctrl + Alt + N(Win)/ ⌘ + ⌥ + N(Mac)

# 内联前
def calculate_discount(price):
    return price * 0.9

total = calculate_discount(100)  # ← 光标在此行

# 内联后
total = 100 * 0.9  # ← 方法调用被替换为实际代码

Técnicas avanzadas de edición

Plantillas en vivo (Live Templates)

Generar rápidamente patrones de código comunes:

  1. Escriba la abreviatura (por ejemplo,iter) → presioneTab

  2. Plantillas predefinidas:

    • main→ generaif __name__ == '__main__'

    • try→ genera un bloque try-except completo

Plantillas personalizadas:
Ajustes → Editor → Plantillas en vivo

Al escribir iter en el editor de código, se muestra la información de la plantilla:


Acciones de intención de código (Alt+Enter)

Corregir u optimizar rápidamente el código según el contexto:

  • Importar automáticamente paquetes faltantes

  • Convertir formato de cadenas (f-string / format)

  • Optimizar expresiones condicionales

Operación: coloque el cursor en la advertencia/sugerencia →Alt + Enter


Resumen: Flujo de trabajo de edición eficiente

  1. Fase de escritura:

    • Use el autocompletado de código (Ctrl + Space) para escribir rápidamente

    • Use plantillas dinámicas para generar estructuras repetitivas

  2. Fase de optimización:

    • Formatee el código (Ctrl + Alt + L)

    • usarAlt + EnterCorrija problemas rápidamente

  3. Fase de refactorización:

    • Extraer método (Ctrl + Alt + M)

    • Renombrar de forma segura (Shift + F6)

Otras extensiones