Skip to content

Instantly share code, notes, and snippets.

@sidlors
Last active January 11, 2024 14:58
Show Gist options
  • Save sidlors/cd5e37233b274d71ef196227284577ed to your computer and use it in GitHub Desktop.
Save sidlors/cd5e37233b274d71ef196227284577ed to your computer and use it in GitHub Desktop.
msys2 windows

Integracion en WINDOWS: Cmder, Msys2, zhs, ohmyzhs, Eclipse, Visual code

Aunque no es obligatorio, sugiero utilizar cmnder como integrador de todas estas tecnologias, basicamente es un wrapper con mejors de ConEmu y Clink.

Cmder, Emulador de terminales Windows

Cmder es un paquete de software creado por pura frustración por la ausencia de buenos emuladores de consola en Windows. Se basa en un software increíble y está condimentado con el esquema de color Monokai y un diseño de aviso personalizado, luciendo sexy desde el principio.

  • ES un wrapper que se ayuda con los mejores.

Piense en cmder más como un paquete de software que como una aplicación separada. Toda la magia está sucediendo a través de ConEmu y Con mejoras de Clink.

  • Portabilidad total

Llévelo contigo en memoria USB o en la nube, para que su configuración, alias e historial puedan ir a donde quiera que vaya. No volverá a ver ese horrible mensaje de Windows nunca más.

  • Gitbash, cygwin, mintty otras mejoras integradas

Oooh si! Si decide usar la versión un poco más grande de git-for-windows, tendrá todos los comandos de Unix listos en PATH para que pueda usar git init o cat al instante en cada máquina.

en nuestro caso vamos a agregar ademas MSYS ya que tiene un manager de programas que cygwin trae solo en modo gráfico, y en el caso de mintty ni siquiera concidera seguir instalando mas paquetes.

Msys2

MSYS2 es una distribución de software y plataforma de construcción para Windows, En esencia, es una reescritura independiente de MSYS, basada en la moderna Cygwin (capa de compatibilidad POSIX) y MinGW-w64 con el objetivo de una mejor interoperabilidad con el software nativo de Windows. Proporciona un bash shell, Autotools, sistemas de control de revisión y similares para construir aplicaciones nativas de Windows usando cadenas de herramientas MinGW-w64.

Cuenta con un sistema de gestión de paquetes Pacman el mismo que viene pordefault para distros ArchLinux.

Instalacion de programas

Vamos a instalar

Opcionalmente (instalacion con chocolate)

Alternativamente puedes instalarlos con Choco Package manager de Windows que tambien recomiendo mucho

Abrimos Cmd como Administrador e Intalamos

Cmder

choco install cmnder -Y

Msys2

choco install msys2 -Y

Ojo: Aqui debemos solo tomar en cuenta los path de instalacion si usamos chocolate ya que el mete a cmnder en C:\tools y a msys2 en "Archivos de programas", puedes moverlos a las rutas que este texto sugieren o bien cambiar las rutas por las que te queden mejor a ti,

Post Instalacion

Para trabajar con el home de windows y no el que crea para msys2 necesitamos la variable %HOME% en windows, yo uso rapidee, instalada con chocolate

choco install rapidee -Y 

Abrimos rapidee y agregamos HOME

Mejorar performance General

Luego vamos a editar aspectos de performance y para que nos cambie el home por default al home de windows vamos a abrir el recien instalado msys2

Instalamos zsh, vim y git

$pacman -S man vim nano zsh git

Utilerias basicas

$pacman -S zip unzip
$pacman -S mingw64/mingw-w64-x86_64-jq
$pacman -S openssh rsync make

con vim antes ya instalado, creamos cache de los usuarios grupos

$ mkpasswd -l -c > /etc/passwd
$ mkgroup -l -c > /etc/group

editamos ya con msys2 usando vim por ejemplo:

$vim /etc/nsswitch.conf
# Begin /etc/nsswitch.conf

passwd: files
group: files
db_enum: cache builtin
db_home: windows
db_shell: cygwin desc
db_gecos: cygwin desc

# End /etc/nsswitch.conf

Reiniciamos equipo preferentemente, Listo.


Integracion, Bash on Windows via MSYS2

Abre una terminal, Settings -> setup

Le damos al boton "+"

Abrimos el cmder y nueva task

1.- new task bash::msys2

set CHERE_INVOKING=1 & set MSYSTEM=MINGW64 & set MSYS2_PATH_TYPE=inherit & set "PATH=%ConEmuDrive%\msys64\mingw64\bin;%ConEmuDrive%\tools\msys64\usr\bin;%PATH%" & %ConEmuBaseDirShort%\conemu-msys2-64.exe -new_console:p %ConEmuDrive%\tools\msys64\usr\bin\bash.exe --login -i -new_console:C:"%ConEmuDrive%\tools\msys64\msys2.ico"

Ahora el amado zsh

3.- new task bash::msys2-zsh

set CHERE_INVOKING=1 & set MSYSTEM=MINGW64 & set MSYS2_PATH_TYPE=inherit & set "PATH=%ConEmuDrive%\msys64\mingw64\bin;%ConEmuDrive%\tools\msys64\usr\bin;%PATH%" & %ConEmuBaseDirShort%\conemu-msys2-64.exe -new_console:p %ConEmuDrive%\tools\msys64\usr\bin\zsh.exe --login -i -new_console:C:"%ConEmuDrive%\tools\msys64\msys2.ico"

4.- Instalacion de Oh My Zsh

$sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

5.- clone a useful dotfiles repo with zsh, tmux, task, etc etc dotfiles

Ya podemos bien trabajar con cmder

Linux BASH

Linux ZSH

Integracion en Visual Code

Lo primero es crear un .bat (en mi caso C:\tools\cmder\vscode.bat)

@echo off
SET CurrentWorkingDirectory=%CD%
SET CMDER_ROOT=C:\tools\cmder
CALL "%CMDER_ROOT%\vendor\init.bat"
CD /D %CurrentWorkingDirectory%

Luego en visual code en settings.json

 "terminal.integrated.shell.windows": 
    "C:\\WINDOWS\\System32\\cmd.exe",
    "terminal.integrated.shellArgs.windows":[
        "/K",
        "C:\\tools\\cmder\\vscode.bat"
        ],
        "terminal.integrated.automationShell.linux": ""

si todo va bien con eso es mas que suficiente

Integracion con Eclipse

si instalamos cmder

en eclipse: windows -> preferences -> Terminal -> LocalTerminal -> Add..

Los siguientes parametros

  • path: C:\tools\Cmder\vendor\conemu-maximus5\ConEmu\ConEmuC64.exe
  • arguments: cmd /k C:\tools\Cmder\vendor\init.bat
  • icon: C:\tools\Cmder\icons\cmder_purple.ico (Opcional)

Listo!!

Ya no estrañes tanto tu linux terminal

Ingregracion con IntelliJ

Para intellij, ctl + alt + s

shell_path: C:\Windows\system32\cmd.exe /k C:\tools\Cmder\vendor\init.bat

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment