EDITAR: lo siguiente es aplicable a versiones anteriores de MSYS2. A partir de 2020-01-21, ya no es necesario. La respuesta de FeRD parece funcionar mejor.
Quería usar pescado en lugar de bash. Desafortunadamente, la mayoría de los métodos aquí no funcionaron, posiblemente porque la sintaxis de los peces es muy diferente.
Lo que funcionó mejor fue la idea de wzhd de correr exec fish
como lo primero cuando comienza bash. Sin embargo, todavía había un problema: si quería usar bash, tenía que editar .bashrc
para eliminar esa línea porque incluso si la ejecutaba desde fish solo comenzaría otra instancia de fish.
Lo mejor que puede hacer es asegurarse de que se exec fish
ejecute cuando comience msys2, pero no cada vez que comience bash.
La forma en que encontré es a través del archivo msys2_shell.cmd
en la carpeta de instalación de msys2. Encontré estas líneas:
set SHELL_ARGS=
:collectparams
if not "x%~1" == "x" set SHELL_ARGS=%SHELL_ARGS% %1& shift& goto :collectparams
Parece que están definiendo parámetros para pasar a bash tan pronto como comience, pero solo cuando se ejecuta este script (a diferencia .bashrc
). Entonces agregué esta línea justo después:
set SHELL_ARGS=%SHELL_ARGS% -c "exec fish"
Todo parece estar bien hasta ahora. Iniciar msys2 reemplaza bash con fish tan pronto como el primero termine de cargarse, pero si necesito una línea de comando bash, aún puedo comenzar bash
.