Nota: Si solamente deseas personalizar la Windows Terminal te compartó el enlace directo a dicha sección (Instalar la PowerShell Core es requerido):
Esta guía ha sido realizada con el propósito de crear una solución a la instalación y configuración un poco tediosa de Neovim en el Sistema Operativo Windows 10. Con está guía podrás obtener una configuración decente de Neovim en Windows 10 y poder incrementar tu productividad a la hora de escribir código.
Para realizar la instalación de Neovim primero debemos contar con las siguientes herramientas o utilidades en nuestro sistema, es importante no saltarse ningún paso.
Para poder utilizar Neovim y toda su potencia necesitamos un emulador de terminal más bonito que el clásico y viejo CMD o la PowerShell de Windows, así que vamos a hacer a instalar la Windows Terminal.
Accedemos a la Microsoft Store y en la barra de búsqueda escribimos: Windows Terminal Preview. Seleccionamos la Windows Terminal Preview.
Para personalizar la Terminal puedes usar los atajos de teclado Ctrl + ,
.
Puedes agregar una imagen de fondo, cambiar tamaño y el tipo de fuente, etc. Más adelente vamos a personalizar la PowerShell Core.
Ahora necesitamos una Shell más moderno y que se adapte a nuestras necesidades, así que vamos a instalar la PowerShell Core.
Para instalarla necesitaremos visitar la página de los Releases estables: PowerShell Core y vamos a elegir el Instalador de Microsoft para la arquitectura de x64 bits.
Una vez descargado sólo necesitaremos ejecutar el Instalador y dar los clásicos clicks de siguiente, siguiente y finalizar.
En este caso íremos directo a la instalación de Chocolatey pero aquí puedes encontrar la Guía Oficial de Instalación del gestor de paquetes para Windows llamado Chocolatey.
Para realizar la instalación de Chocolatey necesitamos abrir una ventana de la PowerShell Core 7 que instalamos previamente y con permisos de Administrador.
Luego vamos a ejecutar la siguiente instrucción:
Set-ExecutionPolicy Bypass -Scope Process
Posteriormente necesitamos ejecutar la siguiente instrucción o comando para descargar el script de instalación:
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
Para limpiar la Terminal podemos usar la combinación de teclas Ctrl + L
, o también podemos escribir cls
o clear
.
Una vez realizado el paso anterior y que no hayan existido errores puedes probar a escribir
choco o choco -?
para verificar que el programa existe. No cerrar la Ventana de la PowerShell para el siguiente paso.
Una vez hayamos finalizado con la instalación de chocolatey haremos la instalación de las depencias necesarias para Neovim.
- RipGrep
- NodeJS
- Git
Si ya tienes Git y NodeJS instalado puedes omitir la opción borrando la palabra git u omite la primera instrucción y utiliza la segunda.
choco install ripgrep nodejs git -y
choco install ripgrep -y
La flag o bandera -y permite ejecutar la instalación sin pregutar por confirmaciones, tal cual como lo hace apt install -y en Debian.
Una parte importante para no tener problemas con RipGrep y obtener un filtrado del contenido de los archivos con FZF vamos a necesitar obtener la ruta de los comandos básicos en un shell de Linux y esto lo vamos a conseguir con Git sin necesitad de utilizar WSL.
Importante: Sí acabas de instalar Git y Node JS es necesario que los añadas en el PATH, yo me encargué de hacerlo de manera permanente, es decir, no tendrás que ir directamente a añadir la ruta de manera manual.
El siguiente comando es una pequeño Script de automazación que yo he hecho para agregar la ruta de los binarios básicos de un sistema Linux tradicional, también la ruta del ejecutable de NodeJS, Neovim y Git de manera permanente, para que funcioné se necesitará abrir la Windows Terminal o PowerShell Core con permisos de administrador.
Ojo, esto funcionará si has hecho la instalación por defecto de Git y Node JS, es decir, que no hayas cambiado la ruta donde ha sido instalado.
Vamos a agregar las rutas al Path de las Variables del Sistema, solamente pega lo siguiente en Modo Administrador:
$env:Path += ";C:\Program Files\Git\cmd"; $ACTUAL_PATH = (Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment' -Name path).path;`
$GIT_USR_PATH = (cmd /c where git); $GIT_USR_PATH -replace "\\cmd\\git.exe", "\usr\bin" | Tee-Object -Variable GIT_USR_PATH; $NEW_PATH = "$ACTUAL_PATH;$GIT_USR_PATH;C:\Program Files\Git\cmd;C:\Program Files\nodejs;C:\tools\neovim\Neovim\bin"; Set-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment' -Name path -Value $NEW_PATH
Una vez pegado es cuestión de darle Enter para ejecutar la instrucción.
Descripción: Lo primero que hace el script es agregar de manera temporal Git en las variables de entorno, luego hace la búsqueda del Path de las variables del sistema y las guarda en una variable. Luego creo una variable para guardar la ubicación del usr\bin de Git. Finalmente en una variable nueva guardo las rutas que agregaré y finalmente las guarda de forma permanente en las Variables del Sistema (hice muchas pruebas en mi máquina y en máquinas virtuales para asegurarme de que todo funcione correctamente).
Para la instalación vamos a utilizar permisos de administrador en una PowerShell Core o nuestra Windows Terminal y pegar la siguiente instrucción de instalación con chocolatey:
choco install neovim -y --pre
La flag --pre le índica a chocolatey que vamos a instalar una versión de un programa en su fase beta, es decir, un pre-release de una aplicación, en este caso Neovim en su versión 0.5.0.
Una vez instalado vamos a necesitar un manejador de Plugins para nuestro editor, en nuestro caso será vim-plug.
Puedes revisar la Guía de Instalación en el README del repositorio oficial de vim-plug, para acelerar el proceso dejo el comando que se necesita para PowerShell el cual solamente necesitarás pegar.
iwr -useb https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim |`
ni "$(@($env:XDG_DATA_HOME, $env:LOCALAPPDATA)[$null -eq $env:XDG_DATA_HOME])/nvim-data/site/autoload/plug.vim" -Force
Una vez completada la instalación de nuestro manegador de Plugins vamos a clonar este repositorio; para que todo funcione necesitarás clonarlo de la siguiente manera:
git clone https://github.com/antonio0x/neowindows.git $HOME\AppData\Local\nvim
Esto es un ahorro a tener que buscar el directorio AppData\Local y luego abrir una PowerShell o CMD dentro del directorio y tener que clonarlo desde allí.
Llegados hasta este punto vamos a ejecutar ahora sí neovim, para ello escribimos nvim
en la PowerShell y de primera mano tendremos varias advertencias de que existen cosas que no existen o no se han encontrado.
Para resolverlos, sólo le damos un Enter y luego vamos a ejecutar dentro de nvim
el comando :PlugInstall
e inmediamente se instalarán todos los Plugins que están en la lista.
Una vez hecho esto puedes cerrar el editor con :q!
y volver a abrirlo, y ya tendrías el editor de texto Neovim configurado en tu sistema :).
Una vez instalado todos los plugins puedes instalar distintas extensiones utilizando COC (Conquer Of Completion) para autocompletado de diferentes lenguajes.
Te comparto la lista de las diferentes extensiones que están disponibles 👉 🔗.
Si programas para la Web te dejó el comando para que puedas instalar las extensiones más escenciales:
Dentro de neovim utiliza los :
para iniciar un comando y pega lo siguiente y posteriormente un Enter
:
CocInstall coc-tsserver coc-json coc-emmet coc-html coc-css
En esta sección vamos a personalizar nuestro interprete de comandos haciendo uso de Oh My Posh, un engine de Temas.
Para que nuestro prompt se vea genial necesitaremos instalar alguna fuente que nos permita hacerlo. Así que vamos a hacer uso de las Nerd Fonts.
Puedes seleccionar la fuente de tu preferencia, todas nos permitirán visualizar los iconos necesarios para nuestra terminal.
Para instalar las fuentes solamente selecciona todos los archivos e instala todas las fuentes (recomiendo la primera opción del texto en Negrita Install o Instalar).
Para cambiar la fuente en la Windows Terminal sólo es de hacer lo siguiente:
Abrimos la Windows Terminal y abrimos la configuración usando los atajos de teclado Ctrl + ,
.
O también se puede hacer a través de la interfaz gráfica:
Para remover el padding o espaciado entre la terminal:
Una guía rápida de como cambiar la fuente:
Para instalar Oh My Posh vamos a instalar un par de módulos haciendo uso de la PowerShell Core, el primero será:
Install-Module oh-my-posh -Scope CurrentUser
Ahora para obtener ayudas o información de un repositorio de Git necesitaremos el siguiente módulo:
Install-Module posh-git -Scope CurrentUser
También necesitaremos el siguiente módulo para la PowerShell Core. (Acerca de PSReadLine)
Install-Module -Name PSReadLine -AllowPrerelease -Scope CurrentUser -Force -SkipPublisherCheck
Finalizada la instalación de los módulos vamos a agregar las configuraciones a nuestro perfil de usuario de PowerShell Core.
Primero vamos a editar o crear el perfil, para ello solamente ejecutamos la siguiente instrucción:
Sí has instalado Neovim puedes utilizarlo para editar el archivo o fichero
nvim $PROFILE
, caso contrarior puedes usar elnotepad
.
notepad $PROFILE
Problamente si sea primera vez que utilizas la PowerShell Core te aparecerá una ventana emergente que te pedirá confirmar si deseas crear un Perfil de PowerShell, así que sólo da Click en Sí.
Ahora pega las siguientes líneas en el archivo y guarda el archivo, si lo haces en Neovim cierra el archivo para volver a la PowerShell.
Import-Module posh-git
Import-Module oh-my-posh
Set-PoshPrompt -Theme marcduiker
Para hacer que lo anterior tenga efecto sólo escribe lo siguiente o cierra la PowerShell y abré una nueva ventana:
. $PROFILE
Para poder ver los temas que están disponibles utiliza la siguiente instrucción:
Get-PoshThemes
Podrás tener una gran variedad de Temas para elegir, cuando ejecutes el comando tendrás una salida como la siguiente:
Para poder cambiar un tema sólo necesitaras abrir el archivo del Perfil de PowerShell, pueder ser siempre de la siguiente manera: notepad $PROFILE
.
Una vez abierto edita la siguiente línea y luego lo guardas:
Set-PoshPrompt -Theme nombreDelTema