Apidog

Plataforma de desarrollo de API colaborativa todo en uno

Diseño de API

Documentación de API

Depuración de API

Simulación de API

Prueba automatizada de API

Cómo configurar una configuración Zsh de alto rendimiento

Esta guía te mostrará cómo configurar Zsh rápido, eficiente y completo.

Daniel Costa

Daniel Costa

Updated on April 15, 2025

Zsh (Z Shell) se ha vuelto cada vez más popular entre los desarrolladores debido a sus potentes características y amplias capacidades de personalización. Esta guía te guiará a través de la configuración de una configuración de Zsh rápida, eficiente y rica en funciones que evita los problemas de rendimiento comunes.

💡
Si bien optimizar tu experiencia de terminal, también vale la pena mejorar tu flujo de trabajo de desarrollo de API. Si eres un desarrollador que trabaja con API, te recomiendo encarecidamente que eches un vistazo a Apidog como una excelente alternativa a Postman.

Apidog combina la documentación de la API, la depuración y las pruebas automatizadas en una sola plataforma con una interfaz más intuitiva y mejores funciones de colaboración en equipo.

La funcionalidad de importación hace que el cambio desde Postman sea perfecto, y muchos desarrolladores informan de flujos de trabajo más rápidos con sus servidores mock y la gestión del entorno. El nivel gratuito es bastante generoso, lo que lo hace accesible para desarrolladores individuales y pequeños equipos.

¡Prueba Apidog junto con tu nueva configuración de Zsh para un entorno de desarrollo completamente renovado!
button

Por qué esta configuración de Zsh funciona mejor

El enfoque que voy a describir ofrece varias ventajas sobre las configuraciones tradicionales:

  • Tiempos de inicio significativamente más rápidos (0,03-0,07 s frente a 0,5-1,0 s con Oh My Zsh básico)
  • Gestión moderna de plugins con mejores características de rendimiento
  • Carga diferida de componentes que consumen muchos recursos
  • Estructura de configuración más limpia que es más fácil de mantener

Cómo usar esta configuración de Zsh (2 opciones)

Tienes varias opciones para tu framework de Zsh, cada una con diferentes ventajas y desventajas:

Opción 1: Zinit + Powerlevel10k (Avanzado, Mejor Rendimiento)

Zinit es un potente gestor de plugins que permite la carga asíncrona y ofrece un rendimiento excepcional.

  1. Instala Zsh primero:
# For Ubuntu/Debian
sudo apt install zsh

# For macOS with Homebrew
brew install zsh

# For Fedora
sudo dnf install zsh

2. Haz de Zsh tu shell predeterminado:

chsh -s $(which zsh)

3. Instala Zinit:

bash -c "$(curl --fail --show-error --silent --location <https://raw.githubusercontent.com/zdharma-continuum/zinit/HEAD/scripts/install.sh>)"

4. Crea tu configuración .zshrc:

# Enable Powerlevel10k instant prompt (makes shell appear instantly)
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
  source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
fi

# Load Zinit
source "$HOME/.local/share/zinit/zinit.git/zinit.zsh"

# Load Powerlevel10k theme
zinit ice depth=1
zinit light romkatv/powerlevel10k

# Core zsh functionality (history, completion)
zinit snippet OMZL::history.zsh
zinit snippet OMZL::completion.zsh
zinit snippet OMZL::key-bindings.zsh

# Essential plugins with async loading (turbo mode)
zinit wait lucid for \\\\
  atinit"zicompinit; zicdreplay" \\\\
    zdharma-continuum/fast-syntax-highlighting \\\\
  atload"_zsh_autosuggest_start" \\\\
    zsh-users/zsh-autosuggestions \\\\
  zdharma-continuum/history-search-multi-word

# Git plugin from Oh My Zsh - loaded when entering a git repository
zinit ice wait lucid
zinit snippet OMZP::git

# Load Node version manager only when needed
export NVM_LAZY_LOAD=true
export NVM_COMPLETION=true
zinit ice wait lucid
zinit light lukechilds/zsh-nvm

# Starting directory
cd ~/repos

# Source aliases from a separate file for better organization
[[ -f ~/.zsh_aliases ]] && source ~/.zsh_aliases

# Configure Powerlevel10k
POWERLEVEL9K_PROMPT_ADD_NEWLINE=true
POWERLEVEL9K_MODE='awesome-fontconfig'
POWERLEVEL9K_BATTERY_SHOW=false  # Turn off battery status
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(dir vcs)
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(status time background_jobs)

