No sin mi prompt

Prompt de PowerShell en Windows como un pro

Como dice el refrán, “No solo hay que serlo, sino parecerlo”, así que en este post veremos como configurar el prompt de PowerShell en Windows para que sean más cool (más productivo no sé).

El propósito es guardar una buena chuleta de los pasos a seguir, porque siempre que me toca hacerlo me da cierta pereza volver a investigarlo.

La idea está sacada de un post de Scott Hanselman https://www.hanselman.com/blog/my-ultimate-powershell-prompt-with-oh-my-posh-and-the-windows-terminal e incluso también tiene un vídeo en YouTube si te gusta más.

Lo primero es elegir consola/terminal y parece claro, que hoy en día, la opción preferida es la de Windows Terminal que puedes instalar desde la Windows Store y seguir su desarrollo desde su repositorio en GitHub. Instalándola desde la tienda de Windows te aseguras que tendrás siempre la versión más actualizada.

En este otro post (ya desde la documentación oficial de Microsoft) también explican bien como configurar la terminal.

Los pasos a seguir son:

Instalar una fuente con glifos (porque queremos iconos chulos en el prompt), por ejemplo Caskaydia Cove Nerd Font y seleccionarla en Windows Terminal para el shell de PowerShell. Adicionalmente, también podrías establecer esta fuente para la terminal de VSCode, con la propiedad terminal.integrated.fontFamily para que todo luzca bien.

Si no quieres que te guerra después PyCharm… es mejor instalar la fuente para todos los usuarios en vez de para el usuario actual y cambiarla desde File -> Settings -> Editor -> Color Scheme -> Console Font. Además, cambia la terminal para ejecutar pwsh.exe en vez de powershell.exe (Tools -> Terminal -> Shell path). Dicho esto, si te pasa como a mí que no consigues que quede bonito, te diré que, en mi opinión, los IDEs basados en IntelliJ IDEA (PyCharm, Rider, etc) no se lo montan muy bien con este tipo de personalizaciones. Yo he terminado por dejar powershell.exe y olvidarte del tema… Bueno, no del todo, para la ejecución de algún fichero .ps1 del entorno virtual, me ha tocado ejecutar Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser en powershell porque por defecto venía con AllSigned. En pwsh sin embargo estaba ya RemoteSigned que es bien.

Instalar oh-my-posh.

También convendría instalar Terminal-Icons con Install-Module Terminal-Icons -Scope CurrentUser para mostrar iconos conocidos de ficheros y directorios con el comando dir o ls.

Después edita tu fichero de perfil con code $PROFILE y agrega lo siguiente:

oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\agnoster.omp.json" | Invoke-Expression
Import-Module -Name Terminal-Icons

Yo no los uso, pero también puedes probar posh-git y PSReadLine si quieres auto-completado e incluso completado predictivo de tus comandos.

Hasta aquí todo bien, pero ahora tendrás que elegir que tema te gusta más, yo he puesto agnoster inicialmente simplemente para que veas que funciona.

Puedes ver una preview de todas los temas disponibles directamente en la terminal, ejecuta Get-PoshThemes y establecelo con la opción --config en el anterior script.

Si te da por personalizar un tema, algo que me ha resultado útil durante la edición ha sido cambiar la fuente de VSCode a Caskaydia Cove Nerd Font (no sólo el terminal) y usar la extensión Native-ASCII Converter para cambiar entre caracteres en notación Unicode y su representación real.

Es decir, en vez de ver "prefix": " \ue70c ", ver el símbolo de Visual Studio.

visual_studio

Un saludo!


Ver también