Налаштування zsh git автозавершення


10

Я просто перейшов з bash на використання zsh 4.3.4 на Ubuntu Hardy. Я розвиваюсь з git, і я постійно боюсь із завершеннями git за замовчуванням: завершення назви файлів намагається бути розумним, виявляючи, що ви додали чи видалили (використовуючи git-ls-файли), але іноді це стає не так --- наприклад, якщо ви знаходитесь в підкаталозі. Він також не знає про мої користувацькі псевдоніми git (наприклад, git ci як псевдонім для фіксації).

zsh superusers, як мені поліпшити цю ситуацію?

Ось кілька моїх думок, хоча я не знаю, як їх реалізувати, оскільки я новачок у zsh, тож, можливо, ви можете допомогти або запропонувати свої:

  • Вимкнути завершення назви файлу git, залишивши лише гілку / тег / ім'я команди / команду-варіант.
  • Замініть "розумне" завершення імені файлу звичайним завершенням імені файлу zsh.
  • Отримайте новіший файл завершення _git, якщо він виправляє ці помилки, і замініть системний.

Дякую!


Ви спробували github.com/robbyrussell/oh-my-zsh
ukanth

Так, наскільки я можу сказати, це просто додає підказку git і не змінює основні доповнення.
Еміль Сиди

Чи може хтось просто сказати нам, як відключити всі «розумні» завершення для всіх команд git? Вони роблять занадто багато IO. Снаряд повинен реагувати миттєво. Я просто хочу повернутися до старого хорошого простого завершення імені файлів для git-команд. Кожен раз, коли я займаюся цим пошуком в Інтернеті, я просто отримую лабіринт загальної інформації про сторінку zsh man.
Пітер Ліонс

2
FYI для тих, хто хоче просто відключити надокучливе завершення роботи git, яке спричиняє блокування оболонки, що робить IO, на Ubuntu 10.04, я щойно зробив це: sudo mv /usr/share/zsh/functions/Completion/Unix/_git /usr/share/zsh/functions/Completion/Unix/OFF_git
Пітер Ліонс,

Відповіді:


5

Спробуйте оновити до останньої версії Zsh. Я щойно оновив з 4.3.4 до 4.3.10, і це принаймні виправляє проблему з не завершеним псевдонімом Git.

Замість того, щоб зламати мою установку, я додав це до свого локального .zshrc:

customzsh=/usr/local/src/zsh-4.3.10/bin/zsh-4.3.10
if [ "$SHELL" != "$customzsh" ]; then
  export SHELL=$customzsh
  exec $customzsh
fi

5

Для великих проектів навіть новіші сценарії завершення git надто повільні. Щоб їх відключити і просто використовувати нормальне завершення файлів, помістіть у свій .zshrc команду:

compdef -d git
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.