# Initialize Powerlevel10k
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh

5. Configura Powerlevel10k:

Después de reiniciar tu terminal, el asistente de configuración de Powerlevel10k se iniciará automáticamente. Sigue las indicaciones para personalizar la apariencia de tu prompt.

Si necesitas reconfigurar más tarde, ejecuta:

p10k configure

Opción 2: Zim (Más simple, aún rápido)

Zim es un framework de Zsh más fácil de usar pero aún muy rápido que ofrece un gran equilibrio entre características y rendimiento.

  1. Instala Zsh (igual que arriba)
  2. Instala Zim:
curl -fsSL <https://raw.githubusercontent.com/zimfw/install/master/install.zsh> | zsh

  1. Edita tu archivo .zimrc para agregar módulos:
# Core
zmodule environment
zmodule git
zmodule input
zmodule termtitle
zmodule utility

# Prompt
zmodule romkatv/powerlevel10k

# Completion
zmodule zsh-users/zsh-completions
zmodule completion

# Modules that must be initialized last
zmodule romkatv/zsh-defer  # For async loading
zmodule zsh-users/zsh-syntax-highlighting
zmodule zsh-users/zsh-autosuggestions
zmodule zsh-users/zsh-history-substring-search

  1. Crea tu archivo .zshrc:
# Enable Powerlevel10k instant prompt
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
  source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
fi

# Initialize zsh-defer for async loading
source ${ZIM_HOME}/modules/zsh-defer/zsh-defer.plugin.zsh

# Start ZIM
if [[ ! ${ZIM_HOME}/init.zsh -nt ${ZDOTDIR:-${HOME}}/.zimrc ]]; then
  # Update static initialization script if it does not exist or is outdated
  zsh-defer source ${ZIM_HOME}/zimfw.zsh init -q
fi
source ${ZIM_HOME}/init.zsh

# Customize key bindings
bindkey '^[[A' history-substring-search-up
bindkey '^[[B' history-substring-search-down

# Lazy load Node version managers
if command -v fnm &> /dev/null; then
  zsh-defer eval "$(fnm env --use-on-cd)"  # Use fnm (faster alternative to nvm)
elif command -v nvm &> /dev/null; then
  zsh-defer source $(brew --prefix nvm)/nvm.sh  # Only load nvm when needed
fi

# Starting directory
cd ~/repos

# Source aliases
[[ -f ~/.zsh_aliases ]] && source ~/.zsh_aliases

# Load powerlevel10k configuration
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh

Creando un mejor archivo de alias

En lugar de incrustar todos los alias directamente en tu .zshrc, crea un archivo .zsh_aliases separado para una mejor organización:

# Create a .zsh_aliases file
touch ~/.zsh_aliases

Aquí hay una versión mejorada de los alias con una mejor organización:

# File operations
alias rmrf='rm -rf'
alias ls='ls -lart --color=auto'

# Directory navigation
alias r='cd ~/repos'
alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'

# Development environments
alias c='code .'
alias s='cursor .'
alias e='exit'

# Git operations
alias g='git'
alias gs='git status'
alias ga='git add .'
alias gc='git commit -m'
alias gagc='git add . && git commit -m'
alias gp='git fetch -p'
alias gcom='git checkout main'
alias gcol='git checkout -'
alias gb='git checkout -b'
alias gbl='git branch -a'
alias grv='git remote -v'
alias grb='npx git-removed-branches'
alias gcl='git clone'
alias gbr='git browse'
alias pp='git pull --rebase && git push'

# Package management - npm
alias ni='npm i'
alias nid='npm i -D'
alias nig='npm i -g'
alias nr='npm run'
alias nrb='npm run build'
alias nrd='npm run dev'
alias nrs='npm run start'
alias nlg='npm list -g --depth=0'

# Package management - yarn
alias ya='yarn add'
alias yad='yarn add -D'
alias yb='yarn build'
alias yd='yarn dev'
alias ys='yarn start'
alias yyb='yarn && yarn build'
alias yyd='yarn && yarn dev'
alias ylg='yarn global list'

# Package management - pnpm
alias pi='pnpm i'
alias pid='pnpm i -D'
alias prb='pnpm run build'
alias prd='pnpm run dev'
alias prs='pnpm run start'
alias plg='pnpm list -g --depth=0'
alias pc='pnpm create'

# Development tools
alias kill='npx kill-port'
alias di='echo dotenv > .envrc && touch .env && direnv allow'
alias tdl="tree -a -I 'node_modules|.svelte-kit|.git' --dirsfirst"

