Estoy buscando pautas sobre lo que uno debe y no debe incluir en los diversos archivos de inicio zsh.
Entiendo el orden de abastecimiento de estos archivos y las condiciones bajo las cuales se obtienen, pero aún no me queda claro qué debe incluir cada uno.

Respuestas:
Aquí hay una lista no exclusiva de lo que cada archivo tiende a contener:
.zshenvsiempre se obtiene, a menudo contiene variables exportadas que deberían estar disponibles para otros programas. Por ejemplo,$PATH,$EDITOR, y$PAGERse fijan a menudo en.zshenv. Además, se puede establecer$ZDOTDIRen.zshenvpara especificar una ubicación alternativa para el resto de la configuración zsh..zshrces para la configuración de shell interactivo. Establece opciones para el shell interactivo allí con los comandossetoptyunsetopt. También puede cargar módulos de shell, configurar sus opciones de historial, cambiar su solicitud, configurar zle y finalización, etc. También establece las variables que solo se utilizan en el shell interactivo (por ejemplo$LS_COLORS)..zloginse origina en el inicio de un shell de inicio de sesión. Este archivo se usa a menudo para iniciar X usandostartx. Algunos sistemas inician X en el arranque, por lo que este archivo no siempre es muy útil..zprofilees básicamente lo mismo,.zloginexcepto que se obtiene directamente antes de.zshrcobtenerlo en lugar de hacerlo directamente después. De acuerdo con la documentación de zsh, ".zprofilese entiende como una alternativa a '.zlogin' para los fanáticos de ksh; los dos no están diseñados para usarse juntos, aunque esto ciertamente podría hacerse si se desea"..zlogouta veces se usa para borrar y restablecer el terminal.Debe revisar los archivos de configuración de los usuarios aleatorios de Github para tener una mejor idea de lo que debe contener cada archivo.
fuente
man zshallpara más detalles).$PATHen.zshenv, varios otros archivos todos son de origen después de este archivo que va a reemplazar este valor. Consulte zsh.org/mla/users/2003/msg00600.html .$LANGy$LC_ALLir?.zshenv→ [.zprofilesi inicio de sesión] → [.zshrcsi es interactivo] → [.zloginsi inicio de sesión] → [a.zlogoutveces].Aquí una lista de lo que cada archivo debe / no debe contener, en mi opinión:
.zshenv
[Leer cada vez]
Este archivo siempre tiene su origen, por lo que debe establecer variables de entorno que deben actualizarse con frecuencia . PATH (o su ruta de contraparte asociada ) es un buen ejemplo porque probablemente no desee reiniciar toda su sesión para que se actualice. Al configurarlo en ese archivo, reabrir un emulador de terminal iniciará una nueva instancia de Zsh con el valor PATH actualizado.
Pero tenga en cuenta que este archivo se lee incluso cuando se inicia Zsh para ejecutar un solo comando (con la opción -c ), incluso mediante otra herramienta como
make. Debe tener mucho cuidado de no modificar el comportamiento predeterminado de los comandos estándar, ya que puede romper algunas herramientas (estableciendo alias, por ejemplo)..zprofile
[Leer al iniciar sesión]
Personalmente trato ese archivo como
.zshenvpero para comandos y variables que deben configurarse una vez o que no necesitan actualizarse con frecuencia :SCONSFLAGS="--jobs=$(( $(nproc) - 1 ))") ya que puede llevar un tiempo ejecutarlos.Si modifica este archivo, puede aplicar las actualizaciones de configuración ejecutando un shell de inicio de sesión:
.zshrc
[Leer cuando interactivo]
Puse aquí todo lo necesario solo para uso interactivo :
.zlogin
[Leer al iniciar sesión]
Este archivo es similar
.zprofile, pero se lee después.zshrc. Puede considerar que el shell esté completamente configurado en tiempo de ejecución .zloginPor lo tanto, lo uso para iniciar comandos externos que no modifican los comportamientos del shell (por ejemplo, un administrador de inicio de sesión).
.zlogout
[Leer al cerrar sesión] [Dentro del shell de inicio de sesión]
Aquí, puede borrar su terminal o cualquier otro recurso que se configuró al iniciar sesión.
Cómo elijo dónde poner una configuración
.zshenv.zshenv.zprofile.zshrc.zlogin.zlogoutfuente
No pongas
ssh-agentllamadas.zshenv.lessHizo que mi comando ya no mostrara ningún archivo de texto, probablemente porque Prezto (export LESS='-F -g -i -M -R -S -w -X -z-4'in.zprofile) personalizó sus opciones .fuente