2016-03-15 3 views

ответ

3

Короткий ответ - да, или конечно, это возможно.

Для включения системы заканчивания ЗШ, вы должны сделать следующее - вероятно, в файле запуска, как ваш ~/.zshrc:

autoload -U compinit && compinit 

На большинстве современных Unix-подобных систем, как только вы делаете, что вы должны найти что многие команды уже имеют свои флаги и параметры, потому что zsh поставляется с библиотекой функций завершения для общих команд и утилит Unix. Эта библиотека должна быть установлена ​​в таком месте, как /usr/local/share/zsh/function (или аналогично, в зависимости от вашей системы) и состоит из множества сценариев с именами файлов, начинающимися с символа _, каждый из которых определяет завершение для конкретной команды.

Если команда или утилита вы заинтересованы в еще не завершен правильно Zsh, у вас есть несколько вариантов:

  • Посмотрите в zsh-completions пакет. (Он может быть установлен вашей операционной системой или менеджером пакетов дистрибутива.)

  • Прочитайте документацию по инструменту, который вы хотите завершить. Многие утилиты Unix поставляются с завершающими скриптами для bash и/или zsh или с каким-то образом генерируют скрипты завершения.

  • Если все остальное не удается, прочитайте documentation on zsh’s completion system (или найдите хорошую книгу или онлайн-учебник) и напишите сами. Это может, очевидно, быть нетривиальным!

Чтение, что ЗШ документация может также показать вам, как делать другие вещи, которые вы можете даже не знаете еще, что вы хотите, например, включения завершения на основе меню.

+2

Небольшое дополнение, которое, вероятно, стоит цитировать непосредственно из zsh-completions, это 'compdef _gnu_generic ', который анализирует вывод команды '--help' команды для сборки завершения. – pseyfert

+0

Спасибо @wjv - Я считаю, что у меня возникла проблема с 'compinit' в моем' .zshrc'. Он работает так, как ожидалось. – Sasgorilla

+0

@Sasgorilla Хорошо, рад это слышать. – wjv