2015-06-04 3 views
4

Я использую argcomplete, чтобы иметь Tab завершение в Bash.Как использовать argcomplete в zsh?

argcomplete предлагает глобальное завершение для bash, но не для zsh.

Я хотел бы создать файл ~/.zsh_completion, чтобы содержать готовые файлы. Этот файл должен генерировать автозаполнение для этих файлов, если оно получено от ~/.zshrc.

Как это сделать?

+0

'man zshcompsys' или [Готовая система онлайн-документа] (http://zsh.sourceforge.net/Doc/Release/Completion-System.html). Zsh имеет гораздо более сложную систему завершения, и это одна из причин, почему Zsh любят миллионы. Обычно рекомендуется начинать с некоторой конфигурации, такой как ['Prezto'] (https://github.com/sorin-ionescu/prezto), так что вы получаете коллективную мудрость из коробки. И я не знаю, что вы подразумеваете под «Я хотел бы создать файл ... для хранения готовых файлов». Завершение Zsh основано на командах, и для разных команд оно может выполняться разными способами. – 4ae1e1

+0

И если вы хотите заполнить только предопределенный список, это, конечно, возможно (Zsh - Turing) и довольно легко, но я не буду говорить, что это рекомендуется. – 4ae1e1

+1

Вопрос не в родовом завершении пути, а о добавлении завершения для аргументов сценариев python. Вот о чем говорит 'argcomplete' lib. –

ответ

2

Хорошо, есть способ сделать это, но это не так, как я действительно хотел.

Во всяком случае, здесь идет:

  1. Установка argcomplete:

    $ pip install argcomplete 
    
  2. Activate argcompolete:

    $ activate-global-python-argcomplete --user 
    
  3. Добавьте к этому ~/.zshrc:

    autoload bashcompinit 
    bashcompinit 
    source ~/.bash_completion.d/python-argcomplete.sh 
    
    eval "$(register-python-argcomplete /path/to/the/to/be/completed/file1)" 
    eval "$(register-python-argcomplete /path/to/the/to/be/completed/file2)" 
    eval "$(register-python-argcomplete /path/to/the/to/be/completed/file3)" 
    

    Возможно, есть решение для чтения готовых файлов из другого файла, но я не знаю, как это сделать.

+0

Документы говорят, что глобальный автозаполнение не поддерживается для zsh, что слишком плохо. – Lucas

+0

Насколько я могу видеть, это шаг 2 и 'source ~/.bash_completion.d/python-argcomplete.sh' не нужны, они просто делают динамически (что, похоже, не работает под zsh), что' '$ (register -python-argcomplete/path/to/the/to/be/completed/file1) "' явно. –

Смежные вопросы