Consejos para la optimización del rendimiento

  1. Usa la carga diferida para componentes pesados
  • Los administradores de versiones de Node (nvm, fnm) son los principales culpables de la ralentización
  • Usa zsh-defer o el modo turbo de Zinit para cargarlos de forma asíncrona
  1. Almacena en caché las salidas de eval con evalcache
  • Instala: zinit light mroth/evalcache
  • Reemplaza eval "$(command)" con _evalcache command
  1. Considera fnm en lugar de nvm
  • fnm es una alternativa basada en Rust que es mucho más rápida
  • Instala: brew install fnm o curl -fsSL <https://fnm.vercel.app/install> | bash
  1. Minimiza los plugins
  • Usa solo los plugins que realmente necesitas
  • Elige plugins modernos y optimizados (como fast-syntax-highlighting en lugar de zsh-syntax-highlighting)
  1. Usa el prompt instantáneo de Powerlevel10k
  • Hace que tu shell aparezca instantáneamente mientras la carga continúa en segundo plano
  1. Divide la configuración en varios archivos
  • Mantén .zshrc limpio y modular
  • Usa archivos separados para alias, funciones y variables de entorno

Midiendo el rendimiento de tu shell con la nueva configuración de Zsh

Agrega esta función a tu .zshrc para verificar el tiempo de inicio de tu shell:

function timezsh() {
  shell=${1-$SHELL}
  for i in $(seq 1 10); do
    /usr/bin/time $shell -i -c exit
  done
}

Luego ejecuta timezsh para ver tu tiempo de inicio promedio.

Conclusión

Al usar herramientas modernas como Zinit o Zim, implementar la carga diferida y organizar tu configuración correctamente, tu experiencia con Zsh será significativamente más rápida y agradable de usar. Los enfoques descritos aquí representan las mejores prácticas actuales que equilibran la funcionalidad con el rendimiento.

Recuerda que la configuración del shell es muy personal: siéntete libre de experimentar con estas sugerencias y adaptarlas a tu flujo de trabajo y preferencias específicos.

💡
Si bien optimizar tu experiencia de terminal, también vale la pena mejorar tu flujo de trabajo de desarrollo de API. Si eres un desarrollador que trabaja con API, te recomiendo encarecidamente que eches un vistazo a Apidog como una excelente alternativa a Postman.

Apidog combina la documentación de la API, la depuración y las pruebas automatizadas en una sola plataforma con una interfaz más intuitiva y mejores funciones de colaboración en equipo.

La funcionalidad de importación hace que el cambio desde Postman sea perfecto, y muchos desarrolladores informan de flujos de trabajo más rápidos con sus servidores mock y la gestión del entorno. El nivel gratuito es bastante generoso, lo que lo hace accesible para desarrolladores individuales y pequeños equipos.

¡Prueba Apidog junto con tu nueva configuración de Zsh para un entorno de desarrollo completamente renovado!
button
Cómo usar Ollama: Guía Completa para Principiantes sobre LLMs Locales con OllamaPunto de vista

Cómo usar Ollama: Guía Completa para Principiantes sobre LLMs Locales con Ollama

El panorama de la inteligencia artificial evoluciona constantemente, y los Grandes Modelos de Lenguaje (LLM) se vuelven cada vez más potentes y accesibles. Aunque muchos interactúan con estos modelos a través de servicios basados en la nube, existe un movimiento creciente enfocado en ejecutarlos directamente en computadoras personales. Aquí es donde entra Ollama. Ollama es una herramienta potente pero fácil de usar, diseñada para simplificar drásticamente el complejo proceso de descargar, config

Mikael Svenson

April 28, 2025

¿Dónde Descargar Swagger UI en Español Gratis?Punto de vista

¿Dónde Descargar Swagger UI en Español Gratis?

¿Necesitas Swagger UI en español? Este artículo explica por qué no existe una descarga oficial gratuita y cómo habilitar la traducción. Explora las características de Swagger y por qué Apidog es la alternativa superior para diseño, pruebas y documentación API integrados.

Oliver Kingsley

April 23, 2025

¿Dónde Descargar Postman en Español Gratis?Punto de vista

¿Dónde Descargar Postman en Español Gratis?

¿Puedes descargar Postman en español gratis? Aunque Postman carece de soporte nativo en español, existen soluciones. Explóralas y descubre Apidog, una potente alternativa unificada a Postman diseñada para optimizar todo tu flujo de trabajo de API, sin importar el idioma.

Oliver Kingsley

April 22, 2025