Trabajo mucho en la terminal, así que aprendí mucho sobre mi shell de elección, zsh. ¿Qué características de zsh usas para hacerte mucho más productivo en el trabajo? Uno de mis favoritos es el autocompletado de múltiples directorios. Entonces, en lugar de escribir, cd /fo{tab}/ba{tab}/ba{tab}¡puedo hacer cd /fo/ba/ba{tab}y guardar tantas pulsaciones de teclas!
command-line
shell
zsh
Frew Schmidt
fuente
fuente

Respuestas:
Acabo de encontrar esta pequeña joya:
Esta forma de
cdreemplaza todas las ocurrencias deolden la ruta completa del directorio actual connewe intenta cambiar el directorio de trabajo a la ruta resultante.Por ejemplo, si su directorio de trabajo es
/home/larry/code/backrub/servery desea cambiar/home/sergei/code/backrub/server, todo lo que necesita hacer es:fuente
Me ocuparé de cosas que, hasta donde yo sé, bash no puede hacer.
Finalización de lujo. Sí, bash tiene algo de eso, pero zsh tiene más comandos, a menudo es más preciso y tiene muchas más posibilidades de configuración.
El
**glob, por ejemplo,**/foobusca archivos llamadosfooen subdirectorios de forma recursiva. (Y***/footambién sigue enlaces simbólicos). Dos caracteres en lugar de unfindcomando largo (que es difícil de entender si algunos nombres de archivo incluyen caracteres especiales como espacios y comillas).Con menos frecuencia, los calificadores globales como en
foo*(*)(comofoo*, pero solo retienen archivos ejecutables),foo(.)(solo archivos normales, no directorios),foo(-@)(solo enlaces simbólicos colgantes),foo*(m-5)(solo archivos modificados en los últimos 5 minutos),foo*(om[1])(el archivo modificado más recientemente) etc.autocd: Escribir un nombre de directorio como un comando cambia en él (cdopushddependiendo de cómo lo configuró). ¡Elcdcomando tiene tres caracteres demasiado largos! No puedo usar bash por más de treinta segundos sin sentir el dolor. También tengo algunas funciones de un solo carácter, comofunción - { si [[$ # -eq 0]]; luego cd "$ OLDPWD" más incorporado - "$ @" fi }zmvincorporado, yMientras estoy en eso, el
noglobincorporado.Las funciones
precmdypreexechook: utilizopreexecpara configurar el título de mi terminal para incluir el comando en ejecución yprecmdpara reemplazar el comando con su código de salida. Algo comoterm_title_base = '@% l:% 1 ~' preexec () { print -nr $ '\ e] 2;' "$ {(%) term_title_base} $ *" '$ \ a' } precmd () { print -nr $ '\ e] 2;' "$ {(%) term_title_base} ($?)" '$ \ a' }bg(para que Ctrl + Z Ctrl + Z suspenda un programa y lo reanude inmediatamente en segundo plano).fancy-ctrl-z () { si [[$ # BUFFER -eq 0]]; luego bg zle redisplay más entrada push zle fi } zle -N fancy-ctrl-z bindkey '^ Z' fancy-ctrl-zsetopt append_history autocd extended_glob no_matchfuente
La capacidad de zsh para autocompletar cosas además de archivos y directorios.
Por ejemplo, con el paquete git instalado, git-sh {tab} muestra:
fuente
Realmente me gustan los alias globales, así que
déjame hacer cosas como
y obtener paginación.
fuente
Como lo mencionaron otros, el autocompletado de zsh es excelente.
Puede configurar su propio autocompletado para comandos personalizados sin demasiada molestia también. Para tabular nombres de usuario completos como argumentos para dedo:
Otras opciones que me gusta configurar:
Pushd y popd también son bastante útiles.
Molesto, las teclas de inicio y finalización no funcionan de manera predeterminada en zsh como lo hacen en otros shells, pero puede solucionarlo.
fuente
Habilite el autocompletado cuando lo use
scpen un servidor remoto.El mensaje correcto para mostrar información adicional.
fuente