Esta es la configuración de Visual Studio Code que se recomienda para seguir este curso.
La forma más sencilla de configurar Visual Studio Code de acuerdo con esta configuración recomendada es importar un perfil ya preparado, como se comenta en la lección Perfil recomendado.
Esta lección no detalla los pasos para configurar Visual Studio Code. En caso necesario, puede consultar la lección Personalización de VSC de los apuntes de Informática general, en la que se explica detalladamente cómo se personaliza Visual Studio Code. En dichos apuntes también puede consultar lecciones dedicadas a Visual Studio Code, como Presentación general, Instalación, Uso y otras, que le pueden ser de ayuda si no conoce Visual Studio Code.
El tema de color es un aspecto muy personal por lo que se deja a elección del alumno el tema de color empleado.
En las capturas de los apuntes se empleará el tema predeterminado Dark Modern (moderno oscuro).
En estos apuntes se recomienda utilizar una carpeta como área de trabajo de Visual Studio Code (no un Área de trabajo).
Estas son las dos extensiones que se aconseja instalar para seguir este curso.
Autor: Microsoft (Don Jayamanne)
Marketplace: Python
Repositorio GitHub: Python
Don Jayamanne, el creador de la extensión Python trabaja en Microsoft desde noviembre de 2017. Desde entonces, la extensión se publica como extensión oficial por parte de Microsoft y además se publica regularmente todos los meses.
En el Blog de Python en Microsoft se anuncian las novedades mensuales en la extensión Python:
Autor: Astral Software
Marketplace: Ruff
Repositorio GitHub: Ruff
Ruff es un analizador de código estático y un formateador de código para Python. Esta extensión incluye la última versión de ruff para su uso por la extensión Python.
La lista de mensajes de error y avisos de Ruff se puede consultar en el apartado Rules de la documentación de Ruff.
La configuración inicial de Ruff en VSCode es una configuración mínima (documentación de Ruff).
Autor: Microsoft
Marketplace: Black Formatter
Repositorio GitHub: Black Formatter
Black es un formateador de código Python. Esta extensión incluye la última versión de black para su uso por la extensión Python.
Autor: ryuta46
Marketplace: multi-command
Repositorio GitHub: multi-command
Esta extensión permite crear comandos que ejecuten a su vez varios comandos de Visual Studio Code.
Estas son las preferencias de configuración que se aconseja establecer para seguir este curso.
Las preferencias propuestas relacionadas con extensiones requieren la instalación de las extensiones correspondientes.
// Configuraciones recomendadas para el curso Introducción a la programación con Python
// Versión 2024-02-11
//
// Configuraciones generales "cosméticas"
//
// Editor: Minimap enabled
// Controla si se muestra el minimapa.
"editor.minimap.enabled": false,
//
// Editor: Render Whitespace
// Controla la forma en que el editor debe representar los caracteres de espacio en blanco.
"editor.renderWhitespace": "all",
//
// Editor: Word Wrap
// Controla cómo deben ajustarse las líneas.
"editor.wordWrap": "on",
//
// Window: Command Center
// Controla si la paleta de comandos se muestra en la barra de título. Esta configuración solo actúa cuando "window.titleBarStyle" tiene el valor "custom".
"window.commandCenter": false,
//
// Workbench > Layout Control
// Controla si el control de disposición se muestra en la barra de título. Esta configuración solo actúa cuando "window.titleBarStyle" tiene el valor "custom".
"workbench.layoutControl.enabled": false,
//
//
// Configuraciones generales
//
// Editor: Insert Spaces
// Insertar espacios al presionar "TAB"
"editor.insertSpaces": true,
//
// Editor: Linked Editing
// Controla si el editor tiene habilitada la edición vinculada. Dependiendo del lenguaje, los símbolos relacionados (por ejemplo, las etiquetas HTML) se actualizan durante la edición.
"editor.linkedEditing": true,
//
// Files: eol
// Carácter predeterminado de final de línea.
"files.eol": "\n",
//
// Files: Insert Final Newline
// Si se habilita, inserte una nueva línea al final del archivo cuando lo guarde.
"files.insertFinalNewline": true,
//
// Files: Trim Trailing Whitespace
// Si se habilita, se recortará el espacio final cuando se guarde un archivo.
"files.trimTrailingWhitespace": true,
//
//
// Configuraciones específicas para programas en Python
//
"[python]": {
// Formatea al guardar
"editor.formatOnSave": true,
// Acciones que se realizan al guardar
"editor.codeActionsOnSave": {
// Ruff ordena imports
"source.organizeImports.ruff": "explicit",
// Ruff no corrige los errores que sabe corregir
"source.fixAll": "never"
},
// Usa Black como formateador
"editor.defaultFormatter": "ms-python.black-formatter"
},
//
// Extensión Ruff
//
// Utiliza el Ruff incluido en la extensión
"ruff.importStrategy": "useBundled",
// Ruff está activado
"ruff.enable": true,
// Argumentos para personalizar el funcionamiento de Ruff
"ruff.lint.args": [
// Reglas de configuración https://docs.astral.sh/ruff/rules/
// Reglas predeterminadas https://docs.astral.sh/ruff/configuration/
// E501: línea demasiado larga
// "--select=E501",
// "--ignore=E501",
// Longitud de línea en caracteres
// "--line-length=120",
],
//
// Extensión Black Formatter
//
// Utiliza el Black incluido en la extensión
"black-formatter.importStrategy": "useBundled",
// Argumentos para personalizar el funcionamiento de Black
"black-formatter.args": [
// Longitud de línea en caracteres
// "--line-length=88"
]
//
{
// Configuraciones recomendadas para el curso Introducción a la programación con Python
// Versión 2024-02-11
//
// Configuraciones generales "cosméticas"
//
// Editor: Minimap enabled
// Controla si se muestra el minimapa.
"editor.minimap.enabled": false,
//
// Editor: Render Whitespace
// Controla la forma en que el editor debe representar los caracteres de espacio en blanco.
"editor.renderWhitespace": "all",
//
// Editor: Word Wrap
// Controla cómo deben ajustarse las líneas.
"editor.wordWrap": "on",
//
// Window: Command Center
// Controla si la paleta de comandos se muestra en la barra de título. Esta configuración solo actúa cuando "window.titleBarStyle" tiene el valor "custom".
"window.commandCenter": false,
//
// Workbench > Layout Control
// Controla si el control de disposición se muestra en la barra de título. Esta configuración solo actúa cuando "window.titleBarStyle" tiene el valor "custom".
"workbench.layoutControl.enabled": false,
//
//
// Configuraciones generales
//
// Editor: Insert Spaces
// Insertar espacios al presionar "TAB"
"editor.insertSpaces": true,
//
// Editor: Linked Editing
// Controla si el editor tiene habilitada la edición vinculada. Dependiendo del lenguaje, los símbolos relacionados (por ejemplo, las etiquetas HTML) se actualizan durante la edición.
"editor.linkedEditing": true,
//
// Files: eol
// Carácter predeterminado de final de línea.
"files.eol": "\n",
//
// Files: Insert Final Newline
// Si se habilita, inserte una nueva línea al final del archivo cuando lo guarde.
"files.insertFinalNewline": true,
//
// Files: Trim Trailing Whitespace
// Si se habilita, se recortará el espacio final cuando se guarde un archivo.
"files.trimTrailingWhitespace": true,
//
//
// Configuraciones específicas para programas en Python
//
"[python]": {
// Formatea al guardar
"editor.formatOnSave": true,
// Acciones que se realizan al guardar
"editor.codeActionsOnSave": {
// Ruff ordena imports
"source.organizeImports.ruff": "explicit",
// Ruff no corrige los errores que sabe corregir
"source.fixAll": "never"
},
// Usa Black como formateador
"editor.defaultFormatter": "ms-python.black-formatter"
},
//
// Extensión Ruff
//
// Utiliza el Ruff incluido en la extensión
"ruff.importStrategy": "useBundled",
// Ruff está activado
"ruff.enable": true,
// Argumentos para personalizar el funcionamiento de Ruff
"ruff.lint.args": [
// Reglas de configuración https://docs.astral.sh/ruff/rules/
// Reglas predeterminadas https://docs.astral.sh/ruff/configuration/
// E501: línea demasiado larga
// "--select=E501",
// "--ignore=E501",
// Longitud de línea en caracteres
// "--line-length=120",
],
//
// Extensión Black Formatter
//
// Utiliza el Black incluido en la extensión
"black-formatter.importStrategy": "useBundled",
// Argumentos para personalizar el funcionamiento de Black
"black-formatter.args": [
// Longitud de línea en caracteres
// "--line-length=88"
]
//
}
No es necesario añadir ninguna tarea específica.
Estos son los atajos de teclado que se aconseja añadir para seguir este curso.
// Atajos de teclado recomendados para el curso Introducción a la programación con Python de www.mclibre.org
// Versión 2024-02-26
{
// Abrir y pasar el foco al Explorador de archivos
"key": "ctrl+alt+NumPad_Divide",
"command": "workbench.files.action.focusFilesExplorer",
"when": "!filesExplorerFocus"
},
{
// Cerrar el Explorador de archivos
"key": "ctrl+alt+NumPad_Divide",
"command": "workbench.action.closeSidebar",
"when": "filesExplorerFocus"
},
{
// Abrir y pasar el foco a Panel > Problemas. Cerrar Panel > Problemas
"key": "ctrl+alt+NumPad_Multiply",
"command": "workbench.actions.view.problems",
"when": "workbench.panel.markers.view.active"
},
{
// Pasar el foco al Editor
"key": "ctrl+alt+NumPad_Subtract",
"command": "workbench.action.focusActiveEditorGroup",
"when": "!editorFocus"
},
{
// Abrir y pasar el foco al Panel > Terminal
"key": "ctrl+alt+NumPad_Add",
"command": "workbench.action.terminal.focus",
"when": "!terminalFocus"
},
{
// Abrir y pasar el foco al Panel > Terminal
"key": "ctrl+alt+NumPad_Add",
"command": "workbench.action.closePanel",
"when": "terminalFocus"
},
{
// Eliminar atajo predeterminado para liberar el atajo Ctrl+Alt+t
"key": "ctrl+alt+t",
"command": "-workbench.action.terminal.focus"
},
{
// Mostrar y pasar el foco el Panel / Ocultar el Panel
"key": "ctrl+alt+t ctrl+alt+p",
"command": "workbench.action.togglePanel"
},
{
// Limpiar el terminal
"key": "ctrl+alt+t ctrl+alt+l",
"command": "runCommands",
"args": {
"commands": [
{
"command": "workbench.action.terminal.sendSequence",
"args": {
// caracteres Home Delete
"text": "\u0001\u007F"
}
},
"workbench.action.terminal.clear"
]
}
},
{
// Cerrar el terminal
"key": "ctrl+alt+t ctrl+alt+c",
"command": "workbench.action.terminal.kill"
},
{
// Ejecutar programa de Python en el terminal (foco final en el editor)
"key": "ctrl+alt+f5",
"command": "extension.multiCommand.execute",
"args": {
"sequence": [
"workbench.action.terminal.focus",
{
"command": "workbench.action.terminal.sendSequence",
"args": {
"text": "cd '${fileDirname}'\u000Dclear\u000Dpy '${fileBasename}'\u000D"
}
},
"workbench.action.focusActiveEditorGroup"
]
}
},
{
// Ejecutar programa de Python en el terminal (foco final en el terminal)
"key": "ctrl+alt+shift+f5",
"command": "runCommands",
"args": {
"commands": [
"workbench.action.terminal.focus",
{
"command": "workbench.action.terminal.sendSequence",
"args": {
"text": "\u0001\u007Fcd '${fileDirname}'\u000Dclear\u000Dpy '${fileBasename}'\u000D"
}
}
]
}
},
{
// Ejecutar MPTC en el terminal (el usuario debe escribir el código MPTC)
"key": "ctrl+alt+f6",
"command": "runCommands",
"args": {
"commands": [
"workbench.action.terminal.focus",
{
"command": "workbench.action.terminal.sendSequence",
"args": {
"text": "\u0001\u007Fcd '${fileDirname}'\u000Dclear\u000Dmptc '${fileBasename}' "
}
}
]
}
}
// Atajos de teclado recomendados para el curso Introducción a la programación con Python de www.mclibre.org
// Versión 2024-02-26
[
{
// Abrir y pasar el foco al Explorador de archivos
"key": "ctrl+alt+NumPad_Divide",
"command": "workbench.files.action.focusFilesExplorer",
"when": "!filesExplorerFocus"
},
{
// Cerrar el Explorador de archivos
"key": "ctrl+alt+NumPad_Divide",
"command": "workbench.action.closeSidebar",
"when": "filesExplorerFocus"
},
{
// Abrir y pasar el foco a Panel > Problemas. Cerrar Panel > Problemas
"key": "ctrl+alt+NumPad_Multiply",
"command": "workbench.actions.view.problems",
"when": "workbench.panel.markers.view.active"
},
{
// Pasar el foco al Editor
"key": "ctrl+alt+NumPad_Subtract",
"command": "workbench.action.focusActiveEditorGroup",
"when": "!editorFocus"
},
{
// Abrir y pasar el foco al Panel > Terminal
"key": "ctrl+alt+NumPad_Add",
"command": "workbench.action.terminal.focus",
"when": "!terminalFocus"
},
{
// Abrir y pasar el foco al Panel > Terminal
"key": "ctrl+alt+NumPad_Add",
"command": "workbench.action.closePanel",
"when": "terminalFocus"
},
{
// Eliminar atajo predeterminado para liberar el atajo Ctrl+Alt+t
"key": "ctrl+alt+t",
"command": "-workbench.action.terminal.focus"
},
{
// Mostrar y pasar el foco el Panel / Ocultar el Panel
"key": "ctrl+alt+t ctrl+alt+p",
"command": "workbench.action.togglePanel"
},
{
// Limpiar el terminal
"key": "ctrl+alt+t ctrl+alt+l",
"command": "runCommands",
"args": {
"commands": [
{
"command": "workbench.action.terminal.sendSequence",
"args": {
// caracteres Home Delete
"text": "\u0001\u007F"
}
},
"workbench.action.terminal.clear"
]
}
},
{
// Cerrar el terminal
"key": "ctrl+alt+t ctrl+alt+c",
"command": "workbench.action.terminal.kill"
},
{
// Ejecutar programa de Python en el terminal (foco final en el editor)
"key": "ctrl+alt+f5",
"command": "extension.multiCommand.execute",
"args": {
"sequence": [
"workbench.action.terminal.focus",
{
"command": "workbench.action.terminal.sendSequence",
"args": {
"text": "cd '${fileDirname}'\u000Dclear\u000Dpy '${fileBasename}'\u000D"
}
},
"workbench.action.focusActiveEditorGroup"
]
}
},
{
// Ejecutar programa de Python en el terminal (foco final en el terminal)
"key": "ctrl+alt+shift+f5",
"command": "runCommands",
"args": {
"commands": [
"workbench.action.terminal.focus",
{
"command": "workbench.action.terminal.sendSequence",
"args": {
"text": "\u0001\u007Fcd '${fileDirname}'\u000Dclear\u000Dpy '${fileBasename}'\u000D"
}
}
]
}
},
{
// Ejecutar MPTC en el terminal (el usuario debe escribir el código MPTC)
"key": "ctrl+alt+f6",
"command": "runCommands",
"args": {
"commands": [
"workbench.action.terminal.focus",
{
"command": "workbench.action.terminal.sendSequence",
"args": {
"text": "\u0001\u007Fcd '${fileDirname}'\u000Dclear\u000Dmptc '${fileBasename}' "
}
}
]
}
}
]
Entre los atajos recomendados, cuatro de ellos están relacionados con la navegación entre elementos del interfaz. En los cuatro intervienen teclas de operaciones aritméticas del teclado numérico (suma +, resta -, multiplicación * y división /):
Si no se había abierto todavía ninguna pestaña de Terminal, el atajo abre una nueva pestaña de Terminal automáticamente. La primera vez que se abre una pestaña de Terminal, la pestaña se abre en el directorio raíz del área de trabajo.
Entre los atajos recomendados, tres de ellos están relacionados con el Panel:
Los dos atajos (Ctrl+Alt+F5 y Ctrl+Alt+Mayús+F5) permiten ejecutar el programa de Python que se esté editando. El programa se ejecuta en la pestaña de Terminal PowerShell de Visual Studio Code. Se ha elegido la tecla F5 ya que esta es la tecla que permite ejecutar programas en IDLE.
Ambos atajos cambian automáticamente al directorio en el que se encuentra el programa y lo ejecutan en ese directorio.
La diferencia entre ambos atajos es que:
Si no se han definido los atajos de teclado anteriores, el programa se puede ejecutar igualmente haciendo clic derecho en el nombre del programa en el explorador y eligiendo la opción "Ejecutar el archivo de Python en terminal" ...
... o haciendo clic derecho en el cuerpo del programa y eligiendo la opción "Ejecutar el archivo de Python en terminal".
En ambos casos, el terminal se abre en el directorio raíz del área de trabajo y el foco se mantiene en el editor.
El atajo Ctrl+Alt+F6 está pensado para facilitar el uso de MPTC. .