¿Cómo puede exportar su .bashrc a .zshrc?

85

Estoy intentando moverme a zsh desde Bash.

Puse mi .bashrc directamente en mi .zshrc, y causó muchos errores cuando intento usar Bash nuevamente.

¿Cómo puede exportar su .bashrc a .zshrc?

Léo Léopold Hertz 준영
fuente
19
No dejes que este odiador de zsh te deprima. ¡Zsh es genial!
Jeremy Cantrell

Respuestas:

109

Si bien la respuesta de lhunath me empujó en la dirección correcta, zsh no parece originarse .profileautomáticamente. Se puede encontrar mucha buena información sobre este tema en esta publicación de superusuario .

La adaptación que estoy usando es poner alias y funciones comunes y obtenerlos .profilemanualmente de la siguiente manera:

En ~/.bashrc:

source ~/.profile

En ~/.zshrc:

[[ -e ~/.profile ]] && emulate sh -c 'source ~/.profile'

emulatees un comando incorporado de zsh. Con un solo argumento, configure las opciones de zsh para emular el shell especificado tanto como sea posible.

Ryne Everett
fuente
2
Sí, creo que este es el mejor enfoque. ¡Gracias por su respuesta!
Léo Léopold Hertz 준영
la respuesta anterior también funciona bien para mí. pero tengo que hacer esto cada vez que abro la terminal zshrc. ¿Puedes decirme cómo corregir esto?
thedudecodes
32

No puede " exportar " su .bashrca .zshrc. .bashrces un archivo que ejecuta bashcomandos. .zshrces un archivo que ejecuta zshcomandos.

No se puede esperar zsha ser capaz de ejecutar los bashcomandos en su .bashrc, por lo que debe convertirlo en un nuevo .zshrclugar de tratar de ejecutar .bashrcdesde .zshrco copiar el primero en el segundo.

Si desea un archivo de inicialización de shell común para todos sus shells; usar .profile(y quitar .bashrcy .zshrc). Se obtiene de todos los shells POSIX. Y allí, se adhieren a shell POSIX cuenta única . Entonces ese código se ejecutará en cualquier shell POSIX. (Sin embargo, no estoy 100% seguro de que zshsea ​​compatible con POSIX).

Ver: http://mywiki.wooledge.org/DotFiles .

Sin embargo, y primero leí mal esta parte de su pregunta, no debería experimentar errores bashal ejecutar su a .bashrcmenos que ponga zshcomandos allí. ¿Tuviste? ¿Qué errores está recibiendo? Me parece que ha agregado zshcódigo a su .bashrcy bash(obviamente) no lo entiende.

Como acotación al margen, ojblassintenta hacer un punto de portabilidad que solo tiene éxito en parte. zshes un gran caparazón (aunque yo no he tenido los honores), pero al escribir guiones; Te recomiendo que lo hagas con #!/usr/bin/env bash. Principalmente solo por su propio (y eventualmente, las personas que comparte con ellos) en aras de la portabilidad.

lhunath
fuente
Mire la declaración "Puse mi .bashrc directamente en mi .zshrc, y causó muchos errores cuando intento usar Bash de nuevo". ahora piensa por un momento qué podría causar eso ... y luego reformula tu publicación.
ojblass