theme mojave mac hub git homebrew zsh

mojave - La finalización de Git no funciona en zsh en OS X Yosemite con Homebrew



uninstall zsh mac (2)

No puedo hacer que git complete funcione en mi OS X Yosemite recién instalado en el shell zsh. He instalado tanto git como zsh usando homebrew:

brew install zsh git

Al instalar git a través de homebrew, debería configurar la tabulación completa para ti, pero cuando git <tab> , solo intenta completar los directorios con tabulación, y no los comandos de git. Es decir, no está dando ningún error, simplemente no funciona, como si no estuviera configurado.

Esto es lo que sé hasta ahora.

Aparentemente, zsh buscará formas de autocompletar buscando archivos _* en uno de los directorios en $fpath . Esto es mío:

% echo $fpath /usr/local/share/zsh/site-functions /usr/local/Cellar/zsh/5.0.6/share/zsh/functions

Mirando el primer camino que vemos:

% ls -l /usr/local/share/zsh/site-functions lrwxr-xr-x 1 watson admin 55 Oct 20 12:08 _git -> ../../../Cellar/git/2.1.2/share/zsh/site-functions/_git lrwxr-xr-x 1 watson admin 70 Oct 20 12:08 git-completion.bash -> ../../../Cellar/git/2.1.2/share/zsh/site-functions/git-completion.bash

Así que parece estar configurado para trabajar fuera de la caja, pero no lo hace.

Esto es lo que también he intentado.

git-completed.bash

  1. Descargando git-completion.bash
  2. Ejecutándolo usando la source git-completion.bash

Este tipo de trabajo (es decir, habilita la finalización automática), pero imprime una advertencia:

WARNING: this script is deprecated, please see git-completion.zsh

git-completed.zsh

Por lo tanto, debido a la advertencia anterior, obviamente también intenté descargar git-completion.zsh y seguí la guía en la parte superior del archivo, pero básicamente te dice que primero busques el archivo .bash, lo cual puede causar un error. .

Buscar StackOverflow y Google

He intentado casi todo lo que pude encontrar buscando aquí y en Google, pero nada parece funcionar para mí.


¡Acabo de encontrar la respuesta!

En mi caso me faltaban algunas piezas importantes en mi archivo .zshrc . Pero primero, un poco de historia:

Lo que estoy tratando de hacer es configurar el " Sistema de finalización zsh ". Viene con muchos comandos, todos llamados algo con comp* . Intenté ejecutar esto varias veces, pero en muchos casos zsh simplemente me decía que no los conocía. Así que aparentemente tienes que autoload , entre otras cosas.

Esto es lo que hice:

.zshrc las siguientes líneas a mi archivo .zshrc :

autoload -U compinit && compinit zmodload -i zsh/complist

Entonces abrí una nueva terminal y corrí:

rm -f ~/.zcompdump; compinit

Luego abrí una nueva terminal y ahora git <tab> funcionó como se esperaba :)

Si está configurando un $fpath personalizado en su archivo .zshrc , le recomendaría agregar estas líneas después de haber modificado el $fpath (aunque no sé si hay alguna diferencia).


Mi problema era mucho más simple; Olvidé cambiar mi shell por defecto.

echo $SHELL y si es /bin/bash , simplemente escriba chsh -s /bin/zsh