Bazel Tab Auto Complete в Zsh не работает - PullRequest
0 голосов
/ 11 октября 2019

Я использую oh-my-zsh, и у меня есть проект Bazel. Я хочу завершить вкладку. Так что я могу сделать bazel build //src/<tab> и получить автозаполнение.

Первое, что я попробовал, было следующее:

https://docs.bazel.build/versions/master/completion.html. Я включил файл _bazel в каталог моего $ fpath. Затем я перезапустил свой терминал и не получил вкладку завершена.

Далее я попытался использовать плагин oh-my-zsh. https://github.com/jackwish/bazel. Я клонировал плагин в правильном месте, добавил базель в мои плагины zshrc и сделал source ~/.zshrc Все еще не завершено табуляции.

Я установил Базель, используя brew. Я попытался brew uninstall bazel и переустановил его. Не повезло ...

$ echo $fpath
... /Users/<username>/.oh-my-zsh/completions ...
$ ls /Users/<username>/.oh-my-zsh/completions
_bazel

Я хочу нажать вкладку, получить список параметров и возможность их пролистывать.

1 Ответ

0 голосов
/ 11 октября 2019

Вам необходимо повторно инициализировать завершение. Система завершения в ZSH собирает файл завершения в fpath и записывает их в файл .zcompdump в качестве индекса для существующих завершений. После добавления нового файла завершения вам необходимо повторить процесс.

Решение

  1. Поместите следующее содержимое в ваш .zshrc.

    # add the _bazel into path
    fpath+=(/path/to/_bazel)
    
  2. Повторно собрать завершения и сгенерировать .zcompdump. Выполните следующую команду в новой интерактивной оболочке ZSH.

    rm -f ~/.zcompdump; compinit
    

Я помню, что oh-my-zsh не делает compinit для вас. Возможно, вам потребуется добавить compinit в .zshrc.

. Проверьте здесь оптимизацию, чтобы запускать compinit один раз в день .

Расширенное чтение

...